利用人工智能进行APT攻击行为识别"

admin 2026-10-17 10:08:46 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

利用人工智能进行APT攻击行为识别

原创

suntiger
suntiger

二进制空间安全

2026年8月12日 08:30
北京

在小说阅读器读本章

去阅读

将二进制空间安全设为\"星标⭐️\"

第一时间收到文章更新

研究背景

先回顾一个经典的APT攻击场景:某省金融机构例行复盘时发现一条奇怪的外联记录:财务部门工作站 ws-finance-07 在午休时段向境外地址 198.51.100.88 传出了约500MB数据,内网流量监控同一时段没有任何高危规则命中。管理员翻了三天日志才基本梳理清楚大致流程:钓鱼邮件被打开执行了一个附件: outlook.exe , 该二进制程序在内存中利用 powershell.exe执行Payload并写入临时目录后注册计划任务,再借 svchost.exe 横向跳到文件服务器 file-srv-02,最后用 rclone.exe 把备份目录同步到境外。

这种长期潜伏的高级攻击,可怕之处不在某一时刻的流量尖峰,而在侦察、资源开发、初始访问、执行、持久化、权限提升、目标达成七个阶段被拆散到不同时间、不同主机、不同账户。防火墙看到的是443正常出站,终端防护看到的是常见办公进程,身份系统看到的是合法登录,单条日志几乎构不成告警。

要把前面说的七个阶段还原成一条完整攻击链,企业现有识别手段常常力不从心。问题不在于缺日志,而是日志本身太散、格式太杂、攻击者还会刻意藏在合法行为里,三件事叠在一起,管理员很难从片段里拼出全貌。

攻击阶段之间往往隔数小时乃至数周,记录分散在不同网段、终端和应用里,防火墙、终端防护、身份系统各报各的,时间戳和账户还对不齐。网络流量以二进制包捕获存储,系统日志多是文本或JSON,身份记录是结构化表格,文件操作还带哈希元数据,四套数据不能直接关联,同一账户在同一时段做了什么,往往要人工比对多个平台才能确认。攻击者还会借用 svchost.exe、explorer.exe、msiexec.exe 等合法进程执行恶意动作,进程名看起来正常,实际可能在建立隐蔽外联、读取凭据、扫描内网、压缩并外传数据,单条告警缺少上下文,很容易被当成噪声放过。

误报因此成为日常负担。管理员大部分精力花在筛噪声上。业务系统升级或流程调整后,正常行为模式也会变,旧模型若不及时更新,就会出现概念漂移,该报的漏报、不该报的反复打扰。

在这三重困境之上,大语言模型加图神经网络的方向比较明确:大模型把异构日志压成语义向量,并生成可读的攻击过程描述;图神经网络在主机、账户、进程、文件、IP之间学习行为关系,少依赖文件路径或IP黑名单。

时间跨度长、单条日志信息弱、业务变更后模型基准偏移,是上述困境的共性。阶段间隔一长,单条日志的判别力就不够;业务上线后行为分布一变,旧阈值跟着失效。应对办法是把流量包捕获、终端事件、系统日志、身份目录、应用日志和威胁情报条目全部送进同一条分析流水线,用短窗口观察快变行为,用长窗口观察慢变渗透,再用知识图谱把碎片事件串回完整路径。

识别架构与双引擎原理

整体架构可以分成五个处理环节:先把各类日志接入并统一格式,再提取特征并做融合,然后做时序关联和图谱推理,接着给出风险评分和判定结果,最后按等级输出告警。接入侧统一接入网络流量、终端事件、身份目录、系统日志和威胁情报,校正时间戳后写入统一时间轴。

慢速渗透要靠双窗口时序关联来补。短窗口按小时到天观察连接突发、脚本执行、登录失败;长窗口按周到月、常见30天周期观察权限渐变、跨主机跳转、外传字节缓慢堆积。两路结果并行计算,再和图谱推理结果对照验证,避免短窗口漏掉长周期行为,也避免长窗口响应过慢。

时序侧从采集到输出,依次经过采集、时间校正、窗口划分、特征构造、时序建模、异常解析和结果输出七个环节。采集网络流量、主机日志和用户操作,流量吞吐常见在十GB/s量级,日志里有登录、拦截、认证失败,用户侧有点击、输入、文件访问。各源时钟常差几秒到几分钟,先统一时间戳并做插值对齐,把10:00:00到10:02:00之间的乱序记录排顺,避免外传先于登录这种假象。窗口默认秒级短窗60秒、长窗3600秒、滑动步长30秒;每个窗口内同时构造统计序列、调用链图和会话向量,分别反映均值方差、进程与网络之间的有向关系,以及一次登录到一次外联的数值编码。建模层用卷积网络提取局部突发,用长短期记忆网络或门控循环单元建模跨步依赖,用注意力机制给关键时间点加权,既能看见某一秒突然启动 PowerShell,也能看见三小时里权限逐步抬高。异常解析阶段把模型打分、聚类结果和距离度量结合起来:攻击窗口的异常得分常见0.98,若某段行为离正常簇中心超过3.24个标准差,就进入人工复核候选。最后输出时序曲线和事件清单,每条记录带分数和文字描述,例如多次登录失败、流量突发、敏感文件操作,管理员不必再从原始日志手工拼句子。

窗口参数和特征类型,决定慢速攻击能不能被看见。短窗口负责捕捉编码脚本和瞬时外联,长窗口负责捕捉跨主机跳转和持续外传。

图谱侧的任务,是把散点事件还原成完整攻击路径,同样经过七个环节:实体抽取、属性嵌入、关系构图、模型训练、链路搜索、异常判定和链路输出。先从日志里识别主机、账户、进程、文件、IP五类对象,同一批碎片里可能分别只有“10.0.0.5 经445端口通信”“alice 登录成功”“cmd.exe 进程2345启动”“读取 doc.txt”“向 203.0.113.10 上传文件”,单看任一条都不足以定性。接着把每个实体的属性转换成向量表示,再按通信、访问、传输、派生、登录、执行、写入、删除八类关系连边:主机与IP之间是通信关系,账户与主机之间是登录关系,进程与文件之间是访问或写入关系,文件与外部IP之间是传输关系。系统先在正常业务的局部关系网络上学习常见的访问模式,再把偏离正常模式的局部结构记为可疑片段;随后在图上搜索跨阶段路径,把分散在不同日志文件里的事件连接成完整链条。若链路末端指向境外高危IP,中间又出现“办公账户启动命令行解释器、读取业务文档、再把文件传到境外”这一串动作,置信度常见0.92,最终输出类似“主机 WIN-7G8T2,账户 alice,进程 cmd.exe,文件 doc.txt,外部IP 203.0.113.10,疑似数据窃取”。

图谱判定的依据是行为结构,不是某个文件名或某个IP是否命中黑名单。攻击者即使更换外传IP、修改载荷文件名,只要“账户启动脚本、脚本读取敏感文件、文件传到境外服务器”这条关系链还在,系统仍会给出高风险告警。

两路分数之上还有多维融合层,并行处理通信特征、内核调用、交互行为和硬件监测四类信号。通信侧看流量统计、会话时长和协议分布;内核侧看文件创建、内存读取是否异常密集;交互侧看登录节奏和操作顺序;硬件侧看CPU、内存、温度、风扇是否出现与业务不匹配的尖峰。四路信号各自经过卷积通道提取局部特征,再经循环网络建模时序关系,最后通过跨模态注意力融合,投影到512维统一向量空间。权重可按业务域调整,制造环境常见配置是时序45%、图谱35%、语义20%。融合后的风险分按三档处置:0.7以上视为高风险,同时触发网络阻断和主机隔离;0.3到0.7视为中风险,先核对身份与会话上下文再决定是否处置;0.3以下视为低风险,记录偏差并纳入下一轮复核。某试点环境里,从评分到自动处置平均18.7秒,自动处置覆盖率92.3%,阻断成功率99.1%,融合后误报率约2.1%。

告警确认后,处置流程通常分五步并行推进:先做交叉核实,对照历史行为、会话上下文和身份特征,确认不是误报;再把任务送入处置队列,按资源敏感度和节点重要性排序;网络侧通过API调用路由器或防火墙下发阻断策略;主机侧终止恶意进程、锁定可疑文件、撤销异常权限;最后由事件总线并行触发日志归档、值班通知、工单创建和威胁情报回写。系统采用分布式部署,是为了让阻断、取证和告警三条线同时推进,避免所有动作堵在一个节点上。

攻击细节分析

文章开头的金融案例按阶段拆开,对照图谱输出格式,排查路径如下表:

阶段 典型现象 日志特征 排查命令/位置
初始接入 钓鱼邮件带链接或宏 outlook.exe 之后出现异常子进程 邮件网关隔离队列、终端进程树
载荷执行 编码 PowerShell 命令行含 -enc 或 Base64 片段 Windows 事件 ID 4688、脚本块日志
持久化 计划任务或服务 schtasks.exe 创建非标准任务名 schtasks /query /fo LIST /v
横向移动 内网 SMB/RPC 跳转 工作站账户在服务器上出现登录 域控 4624/4625、SMB 日志
数据外传 大体积出站 备份工具向境外 IP 持续连接 边界流量日志、代理访问日志

初始阶段攻击者故意低频,ws-finance-07 首条可疑记录比邮件点击晚33分钟,“5分钟内同主机3次告警”这类阈值规则达不到触发条件,监控平台不会产生告警。持久化阶段把任务命名成 UpdateAgent,名称贴近 Windows 更新。横向移动切换到 SYSTEM 和 svc_backup 等服务账户,身份侧看起来像自动化运维。外传阶段使用 rclone,流量形态接近云备份。

同一批日志送入图谱引擎后,链路大致是:主机 ws-finance-07 上账户 zhangwei 经 outlook.exe 启动 powershell.exe,写入 svc.dat 并注册计划任务,随后 svchost.exe 在 file-srv-02 上激活服务账户 svc_backup,最终由 rclone.exe 向 198.51.100.88 传出约500MB数据。时序侧在PowerShell 启动瞬间给出0.9以上的语义风险分,跨主机跳转和外传累计字节把图谱风险分提高到0.65以上,融合后综合风险分0.71,处于中高风险区间。

排查可以同时从四个方向推进:在日志分析平台按 ws-finance-07、file-srv-02 拉取72小时进程和网络事件,检索 powershell、schtasks、rclone 及编码命令行;在域控核对 zhangwei、svc_backup 的登录源IP和登录类型,确认是否存在工作站到服务器的非常规跳转;在边界设备检索 203.0.113.44、198.51.100.88 的历史会话和外传字节;对 %TEMP%、计划任务目录和 rclone 配置文件做哈希取证,与威胁情报库比对,并把还原出的链路交给人工复核。

管理员最终拿到的是带阶段标签和置信度的完整过程描述,而不是单条“恶意IP”告警。下一轮攻击即使更换外传IP或修改载荷文件名,只要行为关系链不变,图谱评分仍会把整条攻击路径标出来。

行为评分与链路重构

针对上述理论写了一个脚本,把时序窗口评分、行为图谱构建和语义风险加权封装成一条命令行工具,读取JSON格式事件文件,输出综合风险分、攻击链阶段、可疑路径和处置建议。终端防护、网络流量、身份日志统一格式后写入同一JSON结构,可以定时批处理,也可以接入现有自动化处置平台。

源码链接:

链接:https://pan.quark.cn/s/298af4f2a912提取码:LFHt

脚本依赖 Python 3.10+,可选安装 PyYAML 读取配置。完整模块包含 Event 数据模型、双窗口时序评分、五类实体图谱、链路搜索、融合判定和命令行接口。

cd srcpython apt_behavior_detector.py --config config.yaml --events sample_events.jsonpython apt_behavior_detector.py --config config.yaml --events sample_benign.json

以下是攻击样本sample_events.json 跑完后,跑出的结果如下:

{  \"overall\": \"PASS\",  \"verdict\": \"通过\",  \"risk_score\": 0.7075,  \"timeseries_score\": 0.6573,  \"graph_score\": 0.6498,  \"semantic_score\": 0.9214,  \"attack_chain\": [\"初始接入\", \"载荷执行\", \"落地文件\", \"持久化\", \"横向移动\", \"数据外传\"],  \"iocs\": [    \"cmdline:encoded_powershell\",    \"ip:198.51.100.88\",    \"ip:203.0.113.44\",    \"process:powershell.exe\",    \"process:rclone.exe\"  ],  \"response_actions\": [    \"升级人工研判队列,保留完整行为图谱快照\"  ]}

输出字段含义如下:timeseries_score 来自短窗口和长窗口的时序分析,graph_score 来自实体构图和链路搜索,semantic_score 来自命令行编码等语义特征,attack_chain 是攻击阶段标签,response_actions 是按0.7阈值分档生成的处置动作。良性样本 sample_benign.json 综合分0.04,判定不通过,说明正常浏览器和文档操作没有被误判成攻击链。

总结

长期潜伏攻击行为难以捕获,难在数据分散、格式杂乱,还往往长得像正常业务。只有把从采集到输出的时序分析、从实体抽取到链路输出的图谱还原、通信/内核/交互/硬件四类信号的融合评分,以及先交叉核实、再按优先级排队、再下发网络阻断与主机清理、最后并行分发告警和工单这一整套流程衔接起来,管理员才能在告警堆里看见完整攻击链,而不是反复盯着“某个IP有点可疑”。

上线前先把流量、终端、身份、系统和情报五类日志对齐到同一时间轴,时钟漂移校正和插值对齐不能省略。试点建议从财务、研发、运维跳板机等高风险域开始,窗口参数可先用60秒短窗、3600秒长窗、30秒滑动步长,再按域内业务节奏微调。融合评分结果要接到防火墙、终端防护和工单系统:综合分在0.7以上时触发隔离,在0.3到0.7之间时强制人工复核,在0.3以下时保留记录作为增量训练样本。模型按月做滑动更新,业务大版本上线后做一次局部重训,避免概念漂移带来漏报。

(全文完)


利用人工智能进行APT攻击行为识别" 网络安全文章

利用人工智能进行APT攻击行为识别"

本文提出利用大语言模型与图神经网络结合的双引擎架构识别APT攻击,解决数据分散、格式杂乱及误报问题。核心方法包括双窗口时序分析捕捉慢速渗透、图谱推理还原攻击链,以及多信号融合评分。可操作建议:从高风险域试点,调整窗口参数,融合评分接防火墙与工单系统,按月更新模型避免概念漂移。
警惕!针对国内某大厂开发人员的定向投毒安全事件" 网络安全文章

警惕!针对国内某大厂开发人员的定向投毒安全事件"

近日披露一起针对阿里系开发工具的npm供应链投毒事件,攻击者发布18个仿冒@ali私有包的恶意包,通过诱饵层、桥接层、执行层三段式结构隐藏跨平台后门,最终向钉钉等协作工具注入恶意代码实现持久化。建议排查lock文件全量依赖,对照恶意包名单,并检查开发机持久化痕迹如alilang文件哈希、launchagent和\\~/.zshrc。
挖洞中怎样判断数据的加密方式?看看这几个技巧" 网络安全文章

挖洞中怎样判断数据的加密方式?看看这几个技巧"

本文介绍了在渗透测试中判断数据加密方式的技巧,包括通过长度和字符集识别Base64、MD5、AES等编码或加密类型,通过参数名推断加密类型如JWT,通过翻前端JS代码查找加密函数,通过修改参数观察行为反推加密方式,以及使用工具验证。文章强调这些技巧仅用于授权测试,未经授权的利用属违法行为。
评论:0   参与:  0