僵尸网络(Botnet)的检测方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
僵尸网络在传播和准备发起攻击之前,都会有一些异常的行为,如发送大量的DNS查询(Botnet倾向于使用动态DNS定位C&C服务器,提高系统的健壮性和可用性)、发送大量的连接请求等等。
综上所述,可供统计的一些异常行为包括:IRC服务器隐藏信息、长时间发呆(平均回话时长3.5小时)、昵称的规律性、扫描、频繁发送大量数据包(每个客户端每秒至少发生 5~10个包)、大量陌生的DNS查询、发送攻击流量、发送垃圾邮件、同时打开大量端口、传输层流特征(flows-per-address(fpa), packets-per-flow(ppf) and bytes-per-packet(bpp) )、包大小(包大小的中值≤100Bytes)、特定的端口号(6667, 6668, 6669, 7000, 7514)
这方面的研究有很多,其中一个主要的理论分支称为 “告警焊接”, 例如把类似的告警事件放在同一个标签下。最基本的目标就是减少日志,在大多数系统中,要么是基于多事件归因于一个单一的威胁,要么是提供一个针对一个单一的目标的经过整理的通用事件集的视图,我们引入了“证据追踪”的方法通过分析感染过程的通信序列来识别成功的Bot 感染,称为会话关联策略。在这个策略中, Bot 感染过程可以建模成感染主机与外部实体间一个松散顺序的通讯流。特别是所有Bot都共享同样的发生在感染周期的活动集:目标扫描、感染漏洞、二进制文件下载并执行、C&C频道建立、向外地扫描。不必假设所有这些事件都是必须的,也没有要求这些每个事件都被检测到。系统收集每个内部主机的事件踪迹找到一个满足我们对bot 检测要求的合并序列的门限。
Binkley等人提出了一个基于TCP扫描权重(TCP work weight)的启发式异常检测算法以检测IRC僵尸网络控制通信, w=(Ss+Fs+Rr)/Tsr
其中,Ss为发送的SYN包和SYN|AET包数量,Tsr为全部TCP数据包数量,TCP扫描权重w为TCP控制报文数与总TCP报文数的比重。
注:原文中这里描述的比较模糊:1 哪些测度没有说明,2 典型的IRC通信参考模型(统计特征)是什么样,也没有说明。3 检测周期是多长。
第三规则(对于不使用默认端口的应用):捕获与可以bot主机相关的流记录,用(lport,lip,rip,rport).四元组的形式将数据存贮在内存里 。数据包括流数、包数、字节数以及最后一个包的时间戳在内存中解析这些数据,并查找与IP+Port 对相关的多个 rips 或 rports生成这种相关性分析报告并保存在硬盘上来关联后面的事件
该算法基于IRC僵尸网络中大量僵尸主机连接到同一IRC频道,并接受网络传播命令进行大量的TCP SYN扫描这一观察,按照公式(4)定义TCP扫描权重这一评价指标,并通过识别TCP扫描权重超出正常阈值的被感染IP地址及其连接的IRC频道对僵尸网络进行检测。 引起主机的高工作比重值的可能性有三个:1)扫描者;2)某种原因造成的失去服务器连接的客户端;3)P2P主机(通常是GUNTELLA客户端)。同时通过观察发现,比重值聚合成高端值和低端值(约为0.3%),攻击者通常落在较高的范围,P2P客户端通常落在较低的范围。
BotHunter [7]管理器是一个基于IDS驱动的会话管理技术的具体实现。它是由Snort驱动的,它利用了Snort’s 特征引擎的全部优势,合并了一个恶意软件特征的大的集合。这些特征引擎使得系统可以产生由探索漏洞活动所引起的对话告警,代码下载、以及C&C 的服务模式。BotHunter 管理器还包括了两个Bot特征异常检测插件:SLADE 和SCADE。SLADE 实现了一个松散的N-gram 入流量净荷分析,对某种协议的字节分布差异进行分析,这种差异代表通常的入侵行为。SCADE 对流入和流出流量执行并行且互补的端口扫描分析。
步骤2 基于缺省 IRC 服务端口、识别到集中服务器的连接以及 IRC 流量模型特征这 3 个启发式规则,识别出可能的僵尸网络命令与控制连接;
第一规则:IRC默认端口:6667,6668,7000/TCP
第二规则(对于不使用默认端口的应用):定时计算一些测度的百分比,将这些百分比值与典型的IRC通信参考模型的百分比值相比较,来确定哪些是CCC。
bot行为仿真及监控
利用主动式和被动式蜜罐系统获取Bot程序样本,监控Bot主机的传播方式和通讯方式,从而得到botnet的行为特征,包括感染行为:驻留系统的模式(用户模式、内核模式)安装文件、修改文件、修改注册表、对系统进程和函数的调用、键盘操作记录、对系统服务和网络服务的控制。传播行为:扫描、漏洞的利用。通信行为:IP地址、端口号、协议特征、命令。对代码特征的分析分析包括:加壳与脱壳、Shellcode、特征指令序列、文件片段。对日志的关联分析:系统日志、IPS攻击日志、流量信息记录。常用的分析方法包括:沙箱法(一种按照安全策略限制程序行为的执行环境)和蜜网在线信息收集法(常见的系统监控程序包括SEBEK、入侵检测系统)
[4] Lurhq Threat Intelligence Group,” Sinit P2P Trojan Analysis
[5] Anestis Karasaridis, Brian Rexroad, David Hoeflin,《Wide-scale Botnet Detection and Characterization》
流量数据特征匹配
采用流量数据特征匹配方法,必须充分了解僵尸程序,提取指纹信息作为IDS检测的特征。传统的IDS系统无论是基于特征还是基于异常的,都是关注入流量,并查找点对点的入侵企图的恶意特征。NIDS系统具有检测初始的入方向入侵企图。但是从这些海量的入侵告警记录中找到被感染的主机是非常艰巨和具有挑战性的任务。为了解决这个问题,入侵告警关联可以使分析人员获得对告警事件流的更概括的解释,因此可以减少噪音的问题。
[2] Joe Stewart , “Emerging Threats : From Discovery to Protection”
[3] Lurhq Threat Intelligence Group,”Phatbot Trojan Analysis”, /phatbot.html
Botnet 的检测
从检测原理上来说,大致可以分为三类方法:
·行为特征统计分析
·bot行为仿真以监控
·流量数据特征匹配
行为特征统计分析
Botnet是一种恶意行为,拥有这些Botnet的人极不愿意让其他人登录到他的服务器中去,同时也为了防止其他黑客夺取其Botnet,他会有意地隐藏服务器的基本信息,如连入的用户数、可见的用户数、服务器内所建立的频道等,这些信息本来是需要公布给聊天者的,现在却被攻击者有意隐藏了。由于加入到Botnet服务器中的所谓用户nickname是由bot程序生成,所以这些bot的nickname 应符合一定的生成算法,也就带有了某些规律,如IP地址表示法(就是将被感染了bot程序的主机的IP地址所在国的三位缩写放在开头,然后在后面加入指定长度的随机数字,如USA|8028032,CHA|8920340)和系统表示法(将被感染bot程序的主机的系统作为开始的字母如xp、2000等,然后再在后面加上指定长度的随机数字,如xp|8034,2000|80956)。这些命名的特征可以从得到的bot源码中发现并总结出来。这些用户的 nickname的规律性和正常的IRC Server中的用户nickname的随意性是不相同的。由于Botnet中的感染bot程序的主机是在不知情的情况下被控制的,所以在没有Botnet控制者指令的条件下是不会有所行为的,所以他们的行为也会不同于正常的IRC Server中的聊天者的行为,更形象地讲他们的行为更像一个个僵尸。
Anestis Karasaridis 等人的一篇论文[5] 描述了一种在 ISP 骨干网层面上检测和刻画僵尸网络行为的方法,由如下步骤组成:
步骤1 对 AT&T Internet Protect 底层传感器触发的事件进行聚合,识别出具有可疑行为的主机。触发事件包括以下信息:疑似活动类型、持续时间、发生在哪个个链路上。根据疑似的主机地址,分离出与疑似主机相关的流记录。
[6] Binkley ,An Algorithm for Anomaly-based Botnet Detection
[7] Guofei Gu, BotHunter: Detecting Malware Infection Through IDS-Driven Dialog Correlation
BotHunter 关联器将入方向的扫描和入侵告警与出方向高度怀疑已感染主机的通讯模式关联。如果发现足够的告警序列与BotHunter 模型匹配,则生成一个完整报告,涵盖所有相关的事件和参与会话的感染主机。
参考文献
[1] honeynet project ,”Know your enemy – Tracking Botnet”
步骤4 通过与其他数据源(如基于蜜罐技术发现的僵尸网络数据)的关联、DNS 域名验证和人工验证确认检测到的僵尸网络。
与之前工作相比,Karasaridis 等人的方法具有如下优势:
① 分析方法完全在传输层以下进行,没有涉及应用层信息,因此检测效率将更高,可在骨干网上实施;② 基于网络流数据被动监听与分析,不涉及到隐私问题,数据也明显减少,并可以检测加密通讯的 IRC僵尸网络;③ 误报率低,在实验中达到了2%的较好水平,同时可以量化僵尸网络的规模等信息。
至此,我们得到了一堆CCC记录,下面对CCC记录进行分析。对CCC记录的分析分为三个部分
A) 计算一个给定的远程服务器地址/端口所拥有的疑似bot的数量,B)
计算到达远程服务器端口的流量与参考模型流量的欧氏距离,C)计算A\B两个计算过程的结
鲆桓鲎酆掀婪帧
步骤3 分析可能的命令与控制连接,计算出连接同一服务器的可疑僵尸主机数量、计算出可疑连接与 IRC 流量模型的相似性距离,并结合两者计算该可疑连接为僵尸网络命令与控制信道的得分;