引言:为什么传统安全设备越来越难发现高级攻击?
在过去十几年中,企业安全体系主要依赖:
IDS 入侵检测系统
IPS 入侵防御系统
SIEM 日志分析平台
EDR 终端检测响应
防火墙
WAF
这些安全设备解决了大量基础攻击检测问题。
例如:
异常流量 暴力破解 恶意 IP 病毒文件 漏洞利用但是随着攻击技术的发展,尤其是 APT(高级持续性威胁)攻击的出现,传统安全设备暴露出了一个非常明显的问题:
它们擅长发现“当前异常”,但很难理解“长期异常”。
举一个真实企业环境中的攻击链路:
Day 1: 攻击者扫描公网资产 ↓ Day 15: 某员工机器执行恶意脚本 ↓ Day 45: 攻击者建立隐藏账号 ↓ Day 90: 横向移动到核心服务器 ↓ Day 120: 窃取敏感数据如果单独查看某一天:
一次异常登录 一次 DNS 请求 一次 PowerShell 执行 一次文件修改可能都不会触发严重告警。
但是把四个月的数据串联起来:
资产探测 ↓ 初始入侵 ↓ 权限提升 ↓ 横向移动 ↓ 数据窃取这就是典型 APT 攻击链。
问题在于:
传统 IDS 并没有真正的“长期记忆”。
一、传统安全检测架构的核心瓶颈
1. 基于规则的检测无法理解攻击上下文
传统 IDS:
网络流量 ↓ 规则匹配 ↓ 告警例如:
IP = malicious_ip Action = alert这种方式对于已知攻击非常有效。
但是 APT 攻击通常:
使用合法工具;
使用正常账号;
低频执行;
长时间潜伏。
例如:
攻击者第一次登录:
192.168.1.10 admin 22端口看起来正常。
30 天后:
同一个账号:
访问数据库服务器90 天后:
大量压缩敏感文件如果没有跨时间关联:
每一次行为都是:
“正常事件”。
2. SIEM 有日志,但是缺少语义理解
很多企业已经部署 SIEM。
架构:
服务器 ↓ 日志采集 ↓ SIEM ↓ 规则分析 ↓ 告警但是 SIEM 更多解决:
什么时候发生? 在哪里发生? 谁触发?而高级安全分析需要:
为什么发生? 和历史哪些事件有关? 是否属于攻击链的一部分?这需要:
安全知识记忆能力。
二、AI Agent 为什么适合解决这个问题?
传统安全系统:
Event ↓ Rule ↓ AlertAI Security Agent:
Event ↓ Memory Retrieval ↓ Context Understanding ↓ Threat Reasoning ↓ Decision核心区别:
传统系统:
看当前事件。
Agent:
回忆过去发生过什么,并理解当前事件意味着什么。
一个企业级安全运营 Agent:
应该具备:
短期记忆 + 长期记忆 + 安全知识库 + 攻击链推理能力其中:
短期记忆:
保存:
当前调查上下文 当前告警 当前用户行为长期记忆:
保存:
历史攻击事件 资产行为轨迹 攻击模式 异常关联关系而长期记忆的核心技术:
就是:
Vector Database(向量数据库)
三、为什么安全 Agent 需要向量数据库?
传统数据库:
例如 MySQL:
适合:
SELECT * FROM event WHERE ip='1.1.1.1'但是安全分析需要的问题:
更加接近:
找出过去一年中,与当前行为最相似的攻击事件。
例如:
当前事件:
用户: admin 行为: 凌晨登录 访问数据库 执行 PowerShellAgent 想查询:
过去有没有类似行为?
传统 SQL 很难表达。
但是向量数据库可以。
四、向量数据库的核心思想
简单理解:
把安全事件转换成:
文本 ↓ Embedding模型 ↓ 数字向量 ↓ Vector DB例如:
安全事件:
攻击者通过钓鱼邮件进入员工电脑, 随后执行 PowerShell, 并尝试访问域控服务器。转换:
[ 0.132, 0.452, 0.876, ... ]这个向量代表:
事件的语义特征。
存储:
Milvus / Qdrant | | ↓ 历史安全事件向量当新的事件出现:
Agent:
当前事件 ↓ Embedding ↓ 向量搜索 ↓ 找到历史相似攻击例如:
发现:
相似事件: 2024 APT攻击案例 相似度: 0.92于是 Agent 可以推理:
当前行为可能属于: APT横向移动阶段五、企业级安全 Agent 长期记忆架构
整体架构:
安全数据源 | ---------------------------- | | | IDS EDR Log | ↓ Event Processor | ↓ Embedding Model | ↓ +----------------+ | Vector Database| | Milvus/Qdrant | +----------------+ | ↓ Security Agent | --------------------- | | Threat Reasoning Report核心流程:
第一步:
采集安全事件。
来源:
IDS日志 EDR行为 Windows Event Linux Audit Cloud日志第二步:
事件标准化。
例如:
原始日志:
{ "time":"10:20", "user":"admin", "cmd":"powershell.exe" }转换:
管理员账号凌晨执行PowerShell, 访问内部服务器。第三步:
Embedding。
例如:
embedding_model.encode(event)得到:
[0.23,0.54,0.76...]第四步:
写入向量数据库。
保存:
事件描述 向量 时间 资产 用户 攻击阶段 风险等级
六、使用 Milvus / Qdrant 构建安全记忆层
数据结构设计:
例如:
{ "id":"event_001", "vector":[0.21,0.53,0.88], "metadata":{ "asset":"server01", "user":"admin", "attack_phase": "lateral_movement", "time": "2026-01-01" } }这里 metadata 非常重要。
因为安全分析不仅需要:
语义相似。
还需要:
时间过滤。
资产过滤。
用户过滤。
例如:
查询:
过去 180 天:
admin账号 + 类似横向移动行为那么:
向量搜索:
负责:
找到类似行为。
Metadata:
负责:
过滤范围。
七、APT 攻击链追踪核心逻辑
APT 最大特点:
不是一次攻击。
而是一条链。
例如:
MITRE ATT&CK:
Initial Access ↓ Execution ↓ Persistence ↓ Privilege Escalation ↓ Defense Evasion ↓ Credential Access ↓ Lateral Movement ↓ ExfiltrationAgent 需要做:
事件关联。
例如:
事件 A:
钓鱼邮件执行宏事件 B:
PowerShell下载文件事件 C:
创建隐藏账号单独:
低风险。
关联:
A ↓ B ↓ C就是:
攻击链。
八、安全 Agent 记忆检索流程
完整流程:
新告警 ↓ 事件描述生成 ↓ Embedding ↓ Vector Search ↓ 召回历史事件 ↓ 结合时间关系 ↓ 攻击路径推理 ↓ 生成风险判断例如:
Agent 接收到:
服务器出现异常管理员登录执行:
搜索历史类似行为返回:
90天前: 同账号访问异常服务器 60天前: 出现恶意脚本执行 10天前: 权限提升行为Agent 判断:
高度符合APT潜伏阶段九、Python 伪代码:安全 Agent 记忆存储与检索逻辑
下面展示一个简化版本。
# ========================== # Security Agent Memory Demo # ========================== from vector_db import MilvusClient from embedding import EmbeddingModel # 初始化 vector_db = MilvusClient( host="localhost", port=19530 ) embedding = EmbeddingModel( model="security-embedding" ) # ========================== # 保存安全事件 # ========================== def store_security_event(event): # 事件文本化 text = f""" 用户: {event['user']} 行为: {event['action']} 资产: {event['asset']} 时间: {event['time']} """ # 转向量 vector = embedding.encode( text ) data = { "vector":vector, "content":text, "metadata":{ "asset": event["asset"], "user": event["user"], "time": event["time"], "attack_phase": event["phase"] } } vector_db.insert( data ) # ========================== # 检索历史攻击记忆 # ========================== def search_attack_memory( current_event ): query_text = f""" 用户: {current_event['user']} 行为: {current_event['action']} """ query_vector = embedding.encode( query_text ) results = vector_db.search( vector=query_vector, limit=5, filter={ "time": "last_180_days" } ) return results # ========================== # Agent分析入口 # ========================== def analyze_event(event): memories = search_attack_memory( event ) context = { "current": event, "history": memories } decision = llm_reason( context ) return decision十、为什么长期记忆比单纯 RAG 更重要?
很多人理解 RAG:
就是:
搜索文档 ↓ 回答问题但是安全领域:
更加复杂。
安全 Agent Memory:
需要:
时间 关系 行为 身份 资产 攻击阶段因此它更像:
Vector Database + Knowledge Graph + Temporal Database + LLM Reasoning未来企业安全 Agent:
可能形成:
攻击知识图谱 + 长期事件记忆 + 实时检测能力 + LLM推理十一、企业落地需要注意的问题
1. 数据质量
垃圾数据:
导致:
垃圾记忆。
必须:
事件清洗。
字段统一。
2. Embedding 模型选择
安全领域:
普通文本模型可能不足。
需要:
针对:
日志
威胁情报
攻击行为
优化。
3. 记忆生命周期管理
不是所有事件永久保存。
需要:
高风险事件 长期保存 普通日志 定期清理4. 防止 Agent 误判
AI 判断:
必须结合:
规则 威胁情报 人工审核不能完全自动化决策。
十二、未来 SOC 的形态:从告警中心到智能安全大脑
未来安全运营中心:
不会只是:
告警 ↓ 人工分析 ↓ 处理而会变成:
所有安全数据 ↓ AI Security Agent ↓ 长期记忆 ↓ 攻击链理解 ↓ 自动调查 ↓ 辅助响应传统 IDS:
解决:
“现在有没有攻击?”
AI Security Agent:
解决:
“过去发生了什么?现在意味着什么?未来可能发生什么?”
这就是两者最大的区别。
总结
企业安全最大的挑战,不是没有数据。
而是:
数据太多,但是缺少理解长期关系的能力。
传统安全设备能够发现异常。
但是无法真正理解:
90天前的一次异常登录 + 30天前的一次脚本执行 + 今天的一次权限访问之间可能存在关联。
通过:
向量数据库 + Embedding + Agent + 长期记忆 + 攻击链推理企业可以构建下一代智能安全运营体系。
未来真正强大的安全 Agent,不只是:
“发现攻击”。
而是:
“记住攻击曾经如何发生,并提前识别下一步可能发生什么。”
视频同款的 Agent 记忆系统核心源码和架构图,需要的朋友请看主页简介进技术群领取。