Threat intelligence
Sterlabs IOC feed.
What started as a simple IOC blocklist has grown into a tool network admins rely on. Build your own block, alert, and domain feeds, publish changes safely, and keep an eye on your own IPs, domains, and email security, all from one dashboard.
The feed
Access is by request. Each approved organization gets its own login, its own feeds, and its own dashboard.
Request access
Email us with your name, organization, and how you plan to use the feed. Approved requests get a login for ioc.sterlabs.com.
| 203.0.113.47 | Brute force |
| 198.51.100.12 | C2 traffic |
| 192.0.2.188 | Port scanning |
| 203.0.113.201 | Credential stuffing |
| 198.51.100.93 | Malware host |
| 192.0.2.54 | Brute force |
What you get
Feeds you control
- Block and alert IP lists plus domain lists, kept up to date for you.
- Tune what goes into each list. Everything is deduplicated.
- An allowlist for your own ranges, partners, and services, with optional expiry dates.
- An optional brute-force list of IPs caught failing logins or probing feed URLs on this service.
- Need something specific? Request an additional list, and an admin will review it.
Publish with confidence
- Changes are staged first, with a diff of exactly what's being added and removed.
- Publish with a change note or ticket number, and roll back if you need to.
- Check any IP, CIDR, or domain against your lists.
- Report false positives from the dashboard. An admin reviews every report.
Watch your own footprint
- Exposure checks on your public IPs: open ports, known vulnerabilities, and whether you've landed on a blocklist.
- Email security grades from A to D for SPF, DMARC, and DKIM, with plain-English fixes.
- Alerts when a new certificate is issued for your domains, from public certificate transparency logs.
- Typosquatting detection, including lookalikes that swap in Cyrillic characters, with the option to add them to your blocklist.
- CISA's known exploited vulnerabilities for the vendors you run, with patch deadlines.
Alerts and reports
- Notifications to Teams, Slack, or any webhook.
- Pick what you hear about: published changes, exposure findings, grade changes, new certificates, new lookalikes, and more.
- Monthly reports.
- Plain-text feeds ready for firewalls, SIEMs, and DNS filters.
Inside the dashboard
What you'll see.
Every organization gets its own dashboard. Here's a look at a few parts of it, using example data.
Every update to your feeds is staged first. Review exactly what's changing, add a note, and publish when you're ready.
Registered domains that look like your example.com, including ones that swap in Cyrillic characters. Anything you don't mark as yours can go straight into your domain blocklist.
| Lookalike | Resolves to | First seen | Action | |
|---|---|---|---|---|
| examp1e.com | 203.0.113.24 | Can receive mail | 2026-10-22 | It's ours |
| еxample.com Cyrillic е | 192.0.2.88 | Can receive mail | 2026-10-22 | It's ours |
| exarnple.com | parked (no address) | 2026-10-21 | It's ours | |
| example-login.com | 198.51.100.7 | Can receive mail | 2026-10-20 | It's ours |
Daily checks on your public IPs for open ports, known vulnerabilities, and blocklist listings.
| IP | Open ports | Vulnerabilities | On a blocklist | Hostnames |
|---|---|---|---|---|
| 203.0.113.10 | 443, 8443 | 1 actively exploited | No | vpn.example.com |
| 203.0.113.11 | 25, 443 | None found | Listed on 1 | mail.example.com |
| 198.51.100.20 | 443 | None found | No | www.example.com |
Each domain is graded A–D on SPF, DMARC, and DKIM, with plain-English fixes.
| Domain | Grade | SPF | DMARC | DKIM | What to fix |
|---|---|---|---|---|---|
| example.org | A | -all | p=reject | Found | Nothing to fix. |
| example.com | C | -all | p=quarantine | Not found |
|
| example.net | D | ~all | Missing | Not found |
|
An alert whenever a certificate is issued for one of your domains, so an unexpected one stands out.
| Logged | Domain | Names on the certificate | Issuer |
|---|---|---|---|
| 2026-10-22 | example.com | *.example.com, example.com | Sectigo Public Server Authentication CA DV R36 |
| 2026-10-21 | example.net | mail.example.net | Let's Encrypt YE2 |
| 2026-10-19 | example.org | www.example.org, example.org | Let's Encrypt YE2 |
Firewall setup
Add the feeds to your firewall.
Most firewalls can subscribe to the feed directly, so new indicators are blocked automatically without manual updates. Pick your firewall below.
Before you start
- Log in to ioc.sterlabs.com and generate a token. Then copy
your unique feed URLfor the list you want. It looks likehttps://iocfeed.sterlabs.com/k/<token>/block-1.txt. Treat it like a password. - Pick the list that fits your network: IPv4, IPv6, or combined. Each guide below says which one that firewall takes. All lists are plain text over HTTPS, one address per line.
- Use your block list for blocking. The alert list is broader and noisier, so it's better for SIEM alerts than for outright blocks.
- Block in both directions: inbound with the feed as the source, outbound with the feed as the destination.
- Place block rules above your allow rules, since most firewalls stop at the first match.
Two ways to connect
https://iocfeed.sterlabs.com/k/<token>/block-1.txtDomain feeds work differently on each firewall. Some block domains with DNS filtering, which only works when clients use DNS that passes through the firewall. Others turn domains into IP addresses, which can over-block sites on shared hosting. Each guide shows its method. The domain list is a separate file from the IP lists: one domain per line.
- In Fireware Web UI, go to Firewall › Aliases and click Add. In Policy Manager it's Setup › Aliases.
- Name the alias, for example
Sterlabs-IOC, then click Add to add a member. - Set the member type to IP Address/Domain Feed.
- Paste
your unique combined feed URLinto Host URL. Set Refresh Interval to 60 minutes (the default). - Set Authentication Type to None for a token URL. To use your portal login instead, choose HTTP and enter your username and password. Click OK, then Save.
- Add the alias to the Blocked Sites list, or put it in the From list of a deny policy (inbound) and the To list of a deny policy (outbound).
If a sync fails, the Firebox keeps the last good list, including across reboots.
- Go to Firewall › Aliases (Web UI) or Setup › Aliases (Policy Manager) and click Add.
- Name it
Sterlabs-IOC-Domains, click Add, and choose IP Address/Domain Feed. - Paste
your unique domain feed URLinto Host URL and set Refresh Interval to 60 minutes. Set Authentication Type to None for a token URL, or HTTP with your portal login. Click OK, then Save. - Add the alias to the Blocked Sites list, or to the To list of an outbound deny policy.
WatchGuard accepts domains and wildcard domains in the same alias type it uses for IPs. Domain feeds hold fewer entries than IP feeds.
- In UniFi Network, go to Networks › Network Lists and click Create New.
- Name the list, for example
Sterlabs IOC. Set Type to IP and Source to Dynamic. - Paste
your unique IPv4 feed URL. Set the refresh interval to 24 hours and save. - Open the zone-based firewall policies (under Settings › Policy Engine or Settings › Security, depending on version) and create a Block policy: source zone External, source Sterlabs IOC, destination zone Internal.
- Create the same policy with destination zone Gateway to protect the gateway itself.
- Create an outbound Block policy: source zone Internal, destination zone External, destination Sterlabs IOC. Move all three above any allow rules.
A UniFi IP list holds IPv4 or IPv6, not both. UniFi alerts you if a dynamic list fails to update. If you use IPv6, repeat steps 1–3 with your unique IPv6 feed URL and add matching block policies for it.
- Go to Networks › Network Lists and click Create New.
- Name it
Sterlabs IOC Domains. Set Type to Domain and Source to Dynamic. - Paste
your unique domain feed URL, set the refresh interval to 24 hours, and save. - Create an outbound Block policy: source zone Internal, destination zone External, destination Sterlabs IOC Domains. Move it above your allow rules.
UniFi blocks a domain by resolving it to IPs, which can also block legitimate sites on shared hosting or CDNs. For cleaner domain blocking, load the same URL into a DNS filter such as Pi-hole or AdGuard Home and point your clients at it.
- Go to Object › Match Objects › Dynamic Group and click Add.
- Enter a name, for example
SterlabsIOC. SonicOS adds theDEAG_prefix on save. Set Zone Assignment to WAN. - Leave FQDN off. Turn on Periodic Download and set Download Interval to 1 hour.
- Set Protocol to HTTPS and paste
your unique IPv4 feed URLinto URL Name. Click Save. - Go to Policy › Rules and Policies › Access Rules. Add a Deny rule from WAN to Any with the DEAG as the Source.
- Add a second Deny rule from LAN to WAN with the DEAG as the Destination. Place both above your allow rules.
SonicOS builds a read-only address group from the feed and refreshes it on the interval you set. If you use IPv6, add a second Dynamic Group with your unique IPv6 feed URL and block it the same way.
- Go to Object › Match Objects › Dynamic Group and click Add.
- Name it
SterlabsIOCDomainsand set Zone Assignment to WAN. - Turn FQDN on. Turn on Periodic Download and set the interval to 1 hour.
- Set Protocol to HTTPS, paste
your unique domain feed URLinto URL Name, and click Save. - Add a Deny access rule from LAN to WAN with the domain group as the Destination. Place it above your allow rules.
Keep domains in their own group. SonicWall advises against mixing domains and IPs, and it doesn't accept wildcards.
- Go to Security Fabric › External Connectors and click Create New.
- Under Threat Feeds, choose IP Address.
- Name it
Sterlabs-IOC, pasteyour unique IPv4 feed URLinto URI of external resource, and set Refresh Rate to 60 minutes. Click OK. - Open the connector and click View Entries to confirm the IPs loaded as valid.
- Go to Policy & Objects › Firewall Policy. Create an inbound policy with Action: Deny and the feed as Source.
- Create an outbound Deny policy with the feed as Destination. Move both to the top of the list.
To protect the FortiGate itself, also reference the feed in a local-in policy from the CLI. If you use IPv6, add a second IP Address connector with your unique IPv6 feed URL and use it in the same policies.
- Go to Security Fabric › External Connectors, click Create New, and under Threat Feeds choose Domain Name.
- Name it
Sterlabs-IOC-Domains, pasteyour unique domain feed URL, set the refresh rate to 60 minutes, and click OK. - Go to Security Profiles › DNS Filter and edit the profile you use, or create one.
- Under FortiGuard Category Based Filter, find the feed under Remote Categories and set it to Block or Redirect to Block Portal. Click OK.
- Apply the DNS filter profile to your outbound internet policy under Security Profiles.
This only works for DNS lookups that pass through the FortiGate, so make sure clients can't use outside DNS servers or DNS over HTTPS.
- Go to Objects › External Dynamic Lists and click Add.
- Name it
Sterlabs-IOCand set Type to IP List. - Paste
your unique combined feed URLinto Source. Set Check for updates to Hourly. - Click Test Source URL to confirm it loads, then click OK.
- Go to Policies › Security. Add a Deny rule with the list as the Source Address, and a second with it as the Destination Address. Place both above your allow rules.
- Click Commit.
If the firewall can't reach the URL, it keeps using the last list it downloaded.
- Go to Objects › External Dynamic Lists and click Add.
- Name it
Sterlabs-IOC-Domains, set Type to Domain List, and pasteyour unique domain feed URLinto Source. Set updates to Hourly and click OK. - Go to Objects › Security Profiles › Anti-Spyware, edit your profile, and open the DNS Policies tab.
- Add the list as an External Dynamic Lists signature source with the action set to sinkhole, and confirm sinkholing is enabled. Click OK.
- In Policies › Security, attach the Anti-Spyware profile to your outbound rule, then click Commit.
Requires a Threat Prevention license. Clients must resolve DNS through traffic the firewall inspects.
- In SmartConsole, open Object Explorer and choose New › More › Network Object › Network Feed.
- Name it
Sterlabs-IOCand pasteyour unique IPv4 feed URLinto Feed URL. - Under Feed Parsing, set Format to Flat list, Data type to IP Address, and Delimiter to a new line. Set Ignore lines with prefix to
#. - Under Advanced Settings, leave Authentication empty for a token URL, or enter your portal username and password. Set Check feed interval to 60 minutes.
- Click Test Feed, pick your gateway, and confirm the IPs load. Click OK.
- In the Access Control policy, add a Drop rule with the feed as Source and another with it as Destination. Place both above your accept rules and click Install Policy.
After the first policy install, the gateway refreshes the feed on its own with no reinstall needed, and keeps the last copy if the feed can't be reached. Each feed object holds up to 50,000 IPs. If you use IPv6, add a second Network Feed with your unique IPv6 feed URL and use it in the same rules.
- In SmartConsole, open Object Explorer and choose New › More › Network Object › Network Feed.
- Name it
Sterlabs-IOC-Domainsand pasteyour unique domain feed URLinto Feed URL. - Under Feed Parsing, set Format to Flat list and Data type to Domain, with a new line as the delimiter.
- Under Advanced Settings, leave Authentication empty for a token URL or enter your portal login, and set Check feed interval to 60 minutes. Click Test Feed, then OK.
- Add a Drop rule with the feed as the Destination, above your accept rules, and click Install Policy.
Use a separate Network Feed object for domains rather than mixing them into the IP feed.
- Go to Protect › Active threat response › Third-party threat feeds and click Add.
- Name it
Sterlabs IOCand set Indicator type to IPv4 address. - Set Action to Monitor for the first few days, so you can review hits before blocking.
- Paste
your unique IPv4 feed URLinto External URL. Set Authorization to No authentication for a token URL. To use your portal login instead, choose Basic authentication and enter your username and password. - Keep Validate server certificate on and set Polling interval to 1 hour. Click Test connection, then Save.
- Once you're happy with what it catches, edit the feed and change Action to Block.
For inbound NAT or WAF traffic, also turn on Remote source match (inbound traffic). That needs SFOS 22 or later.
- Go to Protect › Active threat response › Third-party threat feeds and click Add.
- Name it
Sterlabs IOC Domainsand set Indicator type to Domain. - Set Action to Monitor to start, so you can review hits first.
- Paste
your unique domain feed URLinto External URL. Set Authorization to No authentication for a token URL, or Basic authentication with your portal login. - Set Polling interval to 1 hour, click Test connection, then Save. Switch Action to Block once you're happy with the results.
Each Sophos feed holds one indicator type, so the domain feed is separate from the IP feed.
- Go to Firewall › Aliases, open the URLs tab, and click Add.
- Name it
Sterlabs_IOCand set Type to URL Table (IPs). - Paste
your unique combined feed URL, set the update frequency to 1 day, and click Save, then Apply Changes. - Go to Firewall › Rules › WAN. Add a Block rule with the alias as the Source.
- Go to Firewall › Rules › LAN. Add a Block rule with the alias as the Destination.
- Drag both rules above your pass rules and click Apply Changes.
For more frequent updates or many feeds, the pfBlockerNG package can also load the same URL.
- Install the pfBlockerNG package from System › Package Manager if you haven't already.
- Go to Firewall › pfBlockerNG › DNSBL, check Enable DNSBL, and click Save.
- Open DNSBL Feeds (DNSBL Groups in some versions) and click Add. Name the group
Sterlabs_IOC. - Under DNSBL Source, paste
your unique domain feed URL, give it a label, and set List Action to Unbound. Set Update Frequency to Every hour and click Save. - Go to Firewall › pfBlockerNG › Update, choose Force and Update, and click Run.
pfBlockerNG blocks through the DNS Resolver, so clients must use pfSense for DNS.
- Go to Firewall › Aliases and click +.
- Name it
Sterlabs_IOCand set Type to URL Table (IPs). - Set Refresh Frequency to 1 hour.
- Paste
your unique combined feed URLinto Content. Click Save, then Apply. - Go to Firewall › Rules › WAN. Add a Block rule with the alias as the Source, and add a Block rule on LAN with it as the Destination.
- Move both rules to the top and click Apply changes.
Check Firewall › Diagnostics › Aliases to see the IPs loaded into the alias.
- Go to Services › Unbound DNS › Blocklist and check Enable.
- Paste
your unique domain feed URLinto the custom blocklist URLs field. You can leave the preset lists unselected. - Click Apply to download the list.
- Go to System › Settings › Cron and add a job for Update Unbound DNSBLs, for example every hour.
Unbound blocks the domains for any client using OPNsense for DNS. Field names have moved slightly between releases.
- Firewalla can't subscribe to a feed URL yet, so there are two ways to load the list. Option A is manual and suits small lists. Option B keeps the list in sync automatically and needs Firewalla MSP.
- Option A, manual: open
your unique combined feed URLin a browser and copy the entries. - Log in to my.firewalla.com, go to Target Lists, and click Create Target List. Name it
Sterlabs IOC, paste the entries, and save. - In the Firewalla app or web, go to Rules and add a Block rule with Matching set to the list, applied to all devices. If the rule offers a direction setting, choose both directions.
- Option B, automatic (MSP): create the target list once in MSP, then run a scheduled script that downloads
your unique combined feed URLand updates the list through the MSP API (PATCH /v2/target-lists/<id>) with a personal access token. - Point the same Block rule at the MSP target list. The script keeps it current on whatever schedule you run it.
Target lists hold about 200 entries on Firewalla Web and 2,000 on MSP, so a full feed may not fit. Firewalla has said URL import is being explored but isn't supported today.
- Firewalla can't subscribe to a feed URL yet, so there are two ways to load the list. Option A is manual and suits small lists. Option B keeps the list in sync automatically and needs Firewalla MSP.
- Option A, manual: open
your unique domain feed URLin a browser and copy the entries. - Log in to my.firewalla.com, go to Target Lists, and click Create Target List. Name it
Sterlabs IOC Domains, paste the entries, and save. - In the Firewalla app or web, go to Rules and add a Block rule with Matching set to the list, applied to all devices.
- Option B, automatic (MSP): create the target list once in MSP, then run a scheduled script that downloads
your unique domain feed URLand updates the list through the MSP API (PATCH /v2/target-lists/<id>) with a personal access token. - Point the same Block rule at the MSP target list. The script keeps it current on whatever schedule you run it.
Target lists accept domains, with an option to match all subdomains. Size limits are the same as for IPs: about 200 entries on Firewalla Web and 2,000 on MSP.
Menu names can shift between firmware versions. If something doesn't match, email info@sterlabs.com with your model and version.