僵尸网络
简介
- 由被操控的机器组成的网络
- 据估计,互联网上有 16-25% 的机器是肉鸡
- 僵尸网络 Rustock 拥有超过一百万的肉鸡
- 僵尸网络风暴是世界上最大的超算之一
- 应用于
- 信息和身份盗窃
- 分布式拒绝服务(DDoS)
- 软件盗版
- 垃圾邮件/网络钓鱼
- 几乎 80% 的邮件是垃圾邮件
- 例如: Grum, Cutwail, Rustock
- 地下经济
- 10,000 个肉鸡售价 15 美元
- 危害影响 (参照国际电信联盟)
- 2006年,全球经济直接损失132亿美元
- 2005年,美国企业直接和间接损失共计622亿美元
- 2007年全球垃圾邮件成本:全球为100亿美元,美国为350亿美元
起源
- 互联网中继聊天(Internet Relay Chat, IRC)
- 基于文本的聊天系统
- 在频道中组织通讯
- 僵尸网络被用于控制IRC聊天室中的交互
- 理解执行简单的命令
- 提供管理支持
- 提供简单的游戏/服务
- 检索信息:操作系统,登录信息,电子邮件等
- 第一个IRC bot:Eggdrop,1993
僵尸网络的组件
- 僵尸
- 高传输率
- 安全级别低
- 远程
- 大多数是 Windows
僵尸网络生命周期
- 首次感染
- 受感染的网站,电子邮件附件,可移动媒体等
- 二次注射
- 宿主下载并运行二进制文件,成为一个僵尸
- FTP, HTTP, 或者 P2P
- 召集连接
- 与 C&C (Command and Control) 建立连接
- 每次宿主重新启动时都会发生
- 恶意行为
- 宿主与 C&C 之间通信更紧密
- 维护和升级
僵尸网络C&C拓扑结构
星型结构
- 集中式, C&C 与所有机器人通信
- 使用的协议:
- IRC
- SDBot,GTBot,Agobot 的 C&C 功能仍在使用中
- 原作者自行发布
- HTTP
- 混入正常的用户流量
- DIY 工具包
- 即时消息(IM)协议
- ICQ,AIM,MSN Messenger
- 需要为每个机器人创建一个帐户
- IRC
- 优点:
- 控制速度
- 缺点:
- 单点故障
多服务器结构
- 扩展星型拓扑结构
- C&C 服务器之间也进行通信
- 优点:
- 没有单点故障
- 根据地域优化
- 缺点:
- 维护运营需要更多的成本
分层结构
- 一组机器人作为 servant
- 静态可路由的IP地址
- 通过代理C&C个僵尸机器人下达指令
- 变体:分层 Kademlia
- 集群僵尸网络和孤立僵尸网络的合集
- 集群内通信:P2P
- 集群间通信:超级机器人
- 优点:
- 僵尸网络的“自我认知”: 僵尸网络无法监听所有成员,不大可能透露 C&C
- 易于二次销售
- 向其他运营商租借/转售部分僵尸网络
- 缺点:
- 命令有延迟:不适合实时行动
随机结构
- 没有集中的 C&C
- 僵尸网络控制者发布命令,通过任意的僵尸机器人发布、分享指令文件
- 为避免被接管,命令由控制者签名
- 未来:基于Skype的僵尸网络
- 更好地混入其他 P2P 流量
- 优点:
- 弹性高
- 缺点:
- 命令有延迟
- 僵尸网络难以枚举
召集机制
- C&C 位置解析
IP 地址硬编码
- 硬编码 IP 地址列表
- 可以通过僵尸网络IP地址进行检测
动态DNS
- 由动态 DNS 提供商分配的硬编码的 C&C 域名
- 当旧的 C&C 服务器发生故障或被关闭时, 易于创建新的 C&C 服务器
- Botmaster 可以随机更改位置,更加难以检测
分布式的DNS
- 僵尸网络运行自己的DNS服务执法或其他当局的范围
- 机器人使用 DNS 地址来解析 C&C 服务器
- 使用高端口号以避免安全设备和网关的检测
Fluxing
- 提高适应性能
IP Flux (Fast-Flux)
- 持续变化的 IP 地址信息
- Single Flux
- 单一域名关联多个(100s-1000s) IP 地址
- 快速注册/取消注册的IP地址
- 循环分配
- 短时间(TTL) DNS A 记录
- Double Flux
- 变换完整域名(Fully-Qualified Domain Name, FQDN)的 IP 地址
- 用于查询 IP 地址的 DNS 服务器的 IP 地址也进行变换(NS records)
域名 Flux
- 域通配符
- 在DNS记录中使用通配符
- 例如:
*.domain.com
- 例如:
- 用于垃圾邮件/网络钓鱼
- 通配符信息被用于
- 识别受害者
- 一个独一的随机域名
- 例如:
rjhgbrwh.domain.com
- 跟踪
- 绕过反垃圾邮件检测
- 识别受害者
- 在DNS记录中使用通配符
- 域名生成算法
- 每天创建 FQDN 动态列表
- 加密域名
- 生成的 FQD 由宿主进行轮询,以此查找 C&C
- 例如:蠕虫 Conficker.C
- 每天生成50,000个域名
- 尝试联系500个
- 如果操纵者每天只注册1个域名,则每天有1%的机会更新
- 为了防止更新请求,需要每天注册50,000个新域名
- 好处
- 批量生成域名, 生存时间短(通常为1天)
- 难以调查/阻止所有潜在的域名
- 每天创建 FQDN 动态列表
盲代理重定向
- 添加一个额外的弹性层
- 代理 IP /域名查找和 C&C 流量
通信协议
IRC 协议
- IRC主要用于为一对多通信,但也可以用于一对一
- 大多数企业网络不允许IRC流量, 因此任何IRC请求都可以确定存在外部或内部僵尸机器人
- 出站IRC请求意味着网络上已经被感染的计算机
- 入站IRC请求意味着控制者 botmaster 招募僵尸大军
HTTP 协议
- 由于 HTTP 普遍使用,很难跟踪使用 HTTP 协议的僵尸网络
- 使用 HTTP 可以使得僵尸网络避开防火墙对 IRC 僵尸网络的限制
- 检测 HTTP 僵尸网络比较困难,但并非不可能,因为头部字段和有效载荷不符合正常的 HTTP 流量特点
可观测到的行为
基于网络的的行为
- 网络模式可以用来检测僵尸网络
- IRC 和 HTT P是最常见的僵尸网络通信形式
- 通过识别异常流量的特征来检测
- DNS 域名
- DNS 查询来定位 C&C 服务器
- 宿主查询不适宜的域名
- 与域名关联的 IP 地址持续变化
- 流量
- 时而突然忙碌,余下的时间比较空闲
- 异于常人的快速反馈
- 攻击行为
基于主机的行为
- 宿主计算设备可以观测到僵尸网络行为
- 呈现出类似病毒的活动
- 运行时,出现多个程序
- 修改注册表
- 修改系统文件
- 创建未知的网络连接
- 禁用防病毒程序
全局相关的特征
- 全局特征与基本僵尸网络相关联
- 除非僵尸网络完全重新设计和重新实施,否则不会改变
- 最有价值的僵尸网络检测方法
- 无论僵尸网络是通过 IRC 还是 HTTP 通信,行为都是相同的
- 由于分配了新的 C&C 服务器,全球 DNS 查询增加
- 网络流量中断
逃避检测与僵尸网络检测的挑战
- 僵尸网络流量与正常流量类似
- 可能加密
- 僵尸网络发展迅速
- 新的机器人不断增加
- 改变协议
- 不使用 IRC
- 用一下方法进行控制
- HTTP
- VoIP
- IPV6
- ICMP
- Skype 协议
- 改变体系结构
- 改变感染模型
- Fast flux 托管
参考资料
- Botnet Communication Topologies
- CS 259D Lecture 2
- Taxonomy of Botnet Threats
- IS 511: 20170412_botnet-lecture
- MSIT 458: botnet