BotMiner
2008-08-21 09:06
Paper
BotMiner: Clustering Analysis of Network Traffic for
Protocol- and Structure-Independent Botnet Detection
Date
2008
Magzine
17th Usenix Security Symposium
Class
Botnet
Subclass
Detection/Mesurement
Version
1
Add/Update
2008-8-18/2008-8-18
Main Idea
根据 Botnet 的本质属性( coordinate&malicous activity ),凡是有相似网络通信行为并且有相似 malicous activity 的就是 Botnet, 因此做到了协议无关和结构无关
Contribution
1 .首次设计并实现了协议无关且结构无关的 Botnet Detection 系统 , 可以检测未知 Botnet
Difficulty Faced
None
Future Plan
改进 malicous activityCluster 精度
Inspiration
1. Sub-botnet
2. Cluster->Host-based
3. Communication randomization,mimicry attacks and covert channel 对抗所有的流量检测方法都有效
4. 当处理具有多维属性的对象时, Aggregation&Cluster & Correlation 经常是有效的
5. Connection frequency/interval, content entropy,normalized compression distance(NCD)
Detail
本文认为所有 Botnet 都具备两个本质属性:协同工作和从事可疑活动。正常的应用,如 P2P 软件也会协同工作,但不从事可疑活动;蠕虫满足后者但不满足前者,两者都满足才是 Botnet
无论是 IRC/HTTP 还是 P2P 结构、无论 TCP/UDP 协议的 Botnet ,在 C&C 过程中的通信都会显示出相似的 Pattern ;同样,同一个 Botnet 不同 Bots 在从事扫描、 Spam 等可疑活动时,也都会显示出相似的 Pattern
BotMiner 思路:
1. 被动监听网络数据,将数据以类似于 NetFlow 的格式保存 (C-plane monitor) ;同时,运行 Snort 检测可疑活动,生成报警日志( A-plane monitor )( C: Coordinate;A:Activity
2. C-plane monitor 获得的具有相同协议 / 源目的 IP/ 目的 PortFlow 进行 Aggregate ,然后提取特征映射到一个 d 维的向量空间,这样处理后才能 Cluster. 比如两个 Netflow 流的目的 IP 不同,但可能是同一个 botnet 使用了不同的 DNS ,如果不进行映射,将会因为 C-Flow 中的目的 IP 不同而不会被 Cluster 到一组
类似地,将 A-plane monitor 获得数据也进行 Cluster, 但方法简单。比如,对于 Scan Activity, 仅仅根据目的端口来 Cluster,Spam 则粗略地不再 Cluster
1.       Cross-plane Correlation: 利用 C-plane clusterA-plane cluster 的结果计算每个 HostBot 的分数(奇怪的是公式里并没有要求 host 同时出现在两个 plane, 与前提不符)