由于依赖感染指标(IOCs)的安全方法越来越不可靠,“突破口假设”成为业界公共的表示方法。 这种情况经常发生,直到外部主机发现一个缺口并通知机构之前,入侵都没有办法检测到。作为基于签名的解决方案和从第三方获取问题信息的替代,网络防御者需要来自于已经进入企业内部的未知敌手的“突破口假设”。 给定越来越多攻击者的目标和个人信息,网络防御者必须在已知IOC的基础上扩大搜索范围,并且在他们的网络中寻找未知的突破口。这个系统追踪未知攻击者的方法被叫做网络攻击追踪。
对攻击者的追踪并非没有难度,一些企业(防御者)认为追踪超出了他们的能力和资源。 防御者需要强大的工具筛选大量的数据来快速防御和处理威胁。一个功能齐全的追踪平台极大的提升了追踪者的能力,但是安全预算有限并且公司不会总是投资有前途的技术。幸运的是,有好几种廉价的追踪方式。
在这个月的SANS威胁追踪和应急响应会议,Endgame解决了一些误解并且描述了一些方法,安全专家可以在没有大量的预算的前提下开始追踪。这是这个系列的第一篇,告诉大家如何在你的网络上廉价的追踪入侵者。
IOC搜索的局限性
IOC是什么?
安全事件调查人员在安全事件应急响应过程中面临的其中一个挑战是,找一个有效的方法把所有调查过程中的信息组织起来,这些信息包括攻击者的活动、所用的工具、恶意软件、或者其他的攻击指示器(indicators of compromise),简称IOC。
网络层的安全有传统的IOC相关搜索方法,比如域名黑名单,IP黑名单和一些CIDR,或者用Snort或者Bro来寻找恶意事件的相关签名。随着恶意技术的快速发展攻击者的基础设置越来越动态很难从合法服务器中区分开来,用网络IOC来检测威胁变得越来越难效果也越来越差。 也就是说,网络IOC很快会被淘汰掉。 攻击者经常监视他们的网络资产,一旦发现过滤清单,他们会迁移到其他的终端。一些攻击者将攻击程序分割放到每个攻击目标上,来减少相关的IOC信息。
云计算加剧了IOC搜索相关的挑战,攻击者很容易就能从主机提供商处获取IP地址。相似的,新的 ccTLD 和ICANN tld 只需要很少的信息校验,使得这个变得更容易和廉价甚至是免费的,并且由于WHOIS的隐私服务注册者的信息不会被公开。
由于这些原因,我们需要更智能的方法,为了代替追踪过去和搜索已知的错误,网络防御者寻找模型和相关未知错误的信号。一旦识别到之前未知的恶意行为标识,组织可以激活他们的响应程序。
利用被动DNS追踪
被动DNS有简单的结构化方法来捕获这些信号和模式。被动DNS通过被动捕获内部DNS传输来重组DNS传输,从而收集数据。Florian Weimer在2005年第17届FIRST会议上提出这项技术来缓解僵尸网络的传播。从那以后,很多安全组织开始通过在网络中安装DNS传感器来收集被动DNS信息然后分析结果数据来生成威胁情报。在今天的威胁环境,被动DNS在追踪威胁上非常有用。
被动DNS传感器,本质上捕获DNS传输—53端口的UDP数据包(DNS)–然后将信息重组到单一的记录,包含请求和响应。我们已经在两个开源的传感器上做了实验
l passiveDNS
l sie-dns-sensor
我们有选项来收集重复的DNS请求(绿色部分)或者收集所有的DNS传输。
传感器可以被安装到网络上可以使用嗅探器(比如tcpdump)来捕捉DNS流量的任何终端上。安装传感器最好的地方是本地DNS递归服务器,但是跨端口也会工作。
一旦传感器收集到被动DNS数据,它们必须合并并传输到一台机器上来分析和监控。传感器可以使用一个消息队列(比如Kafka)来发布被动DNS记录。这使得他可扩展,松耦合—并且开源!这一架构能让任意数量的用户获得这个队列然后分析数据来追踪威胁。
广泛的说,用于追踪的数据有三个相关的应用:1. 长期的数据接收器
根据用例,长期存储比如HDFS可以开启大规模的分析来发现网络中“什么是正常的”然后标识历史趋势。将数据弄到ELK(Elasticsearch Logstash Kibana)栈来执行搜索和趋势分析是一个简单的方法。这种快速搜索已知IOC的方法使用开源的栈,同时对任何偏离正常的值进行异常检测。
2. 监视器
监视器统计各种DNS传输,比如NXDOMAIN的数量,请求的字节数,请求的数量,用户请求数量,或者请求的分布 TLD,等等。 对理解每小时和每天的趋势有极大的帮助。监控应用程序比如(Graphite)为不同的数据点生成图表和统计信息,并允许我们主动标识异常。
3. 实时威胁追踪
这个用户进程在数据到来的时候,实时的记录并检测威胁,不断的寻找恶意传输模式然乎执行异常检测。时间序列分析,使用链接库比如Karios,帮助追踪,检测异常行为和所有的数据中断或周期。
一旦架构建立并且数据开始收集,网络防御者可以在这些被动DNS数据上执行大范围的分析来追踪网络上的未知入侵。