f5b5674ed9 | ||
---|---|---|
.github/workflows | ||
src | ||
.gitignore | ||
.gitlab-ci.yml | ||
.nvmrc | ||
LICENSE | ||
LICENSE-CC0.md | ||
README.md | ||
package.json |
README.md
PUP Domains Blocklist
Update (2023/05/10): The update of this blocklist is paused at the moment while waiting for the upstream maintainer to complete migrating https://github.com/zhouhanc/malware-discoverer to https://malwarediscoverer.com. No ETC is given.
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:
- uBlock Origin (uBO) -> URL-based section (recommended)
- Pi-hole -> Domain-based or Hosts-based section
- AdGuard Home -> Domain-based (AdGuard Home) or Hosts-based section
- AdGuard browser extension -> URL-based (AdGuard)
- Vivaldi -> URL-based (Vivaldi)
- Hosts
- Dnsmasq
- BIND -> BIND zone or RPZ
- Unbound
- dnscrypt-proxy
- Internet Explorer -> Tracking Protection List (IE)
- Snort2
- Snort3
- Suricata
- Splunk
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
- https://curbengh.github.io/malware-filter/pup-filter-vivaldi.txt
- https://curbengh.github.io/pup-filter/pup-filter-vivaldi.txt
- https://malware-filter.gitlab.io/pup-filter/pup-filter-vivaldi.txt
- https://malware-filter.pages.dev/pup-filter-vivaldi.txt
- https://pup-filter.pages.dev/pup-filter-vivaldi.txt
Domain-based
This blocklist includes domains and IP addresses.
Mirrors
- https://curbengh.github.io/malware-filter/pup-filter-domains.txt
- https://curbengh.github.io/pup-filter/pup-filter-domains.txt
- https://malware-filter.gitlab.io/pup-filter/pup-filter-domains.txt
- https://malware-filter.pages.dev/pup-filter-domains.txt
- https://pup-filter.pages.dev/pup-filter-domains.txt
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
- https://curbengh.github.io/malware-filter/pup-filter-dnsmasq.conf
- https://curbengh.github.io/pup-filter/pup-filter-dnsmasq.conf
- https://malware-filter.gitlab.io/pup-filter/pup-filter-dnsmasq.conf
- https://malware-filter.pages.dev/pup-filter-dnsmasq.conf
- https://pup-filter.pages.dev/pup-filter-dnsmasq.conf
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
- https://curbengh.github.io/malware-filter/pup-filter-unbound.conf
- https://curbengh.github.io/pup-filter/pup-filter-unbound.conf
- https://malware-filter.gitlab.io/pup-filter/pup-filter-unbound.conf
- https://malware-filter.pages.dev/pup-filter-unbound.conf
- https://pup-filter.pages.dev/pup-filter-unbound.conf
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
- https://curbengh.github.io/malware-filter/pup-filter-dnscrypt-blocked-names.txt
- https://curbengh.github.io/pup-filter/pup-filter-dnscrypt-blocked-names.txt
- https://malware-filter.gitlab.io/pup-filter/pup-filter-dnscrypt-blocked-names.txt
- https://malware-filter.pages.dev/pup-filter-dnscrypt-blocked-names.txt
- https://pup-filter.pages.dev/pup-filter-dnscrypt-blocked-names.txt
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
- https://curbengh.github.io/malware-filter/pup-filter-snort2.rules
- https://curbengh.github.io/pup-filter/pup-filter-snort2.rules
- https://malware-filter.gitlab.io/pup-filter/pup-filter-snort2.rules
- https://malware-filter.pages.dev/pup-filter-snort2.rules
- https://pup-filter.pages.dev/pup-filter-snort2.rules
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
- https://curbengh.github.io/malware-filter/pup-filter-snort3.rules
- https://curbengh.github.io/pup-filter/pup-filter-snort3.rules
- https://malware-filter.gitlab.io/pup-filter/pup-filter-snort3.rules
- https://malware-filter.pages.dev/pup-filter-snort3.rules
- https://pup-filter.pages.dev/pup-filter-snort3.rules
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
- https://curbengh.github.io/malware-filter/pup-filter-suricata.rules
- https://curbengh.github.io/pup-filter/pup-filter-suricata.rules
- https://malware-filter.gitlab.io/pup-filter/pup-filter-suricata.rules
- https://malware-filter.pages.dev/pup-filter-suricata.rules
- https://pup-filter.pages.dev/pup-filter-suricata.rules
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.
- Gzip: https://malware-filter.gitlab.io/malware-filter/pup-filter.txt.gz
- Brotli: https://malware-filter.gitlab.io/malware-filter/pup-filter.txt.br
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