收集DNS数据会带来一些需要解决的数据收集和数据减少问题。DNS检测需要检测超出规范的名称查询,并能够在所有可能的情况下检测真正的源IP地址。一个困难的问题是缺乏内部反向DNS查找和陈旧的DNS条目。如果您不能可靠地将IP查找到某个域名,则会对警报处理时间产生很小的影响。当一个IP返回到多个系统时,情况可能会更糟。
收集DNS:从DNS服务器收集DNS可能会有问题。例如,Windows DNS要求启用“调试日志记录”,然后通过本地或远程文件读取器进程完全解析数据。DNS的另一个问题是,网络上的大部分(90%以上)流量都是本地查询。本地查询是正常的。在考虑如何收集DNS时,应重点收集从内部到外部的查询,查找这些查询的解析位置,并使用网络提取作为收集方法在此时收集数据。如果在外围有可用的镜像端口,那么将从内部DNS服务器记录DNS查询和响应,因为它们正在代表最终用户转发查询。如果您通过与DNS服务器相同的交换机上的镜像端口收集DNS流量,那么您将为内部网络收集大量的正常查询流量,这些流量对于识别攻击者的价值很低,甚至没有价值。至少有30种已定义的记录类型可供使用,更常见的是A、CNAME、PTR、SPF、AAAA、NS和MX。TXT记录可见,但数量很少。至少有两种众所周知的工具可以收集DNS:PassiveDNS 和Bro IDS。
1. 新出现(< 7d年龄)或最近注册的域名(因此,网站):
恶意软件越来越多地使用复杂的DNS查找和查询类型来向其命令和控制网络发送信号。攻击者,特别是钓鱼者,正在使用最近注册的域名作为散布点。在如何使用最近创建的域进行攻击方面,技术各不相同。不到一周的域名比已建立的域名更容易托管恶意软件。如果whois查找的 "Created on" 或 "Creation Date"字段少于7天,请仔细查看域注册细节。举个例子,在11/05/17,domainpunch.com网站上发现了85,794个在前一天注册的。还有一些网站每天都提供新注册或过期域名的列表,通常是收费的。例子包括whoxy.com, whoisxmlapi.com, domainlists.io, domains-index.com等等。
2. 不在前100万名单上的域名:
3. 长、畸形或奇怪的二级域名:大多数二级域名应该小于24个字符。DNS名称最多有255个字符。在实践中,应该对72个字符或更长的DNS名称执行一些分析。真正长的名称(>总共128个字符)和持续的查询/响应最有可能是DNS隧道或DGA。您需要为您的环境建立这两个阈值。
4. 十六进制域名:域名应该是可读的;毕竟,设计它们是为了帮助人们定位资源。Hex通常不便于人类阅读。恶意软件使用十六进制值作为信标,可能有Base32编码的命令伪装成一个名称组件,并且通常需要特定的查询和回答资源记录设置为特定的值。示例包括FrameworkPOS、FeederBot、Morto等。之所以使用Based32编码,是因为DNS名称中的字符被有效地限制为37个可能的惟一字符。
5. TXT记录/查找:DNS可以从域提供自由格式的查找信息。过去,TXT记录最常见的用途是帮助验证电子邮件发送与发件人策略框架(SPF)。其他常用的是DomainKeys (DK)和DomainKeys标识的电子邮件(DKIM)。这些目的之外的查询/响应是不正常的,而且,在TXT查询或响应中难以辨认的数据是可疑的。与名称相反,TXT响应返回的数据可以使用Base64编码。
6. SRV记录:服务器资源记录用于为提供特定服务的服务器定义网络位置。对于许多资源类型,AD中的内部Windows系统会主动查询它们。在Internet上,它们通常用于面向通信的服务,如SIP、电子邮件、一些游戏、NAT会话遍历(反过来,它支持实时音频/视频/消息传递)以及其他服务。同样,您可能希望建立一个“正常”基线,然后被告知需要查询“新的”服务。此外,对于请求/响应类型不同的特定DNS站点的大量不同查询将不正常。
7. 返回私有IP地址:名称服务器对互联网站点的查询应该很少返回私有(RFC 1918) IP地址。netGeaKs“routerlogin.com”是从本地DNS返回的私有IP的少数几个例子之一。
8. 没有A记录的TXT:在没有A记录查找之前直接查询TXT记录是不正常的。此外,没有A记录支持TXT和SRV记录的域名也不正常。
9. 长TXT记录查询:假设您可以监视查询类型,过多的查询或从Internet服务器返回的长查询可能用于命令和控制。查找Base64编码的数据。TXT记录用于SPF,因此它们确实存在。已知的使用TXT记录的工具包括dns2tcp或DNScapy。
10. 相似或模糊域:在进行DNS用例开发时,请查看第73页的电子邮件和Web:与相似或相似域的交互。
11. DNS查询不来自授权服务器:企业应该只有少量的内部DNS服务器,可以将查询转发到Internet上的服务器。如果没有其他原因来确保发送方被正确配置以提供操作保证,则应该调查此边界之外的任何DNS查询。
12. 流量和流量轮廓更改:为DNS流量建立一个基线配置文件。一旦建立了基线,这些指标就可以成为警报条件。例子有:
a.工作时间/休息时间内每小时的平均查询次数。
b.第一次使用域名查询(看到的新域名)。
c. SRV RR、TXT和MX查询的流量大小。
d .内部故障——查找域名失败。
13. 域名分析:对同一二级域名和相同长度的随机主机名进行大量查询,表明DNS隧道工具正在向攻击者的站点发送数据,因为DNS服务器正在将主机名作为编码数据使用。
14. 外国:你应该研究你的组织的沟通和运作模式,以确定有多少沟通发生在你的国家以外的国家。例如,一所拥有不同留学生人口的大学会认为这是正常的,但一家在美国几个州运营的保险公司会认为对外国的多次查询是不正常的。请注意,如果您正在阅读这本书,并且您在国外,在美国和一些欧洲国家查询名称服务器可能是非常常见的,并可能使分析更加困难。
15. 对动态域名解析提供商的查询:现在有几十家动态域名解析提供商27他们提供几乎免费或便宜的名称给IP DNS解析。一种常见的模式是家庭用户注册他们的IP地址,并允许某些服务通过,使用他们唯一的名称,他们的ISP不提供。例如,VPN客户机。攻击者可以很容易地将这些服务用作托管C2 DNS服务等恶意服务的途径,因为DDNS提供商允许将名称快速更改为IP地址,而且几乎不需要任何成本。
16. 被滥用的顶级域名(TLD’s): Spamhaus保持着一个不断变化的、以证据为基础的十大被滥用域名名称清单28,这是一个恰当命名的“糟糕指数”。将此功能集成到SIEM中可能不切实际,但是将域TLD的检查集成到事件响应过程和分析人员检查表中肯定可行。截至2018年6月28日,共有1503个TLD。
17. 没有DNS查询的外部IP流量:直接将HTTP、HTTPS、FTP、SSH和其他协议直接发送到某个IP地址是可疑的。终端用户输入https://#.#.#.#/并不常见。无论使用什么方法,都要检查哪一个终端系统在没有名称的情况下直接与出站IP通信。警告:可能会执行反向查找,可能会警告站点所有者您正在尝试获取IP名称。最好使用中介,比如对任何提供NSIookup函数的站点的调用。(不包括根DNS服务器!)
18. 使用未经授权的DNS:除了ISP提供的DNS之外,互联网上还有几种免费的DNS服务。对这些DNS服务器的查询,如谷歌在8.8.8.8和8.8.4.4的查询,可能表明需要解决的条件。
网友评论