导读:
在由 SSL/TLS 编织的现代网络“静默区”中,黑客的指令如同加密电台中的摩尔斯电码般悄然传输。传统安全设备如同戴着眼罩的卫兵,只能听见电流的白噪音。直到我们用模型为攻击行为刻下无法伪造的“行为指纹”,赋予了机器“听见加密心跳”的能力,Cobalt Strike 这个深度潜伏的“隐身刺客”才彻底暴露在安全防护的视野之下,再无藏身之所。
一、故事开篇:一次看似正常的“心跳通信”
在某大型企业的SOC中心,安全工程师注意到一台员工终端设备会访问到互联网上某个看似正常的IP,流量大小和频次等亦无明显特征,看似毫无威胁。然而,正是这看似正常的流量会话,触发了我们的检测模型告警:“高疑似Cobalt Strike beacon流量”。几秒钟内,系统自动抓取完整会话,推送IOC,最终确认该终端已被恶意植入,被用于红队测试中的隐蔽上线。而传统防火墙、WAF与IPS完全未检测出相关问题。
“就像在暴风雨中寻找特定的一片雪花” —— 受害企业CSO的叹息,折射出行业痛点。
二、问题背景:加密流量下的“隐形刀锋”
Cobalt Strike 已成为主流APT组织的常用工具,通过以下方式实现高度隐匿:
- · 全程加密:HTTPS传输,内容层不可见
- · 混淆变种泛滥:破解版本广泛传播,变异严重,HTTPS证书可以自定义,传统特征库无法准确匹配
- · Beacon机制:通信周期随机且低频,难以捕获准确通信特征
- · Malleable C2配置:定制协议/HTTP字段,模拟正常Web访问
在加密世界里,内容失语,唯有行为在说话,检测的未来,不再是内容,而是行为。
三、技术破壁:三层解码引擎穿透加密铠甲
我们构建了一套以多模态流量表征+模态融合与平衡+集成阳性清洗为核心的多模态检测框架:
3.1 第一阶段:多模态流量表征模型预训练
类似于多模态大模型结合文本、图像、音频等多种模态输入以强化跨领域任务能力的思路,融合统计流量特征、原始流量序列与原始数据包字节等多种流量表征/模态进行分析,有助于帮助智能模型自动挖掘加密流量及其变种的行为模式,实现不同任务场景下对加密流量的准确分类。
然而,统计流量特征、原始流量序列与原始数据包字节等现有流量表征形式差异大,需要分别建立针对性的模态表征模型与预训练任务,如:
Flags 输入模态
- · 输入数据:流量会话的状态与类型特征,例如
特征字段 | 流量含义 |
---|---|
session_type | 会话类型,如TCP单边会话、无SYN包TCP会话 |
session_flags | 会话状态,如CLIENT_SEND_FIN、SERVER_SEND_RST |
app_status | 会话结束方式,如FIN、TIMEOUT |
protocol | 协议号 |
dir_flag | 会话方向和上下行是否一致(通过目的ip列表算出) |
- 模型架构及预训练任务:Embedding Layer 将离散数值映射为 embedding 向量 + AutoEncoder 重构预训练
Statistics 输入模态
- · 输入数据:流量会话中数据包时序、数量等信息相关的统计特征,例如
特征字段 | 流量含义 |
---|---|
up_rtt_num | rtt上行数量 |
ttl_down | 次包的Time To Live |
syn_synack_delay | TCP建链响应时延(微秒),即从syn到syn_ack消息的时延(icmp表示icmp up status) |
client_flow_bytes | 上行流量字节数 |
recv_p_pkts | 会话非控制报文数 |
- · 子模态划分:在预训练数据集中对不同统计特征的数值分布进行层次聚类,按照分布相似性分成若干组子模态
- · 模型架构及预训练任务:Mean-Std 特征归一化 + AutoEncoder 重构预训练
Sequences 输入模态
- · 输入数据:流量中数据包的长度序列、到达时间序列(前 20 个包)
- · 模型架构及预训练任务:BERT-based 模型 + Same Original-Direction-Flow
- · Sequences 输入模态
Bytes 输入模态
- · 输入数据:流量中数据包的原始字节序列(前 5 个包,每个包取 ethernet header 之后的前 64 个 bytes)
- · 模型架构及预训练任务:BERT-based 模型 + Masked Language Modeling
3.2 第二阶段:模态融合与平衡微调算法
在综合多模态信息对基座模型进行微调的过程中,由于不同模态所含信息有效性与学习速度不同,基座模型很容易过度依赖某些模态进行流量分析而忽略对其余模态的学习。因此,需要在模态融合机制中对不同模态信息的学习程度进行量化感知,并设计微调任务平衡各模态信息的学习速度:
-
· Step 1(模态融合):使用全部输入模态,经过 Self-Attention 模态融合后输入 BERT-based 模型,进行 m 个 Epoch 的准确性微调训练
-
· Step 2(随机模态挑选): 平等初始化各个模态对分类结果的影响权重,并按权重随机挑选一个模态 x
-
· Step 3(模态影响评估): 针对所选择模态 x 进行平衡性微调,首先将模态 x 移除,观察模型分类准确率相较于使用所有模态时的损失程度
-
· Step 4(模态平衡): 若移除模态 x 后准确率损失超过阈值(5%),说明对模态 x 依赖较强,为防止过度依赖、加强对其他模态的使用,在去除模态 x 的情况下微调训练 n 个 Epoch
若移除模态 x 后准确率损失低于阈值(5%),说明对模态 x 依赖较差,为加强对模态 x 的使用,在只使用模态 x 的情况下训练 n 个 Epoch
根据 n 个 Epoch 后准确率的提升程度重置模态 x 的影响权重,使对平衡性改善明显的模态更频繁的被选取,缺乏有效信息的模态不会频繁影响训练
3.3 第三阶段:降低误告警的阳性清洗
现网中流量规模巨大且正常流量与攻击流量比例悬殊,基于机器学习的流量检测模型需要在海量的正常流量数据中尽可能避免误告警,为单一模型的训练带来了巨大挑战。
我们将降低误告警这一困难问题拆解为两个子问题加以有效解决:
- · 首先,在多模态流量检测模型的训练过程当中,通过假阳性与假阴性感知过滤掉模糊标注的攻击样本,降低训练数据中的噪声为模型训练所带来的干扰
- · 其次,在多模态流量检测模型产生告警样本后,集成多个轻量化的决策树模型对其中的误告警进行清洗,若存在任一假阳性清洗模型将告警样本判定为假阳性,则召回该告警样本为正常流量
3.4 实战锋刃:在攻防演练中验证的硬指标
指标 | 定义 | 数值 |
---|---|---|
日均告警数目 | 正式转安全事件运营告警总数 | 2.14 |
精确率(precision) | 真实告警数 / 每周正式转安全事件运营告警总数 | 90% |
演练攻击召回率 (recall) | 攻防演练告警数 / 攻防演练安全事件总数 | 100% |
检测吞吐性能 | 单个 CPU 核平均每秒能检测的会话数量 | 单核 3600 session/s |
四、总结:未来安全,必须“预测型防御”
Cobalt Strike只是一个缩影,更多APT攻击将走向“无签名、加密、碎片化”。火山引擎云安全团队,正在将这套检测能力进一步拓展至冰蝎、哥斯拉、Sliver以及Mythic等多种C2工具及平台。
我们相信,真正的安全不仅仅是堵住所有风险,而且要精准地识别敌人藏身之地。
五、关于火山引擎网络安全团队
火山引擎网络安全团队汇聚业界资深安全专家,依托在云防火墙、高级网络威胁检测系统、WAF以及Anti-DDoS 防护等核心安全产品领域的多年技术积淀与实战经验,构建起多层级多场景流量防护体系。
同时在大模型时代下,火山引擎网络安全团队推出大模型应用防火墙,为大模型推理提供AII in one 安全防护能力。网络安全团队不仅为抖音、今日头条、西瓜视频等业务提供全链路安全护航,同时依托火山引擎为客户打造专业化、高可靠的安全防护方案。
如果你对大模型安全及高级网络威胁检测系统感兴趣,欢迎联系我们:https://www.volcengine.com/product/nta
发表评论
您还未登录,请先登录。
登录