在真实的安全攻防场景中,分析人员往往被海量日志、流量与告警淹没。一次溯源,可能需要关联进程行为、网络通信、DNS请求、落地文件乃至内存痕迹,过程重复且高度依赖经验。当攻击越来越自动化,溯源如果仍停留在人工研判阶段,效率与深度都会成为瓶颈。
基于本地模型能力与自动化分析流程,我尝试构建一套"溯源分析智能体":能够接收原始数据,自动关联关键线索,辅助判断攻击链条,并输出结构化分析结论。这不是替代安全工程师,而是放大分析能力的工具。在AI已成为基础设施的时代,我们更需要成为驾驭工具的人。
在前面的案例中,已经展示过当我们提供的日志信息完整的时候,是可以输出优质的结论的。那么我是如何保障输出的结论准确可靠的呢。现在我来介绍下整个智能体的搭建思路,以及如何高效结合我们自己的工具进行分析。
日志解析和降噪
我们获取到这些日志,例如数据库操作日志、主机系统日志,如何让大模型可以解析分析呢。偷懒的人会直接发给大模型,这种是非常不建议,因为这样非常消耗算力,而且效果非常差,我们想要得到好的分析效果,现阶段必须对提前对原始日志进行解析和降噪。
我们通过自研的winlogcheck工具,自动搜集我们想要的信息,并且将主机日志信息在客户本地解析好,保存为数据库文件,所有的关键信息,按照字段方式进行存储记录。当我们想要查看某类日志的时候,只需要执行对应SQL语句便可以获取对应日志。
日志发送大模型分析
解析好日志后,如何将我们的吐给大模型进行分析呢。此时便需要利用MCP协议进行日志数据传递,整体处理逻辑如下:
- 日志文件发送MCPServer
- 用户输入自研语言,比如:主机是否存在数据库配置记录等
- 大模型将自研语言转为SQL语句,比如:select* from Event_MSSQL where description = "change config"
- MCPServer 执行SQL语句返回日志信息
- 大模型结合skills中的参考文档分析日志信息
skills文档编写
这里分析总结,我们需要提前给大模型写好skill,不同场景对应不同的分析步骤,每个步骤返回什么样的数据可以得到什么结论,举例: 用户input:当前SQLServer数据库服务器是否存在被勒索攻击的攻击记录;大模型:
- 拆解用户输入,得到关键字:SQLServer数据库服务器、勒索攻击;
- 查看skills:SQLSerer数据库服务器常见勒索攻击的方式有哪些---爆破和漏洞利用
- 查看skills:如何查看爆破痕迹,查看数据库服务器的18456事件,一分钟内30次判断存在爆破攻击记录;
- 查看skills:如何查看数据库服务器漏洞利用日志,查看数据库服务器的15457事件,是否存在配置修改记录,判断存在漏洞利用记录
总结输出
根据skills文档,结合时间线综合分析判断主机安全态势,这一步只要skills文档写的好,输出就不会差;
具体创建步骤,根据自己的日志搜集工具和解析工具的不同,需要自己独立创建。
测试mcp server可用性,根据用户输入查到了对应时间节点的记录。
将MCP Server中的工具接入dify,并且写好提示词。
测试效果,调用了指定的工具,并且按照指定的流程进行分析,效果还行,但是很不稳定,这是效果最好的一次,效果不稳定的重要原因在于底层模型的问题。
Trae近期更新之后也支持skills,正好测试下: 编辑skill trae接入MCPServer 写不同常见的参考文档。这个很重要,可以当作我们的小型的知识库。我们的智能体的分析流程和最终的结论输出都是参考这个。一定要准确!!! 测试效果非常好,非常稳定,基本没有幻觉问题(重要原因我使用了GPT2)
结尾
攻击在进化,分析方式也必须进化。当溯源可以被结构化,当经验可以被沉淀为系统能力,安全工作就不再只是"人海战术"。自建智能体的意义,不是替代分析人员,而是让每一次分析都可以复用、沉淀、进化。
未来的安全能力,不只体现在个人经验,更体现在工具体系。谁能构建自己的分析工具链,谁就拥有更高的确定性。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)


