2022-03-20 06:00:54 +00:00
# VN Malicious Domains Blocklist
2022-11-02 10:35:32 +00:00
- Formats
2022-12-17 00:46:13 +00:00
- [URL-based ](#url-based )
- [Domain-based ](#domain-based )
- [Hosts-based ](#hosts-based )
- [Domain-based (AdGuard Home) ](#domain-based-adguard-home )
- [URL-based (AdGuard) ](#url-based-adguard )
- [URL-based (Vivaldi) ](#url-based-vivaldi )
- [Dnsmasq ](#dnsmasq )
- [BIND zone ](#bind )
- [RPZ ](#response-policy-zone )
- [Unbound ](#unbound )
- [dnscrypt-proxy ](#dnscrypt-proxy )
- [Tracking Protection List (IE) ](#tracking-protection-list-ie )
- [Snort2 ](#snort2 )
- [Snort3 ](#snort3 )
- [Suricata ](#suricata )
* [Splunk ](#splunk )
2022-11-02 10:35:32 +00:00
- [Compressed version ](#compressed-version )
- [FAQ and Guides ](#faq-and-guides )
- [CI Variables ](#ci-variables )
- [License ](#license )
2022-05-21 03:11:05 +00:00
2022-03-20 06:00:54 +00:00
A blocklist of malicious (malware, scam, phishing) websites that are targeting Vietnamese users. Sourced from [api.chongluadao.vn ](https://chongluadao.vn ).
There are multiple formats available, refer to the appropriate section according to the program used:
- uBlock Origin (uBO) -> [URL-based ](#url-based ) section (recommended)
- Pi-hole -> [Domain-based ](#domain-based ) or [Hosts-based ](#hosts-based ) section
- AdGuard Home -> [Domain-based (AdGuard Home) ](#domain-based-adguard-home ) or [Hosts-based ](#hosts-based ) section
- AdGuard (browser extension) -> [URL-based (AdGuard) ](#url-based-adguard )
- Vivaldi -> [URL-based (Vivaldi) ](#url-based-vivaldi )
- [Hosts ](#hosts-based )
- [Dnsmasq ](#dnsmasq )
- BIND -> BIND [zone ](#bind ) or [RPZ ](#response-policy-zone )
- [Unbound ](#unbound )
- [dnscrypt-proxy ](#dnscrypt-proxy )
- Internet Explorer -> [Tracking Protection List (IE) ](#tracking-protection-list-ie )
- [Snort2 ](#snort2 )
- [Snort3 ](#snort3 )
- [Suricata ](#suricata )
2022-12-17 00:46:13 +00:00
- [Splunk ](#splunk )
2022-03-20 06:00:54 +00:00
2022-12-17 00:46:13 +00:00
For other programs, see [Compatibility ](https://gitlab.com/malware-filter/malware-filter/wikis/compatibility ) page in the wiki.
2022-03-20 06:00:54 +00:00
Check out my other filters:
2022-05-21 03:11:05 +00:00
- [urlhaus-filter ](https://gitlab.com/malware-filter/urlhaus-filter )
- [phishing-filter ](https://gitlab.com/malware-filter/phishing-filter )
- [pup-filter ](https://gitlab.com/malware-filter/pup-filter )
- [tracking-filter ](https://gitlab.com/malware-filter/tracking-filter )
2022-03-20 06:00:54 +00:00
## URL-based
Import the following URL into uBO to subscribe:
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter.txt
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter.txt
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter.txt
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter.txt
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter.txt
- https://vn-badsite-filter.pages.dev/vn-badsite-filter.txt
< / details >
**AdGuard Home** users should use [this blocklist ](#domain-based-adguard-home ).
## URL-based (AdGuard)
Import the following URL into AdGuard browser extensions to subscribe (includes online and **offline** malicious websites):
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-ag.txt
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-ag.txt
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-ag.txt
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-ag.txt
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-ag.txt
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-ag.txt
< / details >
## 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 (includes online and **offline** malicious websites):
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-vivaldi.txt
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-vivaldi.txt
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-vivaldi.txt
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-vivaldi.txt
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-vivaldi.txt
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-vivaldi.txt
< / details >
## Domain-based
This blocklist includes domains and IP addresses.
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-domains.txt
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-domains.txt
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-domains.txt
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-domains.txt
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-domains.txt
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-domains.txt
< / details >
## Domain-based (AdGuard Home)
This AdGuard Home-compatible blocklist includes domains and IP addresses.
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-agh.txt
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-agh.txt
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-agh.txt
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-agh.txt
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-agh.txt
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-agh.txt
< / details >
## Hosts-based
This blocklist includes domains only.
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-hosts.txt
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-hosts.txt
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-hosts.txt
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-hosts.txt
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-hosts.txt
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-hosts.txt
< / details >
## Dnsmasq
This blocklist includes domains only.
2022-12-17 04:08:49 +00:00
Save the ruleset to "/usr/local/etc/dnsmasq/vn-badsite-filter-dnsmasq.conf". Refer to this [guide ](https://gitlab.com/malware-filter/malware-filter/wikis/update-filter ) for auto-update.
2022-03-20 06:00:54 +00:00
2022-12-17 04:08:49 +00:00
Configure dnsmasq to use the blocklist:
2022-03-20 06:00:54 +00:00
2022-12-17 04:08:49 +00:00
`printf "\nconf-file=/usr/local/etc/dnsmasq/vn-badsite-filter-dnsmasq.conf\n" >> /etc/dnsmasq.conf`
2022-03-20 06:00:54 +00:00
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-dnsmasq.conf
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-dnsmasq.conf
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-dnsmasq.conf
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-dnsmasq.conf
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-dnsmasq.conf
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-dnsmasq.conf
< / details >
## BIND
This blocklist includes domains only.
2022-12-17 04:08:49 +00:00
Save the ruleset to "/usr/local/etc/bind/vn-badsite-filter-bind.conf". Refer to this [guide ](https://gitlab.com/malware-filter/malware-filter/wikis/update-filter ) for auto-update.
2022-03-20 06:00:54 +00:00
2022-12-17 04:08:49 +00:00
Configure BIND to use the blocklist:
2022-03-20 06:00:54 +00:00
2022-12-17 04:08:49 +00:00
`printf '\ninclude "/usr/local/etc/bind/vn-badsite-filter-bind.conf";\n' >> /etc/bind/named.conf`
2022-03-20 06:00:54 +00:00
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 ](https://github.com/tomzuu/blacklist-named/blob/master/null.zone.file ).
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-bind.conf
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-bind.conf
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-bind.conf
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-bind.conf
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-bind.conf
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-bind.conf
< / details >
## Response Policy Zone
This blocklist includes domains only.
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-rpz.conf
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-rpz.conf
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-rpz.conf
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-rpz.conf
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-rpz.conf
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-rpz.conf
< / details >
## Unbound
This blocklist includes domains only.
2022-12-17 04:08:49 +00:00
Save the rulesets to "/usr/local/etc/unbound/vn-badsite-filter-unbound.conf". Refer to this [guide ](https://gitlab.com/malware-filter/malware-filter/wikis/update-filter ) for auto-update.
2022-03-20 06:00:54 +00:00
2022-12-17 04:08:49 +00:00
Configure Unbound to use the blocklist:
2022-03-20 06:00:54 +00:00
2022-12-17 04:08:49 +00:00
`printf '\n include: "/usr/local/etc/unbound/vn-badsite-filter-unbound.conf"\n' >> /etc/unbound/unbound.conf`
2022-03-20 06:00:54 +00:00
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-unbound.conf
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-unbound.conf
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-unbound.conf
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-unbound.conf
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-unbound.conf
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-unbound.conf
< / details >
## dnscrypt-proxy
2022-12-17 04:08:49 +00:00
Save the rulesets to "/etc/dnscrypt-proxy/". Refer to this [guide ](https://gitlab.com/malware-filter/malware-filter/wikis/update-filter ) for auto-update.
2022-03-20 06:00:54 +00:00
Configure dnscrypt-proxy to use the blocklist:
2022-12-17 00:46:13 +00:00
```diff
2022-03-20 06:00:54 +00:00
[blocked_names]
+ blocked_names_file = '/etc/dnscrypt-proxy/vn-badsite-filter-dnscrypt-blocked-names.txt'
[blocked_ips]
+ blocked_ips_file = '/etc/dnscrypt-proxy/vn-badsite-filter-dnscrypt-blocked-ips.txt'
```
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-dnscrypt-blocked-names.txt
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-dnscrypt-blocked-ips.txt
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-dnscrypt-blocked-names.txt
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-dnscrypt-blocked-names.txt
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-dnscrypt-blocked-names.txt
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-dnscrypt-blocked-names.txt
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-dnscrypt-blocked-names.txt
- https://curbengh.github.io/malware-filter/vn-badsite-filter-dnscrypt-blocked-ips.txt
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-dnscrypt-blocked-ips.txt
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-dnscrypt-blocked-ips.txt
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-dnscrypt-blocked-ips.txt
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-dnscrypt-blocked-ips.txt
< / details >
## Tracking Protection List (IE)
This blocklist includes domains only. Supported in Internet Explorer 9+.
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter.tpl
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter.tpl
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter.tpl
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter.tpl
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter.tpl
- https://vn-badsite-filter.pages.dev/vn-badsite-filter.tpl
< / details >
## Snort2
2022-12-17 00:46:13 +00:00
Not compatible with [Snort3 ](#snort3 ).
2022-03-20 06:00:54 +00:00
2022-12-17 03:31:55 +00:00
Save the ruleset to "/etc/snort/rules/vn-badsite-filter-snort2.rules". Refer to this [guide ](https://gitlab.com/malware-filter/malware-filter/wikis/update-filter ) for auto-update.
2022-03-20 06:00:54 +00:00
2022-12-17 03:31:55 +00:00
Configure Snort to use the ruleset:
2022-03-20 06:00:54 +00:00
2022-12-17 03:31:55 +00:00
`printf "\ninclude \$RULE_PATH/urlhaus-filter-snort2-online.rules\n" >> /etc/snort/snort.conf`
2022-03-20 06:00:54 +00:00
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-snort2.rules
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-snort2.rules
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-snort2.rules
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-snort2.rules
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-snort2.rules
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-snort2.rules
< / details >
## Snort3
2022-12-17 00:46:13 +00:00
Not compatible with [Snort2 ](#snort2 ).
2022-03-20 06:00:54 +00:00
2022-12-17 03:31:55 +00:00
Save the ruleset to "/etc/snort/rules/vn-badsite-filter-snort3.rules". Refer to this [guide ](https://gitlab.com/malware-filter/malware-filter/wikis/update-filter ) for auto-update.
2022-03-20 06:00:54 +00:00
Configure Snort to use the ruleset:
2022-12-17 00:46:13 +00:00
```diff
2022-03-20 06:00:54 +00:00
# /etc/snort/snort.lua
ips =
{
variables = default_variables,
+ include = 'rules/vn-badsite-filter-snort3.rules'
}
```
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-snort3.rules
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-snort3.rules
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-snort3.rules
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-snort3.rules
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-snort3.rules
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-snort3.rules
< / details >
## Suricata
2022-12-17 03:31:55 +00:00
Save the ruleset to "/etc/suricata/rules/vn-badsite-filter-suricata.rules". Refer to this [guide ](https://gitlab.com/malware-filter/malware-filter/wikis/update-filter ) for auto-update.
2022-03-20 06:00:54 +00:00
Configure Suricata to use the ruleset:
2022-12-17 00:46:13 +00:00
```diff
2022-03-20 06:00:54 +00:00
# /etc/suricata/suricata.yaml
rule-files:
- local.rules
+ - vn-badsite-filter-suricata.rules
```
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-suricata.rules
2022-03-20 06:00:54 +00:00
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-suricata.rules
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-suricata.rules
2022-05-21 03:11:05 +00:00
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-suricata.rules
2022-03-20 06:00:54 +00:00
- https://malware-filter.pages.dev/vn-badsite-filter-suricata.rules
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-suricata.rules
< / details >
2022-12-17 00:46:13 +00:00
## Splunk
2022-12-17 03:31:55 +00:00
A CSV file for Splunk [lookup ](https://docs.splunk.com/Documentation/Splunk/9.0.2/Knowledge/Aboutlookupsandfieldactions ). This ruleset includes online URLs only.
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 ](https://gitlab.com/malware-filter/malware-filter/wikis/update-filter ) or [Getwatchlist ](https://splunkbase.splunk.com/app/635 ) app for auto-update.
2022-12-17 00:46:13 +00:00
2022-12-21 07:38:13 +00:00
Columns:
| host | path | message | updated |
| ------------ | ---------- | -------------------------------------------- | -------------------- |
| example.com | | vn-badsite-filter malicious website detected | 2022-12-21T12:34:56Z |
| example2.com | /some-path | vn-badsite-filter malicious website detected | 2022-12-21T12:34:56Z |
2022-12-17 00:46:13 +00:00
- https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter-splunk.csv
< details >
< summary > Mirrors< / summary >
- https://curbengh.github.io/malware-filter/vn-badsite-filter-splunk.csv
- https://curbengh.github.io/vn-badsite-filter/vn-badsite-filter-splunk.csv
- https://malware-filter.gitlab.io/vn-badsite-filter/vn-badsite-filter-splunk.csv
- https://malware-filter.pages.dev/vn-badsite-filter-splunk.csv
- https://vn-badsite-filter.pages.dev/vn-badsite-filter-splunk.csv
< / details >
2022-11-02 10:35:32 +00:00
## Compressed version
All filters are also available as gzip- and brotli-compressed.
- Gzip: https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter.txt.gz
- Brotli: https://malware-filter.gitlab.io/malware-filter/vn-badsite-filter.txt.br
2022-03-20 06:00:54 +00:00
## FAQ and Guides
2022-05-21 03:11:05 +00:00
See [wiki ](https://gitlab.com/malware-filter/malware-filter/-/wikis/home )
2022-03-20 06:00:54 +00:00
2022-11-02 10:35:32 +00:00
## CI Variables
Optional variables:
- `CLOUDFLARE_BUILD_HOOK` : Deploy to Cloudflare Pages.
- `NETLIFY_SITE_ID` : Deploy to Netlify.
2022-03-20 06:00:54 +00:00
## License
2023-04-27 09:31:30 +00:00
[Creative Commons Zero v1.0 Universal ](LICENSE-CC0.md ) and [MIT License ](LICENSE )
2022-03-20 06:00:54 +00:00
[api.chongluadao.vn ](https://chongluadao.vn ) (operated by Hieu Minh Ngo): [CC0 ](https://creativecommons.org/publicdomain/zero/1.0/ )