Threat Feeds & Categories
All 43 threat-intel feeds and 25 categories in the graph, with refresh cadence, verdict properties, and example queries.
Threat Feeds & Categories Documentation
WhisperGraph aggregates 43 threat-intelligence feeds grouped into 25 categories. The feeds are part of the graph itself: each feed is a FEED_SOURCE node, each category is a CATEGORY node, and every indicator that appears on a feed carries a LISTED_IN edge to it. On top of the raw listings, a reconciled verdict is written onto the indicator node, so a single anchored read tells you how bad an IP or hostname is with no extra hops.
This page covers how feed data enters the graph, the full catalog and its refresh cadence, the category taxonomy, and the queries to work with both. For a scored verdict with an inspectable evidence chain, use explain().
How feeds enter the graph
Feeds are collected by whisper-feeds, a companion data service that pulls from public and commercial sources and refreshes on hourly incremental and daily full cycles. Inside the graph, the threat-intelligence layer surfaces three ways:
LISTED_INedges. AnIPV4,IPV6, orHOSTNAMEnode connects to eachFEED_SOURCEthat lists it. Each edge carriesfirstSeen,lastSeen, and the feed'sweight. This is the evidence behind every verdict.BELONGS_TOedges. AFEED_SOURCEconnects to itsCATEGORY(there is noIN_CATEGORYedge), so you can turn feed names into threat categories in one hop.- Verdict properties on nodes. Listed indicators carry raw threat properties (
threatScore,threatLevelfromNONEtoCRITICAL,threatSources,threatFirstSeen,threatLastSeen) plus a reconciled verdict:verdictScore,verdictLevel,verdictBlocking, andverdictAdvisory(IPs only). Prefer the reconciledverdict*properties for triage decisions; they are the authoritative signal.
Listed nodes also carry 17 boolean flags derived from the categories of the feeds that list them: isThreat, isAnonymizer, isC2, isMalware, isPhishing, isSpam, isBruteforce, isScanner, isBlacklist, isTor, isProxy, isVpn, isWhitelist, isReputation, isBotnet, isDga, and isStateActor. Flags like isTor and isAnonymizer matter for triage even when the score is moderate: a login from a Tor exit reads very differently than the same login from a residential IP.
Two mechanics to know before querying:
LISTED_INand the feed-to-categoryBELONGS_TOstep are computed at query time. Write them as explicit single hops, never inside a variable-length[*..]pattern, and bound the feed list withWITH f LIMIT 10before expanding to categories. See Best Practices.- Curated allowlists clamp the verdict surfaces (
threatLevel,isThreat,verdictLevel) toINFO/falsefor well-known public DNS resolvers such as1.1.1.1and8.8.8.8, which appear on aggressive blocklists for reasons that rarely matter to a defender. The rawthreatScoreis never clamped, so it keeps the full feed evidence.
How feed listings become graph edges and node verdicts
Feed catalog
The live catalog holds 43 feeds. All feeds follow the same refresh policy (see cadence below).
| Feed | Category |
|---|---|
| AlienVault Reputation | Reputation |
| Binary Defense Banlist | General Blacklists |
| Blocklist.de All | General Blacklists |
| Blocklist.de Mail | Spam |
| Blocklist.de SSH | Brute Force |
| Botvrij Domains | Malicious Domains |
| Botvrij Dst IPs | C2 Servers |
| Brute Force Blocker | Brute Force |
| C2 Intel 30d | C2 Servers |
| CERT.pl Domains | Malicious Domains |
| CINS Score | General Blacklists |
| Cloudflare Radar Top 1M | Popularity/Trust |
| DNS RD Abuse | General Blacklists |
| Dan Tor Exit | TOR Network |
| ET Compromised IPs | General Blacklists |
| Feodo Tracker | C2 Servers |
| FireHOL Abusers 1d | General Blacklists |
| FireHOL Anonymous | Proxies |
| FireHOL Level 1 | General Blacklists |
| FireHOL Level 2 | General Blacklists |
| FireHOL Level 3 | General Blacklists |
| FireHOL WebClient | General Blacklists |
| GreenSnow Blacklist | General Blacklists |
| Hagezi Light | Ad/Tracking Blocklists |
| Hagezi Pro | Ad/Tracking Blocklists |
| IPsum | General Blacklists |
| InterServer RBL | General Blacklists |
| MalwareBazaar Recent | Malware Distribution |
| OFAC SDN Sanctioned Crypto Addresses (BTC/XBT) | OFAC SDN Sanctions |
| OFAC SDN Sanctioned Crypto Addresses (ETH) | OFAC SDN Sanctions |
| OFAC SDN Sanctioned Crypto Addresses (SOL) | OFAC SDN Sanctions |
| OFAC SDN Sanctioned Crypto Addresses (TRX) | OFAC SDN Sanctions |
| OpenPhish Feed | Phishing |
| SSH Client Attacks | Brute Force |
| SSH Password Auth | Brute Force |
| SSL IP Blacklist | General Blacklists |
| Spamhaus DROP | General Blacklists |
| Spamhaus EDROP | General Blacklists |
| StevenBlack Hosts | Ad/Tracking Blocklists |
| ThreatFox IOCs | C2 Servers |
| Tor Exit Nodes | TOR Network |
| Tranco Top 1M | Popularity/Trust |
| URLhaus Recent | Malware Distribution |
The feed set evolves as sources are added or rebalanced. The first query on this page returns the current list, and GET /api/query/stats reports the live feedSourceCount and categoryCount (see the API Reference).
Refresh cadence
- Hourly incremental refresh. Newly listed indicators flow into the graph within about 60 minutes of source publication. A hot C2 IP added to ThreatFox is queryable through its
LISTED_INedge within the hour. - Daily full refresh. Every feed is re-fetched in full, and entries no longer present on the source are removed from the graph.
Because the graph reflects whichever feeds are currently loaded, treat scores and listings as a live read, not a fixed record.
Category taxonomy
Every feed belongs to one of 25 categories, and the categories fall into three groups. Threat categories mark confirmed or suspected badness. Anonymizer categories mark infrastructure that hides origin without being malicious in itself. Reference categories carry context data, including trust lists: a Tranco or Cloudflare Radar listing is a popularity signal, so a LISTED_IN edge alone does not mean an indicator is malicious. Check the category, or read the reconciled verdict, before escalating.
| Category | Group | What it covers |
|---|---|---|
| Ad-hoc File Transfer | Reference | Ad-hoc/anonymous file-transfer services, sometimes abused for malware delivery or exfiltration |
| Ad/Tracking Blocklists | Reference | Domains used for ads and behavioural tracking |
| Anonymization Infrastructure | Anonymizer | VPN exit nodes, proxies, anonymizing relays |
| Anonymous File Upload | Reference | Anonymous file-upload and sharing services |
| Attack Sources | Threat | IPs observed scanning or attacking |
| Brute Force | Threat | SSH/RDP/credential brute-force sources |
| Bulk Cloud Storage | Reference | Bulk cloud-storage providers, sometimes abused for staging or exfiltration |
| C2 Servers | Threat | Confirmed command-and-control infrastructure |
| Exfiltration Destinations | Reference | Endpoints commonly used as data-exfiltration destinations |
| General Blacklists | Threat | Catch-all reputation lists from operators |
| Malicious Domains | Threat | Domains involved in malware or attack chains |
| Malicious Infrastructure | Threat | Hosting providers and ASNs hosting badness |
| Malware Distribution | Threat | URLs/IPs serving malware payloads |
| OFAC SDN Sanctions | Threat | OFAC Specially Designated Nationals: sanctioned crypto addresses (BTC/ETH/SOL/TRX) |
| Paste Sites | Reference | Paste and text-sharing services, often used to host stolen data or IOCs |
| Phishing | Threat | Domains and URLs used for credential theft |
| Popularity/Trust | Reference | Top-N domain lists used for whitelisting and reputation |
| Proxies | Anonymizer | HTTP/SOCKS proxy infrastructure |
| Reference Data | Reference | Public infrastructure datasets (e.g. Bitcoin nodes) |
| Reputation | Reference | General reputation aggregators |
| Spam | Threat | Mail spam sources |
| State Actor & Sanctions | Threat | State-sponsored actor infrastructure and sanctions-related indicators |
| TOR Network | Anonymizer | Tor relays and exit nodes |
| Threat Intelligence | Threat | Curated threat-intel from intel providers |
| VPNs | Anonymizer | Commercial VPN egress IPs |
Use the category to scope a hunt: filter to C2 Servers plus Malware Distribution for confirmed-bad, or exclude the Reference group when counting threat evidence.
Querying feeds and verdicts
FEED_SOURCE and CATEGORY are small reference labels, so they are safe to scan without an anchor:
// List the live feed catalog
MATCH (f:FEED_SOURCE)
RETURN f.name AS feed
ORDER BY f.name
LIMIT 50
For an indicator, read the listings and the reconciled verdict together in one anchored query:
// Feeds listing this IP, plus its reconciled verdict and posture flags
MATCH (ip:IPV4 {name: "185.220.101.1"})
OPTIONAL MATCH (ip)-[:LISTED_IN]->(f:FEED_SOURCE)
RETURN ip.name AS ip, ip.verdictScore AS score, ip.verdictLevel AS level,
ip.verdictBlocking AS blocking, ip.isTor AS isTor,
collect(DISTINCT f.name) AS feeds
LIMIT 1
Several feeds naming the same indicator is a stronger signal than one. To turn the feed names into categories, pivot each feed through BELONGS_TO, bounding the feed list with WITH f LIMIT 10 between the two hops. The full recipe, along with batch enrichment patterns, is in Indicator Triage. For the scored reasoning behind a verdict, with the exact feeds, weights, and first/last-seen timestamps, call explain(). Labels, edges, and properties for the whole threat layer are in the Graph Schema.