Threat Advisories

Automated threat advisory engine that ingests security feeds, classifies threats, and maps them to ThreatOps protections.

Complete

API router, service engine, and frontend UI are fully implemented and deployed.

Complete Auto-Refresh 6 Feed Sources

Overview

The Threat Advisories module provides a customer-facing intelligence feed that automatically ingests security articles from multiple sources, classifies them by threat type, maps each advisory to ThreatOps' existing protection capabilities, and presents them with actionable recommended responses. This enables SOC analysts and customer security teams to instantly understand how ThreatOps already protects them against emerging threats.

Unlike raw RSS aggregators, this module adds a protection mapping layer that correlates each advisory to specific detection rules, SOAR playbooks, monitoring capabilities, and intelligence integrations already active in the platform.

What Was Proposed

What's Built

Backend Service: ThreatAdvisoryEngine

Capabilities

Feed Sources

FeedTypeURL
CISA Known Exploited VulnerabilitiesJSONcisa.gov/.../known_exploited_vulnerabilities.json
NIST NVD Recent CVEsJSONservices.nvd.nist.gov/rest/json/cves/2.0
US-CERT AlertsRSScisa.gov/cybersecurity-advisories/all.xml
The Hacker NewsRSSfeeds.feedburner.com/TheHackersNews
BleepingComputerRSSbleepingcomputer.com/feed/
Krebs on SecurityRSSkrebsonsecurity.com/feed/

Threat Classification Mapping

Threat TypeSeverityMITRE Tactics
RansomwareCriticalTA0040-Impact, TA0005-Defense Evasion, TA0008-Lateral Movement
Zero-DayCriticalTA0001-Initial Access, TA0002-Execution
Vulnerability ExploitationHighTA0001-Initial Access, TA0002-Execution
Credential TheftHighTA0006-Credential Access, TA0008-Lateral Movement
PhishingHighTA0001-Initial Access, TA0009-Collection
Supply ChainHighTA0001-Initial Access, TA0003-Persistence
Insider ThreatMediumTA0009-Collection, TA0010-Exfiltration
Cloud MisconfigurationMediumTA0001-Initial Access, TA0005-Defense Evasion

Architecture

Data Flow

Security Feeds (6) ThreatAdvisoryEngine.fetch_all_feeds() Parse RSS/JSON classify_threat() generate_advisory() Map to ThreatOps Capabilities Advisory Store (in-memory)

Singleton instance: advisory_engine shared across all API requests. Deduplication via content hash. Rolling 100-advisory buffer.

API Routing

Router prefix: /api/v1/advisories — Tag: advisories

GET /api/v1/advisories/
List all threat advisories. Filters: severity (critical/high/medium/low), threat_type, limit (1-100, default 50). Returns newest first.
GET /api/v1/advisories/stats
Get advisory counts by severity and type, total count, last refresh timestamp, feed count.
GET /api/v1/advisories/{advisory_id}
Get a single advisory by ID. Returns 404 if not found.
POST /api/v1/advisories/refresh
Trigger a manual feed refresh. Returns count of new advisories and total count.

Frontend Route

/threat-advisories — Full React page with stats bar, severity/type filters, expandable advisory cards, protection mapping, MITRE tactic tags, and recommended action checklists.

Prerequisites

Data Model

Advisories are stored as plain dictionaries in the ThreatAdvisoryEngine.advisories list (in-memory). No database models required.

Advisory Object Schema

{
  "id": "string (MD5 hash prefix)",
  "title": "string",
  "source": "string (feed name)",
  "source_url": "string (original article URL)",
  "published_at": "ISO 8601 datetime",
  "ingested_at": "ISO 8601 datetime",
  "threat_type": "ransomware|phishing|vulnerability_exploitation|credential_theft|supply_chain|insider_threat|cloud_misconfiguration|zero_day|default",
  "severity": "critical|high|medium|low",
  "summary": "string (max 500 chars)",
  "cve_id": "string|null",
  "threatops_protection": {
    "status": "protected",
    "detection": "string",
    "response": "string",
    "monitoring": "string",
    "intelligence": "string"
  },
  "mitre_tactics": ["string"],
  "recommended_actions": ["string"]
}

UI Description

The frontend at /threat-advisories presents:

Source Files

ComponentPath
API Routerplatform/api/app/routers/advisories.py
Service Engineplatform/api/app/services/threat_advisory_service.py
Frontend Pageplatform/frontend/src/app/threat-advisories/page.tsx