Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

网络安全攻防战之大话蜜罐日志分析 网络安全 安全攻防 蜜罐日志分析

$
0
0

网络安全攻防战之大话蜜罐日志分析。在部署蜜罐之后,会产生大量的日志,对于威胁情报而言,我们需要通过这些日志来提取其中的有用的数据,本文将会描述提取那些数据用来完成分析。

部署蜜罐之后会生成描述发生的事件的日志记录。能够收集到的安全事件将取决于我们部署的蜜罐的类型,比如部署SSH蜜罐你将会收集到一些服务器安全相关的日志。因此,我们应当在采集日志之前先要确定我们采集日志的类型以及采集日志的种类,再根据这个来确定蜜罐的设计和部署。如果要捕获的目标是基于与远控C&C服务器来完成交互的,我们就应该考虑使用客户端蜜罐,如果不是的话,就需要使用服务器蜜罐。 如果我们调查特定服务的协议以及事务数据的元信息,这时候我们应该去选择低交互蜜罐。如果我们需要取得的是内容、shellcode执行和操作系统的完整性,那么我们应该使用高交互蜜罐。总之需要在确定架构和部署模型之前明白使用场景。

因此,文章的概述将遵循所呈现的蜜罐分类,并且将另外分成问题陈述和相关联的度量。然而,本文仅描述数据分析中使用的度量,通常应用于基准蜜罐的性能度量未描述,读者需要明白这些数据的意义,就衡量一个系统中的CPU,RAM,HDD负载或可伸缩性数据一样。

一般来说,IDS只能被看作是补充分析工具。蜜罐可以带来比IDS提供的更多的信息,特别是如果使用基于静态签名的IDS。

0×01 攻击画像:

一次完整的攻击画像应该包括:

动机: 描述攻击原因的动机

攻击深度和广度: 攻击的广度由受影响的机器的数量描述,深度是特定目标被分析的程度或攻击对系统的影响有多大。

攻击复杂度: 用来描述攻击执行的难度

隐蔽性: 衡量隐藏攻击证据的能力

攻击源 / 根本原因: 攻击者应该尽可能地识别出攻击的根源

脆弱性: 被攻击的系统中的脆弱和缺陷

工具: 记录具有一定交互度的攻击工具

关于对蜜罐的攻击的讨论应该总是有这样的基础。动机通常只能猜测,但是对高交互蜜罐的动作可能会揭示一些见解。广度和深度可以从攻击频率、攻击传播和高相互作用蜜罐通过感染的程度推断出。低交互蜜罐的隐藏由非侵入性、持续性攻击和高交互蜜罐被安装的后门、捕获的数据包的质量描述。攻击源通常可以通过事务元信息来确定,但是所发现的攻击的根本原因可能更难以识别,因为它试图解释实际观察。脆弱性通常通过利用检测技术来识别。这些特性现在将在后面讨论。

0×02 攻击源:

如果攻击发生在蜜罐上,必须指定攻击来自哪里。攻击者的识别独立于蜜罐的架构或交互类型,并且可以用不同的粒度来完成。

IP地址或者IP前缀

AS号码

域名、URL、URL类型

国家

UID、Email

User-Agent

操作系统

然而,在服务器蜜罐的情况下,必须考虑他们可能已经接收到欺骗的IP地址。这可能是一个有效的IP地址与可达或不可达的主机,或者它是一个不应该离开本地段的非民用的IP地址,比如广播地址0.0.0.0。客户端蜜罐通常使用网址列表生成,并抓取新网址。这些URL背后的资源可能是离线的。此外,我们必须承认,这种标识符是非常可变的。IP地址可以从一台主机移动到另一台主机,因为ISP使用IP地址池来为机器分配IP地址。这就是为什么一些分析将IP地址与时间戳组合在一起并将攻击源定义为一天内针对蜜罐环境的IP地址的原因。来自自治系统的IP前缀公告随时间改变或可能被劫持。域名系统固有地允许从IP地址和/或主机的抽象,这可能导致误导结果。客户端蜜罐(例如Monkey-Spider)还基于URL和页面内容(例如成人内容,盗版,错字等)执行某种类型的URL分类。该国家可以从AS注册信息中提取,或者一些(商业)第三方产品已经用于检索数据。然而,趋势表明,通常排名前3个国家产生了60%的网络流量,哪些国家被观察到取决于蜜罐节点的地理位置。用于识别即时消息传递网络中的垃圾邮件发送者的另一种方式是通过用户名或通告的URL进行识别。垃圾邮件发送者倾向于创建大量的帐户,这些帐户分发许多不同的URL,然而它们只引导/重定向到一小部分网站。有一种很小的关联存在与垃圾邮件和垃圾邮件发件人之间,基于支持SIP / VoIP协议的蜜罐的研究也使用User-Agent的名称作为攻击源的指纹。该信息可由具有这种协议标签的任何协议使用,然而必须记住,这样的信息可以被省略并且容易地欺骗。为了推断攻击源自哪一种操作系统,通常使用诸如p0f带的被动操作系统指纹识别工具通过分析分组的组成来识别攻击操作系统,因为每个操作系统略微不同地创建分组。几乎所有的攻击向量都是基于windows的。

0×03 攻击目标:

如果指定谁攻击蜜罐,下一步可能是表征攻击,更准确地说,必须确定攻击的目标。服务器蜜罐通过特定服务对目标进行分类,该服务通常绑定到专用端口。端口序列由IANA管理,并可在官方列表中查看。但是,服务可能绑定到另一个端口。因此,区分端口和服务很重要,因为入侵者可能强制在另一个端口强制SSH服务,这可以在非22端口上创建和使用SSH服务来对服务器进行操作。大多数时候,服务被绑定到默认端口以提高可达性,这就是为什么许多人将端口视为服务的代表。如果蜜罐监控整个网络,则每个单独的IP地址可以被看作是目标标识符。这样的网络可以详细分类到校园网,企业内网,ISP网络中。

数据段关键字:IP地址、端口号、服务

客户端蜜罐使用软件客户端,访问潜在的恶意远程服务。因此目标通常是特定的客户端软件。它可能是一个模拟的Web浏览器,用于低交互蜜罐或一个真正的插件,如Flash的高交互蜜罐。

数据段关键字:客户端软件、插件软件

此外,高交互蜜罐(客户端和服务器)允许修改操作系统。因此,必须分析OS特定的更改,需要注意分析这些数据可能会因系统而不同。对于linux系统,通常意味着加载一些隐藏的内核模块和新的crontab,而对于Windows系统,一般非法的更改会集中在注册表、系统文件和自动启动条目。因此,分析可能会检查哪个操作系统最好受到攻击。

数据段关键字:操作系统及其组件

0×04 攻击频率:

在部署蜜罐时必须回答的一个基本问题是,蜜罐是否受到攻击?有趣的是,蜜罐在被激活几分钟后就会被攻击。然而,如果蜜罐可以从互联网访问,如果防火墙阻止到防火墙的所有传入连接,并且只允许内部通信被允许,很少观察到攻击,因为它们将必须来自该特定网络中的被感染的主机,因为局部配置不当。

数据段关键字:首次攻击持续时间

可以通过以下三个度量来区分蠕虫攻击、botnet攻击和配置失误

(1) 时间源计数,

(2) 窗口到达数量

(3) 到达间隔分布.

第一个是通过每个时间间隔的源的数量来分析并且显示出不同的模式。蠕虫攻击显示具有陡峭的开始和结束的后勤增长,因为它们非常快速和自主地传播并且通过补丁突然关闭。botnet显示类似的特性,然而botnet通常使用轮询和拉通信的模式和他们的C&C中控服务器使用每隔几秒的唤醒时间来进行链接,这么干会导致更陡峭的曲线。到达窗口检查在特定时间帧中有多少新源已到达。使用累积分布函数(CDF)图可以发现这些事件之间没有差异。为了评估源到达特性,数据以连续间隔被分解,每个间隔具有相等数量的源(例如,每个具有10%的新源的10个间隔)。然后绘制到达间隔时间的分布。僵尸攻击和蠕虫攻击表现出指数级的间谍。此外,源-网分散可能是有趣的。蠕虫攻击的爆发具有比僵尸网络和错误配置高得多的分散性。如果考虑IP地址,则可以对从每个A类地址聚合看到的源的计数来计算直方图,然而可以使用其他聚合。

数据段关键字:单位时间内攻击源数量、单位时间内新增加的攻击源数量 (CDF)、每个时间间隔内给攻击源分配的时间、特定IP段中的攻击源数量

组合攻击源和频率的另一个度量是将IP地址的数量作为每个地址的攻击次数的函数。该直方图遵循幂律分布。

数据段关键字:每次攻击的攻击源数量

正如我们已经澄清的术语攻击依赖于使用的蜜罐类型。服务器蜜罐将任何通信评估为恶意,因此低交互服务器蜜罐描述攻击频率必然基于网络属性

数据段关键字:单位时间内接收到的数据包、单位时间内接收到的数据大小

测量显示,如果TCP是主要协议,则分组大小相对恒定,因此接收分组和每个时间单位的数据之间的比率是可预测的。攻击频率通常显示特定峰值,即时按摩垃圾邮件例如显示两个每日峰值和一个如果在每周的规模观察。此外,攻击频率的峰值通常可以链接到单个服务,蠕虫活动等,这在该特定时间点被大量利用。

数据段关键字:单位时间内收到的消息/Email、单位时间内接收到的URL/附件、每个消息的数据大小

对于高交互式服务器蜜罐,适用相同的指标,但是可以通过操作系统特定的指标进行扩展:

数据段关键字:单位时间内的EXP利用

由于蜜罐的客户端只负责统计攻击数量,所以应当独立于其交互级别和每时间单位的EXP数量,并且在它们主动开始通信时不考虑攻击频率的网络特征。这意味着,它是预配置在哪个速率的客户端蜜罐进行通信请求。所以只考虑利用。

使用的另一个过程是数据的会话化。在一个时间帧内从同一源接收的或不触发超时的所有分组应该属于同一攻击会话。 24小时帧或30分钟超时是常见的。此外,可以检查攻击发生与下一次攻击之间的时间。该度量的概率密度函数(PDF)遵循一个严格的幂律,并且可以通过帕雷托和指数分布的混合来建模。源的生命周期可以被描述为我们看到源在蜜罐上活动的完整时间,这意味着它是从源的第一次发生到持续活动的时间跨度,并且可以包括若干会话。僵尸网络和错误配置导致生命周期短,然而蠕虫证明是持久的,因为它们经常错过停止扫描的机制。如果定期观察到特定源(意味着它具有频繁的会话或一个长期进行的会话),则它是一个存活时间较长的源。

基于IDS分类来区分它们的会话:到触发IDS警报的蜜罐的所有业务数据被标记为已知的攻击会话,以shellcode的传输结束但不触发IDS警报的所有业务数据是未知的攻击会话。会话之间的时间也值得考虑,因为它显示活动会话之间的暂停。

数据段关键字:单位时间内的Session数量、Session的持续时间、两个Session的时间间隔、源生命周期、单位时间内已知或未知的攻击Session

它们使用端口的对数标度将目标端口绘制为时间的函数。日志规模是一个优势,因为大多数攻击发生在较小的公知端口。该曲线显示跨越离散级别的跳跃,表示用于SSH,SMB等的众所周知的端口的端口。类似于会话的符号是流。基本流基于基本IP流,并且由源和目的地IP地址,源和目的地端口,协议类型组成的5元组来描述。攻击频率还可以通过基本流的发生来描述:如果分组与任何关键字字段的另一个分组不同或者在超时之后到达,则认为它属于另一个流。因此,流是比会话更严格的要求。活动流是基于源IP地址的基本流的聚合,只有基本流之间的到达时间的超时。因此,它们类似于会话的定义。

数据段关键字:单位时间内的数据流数量、单位时间内活动的数据流的数量

0×05 攻击演进:

如果我们观察特定源,端口,国家等的某些时间模式,自动检测其异常行为可能是重要的,因为那些异常可能标记重要事件。这意味着,我们想学习,正常的行为是什么,并发现如果这个正常的行为改变。一种可能的方法是计算不同时间集合的比率,并且比较不同天数或平均比率的那些值。这个方法对于识别仅在特定时间尺度上可见的时间趋势是有用的。良好的时间粒度的选择取决于所研究的攻击现象的种类:对于短的高强度攻击,例如僵尸网络探测器或闪存蠕虫,应用较小的时间单位可能更有用,而对于具有更隐秘的传播的蠕虫方案应该使用更大的时间单位。

0×06 攻击传播:

除了以孤立的方式分析攻击活动之外,还应当尝试识别跨多个蜜罐的攻击的传播,如果部署大的蜜蜂。当在一个平台上观察到一个攻击IP地址,然后在另一个平台上观察时,就会发生传播。由于IP地址池,此检查是否会在特定时间范围内发生,以获得更精确的结果。已经早期分布的蜜罐分析表明,从不同的IP子网和不同的地理位置部署大量的蜜罐是有益的[40],因为它更可能发现攻击,本地事件可以表征为这样和传播可以描绘跨目标的攻击者。

Viewing all articles
Browse latest Browse all 12749

Trending Articles