[论文解读] Rise of the HaCRS: Augmenting Autonomous Cyber Reasoning Systems with Human Assistance
本文提出 HaCRS(Human-augmented Cyber Reasoning Systems),一种以人为中心的工具化范式,将非专家人类输入整合到自动化漏洞分析中,以克服符号执行和覆盖率驱动模糊测试的局限性。通过将逻辑理解任务外包给通过任务件(tasklets)参与的人类,系统实现了 55.5% 的代码覆盖率(相较于仅自动化方式的 12.1%),并使 AFL 在自动化种子失败时仍能触发漏洞。
As the size and complexity of software systems increase, the number and sophistication of software security flaws increase as well. The analysis of these flaws began as a manual approach, but it soon became apparent that tools were necessary to assist human experts in this task, resulting in a number of techniques and approaches that automated aspects of the vulnerability analysis process. Recently, DARPA carried out the Cyber Grand Challenge, a competition among autonomous vulnerability analysis systems designed to push the tool-assisted human-centered paradigm into the territory of complete automation. However, when the autonomous systems were pitted against human experts it became clear that certain tasks, albeit simple, could not be carried out by an autonomous system, as they require an understanding of the logic of the application under analysis. Based on this observation, we propose a shift in the vulnerability analysis paradigm, from tool-assisted human-centered to human-assisted tool-centered. In this paradigm, the automated system orchestrates the vulnerability analysis process, and leverages humans (with different levels of expertise) to perform well-defined sub-tasks, whose results are integrated in the analysis. As a result, it is possible to scale the analysis to a larger number of programs, and, at the same time, optimize the use of expensive human resources. In this paper, we detail our design for a human-assisted automated vulnerability analysis system, describe its implementation atop an open-sourced autonomous vulnerability analysis system that participated in the Cyber Grand Challenge, and evaluate and discuss the significant improvements that non-expert human assistance can offer to automated analysis approaches.
研究动机与目标
- 解决完全自主的漏洞分析系统在处理复杂程序逻辑时面临的可扩展性和有效性局限。
- 克服符号执行和模糊测试在生成复杂应用程序语义上有意义输入方面的无能。
- 探究非专家人类协助是否能在无需深入安全专业知识的前提下,显著改善自动化分析结果。
- 设计一种混合系统架构,协调自动化分析,同时动态将依赖逻辑的任务卸载给人类分析员。
- 证明在真实世界漏洞检测场景中,人类辅助输入优于自动化种子生成。
提出的方法
- 设计基于任务件(tasklet)的接口,将特定且明确定义的子任务(如输入生成)委托给具备最少领域专业知识的人类分析员。
- 将人类提供的输入整合到自动化分析流水线中,特别是在符号执行和模糊测试工作流中。
- 使用来自 DARPA 网络大挑战(Cyber Grand Challenge)的开源自主系统作为核心分析引擎,以确保一致性和可复现性。
- 实现一个反馈回路,对人类输入进行验证并重复利用,以改进下游分析,包括模糊测试种子选择。
- 将人类任务围绕对程序行为的语义理解(如菜单导航、数学表达式、语义提示)组织,而非低层级的逆向工程。
- 通过比较人类辅助与完全自动化分析运行中的代码覆盖率和漏洞检测率,评估人类贡献。
实验结果
研究问题
- RQ1非专家人类输入是否能显著提升自动化二进制分析中的代码覆盖率和漏洞检测率?
- RQ2人类生成的输入在语义有意义性方面,与符号执行或覆盖率引导模糊测试生成的输入有何不同?
- RQ3与自动化种子相比,人类辅助输入在使 AFL 等模糊测试工具发现真实漏洞方面的有效性如何?
- RQ4哪些类型的程序行为最适于人类协助,而哪些对自动化系统最具挑战性?
- RQ5人类输入在多大程度上可以弥补符号执行在处理复杂控制流或状态化交互方面的局限?
主要发现
- 在复杂比萨订单二进制程序上,人类辅助分析实现了 55.5% 的代码覆盖率,而仅使用自动化分析时仅为 12.1%。
- 在 KPRCA_00052 案例研究中,人类助手实现了 52% 的代码覆盖率,而自动化符号执行仅达到 19%,原因是对状态化菜单逻辑有更好理解。
- 人类提供的输入成功触发了 KPRCA_00043 中的缓冲区溢出漏洞,通过识别语义提示(如一句令人沮丧的信息),而自动化种子生成的输入为乱码,未能触发过滤器。
- 当用作 AFL 的种子时,人类生成的测试用例在一小时内发现了 NRFIN_00055 中的类型混淆崩溃,而自动化种子在相同时间内未触发任何崩溃。
- 人类输入具有语义有效性且上下文感知(如正确的数学表达式),而自动化符号种子常探索无意义或格式错误的路径。
- 本研究证实,即使缺乏安全培训,人类直觉也能显著提升自动化漏洞分析流水线的有效性。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。