Zeek 脚本使用 ICANN 官方顶级域(TLD)列表,并结合 Input Framework,从 DNS 查询中提取相关信息,并标记其是否受信任。ICANN TLD 列表的源可在此处找到:https://publicsuffix.org/list/effective_tld_names.dat. 受信任的域名列表是用户创建的自定义列表,用于在搜索过程中过滤域名。
icannTLD 解析每个 DNS 查询,并向 DNS 日志中添加以下字段。
| 字段 | 值 | 描述 |
|---|---|---|
| icann_tld | 这是基于 ICANN 官方 TLD 列表的顶级域。 | |
| icann_domain | 这是基于 ICANN 官方 TLD 列表的域名。 | |
| icann_host_subdomain | 这是移除域名后剩余的查询节点。在某些情况下,它是子域;在其他情况下,它是主机名;还有一些情况下,它既是主机名又是子域。 | |
| is_trusted_domain | true/false | 根据 icann_domain 和自定义的 trusted_domains.dat 文件,每次查询都会被标记为 true 或 false。 |
注意: 此脚本目前不使用任何一级域(即 ".com")的列表。如果顶级域(TLD)与 2、3 或 4 部分的 regex 模式不匹配,则假定它是一级 TLD。
input_files 文件夹中的文件应在加载此脚本包之前加载到传感器中。如果需要,可以通过 GUI 或 Corelight Client 直接将其加载到传感器中。
Corelight-update 现在支持创建和维护所需的输入文件。
开源 Zeek 的说明可能有所不同。
corelight-client -b <sensor_address> bro input upload --name 1st_level_public_icann.dat --file ./source_files/1st_level_public_icann.dat
corelight-client -b <sensor_address> bro input upload --name 2nd_level_public_icann.dat --file ./source_files/2nd_level_public_icann.dat
corelight-client -b <sensor_address> bro input upload --name 3rd_level_public_icann.dat --file ./source_files/3rd_level_public_icann.dat
corelight-client -b <sensor_address> bro input upload --name 4th_level_public_icann.dat --file ./source_files/4th_level_public_icann.dat
corelight-client -b <sensor_address> bro input upload --name trusted_domains.dat --file ./source_files/trusted_domains.dat
zkg install https://github.com/corelight/icannTLD.git
如今,任何人都可以购买 TLD,因此该列表可能会频繁变化。随着变更的发生,ICANN 每天会多次更新该列表,并且可以每日拉取。
TLD 通常分为两类:
该列表无法直接从 Mozilla.org 拉取并放到 Corelight/Zeek 传感器上。必须先对其进行正确的过滤和格式化。Corelight-update 现在支持创建和维护所需的输入文件。
注意: trusted_domains.dat 文件需要手动创建。之后可以手动上传,也可以使用 Corelight-update 来上传该输入文件。