pup-filter/README.md

16 KiB

PUP Domains Blocklist

A blocklist of domains that host potentially unwanted programs (PUP), based on the malware-discoverer. Blocklist is updated twice a day.

There are multiple formats available, refer to the appropriate section according to the program used:

For other programs, see Compatibility page in the wiki.

Check out my other filters:

URL-based

Import the following URL into uBO to subscribe:

included by default in uBO >=1.39.0; to enable, head to "Filter lists" tab, expand "Malware domains" section and tick "PUP URL Blocklist".

Mirrors

URL-based (AdGuard)

Import the following URL into AdGuard browser extension to subscribe:

Mirrors

URL-based (Vivaldi)

Requires Vivaldi Desktop/Android 3.3+, blocking level must be at least "Block Trackers"

Import the following URL into Vivaldi's Tracker Blocking Sources to subscribe:

Mirrors

Domain-based

This blocklist includes domains and IP addresses.

Mirrors

Domain-based (AdGuard Home)

This AdGuard Home-compatible blocklist includes domains and IP addresses.

Mirrors

Hosts-based

This blocklist includes domains only.

Mirrors

Dnsmasq

This blocklist includes domains only.

Save the ruleset to "/usr/local/etc/dnsmasq/pup-filter-dnsmasq.conf". Refer to this guide for auto-update.

Configure dnsmasq to use the blocklist:

printf "\nconf-file=/usr/local/etc/dnsmasq/pup-filter-dnsmasq.conf\n" >> /etc/dnsmasq.conf

Mirrors

BIND

This blocklist includes domains only.

Save the ruleset to "/usr/local/etc/bind/pup-filter-bind.conf". Refer to this guide for auto-update.

Configure BIND to use the blocklist:

printf '\ninclude "/usr/local/etc/bind/pup-filter-bind.conf";\n' >> /etc/bind/named.conf

Add this to "/etc/bind/null.zone.file" (skip this step if the file already exists):

$TTL    86400   ; one day
@       IN      SOA     ns.nullzone.loc. ns.nullzone.loc. (
               2017102203
                    28800
                     7200
                   864000
                    86400 )
                NS      ns.nullzone.loc.
                A       0.0.0.0
@       IN      A       0.0.0.0
*       IN      A       0.0.0.0

Zone file is derived from here.

Mirrors

Response Policy Zone

This blocklist includes domains only.

Mirrors

Unbound

This blocklist includes domains only.

Save the rulesets to "/usr/local/etc/unbound/pup-filter-unbound.conf". Refer to this guide for auto-update.

Configure Unbound to use the blocklist:

printf '\n include: "/usr/local/etc/unbound/pup-filter-unbound.conf"\n' >> /etc/unbound/unbound.conf

Mirrors

dnscrypt-proxy

Save the rulesets to "/etc/dnscrypt-proxy/". Refer to this guide for auto-update.

Configure dnscrypt-proxy to use the blocklist:

[blocked_names]
+  blocked_names_file = '/etc/dnscrypt-proxy/pup-filter-dnscrypt-blocked-names.txt'
Mirrors

Tracking Protection List (IE)

This blocklist includes domains only.

Mirrors

Snort2

Not compatible with Snort3.

Save the ruleset to "/etc/snort/rules/pup-filter-snort2.rules". Refer to this guide for auto-update.

Configure Snort to use the ruleset:

printf "\ninclude \$RULE_PATH/pup-filter-snort2.rules\n" >> /etc/snort/snort.conf

Mirrors

Snort3

Not compatible with Snort2.

Save the ruleset to "/etc/snort/rules/pup-filter-snort3.rules". Refer to this guide for auto-update.

Configure Snort to use the ruleset:

# /etc/snort/snort.lua
ips =
{
  variables = default_variables,
+  include = 'rules/pup-filter-snort3.rules'
}
Mirrors

Suricata

Save the ruleset to "/etc/suricata/rules/pup-filter-suricata.rules". Refer to this guide for auto-update.

Configure Suricata to use the ruleset:

# /etc/suricata/suricata.yaml
rule-files:
  - local.rules
+  - pup-filter-suricata.rules
Mirrors

Splunk

A CSV file for Splunk lookup.

Either upload the file via GUI or save the file in $SPLUNK_HOME/Splunk/etc/system/lookups or app-specific $SPLUNK_HOME/etc/YourApp/apps/search/lookups. Refer to this guide or Getwatchlist app for auto-update.

Columns:

host path message updated
example.com pup-filter PUP website detected 2022-12-21T12:34:56Z
example2.com /some-path pup-filter PUP website detected 2022-12-21T12:34:56Z
Mirrors

Compressed version

All filters are also available as gzip- and brotli-compressed.

Issues

This blocklist operates by blocking the whole website, popular websites are excluded from the filters.

Popular websites are as listed in the Umbrella Popularity List (top 1M domains + subdomains), Tranco List (top 1M domains), Cloudflare Radar (top 1M domains) and this custom list.

If you wish to exclude certain website(s) that you believe is sufficiently well-known, please create an issue or merge request.

This blocklist only accepts new malicious URLs from malware-discoverer.

FAQ and Guides

See wiki

CI Variables

Optional variables:

  • CLOUDFLARE_BUILD_HOOK: Deploy to Cloudflare Pages.
  • NETLIFY_SITE_ID: Deploy to Netlify.
  • CF_API: Include Cloudflare Radar domains ranking. Guide to create an API token.

License

src/: Creative Commons Zero v1.0 Universal and MIT License

filters: Derived from malware-discoverer with Zhouhan Chen's permission

malware-discoverer: All rights reserved by Zhouhan Chen

Tranco List: MIT License

Umbrella Popularity List: Available free of charge by Cisco Umbrella

Cloudflare Radar: Available to free Cloudflare account