2026.09.8
本次汇报围绕 ESORICS 2024 论文《SAEG: Stateful Automatic Exploit Generation》展开,关注自动漏洞利用生成(AEG)在现代二进制防御条件下的能力。报告区分了漏洞、可触发崩溃的 POC 与可实际利用的 Exploit,说明 AEG 在漏洞严重性评估和修复优先级判断中的防御价值。
NX、栈金丝雀、ASLR 与 RELRO 等机制使单一 Payload 难以直接获得控制权。复杂利用通常需要先后泄露 Canary、代码段基址或 libc 基址,再完成 ROP 等后续步骤。已有方法多依赖完整攻击模板,难以复用步骤并适应新的信息泄露方式;符号执行还面临大量无效路径与状态爆炸问题。
SAEG 使用 Exploit Graph 描述利用状态与状态转移。图中的状态由漏洞条件和当前已掌握的原子信息共同构成,边对应一个原子攻击模板。每个模板以漏洞类型、前提条件、成功后获得的信息和具体 Payload 为核心要素,因此多个模板可以依照信息依赖关系自动组合。
框架先根据目标程序的保护状态构造初始状态,再通过模板库扩展利用图;随后结合符号执行枚举程序后继状态,并用约束检查验证路径中的 Payload 是否真正可执行。已获得某项信息的状态不会重复执行只能带来同一信息的模板,从而减少图搜索中的无意义扩展。
系统包括二进制预处理、Exploit Graph 验证、库函数 Hook 与交互验证模块。预处理利用二进制分析和污点分析发现潜在风险点;Hook 对 printf、puts 等库函数进行抽象,既压缩符号执行成本,也辅助识别敏感信息与可控参数。对于每条候选路径,框架会在真实本地程序或远程服务中进行交互验证。
论文在 34 个 CTF 二进制样本上进行评估,覆盖多种保护组合和可利用漏洞类型。结果表明,SAEG 能够将多步信息泄露与利用过程组合为完整路径,并通过图引导剪枝提高验证效率。其局限仍在于符号执行的路径爆炸、Hook 带来的精度损失,以及模板库无法自动创造全新利用原语;未来可结合动态分析、模糊测试与共轭执行扩展适用范围。