L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Données et recherche · SKILL.md

hunting-for-beaconing-with-frequency-analysis

hunting-for-beaconing-with-frequency-analysis

通过对网络流量应用统计频率分析、抖动计算和变异系数评分,识别命令与控制(C2)信标模式,检测被攻陷终端的周期性回调行为。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: hunting-for-beaconing-with-frequency-analysis description: 通过对网络流量应用统计频率分析、抖动计算和变异系数评分,识别命令与控制(C2)信标模式,检测被攻陷终端的周期性回调行为。 domain: cybersecurity subdomain: threat-hunting tags: [threat-hunting, beaconing, c2-detection, frequency-analysis, network-traffic, RITA, jitter-detection, mitre-t1071] version: "1.0" author: mahipal license: Apache-2.0

使用频率分析狩猎信标(Beaconing)

适用场景

  • 主动搜索回调 C2 基础设施的被攻陷终端时
  • 威胁情报报告显示针对您所在行业的活跃 C2 框架时
  • 网络日志显示向陌生目标的周期性出站连接时
  • 紫队演练验证 C2 检测能力时
  • 调查潜在入侵事件并需要识别活跃 C2 通道时

前置条件

  • 带时间戳和目标数据的网络代理/防火墙日志(至少 24 小时)
  • Zeek conn.log、dns.log 和 ssl.log 或等效的 NetFlow/IPFIX 数据
  • 具备统计分析能力的 SIEM 平台(Splunk、Elastic、Microsoft Sentinel)
  • 用于自动化信标分析的 RITA(Real Intelligence Threat Analytics)或 AC-Hunter
  • 用于域名/IP 信誉丰富化的威胁情报 feeds

工作流程

  1. 定义信标参数:建立检测阈值——变异系数(CV)低于 0.20 表示强周期性,24 小时内最少 50 次连接,平均间隔在 30 秒到 24 小时之间。
  2. 收集网络遥测数据:将代理日志、DNS 查询、防火墙连接日志和 Zeek 元数据汇总到分析平台。
  3. 计算连接间隔:对每个源-目标对,计算连续连接之间的时间差,推导平均间隔、标准差和变异系数。
  4. 应用抖动分析:Cobalt Strike 等复杂 C2 框架会向信标间隔添加抖动(随机性)。Sunburst 后门每 15 分钟信标一次,前后偏差 90 秒。分析抖动模式以检测甚至是随机化的信标行为。
  5. 过滤合法的周期性流量:排除已知合法的信标来源,包括 Windows Update、防病毒定义更新、NTP 同步、SaaS 心跳服务和 CDN 健康检查。
  6. 分析数据量一致性:C2 心跳包通常具有一致的 payload 大小。计算每次连接传输字节的变异系数——低方差表明是自动化通信。
  7. 用威胁情报丰富:将识别出的信标目标与 VirusTotal、WHOIS 注册数据(标记 30 天内新域名)、证书透明度日志和被动 DNS 历史交叉验证。
  8. 与终端遥测关联:通过 DHCP 日志将信标来源 IP 映射到终端主机名,然后与进程创建事件(Sysmon 事件 ID 1、3)关联以识别责任进程。
  9. 评分并排序:根据变异系数、域名年龄、威胁情报匹配、数据量一致性和可疑端口使用分配风险评分。上报高置信度发现。

核心概念

概念描述
T1071.001应用层协议:Web 协议——HTTP/HTTPS 信标
T1071.004应用层协议:DNS——基于 DNS 的 C2 隧道
T1573加密通道——TLS/SSL 加密的 C2 通信
T1568.002动态解析:域名生成算法(DGA)
变异系数(CV)标准差除以均值;低于 0.20 表示周期性
抖动(Jitter)向信标间隔添加的随机变化,用于规避检测
RITA 信标评分综合连接规律性、数据量一致性和连接数的评分
JA3/JA4 指纹TLS 客户端指纹,用于识别 C2 框架签名
Fast-Flux DNS快速变化的 DNS 解析,用于保护 C2 基础设施

工具与系统

工具用途
RITA(Real Intelligence Threat Analytics)基于 Zeek 日志的自动化信标评分
AC-Hunter带信标检测的商业威胁狩猎平台
Splunk使用 streamstats 进行基于 SPL 的统计信标分析
Elastic Security周期性网络行为的 ML 异常检测
Zeek网络元数据收集(conn.log、dns.log、ssl.log)
Suricata带 JA3/JA4 TLS 指纹提取的网络 IDS
FLAREC2 配置文件和信标模式检测
VirusTotal域名和 IP 信誉丰富化

检测查询

Splunk——HTTP/S 信标频率分析

index=proxy OR index=firewall
| where NOT match(dest, "(?i)(microsoft|google|amazonaws|cloudflare|akamai)")
| bin _time span=1s
| stats count by src_ip dest _time
| streamstats current=f last(_time) as prev_time by src_ip dest
| eval interval=_time-prev_time
| stats count avg(interval) as avg_interval stdev(interval) as stdev_interval
  min(interval) as min_interval max(interval) as max_interval by src_ip dest
| where count > 50
| eval cv=stdev_interval/avg_interval
| where cv < 0.20 AND avg_interval > 30 AND avg_interval < 86400
| sort cv
| table src_ip dest count avg_interval stdev_interval cv

KQL——Microsoft Sentinel 信标检测

DeviceNetworkEvents
| where Timestamp > ago(24h)
| where RemoteIPType == "Public"
| summarize ConnectionTimes=make_list(Timestamp), Count=count() by DeviceName, RemoteIP, RemoteUrl
| where Count > 50
| extend Intervals = array_sort_asc(ConnectionTimes)
| mv-apply Intervals on (
    extend NextTime = next(Intervals)
    | where isnotempty(NextTime)
    | extend IntervalSec = datetime_diff('second', NextTime, Intervals)
    | summarize AvgInterval=avg(IntervalSec), StdDev=stdev(IntervalSec)
)
| extend CV = StdDev / AvgInterval
| where CV < 0.2 and AvgInterval > 30
| sort by CV asc

Sigma 规则——信标模式检测

title: Potential C2 Beaconing Pattern Detected
status: experimental
logsource:
    category: proxy
detection:
    selection:
        dst_ip|cidr: '!10.0.0.0/8'
    timeframe: 24h
    condition: selection | count(dst) by src_ip > 50
level: medium
tags:
    - attack.command_and_control
    - attack.t1071.001

常见场景

  1. Cobalt Strike 信标:默认 60 秒间隔,通过 HTTPS 配置 0-50% 可调抖动。可延展 C2 配置文件可模拟合法流量模式。
  2. Sunburst/SUNSPOT:12-14 天休眠期,然后每 12-14 分钟信标一次,带随机化抖动,旨在规避频率分析。
  3. DNS 隧道 C2:通过 DNS TXT/CNAME 查询向攻击者控制的域名进行编码数据外泄,可通过高子域名熵和查询量检测。
  4. Sliver C2:支持 HTTPS、mTLS 和 WireGuard 协议的现代 C2 框架,具有内置抖动支持的可配置信标间隔。
  5. 合法服务滥用:通过 Slack、Discord、Telegram 或云存储 API 进行 C2 通信,使基于目标的过滤无效。

输出格式

Hunt ID: TH-BEACON-[DATE]-[SEQ]
Source IP: [内部 IP]
Source Host: [来自 DHCP/DNS 的主机名]
Destination: [域名/IP]
Protocol: [HTTP/HTTPS/DNS]
Beacon Interval: [平均秒数]
Jitter Estimate: [百分比]
Coefficient of Variation: [变异系数值]
Connection Count: [时间窗口内的总连接数]
Data Size CV: [Payload 一致性指标]
Domain Age: [注册以来的天数]
TI Match: [是/否——来源]
Risk Score: [0-100]
Risk Level: [Critical/High/Medium/Low]
Indicators: [触发的风险因素列表]
Skills enregistrées