周期性外联识别是什么
恶意程序与命令控制端保持联系时通常按固定间隔心跳。把同一目的地址的连接时间间隔做统计,稳定的均值与低抖动是最重要的线索。真实攻击会叠加随机抖动与静默期,所以判断依据是「稳定地非随机」,而不是机械的固定秒数。
基本信息
| 用途 | 发现自动化指挥通信 |
|---|---|
| 指标 | 连接间隔、抖动幅度、持续时间、目的稳定性 |
| 数据来源 | 防火墙与代理会话日志、NetFlow、抓包 |
| 辅助信息 | 进程归属、目的域名与证书 |
典型使用场景
- 排查某主机对固定地址的长期规律性外联
- 区分业务心跳与恶意心跳
- 评估通信持续时间,判断驻留时长
- 结合进程归属定位发起程序
- 为封堵动作与检测规则提供判据
- 把间隔换算成区间后与常见软件更新、同步周期比对
间隔粗算
间隔粗算
tshark -r sample.pcap -Y 'ip.dst==203.0.113.10' -T fields -e frame.time_epoch | awk 'NR>1{print $1-p} {p=$1}' | sort -n | head
tshark -r sample.pcap -Y 'ip.dst==203.0.113.10' -T fields -e frame.time -e tcp.dstport | head -20
awk '{print $1,$2}' conn.log | uniq -c | sort -rn | head # 会话频次概览
# 先按目的地址聚合,再统计间隔的中位数与波动范围判读要点
| 指标 | 正常业务表现 | 可疑表现 |
|---|---|---|
| 间隔 | 与业务周期一致,工作日与休息日有别 | 全天候稳定,夜间不间断 |
| 抖动 | 较大,受用户操作影响 | 抖动极小,或被刻意随机化 |
| 目的 | 多个负载均衡地址 | 单个或少量固定地址 |
| 会话量 | 与用户量相关 | 单机固定次数,与使用无关 |
时间同步、软件更新检查、监控上报都属于正常周期流量,必须与进程归属、目的域名归属对照后再下结论,否则误报率极高。
观测点太少(例如只看到几次连接)时不要下结论,间隔统计需要一定数量样本才有统计意义。
样本不足时先扩大观测窗口,用更长的时间跨度换取足够连接次数,再判断是否存在周期特征,不要在数据稀疏时给结论。