=Start=
缘由:
之前听说过Passive DNS,但一直没有花时间专门了解过,近期在朋友圈看到一篇《DNSMon: 用DNS数据进行威胁发现》的文章,也就刚好趁着这个机会从网上搜一些资料学习了解一下Passive DNS到底是什么,又有什么作用,方便以后参考。
正文:
参考解答:
Passive DNS是什么?
“Passive DNS” or “passive DNS replication” is a technique invented by Florian Weimer in 2004 to opportunistically reconstruct a partial view of the data available in the global Domain Name System into a central database where it can be indexed and queried.
一句话总结,Passive DNS是由 Florian Weimer 在 2004 年提出的不需要域管理员配合也不会产生额外DNS请求的长期记录DNS解析数据的方法/数据。实际上,这就是一个存储了大量DNS解析数据的历史数据库。这意味着你可以查询到某一域名曾经解析过的IP地址。即使这一域名已经从域名服务器中移除了,你也可以查询到相关的信息。
Passive DNS的数据来源是什么?
从这篇早期的论文来看,Passive DNS的数据来源主要是由放在网络上的一些传感器通过抓包提取DNS数据包而来。但感觉截图中提到的几个方法都可以综合使用以丰富数据,特别是像现在有很多公司对外提供DNS解析服务(同时应该也就记录下了使用该DNS解析功能的DNS查询数据)。但因为我不是具体做这块的,大致的数据来源我也只能是看论文说明以及根据自己其它方面的经验来猜测,准确性就不做保证了。。。
Passive DNS有什么作用?
发明 Passive DNS 技术的初衷,是为了防止网络攻击,事实上,它的确在这方面起到了突出的作用。除此之外,它还被用在其他的应用场景中,例如:
- 检测网站钓鱼域名(Detect phishing domains)
- 阻断垃圾邮件干扰(Improve your email reputation)
- 识别恶意域名(Identify malicious domains, associated domains)
- 提供威胁情报(Support threat intelligence)
- 检测域名劫持(Detect domain hijack)
- 品牌保护(Protect your brand)
- 域名DNS历史记录查询(Query domain dns log history)
- 查询主域名下的所有子域名(Explore subdomains)
在安全分析上Passive DNS的重要性也日益凸显,通过结合一些其他维度的数据,可能会产生一些意想不到的效果,这方面可以参考一下360的Netlab实验室的相关文章还有近几年DataCon中关于DNS数据分析题目的writeup。
更多的内容待以后不断进行补充和更新。
参考链接:
What is Passive DNS? And Why Should You Use a Passive DNS API? (多且全)
https://securitytrails.com/blog/passive-dns
WHAT IS PASSIVE DNS? (不错)
http://techgenix.com/what-passive-dns/
DNS科普系列 :被动DNS(Passive DNS) (中文,且有图示说明)
https://developer.aliyun.com/article/764940
Farsight Security Passive DNS project introduction
https://www.farsightsecurity.com/technical/passive-dns/
Navigating the Internet’s Phone Book: An Introduction to Passive DNS
https://info.farsightsecurity.com/passive-dns-ebook
Passive DNS
https://blog.csdn.net/cnbird2008/article/details/17250707
PassiveDNS
https://blog.netlab.360.com/tag/pdns/
DNS攻防皮毛(一)
https://mp.weixin.qq.com/s/qnhIalmIu1bz7D6828wldg
Passive DNS Replication
https://www.first.org/conference/2005/papers/florian-weimer-paper-1.pdf
What is Passive DNS? A beginner’s guide
https://www.spamhaus.com/resource-center/what-is-passive-dns-a-beginners-guide/
Passive DNS
https://docs.umbrella.com/investigate-ui/docs/passive-dns
Building Your Own Passive DNS Collection System
https://nullsecure.org/building-your-own-passivedns-feed/
https://www.freebuf.com/articles/network/103815.html
在事件响应中使用被动DNS
https://www.anquanke.com/post/id/83543
https://www.vanimpe.eu/2016/02/27/passive-dns-for-incident-response/
PassiveDNS sniffs traffic from an interface or reads a pcap-file and outputs the DNS-server answers to a log file.
https://github.com/gamelinux/passivedns
=END=
《 “Passive DNS 是什么?有什么作用?” 》 有 6 条评论
DNSMon: 用DNS数据进行威胁发现(2)
https://blog.netlab.360.com/use-dns-data-produce-threat-intelligence-2/
`
# 背景
本文是介绍DNSMon在生产威胁情报(域名IoC)系列文章的第二篇。
为了对抗安全人员的分析,钓鱼域名是恶意样本经常采用的一种技术手段。从字符组成和结构上看,钓鱼域名确实具有混淆视听的功效,但对于DNSMon这种具备多维度关联分析的系统来说,模仿知名公司域名的效果则适得其反,因为这样的域名一旦告警,反而更容易引起分析人员的注意。
本案例从一组疑似钓鱼域名出发,逐步介绍DNSMon是如何利用whois,ICP备案,域名解析内容和图关联等信息,让一组干瘪的域名逐渐一点点丰富起来直至最后恶意定性的。
意料之外的是,随着线索的展开,我们发现这是一起失陷设备数量巨大的安全事件,从我们的数据测算,感染规模远超100w设备。为此,我们进行了较为细致的逆向分析和回溯,但限于篇幅,样本分析细节及其家族演变,将在后续再另起一篇介绍。
通常威胁分析普遍的惯例是先知道样本恶意再逆向, 有时根据DNS数据估算感染规模。这次DNSMon系列文章里揭示的,更多是先根据DNS数据发现异常并定性,再进一步探寻还原事件真相。即从先逆向再统计,变成了先统计再逆向。
这个顺序的变动,是DNSMon的一小步,却是整个威胁分析分支的一大步。
# 结论
1. 得益于DNS的基础性,DNSMon具备及时发现不同行业安全威胁的能力 ,尤其在现有安全软件无检出,或者是用户没有使用安全安全软件的场景下,这种新维度可以和现有安全产品组成有效的交叉火力。
2. 网吧运维工具由于安装范围广,应该具备较为专业的安全能力为维护通道保驾护航,防止下发通道被恶意利用。
3. 为躲避各类安全产品的检测,恶意样本的传播借助了大公司的基础服务,比如本次事件用到了wx1.sinaimg[.]cn,tiebapic.baidu[.]com和note.youdao[.]com提供的图片下载服务。
`
Palo Alto 对近些年 DNS 历史漏洞的整理分析(上)
https://www.4hou.com/posts/x86r
The History of DNS Vulnerabilities and the Cloud
https://unit42.paloaltonetworks.com/dns-vulnerabilities/
DNSMon: 用DNS数据进行威胁发现(3)
https://mp.weixin.qq.com/s/Op555E0P6_OdFZKCr9EZ8w
`
本文是介绍DNSMon在生产威胁情报(域名IoC)系列文章的第三篇。Linux,Windows,Android,一个都不能少
在DNSMon科普系列的前两篇博文中,第一篇提及的Skidmap是感染Linux平台的云主机;而第二篇提及的一组域名是网吧的Windows平台被感染后发出的;本文则是一个涉及Android平台的案例。
如果仔细阅读文章并理解其中内容,可以看到DNSMon在面对3个差异巨大的平台时,所使用的知识点或者说规则并没有根本性的变化,几乎做到了无差别预警。
# 判黑缘由
在第一篇文章里,我们提及:
DNSMon的核心在于将海量的DNS数据与360所拥有安全相关数据(包括whois,web,沙箱,蜜罐,证书等等)交叉对比,并从中分析得出威胁情报IOC。
下面我们从系统获取的whois和沙箱这两个数据出发,举例分析数据特征并注解判黑缘由。当然,除了这些数据,DNSMon的判黑流程还依赖其它的特征数据,在此就不一一列举了。
1. whois
16个域名共分成两批注册,一批注册时间为2020-11-06,另一批为2020-12-23;注册的有效期时长:一年,且开启了隐私保护。
批量注册+新域名+注册有效期短+隐私保护,判黑可能性加分。
2. 沙箱
DNSMon对沙箱的数据,主要是关注样本的网络行为并提取样本到域名的访问关系,然后借助样本的评分反过来评估域名的得分。从关联图可以看到,访问域名的样本在系统里都有恶意标签(样本右上角标注了“黑色圆点”)。
根据标签传播算法,16个域名判黑的可能性加分。
# 新特征
在人工查看URL的过程中,我们注意到了一个之前没有见过的现象,就是一串完全相同的URL,不同时间随机下载样本,每次样本文件的MD5值都不一样。
# 结论
得益于DNS的基础性,DNSMon具备宽广的视野,能无差别的看见Linux,Windows和Android平台上发生的安全事件。而之所以具备这种能力,主要的原因是系统积累了大量的跟安全相关的特征规则。
读者请注意,不要轻易自行模仿文中的判黑过程。工业化的IoC生产不仅包括基本的判定过程,还有复杂的过滤、防止误报、反馈修正、失效保护和自动化过程。书写本文的目的是为了便于读者了解DNSMon工作的一般原理,但工业化过程中各种魔鬼细节的复杂程度,已经远非行文所能描述。
`
List of DNS record types
https://en.wikipedia.org/wiki/List_of_DNS_record_types
`
A #Address record Returns a 32-bit IPv4 address, most commonly used to map hostnames to an IP address of the host
AAAA #Returns a 128-bit IPv6 address, most commonly used to map hostnames to an IP address of the host.
CNAME #Alias of one name to another: the DNS lookup will continue by retrying the lookup with the new name.
MX #Maps a domain name to a list of message transfer agents for that domain
PTR #Pointer to a canonical name. Unlike a CNAME, DNS processing stops and just the name is returned. The most common use is for implementing reverse DNS lookups, but other uses include such things as DNS-SD.
SOA #Specifies authoritative information about a DNS zone, including the primary name server, the email of the domain administrator, the domain serial number, and several timers relating to refreshing the zone.
TXT #Originally for arbitrary human-readable text in a DNS record. Since the early 1990s, however, this record more often carries machine-readable data, such as specified by RFC 1464, opportunistic encryption, Sender Policy Framework, DKIM, DMARC, DNS-SD, etc.
DNSKEY #The key record used in DNSSEC. Uses the same format as the KEY record.
DS #The record used to identify the DNSSEC signing key of a delegated zone
HTTPS #(65)HTTPS Binding RR that improves performance for clients that need to resolve many resources to access a domain. More info in this IETF Draft by DNSOP Working group and Akamai technologies.
`
iOS 14 开始查询 HTTPS 记录 (type 65)
https://www.v2ex.com/t/699027
`
大概找到原因了,请搜索一份 apple 领衔的 IETF draft,draft-pauly-add-resolver-discovery-01
简要而言,通过查询某域名的 SVCB/HTTPS 记录,可以获取这个域名的专用 DoH server,如果存在的话关于此域名的所有 DNS 请求将发给制定的 DoH 进行,这给域名拥有者指定 nameserver 提供了可能
附录 A 提到,支持 SVCB/HTTPS 查询的客户端的做法是,同时发送 A/AAAA/HTTPS 三种类型的查询给 DNS,如果有 DoH 记录则采用,这个同时发的行为我也通过抓 iPhone 的包确认了无误
大概看了下,后面还需要仔细研究下,大概几点吧
1. 该草案和 DoH/DoT 本身没有必然关联,只是可以通过 DoH/DoT 进行 SVCB/HTTPSSVC 的 DNS 请求来 “To realize the greatest privacy benefits”
2. 主要还是解决 HTTPS 访问 WEB 服务器的相关问题,涉及内容比较多,如之前 HTTPS 相关的 HSTS/Alt-Svc, DNS 相关的 SRV 记录、非标服务端口、CNAME 与其他记录冲突等等
3. 119 返回 NOTIMP 目前看影响不大,但是后续会评估是否以及何时支持 SVCB/HTTPSSVC 记录,包括 119 和 DNSPod 权威。
`
https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-svcb-httpssvc-01
DNS Response Policy Zones
https://dnsrpz.info/
`
Domain Name Service Response Policy Zones (DNS RPZ) is a method that allows a nameserver administrator to overlay custom information on top of the global DNS to provide alternate responses to queries. It is currently implemented in the ISC BIND nameserver (9.8 or later). Another generic name for the DNS RPZ functionality is “DNS firewall”.
# Why is RPZ useful?
The prime motivation for creating this feature was to protect users from badness on the Internet related to known-malicious global identifiers such as host names, domain names, IP addresses, or nameservers. Criminals tend to keep using the same identifiers until they are taken away from them. Unfortunately, the Internet security industry’s ability to take down criminal infrastructure at domain registries, hosting providers or ISPs is not timely enough to be effective. Using RPZ, a network or DNS administrator can implement their own protection policies base based on reputation feeds from security service providers on a near-real-time basis.
Examples include:
* If one knows a bad hostname or domain name, one can block clients from accessing it or redirect them to a walled garden.
* If one know a bad IP address or subnet, one can block clients from accessing hostnames that reference it.
* If one knows a nameserver that doesn’t host anything except bad domains, one can block clients from accessing DNS information hosted by those nameservers.
Policy zones published by a multiple providers (see below) can be checked in order before a normal answer from the global DNS is used. White lists can also be maintained by a local administrator to prevent false positives for key infrastructure.
`
https://en.wikipedia.org/wiki/Response_policy_zone
BIND DNS 使用RPZ 做部分代理
https://b.sundayle.com/bind-rpz/
如何设置自己的保护隐私的 DNS 服务器
https://linux.cn/article-15672-1.html
https://github.com/AdguardTeam/AdGuardHome
`
通过开源项目 AdGuard Home 运行你自己的 DNS 服务器来控制你的互联网隐私。
域名服务器(DNS)将域名(如 example.com)与 IP 地址(如 93.184.216.34)相关联。这就是当你输入 URL 或搜索引擎返回 URL 供你访问时,你的网络浏览器如何知道在世界的哪个地方寻找数据。DNS 为互联网用户提供了极大的便利,但也并非没有缺点。例如,付费广告会出现在网页上,因为你的浏览器会自然的使用 DNS 来解析这些广告在互联网上“存在”的位置。同样,跟踪你在线活动的软件通常由通过 DNS 解析的服务启用。你不想完全关闭 DNS,因为它非常有用。但是你可以运行自己的 DNS 服务,以便更好地控制它的使用方式。
我相信运行自己的 DNS 服务器至关重要,这样你就可以阻止广告并保持你的浏览隐私,远离试图分析你的在线交互的提供商。我过去用过 Pi-hole,今天仍然推荐它。然而,最近,我一直在我的网络上运行开源项目 AdGuard Home。我发现它有一些值得探索的独特功能。
在我使用过的开源 DNS 软件中,AdGuard Home 是最容易设置和维护的。你可以在一个项目中获得许多 DNS 解析解决方案,例如 DNS over TLS、DNS over HTTPS 和 DNS over QUIC。
我最喜欢 AdGuard Home 的一些功能:
* 一个简单的管理界面
* 使用 AdGuard 阻止列表来阻止广告和恶意软件
* 单独配置网络上每个设备的选项
* 强制在特定设备上进行安全搜索
* 为管理界面设置 HTTPS,这样与它的远程交互是完全加密的
`