此文档是G Stringhini的开题报告这里下载,针对Botnet的技术进化和科研上对应的防御方案进行了详细地讨论,对于研究botnet的人来说是一份非常不错得入门资料。文档主要分为四个部分:
- 引言简单介绍了Botnet的威胁,来源和发展;
- 第二部分主要介绍Botnet的进化,包含Botnet的通讯架构和感染两部分;
- 第三部分主要介绍科研上针对Botnet和垃圾邮件的检测和防御机制;
引言
垃圾邮件可以被用来钓鱼,诈骗,但是很多大型电子商务网站都提供推荐/推广功能,攻击者可以通过发送大量这种邮件这种进行获利,然而你这类邮件基本上都是从Botnet机器进行发送,并且调查发现85%的Botnet机器都被用来发送垃圾邮件。针对这种现状研究人员和攻击者一直在这个技术领域进行较量。
Botnet的进化
Botnet架构的进化流程如下。
- IRC Botnet: 最初的Botnet是基于IRC的,受害者通过IRC地址和密码进入特定频道等待管理员发布命令。这种通信方式的弱点:研究人员可以通过恶意文件分析IP地址和密码,然后进入频道分析其行为;另外如果IRC基于域名,研究人员可以通过DNS重定向将所有的受害者机器进行转移;最后IRC协议明文通讯,可以通过协议上对这种行为进行检测;
- 专有协议Botnet:为了避免已有的协议,攻击者通过自定义加密协议来进行通信;缺点在于研究人员可以对样本进行逆向分析其协议,并可以加入其队列分析行为;另外也存在DNS污染攻击;
- 多级代理Botnet:通过多次跳转/代理进行隐藏,这种方式还是可以通过黑名单进行block;
- 域名生成算法Botnet:通过设计一套基于时间的域名生成算法(DGA),来实现不同时间段的回连地址; 算法部分也可以通过社交网络的标题或者内容进行回连。缺点在于攻击者可以逆向算法并提前注册域名或者攻击社交账号,或者直接block这些域名;
- P2P Botnet:针对无公网IP地址的内部受害者,利用一些算法实现P2P通信,缺点在于攻击者可以通过逆向分析其协议和特征,伪装为局域网管理者进行诱骗并分析所有受害主机;
Botnet感染方式的进化流程如下:
- 原始感染:通过受感染的机器去扫描更多的存在漏洞的主机并试图感染;
- 现有感染:(1)通过垃圾邮件发送恶意程序,(2)建立恶意网页,欺骗受害者浏览(drive-by-download attack);
Botnet的检测研究
针对Botnet的检测方式很多,概述如下:
- 从主机层面进行检测:通过受害主机检测其样本,并提取特征码加入到杀毒软件特征库;通过分析恶意样本的语义和相似度进行匹配检测;基于动态进行的检测,其中还可以利用提取特征,机器学习进行结合;
- 从恶意网页进行检测:利用机器学习和页面的特征(重定向,混淆脚本代码)进行静态检测;可以通过虚拟机真实环境浏览网页来动态检测;另外也可以通过不同时间段页面的变化情况进行检测(黑客入侵后会添加恶意代码);常用攻击代码片段或者内容进行分析判断;
- 从C&C命令进行检测:通过透明协议,DGA域名进行检测;另外还可以通过搭建蜜罐抓取Botnet的行为进行分析;
- 从DNS协议进行检测:通过局域网DNS的异常或者不常见规律进行检测;
- 从SMTP协议进行检测:分析垃圾邮件的原始IP和其它信息来生成黑名单,或者统计这些IP规律;
- 从社交网络进行检测:攻击者利用社交网络来传播恶意软件,分析攻击者的社交行为给出其IP/域名的安全性;
- 从网络层面进行检测:恶意数据包,C&C特定协议或者攻击包;
总结
文章从Botnet的发展到进化,并针对不同的技术点总结了前人对该点的检测技术,整体而言,内容十分比较丰富,特别是参考文献。