Zedmos
Zedmos CTI
Curated Threat Intelligence
live
v2.5.1 — May 2026 65+ feeds curated false-positive guarded STIX 2.1 / TAXII 2.1 68 TAXII collections MITRE ATT&CK aligned 10 firewall formats ed25519 signed CT-log watch

Curated Threat Intelligence,
delivered to your firewalls.

Zedmos CTI ingests dozens of open-source TI feeds (URLhaus, abuse.ch, CERT.pl, USOM, Spamhaus DROP, EmergingThreats, ThreatFox, OpenPhish, …), strips out false positives that historically blocked legitimate services like drive.google.com, github.com or microsoft.com, and serves clean per-category blocklists over HTTPS to thousands of firewalls.

live · 3D threat map
arcs · upstream feeds → cti.zedmos.net → your firewall
how the catalog gets built

Threat sources from across the globe — one decision per packet

Curated feeds stream into the hub, every IOC is scored with STIX 2.1 confidence, every IP enriched offline with country + ASN, and the consensus snapshot ships only verified+trusted indicators to your firewalls. Cloud-AS allowlist keeps Microsoft 365 / Google Workspace alive; daily cross-validation proves every line.

  • Multi-source consensus → verified-tier promotion
  • Offline GeoASN at line rate (3.3M ops/s, no quota risk)
  • Cloud-AS exception protects legitimate SaaS infra
  • ed25519-signed snapshots, verifiable with stock OpenSSL

Live stats

Auto-refreshes every 30 seconds · sourced from /v1/public/stats

last updated
Total IOCs (catalog scope)
0
across all tiers · catalog scope (verified+trusted ship by default)
Malicious domains
0
unique, sorted, deduped
Malicious IPs / CIDRs
0
v4 ranges, hijack netblocks
Active feeds
0
0 last-fetch OK
FP review queue
0
candidates flagged as false-positive
Allowlist
0
Tranco + Umbrella + cloud CIDRs (AWS/GCP/CF/GH) + seed
Cloud-IP FPs caught
0
IPs auto-suppressed as in-cloud-range — live
Known-good smoke
every 6h: assert no must-never-block indicator leaks into the shipped catalog
Verified IOCs (multi-source)
0
≥2 sources or enrichment-confirmed
Catalog liveness · domains
DNS-alive ratio across the full domain catalog · rolling sweep every 15 min
Liveness coverage
% of domain catalog with at least one DNS probe on record
Live-rate (verified-tier)
% of sampled IOCs still actively serving threat infra · DNS+HTTP probe
Live-rate (community-tier)
single-source — front-line attack staging coverage
Total signal (live + sinkholed)
% of audited IOCs that resolve as either live or known-sinkhole — proves catalogue isn't noise
Trusted IOCs (T1 single-source)
0
USOM, CERT.pl, Spamhaus DROP, Feodo low-FP
Default firewall ship
0
verified+trusted only
Community scope (opt-in)
0
single-source · operator enables via community-domains.txt
Discovery candidates
bot-found feed candidates awaiting operator review
Cross-validation pass-rate
daily random sample audit — every line proven
Distribution snapshots
0
per-category materialized files
Bytes served (cached)
total payload across categories
MITRE ATT&CK
0
STIX objects (enterprise + mobile + ICS)
TAXII 2.1 collections
0
live STIX 2.1 endpoints
Sightings 24h (anonymized)
0 firewalls reporting · 0 all-time hits
Output formats
9
plain · Suricata · Pi-hole · OPNsense · MikroTik · RPZ · STIX · TAXII · MISP
cryptographic provenance
ed25519 signed bundles

Every distribution snapshot is signable with our long-lived ed25519 key. Verify with stock OpenSSL — no Zedmos library needed.

Signing key: loading…
transparency
Live numbers, audited methodology

Every number on this page has a definition. /v1/public/methodology documents what we count, what we DON'T count, FP-filter stages, and SLA targets. /v1/public/transparency emits the same numbers as JSON.

CT-watch
Newly-issued cert monitor

Every cert issued on Certificate Transparency logs is scored on brand-keyword, lookalike, IDN homograph, and lexical entropy in real time. Operator approval required before promotion to firewall feeds.

Stream: connecting…

Suspicious newly-issued certs · last 24h

Certificate Transparency log monitor — brand impersonation, DGA-style domains, IDN homograph attempts. Operator approval required before promotion.

Raw JSON
Domain Score Brand Flags Issuer Seen
CertStream connecting — first batch in <60 s.

Hot indicators · last 24 hours

Aggregated from firewall-fleet sightings (anonymized — no PII, only count + reporting firewall count).

live, no cache
Indicator Type Hits 24h Firewalls Last sighting
loading…

Hot threats — last 24h

new IOCs surfaced · what is burning right now
Top categories
loading…

Top categories

unique IOCs per category
loading…

Distribution snapshots

files served via HTTPS to firewalls
Kind Category Type Lines Bytes Last built
loading…

Threat origins by country

Where the malicious IPs and CIDR ranges in our catalog are hosted — sourced from offline GeoASN at ingest time.

IP/CIDR IOCs across countries
refresh every 5 min · sourced from /v1/public/threats-by-country

How to read this: these are IPs / CIDRs hosted in each country (BGP geolocation), not necessarily where the threat actor lives. High counts in US, DE, GB, NL, SG include hyperscaler-hosted threats — adversaries rent legitimate cloud capacity. Domain IOCs (5M+) have no country attribution and are excluded from this view. The honest takeaway: where to look first, not who to blame.

loading…

Top 25 by IP/CIDR count. Caveat: domains (~94% of catalog) have no country attribution — this is the IP-only slice. Raw JSON →

Sources & credibility

Every upstream feed is classified into a credibility tier. We publish the full catalog at /v1/public/sources — provider, license, last audit, status.

Tier 1
Gov / national CERT
Tier 2
Industry-grade (abuse.ch / Spamhaus / ET)
Tier 3
Community-curated
Tier 4
Aggregator / mirror
Tier 5
Research / volatile (watch-only)

Audit status (last 24h)

operational
unreachable
stale (critical-only)
unknown

"operational" = HTTP 200 + content received. We deliberately do not call low-cadence feeds (Spamhaus DROP, Feodo Tracker) "stale" — they publish only when actionable changes happen. "stale" is reserved for freshness-critical feeds that exceed their expected cadence.

Top operators

loading…

Per-feed catalog (sample top by tier)

Tier Feed Operator License Status Last fetch
loading…

Showing curated sample. Full catalog as JSON →

Verify our claims yourself

No Zedmos library required. Use stock OpenSSL.

end-to-end proof

ed25519 signed bundle verification

Copy-paste, run, observe Signature Verified Successfully. Tamper one byte → instant Verification Failure.

TOKEN=tihub_...

# 1. fetch the body, the detached signature, and the public key
curl -sS https://cti.zedmos.net/v1/feeds/ti/malware_virus/domains.txt \
  -H "authorization: Bearer $TOKEN" -o body.txt

curl -sS https://cti.zedmos.net/v1/feeds/ti/malware_virus/domains.txt.sig \
  -H "authorization: Bearer $TOKEN" \
  | jq -r .signature_b64 | base64 -d > sig.bin

curl -sS https://www.zedmos.net/v1/public/keys/sign.pem -o pub.pem

# 2. verify (openssl 3.0+, no extra packages)
openssl pkeyutl -verify -pubin -inkey pub.pem -rawin \
  -in body.txt -sigfile sig.bin
# → Signature Verified Successfully
numbers audit

Cross-check the live numbers

Every counter on this page comes from /v1/public/transparency. /v1/public/methodology defines what each counter means and what we explicitly DO NOT count.

# live numbers (no-auth)
curl -sS https://www.zedmos.net/v1/public/transparency \
  | jq .live_numbers

# definitions + FP-filter stages + SLA targets + what we don't count
curl -sS https://www.zedmos.net/v1/public/methodology \
  | jq '.definitions, .fp_filter_stages, .what_we_do_NOT_count'

What is CTI?

Cyber Threat Intelligence — context-rich data about adversaries, the infrastructure they use, and how to detect them.

Strategic CTI
Who and why

High-level intelligence on threat actors, geopolitical motivations, industry targeting and long-running campaigns. Read by CISOs and risk officers.

Tactical CTI
How they operate

TTPs (Tactics, Techniques and Procedures) mapped to MITRE ATT&CK. Detection engineers use this to write SIEM rules and IDS signatures.

Operational / Technical CTI
What to block, right now

Indicators of Compromise (IOCs): malicious domains, IPs, CIDRs, file hashes, JA3/JA4 fingerprints. Fed into firewalls, EDRs, DNS sinkholes. This is what Zedmos CTI specializes in.

Why curation matters

Raw open-source TI feeds are noisy. URLhaus might list a Google Drive URL because attackers used it for malware staging — but the parent domain drive.google.com is, of course, legitimate. Without curation, a firewall that suffix-matches such a feed will block hundreds of millions of legitimate users from Google Drive, GitHub, Microsoft 365 and more. Zedmos CTI runs every IOC through a five-stage filter: hard allowlist · root-domain protection · multi-source consensus · format validation · manual review queue.

How it works

From upstream feed to firewall — every minute, every indicator.

01 · INGEST
Pull from upstream

BullMQ-scheduled HTTP fetchers honour each feed's polling interval. Plain, hosts, CSV and JSON formats are parsed natively.

02 · FILTER
Strip false positives

5-stage pipeline: allowlist suffix match, registrable-root protection, multi-source consensus, syntactic validation, manual review.

03 · MATERIALIZE
Build snapshots

Per-category, per-type files are written sorted-unique with a SHA-256 ETag. Atomic rename means firewalls never see a partial file.

04 · DISTRIBUTE
Serve over HTTPS

NGINX reverse-proxy with per-FW Bearer auth, ETag/304 revalidation, gzip, rate-limits and a 60-second cache zone scaled for thousands of firewalls.

Public API

All endpoints emit Cache-Control and ETag. Firewall feeds require a Bearer token.

portal self-service · email-verified · revocable

Get an API token

Register with your email, verify the link we send from info@zedmos.net, sign in, and mint a Bearer token that unlocks every /v1/feeds/* endpoint above. Tokens are shown once — keep them safe.

GET /v1/public/stats no auth
Service-wide aggregates: feed counts, IOC counts by type, review queue size, top categories, snapshot index.
GET /v1/stix/info no auth
STIX/TAXII discovery — list of every TAXII 2.1 collection with id / title / kind / category.
GET /v1/public/health no auth
Liveness probe.

Firewall feed endpoints Bearer

Same indicators, your favourite format. Substitute <kind>ti | security | waf and <cat> with a category from /v1/stix/info.

GET/v1/feeds/<kind>/<cat>/domains.txt
Plain text, sorted-unique. Drop into any agent.
GET/v1/feeds/<kind>/<cat>/ips.txt
Plain text v4/v6 IPs and CIDRs.
GET/v1/feeds/<kind>/<cat>/suricata.rules
Native Suricata DNS-block rules with auto-allocated SID range and metadata tags.
GET/v1/feeds/<kind>/<cat>/pihole.txt
Pi-hole adlist format (one domain per line, with header comment).
GET/v1/feeds/<kind>/<cat>/opnsense.txt
OPNsense / pfSense URL-table alias source. IPs/CIDRs.
GET/v1/feeds/<kind>/<cat>/mikrotik.rsc
MikroTik RouterOS firewall script. Idempotent — replaces previous list.
GET/v1/feeds/<kind>/<cat>/unbound.rpz
Unbound / BIND Response-Policy Zone. Wildcard-covers subdomains.
GET/v1/feeds/<kind>/<cat>/stix.json
STIX 2.1 bundle. Drops into MISP, OpenCTI, Splunk, Sentinel, Anomali, ThreatConnect.

TAXII 2.1 server Bearer

Discovery root:
https://cti.zedmos.net/taxii2/
Conforms to OASIS TAXII 2.1 OS. Compatible clients: MISP, OpenCTI, Splunk Add-on for STIX/TAXII, Anomali ThreatStream, Microsoft Sentinel, OASIS Cabby.
Curl examples:
# Live stats (no auth)
curl -sS https://www.zedmos.net/v1/public/stats | jq .iocs

# Suricata rules (Bearer required)
curl -sS https://cti.zedmos.net/v1/feeds/ti/malware_virus/suricata.rules \
  -H "authorization: Bearer tihub_..."

# STIX 2.1 bundle for Splunk / MISP / OpenCTI
curl -sS https://cti.zedmos.net/v1/feeds/ti/phishing/stix.json?limit=1000 \
  -H "authorization: Bearer tihub_..."

# TAXII 2.1 collection list
curl -sS https://cti.zedmos.net/taxii2/api1/collections/ \
  -H "authorization: Bearer tihub_..." \
  -H "accept: application/taxii+json;version=2.1"

What you get

No false positives by design

Allowlist of major cloud, social, OS-update and CDN domains. Registrable-root protection prevents a feed listing google.com from killing every Google subdomain.

High-throughput delivery

NGINX proxy_cache + ETag + gzip means a firewall fetching a 1 MB feed every 10 minutes costs us a few KB of revalidation traffic per request.

Drop-in for Zedmos firewalls

No engine recompile required: replace the upstream URL in agent.json with the matching cti.zedmos.net path, drop in a Bearer token, restart the agent.

Multi-source consensus

Each IOC tracks its provenance across feeds. Operators can require a minimum number of independent sources before an indicator gets shipped to firewalls.

Audit-ready

Every change to the catalog — feed updates, IOC promotions, allowlist edits — is recorded with timestamps and reasons. Suitable for compliance evidence.