这篇文章介绍了一个名为 IOCRegex-gen 的新系统,它的核心任务是把“威胁情报”自动翻译成“搜索密码”,帮助网络安全专家更快地发现黑客。
为了让你更容易理解,我们可以把整个网络安全世界想象成一个巨大的图书馆,而黑客就是试图混入图书馆的捣乱者。
1. 背景:图书馆里的“通缉令”与“搜索咒语”
CTI 报告(通缉令):
网络安全公司每天会发布很多报告(CTI),就像图书馆管理员收到的“通缉令”。上面写着:“注意!有个坏蛋可能会在书架上涂胶水(文件路径),或者在登记簿上乱写名字(注册表键值)。”
- 问题: 这些报告是用自然语言写的,比如“坏蛋可能会在
C:\Users\Public 文件夹里放一个 .bat 文件”。
日志(图书馆的监控录像):
图书馆里每分每秒都在产生海量的监控记录(系统日志),记录着谁进了门、碰了什么书。
正则表达式(搜索咒语):
为了在海量监控录像里找到那个坏蛋,管理员不能只搜“完全一样的字”,因为坏蛋很狡猾,可能会把文件名从 11.bat 改成 12.bat,或者把路径大小写变一下。
这时候就需要正则表达式(Regex)。它就像是一个超级灵活的搜索咒语。
- 普通搜索: 搜
11.bat(只能找到这一个)。
- 正则搜索: 搜
.*\.bat(能抓到所有以 .bat 结尾的文件,不管前面叫什么)。
2. 痛点:以前全靠“人工翻译”,太慢了!
过去,当收到一份新的“通缉令”(CTI 报告)时,安全分析师(图书馆管理员)必须手动做两件事:
- 提取线索: 从报告里把坏蛋可能用的文件名、路径找出来。
- 编写咒语: 把找到的线索(比如
C:\Users\Public\11.bat)手动改写成灵活的“搜索咒语”(正则表达式)。
这就像让一个翻译官,把一本厚厚的小说,逐字逐句地翻译成一种只有机器能懂的“密码语言”。
- 太慢: 报告越来越多,人手不够。
- 容易出错: 人累了会写错“咒语”,导致要么抓不到坏蛋(漏报),要么把好人抓了(误报)。
- 门槛高: 不是谁都会写这种复杂的“咒语”。
虽然现在的 AI(大语言模型 LLM)已经能帮人从报告里提取线索了,但它们不会写“咒语”。它们只能告诉你“坏蛋用了 C:\Users\Public\11.bat",但没法直接给你生成那个能抓所有变种的“搜索咒语”。
3. 解决方案:IOCRegex-gen(自动翻译官)
这篇论文提出的 IOCRegex-gen 系统,就像是一个专门训练过的“咒语翻译机器人”。它不仅能提取线索,还能直接生成完美的“搜索咒语”。
它有两个独门绝技(核心创新):
绝技一:分清“固定部分”和“可变部分”(分组机制)
- 比喻: 想象坏蛋的作案手法是:“在
C:\Windows\System32 这个固定地点,放一个名字随机的病毒文件”。
- 人类专家知道:
C:\Windows\System32 是固定的,必须死死记住;而文件名是变的,要允许它变化。
- 普通 AI 的困惑: 它可能把整个字符串都当成固定的,或者把固定部分也当成可变的,导致咒语失效。
- IOCRegex-gen 的做法: 它有一个**“知识库地图”**(图数据库)。它知道
System32 是系统自带的固定文件夹,而 11.bat 是坏蛋随便起的名字。
- 它会自动把固定部分标记为“必须匹配”(捕获组)。
- 把可变部分标记为“允许变化”(非捕获组)。
- 结果: 生成的咒语既精准,又灵活。
绝技二:自我纠错的“试错循环”(推理与验证)
- 比喻: 就像写代码一样,写完一个“咒语”后,先自己跑一遍测试。
- 流程:
- 生成: AI 先写一个初版咒语。
- 调试(Debug): 系统拿这个咒语去试匹配原来的线索。如果匹配不上,就告诉 AI:“你这里写错了,改一下。”
- 防过度泛化(Over-Generalization Check): 这是最关键的一步。
- 问题: 有时候 AI 为了保险,会写一个超级宽泛的咒语,比如“匹配所有东西”。这样虽然能抓到坏蛋,但也会把图书馆里所有正常看书的人(正常文件)都抓进来,造成误报。
- 解决: 系统会随机生成 10 个“无辜路人”(随机字符串)去测试。如果这个咒语把“无辜路人”也抓了,系统就会说:“太宽泛了!不行!重写!”
- 打分: 系统会生成好几个版本的咒语,给它们打分。分数高的(既抓得准、又不误伤)被选中,分数低的直接扔掉。
4. 效果:真的好用吗?
研究人员用3000 多份真实的威胁报告和MITRE ATT&CK 框架(一个像“黑客模拟考卷”一样的权威测试平台)进行了测试。
- 命中率(抓得准): 生成的咒语能抓到 99.1% 的真实攻击痕迹。
- 误报率(抓错人): 只有 0.8% 的误报。
- 对比: 如果直接让 AI 写咒语(不加这套复杂的纠错和分组机制),效果会差很多(命中率低,误报高)。
总结
这篇论文就像是给网络安全团队配备了一个不知疲倦、精通“咒语”的超级实习生。
- 以前: 分析师要熬夜读报告,手动写复杂的搜索代码,累得半死还容易出错。
- 现在: 把报告扔给 IOCRegex-gen,它自动分析哪里是固定的、哪里是变的,生成完美的搜索咒语,还能自我检查,确保不误伤好人。
这让安全团队能从繁琐的“写代码”工作中解放出来,把精力集中在真正复杂的威胁分析上,让图书馆(网络安全系统)更安全、反应更快。
论文技术总结:从 IOC 到正则表达式:利用 LLM 自动化 CTI 运营化
1. 研究背景与问题定义 (Problem)
背景:
网络安全运营中心(SOC)依赖网络威胁情报(CTI)报告中的入侵指标(IOCs)(如文件路径、注册表键、命令行参数)来检测攻击。为了在异构的日志数据中高效匹配这些攻击痕迹,通常需要将 IOCs 转换为正则表达式(Regex)。正则表达式能够处理系统环境差异(如路径分隔符、大小写、参数变化),是连接人类可读情报与机器可执行检测规则的关键桥梁。
核心痛点:
尽管现有的研究已经能够利用大语言模型(LLM)从 CTI 报告中自动提取 IOC,但将提取出的原始 IOC 字符串转换为可部署的正则表达式这一关键步骤仍然主要依赖人工。人工过程存在以下严重问题:
- 效率低下:从阅读报告到编写、测试和调优正则表达式,耗时数小时至数天,难以应对日益增长的情报量。
- 技能门槛高:编写高质量正则表达式需要深厚的领域知识,初级分析师往往难以胜任。
- 易出错:人工操作容易导致语法错误、捕获组(Capture Groups)缺失或泛化能力不足(过窄或过宽)。
- 现有自动化工具的局限:现有的 LLM 应用多止步于提取原始 IOC 字符串,或直接生成简单的检测规则(如仅匹配 IP/域名),缺乏针对复杂 IOC(如命令行参数)生成具备语义准确性和适当泛化能力的正则表达式的能力。
具体挑战:
- C1(捕获组识别):难以自动区分 IOC 中哪些部分是固定的(应作为捕获组,用于提取关键威胁指标),哪些部分是可变的(应作为非捕获组或通配符)。
- C2(语法与语义正确性):LLM 生成的正则表达式常出现语法错误、幻觉(Hallucinations)或无法匹配预期行为。
- C3(精度与泛化的平衡):生成的正则要么过于严格(漏报),要么过于宽泛(如全用
.*,导致误报)。
2. 方法论:IOCRegex-gen 系统 (Methodology)
作者提出了 IOCRegex-gen,一个基于 LLM 的全自动系统,旨在将提取的 IOC 转换为可部署的正则表达式。该系统包含两个核心阶段:
2.1 阶段一:捕获组发现 (Capture Group Finding)
此阶段旨在解决 C1 挑战,即自动识别 IOC 中的固定部分(捕获组)和可变部分。
- 知识增强图数据库:系统构建了一个包含 Windows 系统原生文件路径、注册表键和命令行参数结构的图数据库(使用 Neo4j 实现)。该数据库将系统结构组织为树形结构(例如,
Users 是父节点,Public 是子节点)。
- 预处理:对提取的 IOC 字符串进行标准化(如统一环境变量、用户名、注册表根键格式)。
- 算法识别:
- 文件路径/注册表键:利用图数据库查找最长连续相邻节点序列。如果一段路径在图数据库中是连续存在的原生结构,则判定为捕获组;否则视为可变部分。
- 命令行参数:识别命令(如
schtasks)及其原生参数(如 /create, /s),将命令和原生参数标记为捕获组,将用户自定义参数(如 <remote_host>)标记为非捕获组。
- 过滤:如果提取的字符串中不包含任何捕获组,则视为误报(False Positive)并丢弃。
2.2 阶段二:基于推理的正则生成 (Reasoning-based Regex Generation)
此阶段旨在解决 C2 和 C3 挑战,利用 LLM 生成并迭代优化正则表达式。
- 迭代推理工作流:
- 初始生成:将 IOC 及其捕获组信息输入 LLM 生成初始正则。
- 调试循环 (Debugging Loop):使用正则调试工具验证生成的正则是否能匹配原始 IOC。若失败,将错误信息反馈给 LLM 进行修正。
- 非捕获组验证循环:检查生成的正则中是否意外包含了非捕获组(即本应作为通配符的部分被错误捕获)。若存在,反馈给 LLM 修正。
- 过度泛化检查 (Over-Generalization Check):随机生成 10 个测试字符串,如果候选正则匹配了所有测试字符串,说明其过于宽泛(如全是
.*),则重新生成。
- 注:若上述循环超过 10 次仍未成功,则重置并重新生成初始正则。
- 评分与选择机制:
- 系统为每个 IOC 生成多个候选正则(通常 5 个)。
- 使用评分公式 Score=α⋅ncg−β⋅nwc 进行评分。
- ncg:属于捕获组的组件数量(奖励)。
- nwc:非捕获组或无关字符串的数量(惩罚)。
- 选择得分最高的正则作为最终输出,确保其在保留关键特征的同时具备适当的泛化能力。
3. 主要贡献 (Key Contributions)
- 提出了 IOCRegex-gen 系统:填补了 CTI 运营化工作流中的关键空白,实现了从原始 IOC 到可部署正则表达式的端到端自动化转换。
- 创新的方法论:
- 开发了基于知识增强图检索的捕获组自动识别方法,解决了 LLM 缺乏系统上下文知识的问题。
- 设计了多阶段推理与验证流水线,通过迭代调试、非捕获组检查和过度泛化过滤,显著提高了 LLM 生成正则的语法正确性和语义准确性。
- 全面的实证评估:
- 使用了 3,000+ 真实 CTI 报告和 2,400+ 来自 MITRE ATT&CK 评估框架的独立地面真值(Ground Truth)字符串进行测试。
- 证明了系统在大规模 CTI 处理中的实用性和高效性。
4. 实验结果 (Results)
实验在 10 个不同的攻击场景数据集(如 LockBit, APT29, Turla 等)上进行,主要结果如下:
- 高命中率 (Hit Rate):生成的正则表达式在真实攻击数据上的平均命中率达到 99.1%。在部分数据集(如 Enterprise2024 LockBit, Turla Snake)中达到了 100%。
- 低误报率 (False Positive Rate):平均误报率仅为 0.8%,最高不超过 1.5%。这表明生成的正则具有良好的特异性,不会过度匹配无关日志。
- 结构复杂度:生成的正则平均评分超过 3 分(满分未定,但表明结构复杂),包含至少 3 个捕获组,证明其不仅仅是简单的字符串匹配,而是具备复杂的逻辑结构。
- 适度泛化:生成的正则与原始 IOC 的相似度平均约为 0.4,表明系统在保留核心特征的同时,成功引入了必要的变体以适应不同环境。
- 消融实验 (Ablation Study):
- 移除“捕获组发现”或“基于推理的生成”任一组件,都会导致性能显著下降。
- 与直接提示 LLM 生成(无专用组件)相比,完整系统的命中率和误报率指标提升了 30% 以上。
- 模型一致性:在不同基础模型(GPT-4o, LLaMA3, DeepSeek-V3)上,生成的正则结构相似度极高(Cosine Similarity > 0.97),证明系统流程的稳定性不依赖于特定模型。
5. 意义与影响 (Significance)
- 提升 SOC 运营效率:将原本需要数小时的人工正则编写过程自动化,大幅缩短了从威胁情报发现到检测规则部署的时间(Time-to-Detect),使 SOC 能更快响应新兴威胁。
- 降低技能门槛:通过自动化捕获组识别和语法验证,降低了对初级分析师编写复杂正则表达式能力的依赖,缓解了人力资源压力。
- 提高检测质量:通过严格的验证和评分机制,减少了因人工疲劳或知识不足导致的语法错误和逻辑漏洞,提升了检测规则的准确性和鲁棒性。
- 推动 CTI 落地:解决了威胁情报“最后一公里”的问题,使得大量非结构化的 CTI 报告能够真正转化为自动化、可执行的防御能力,特别是在处理文件路径、注册表和命令行等复杂 IOC 类型时表现优异。
总结:该论文提出了一种创新的 LLM 驱动框架,通过结合领域知识图谱和迭代推理机制,成功解决了安全运营中正则表达式自动生成的难题,为大规模威胁情报的自动化运营化提供了强有力的技术支撑。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。