Detecting business logic vulnerabilities is a critical challenge in software security. These flaws come from mistakes in an application's design or implementation and allow attackers to trigger unintended application behavior. Traditional fuzzing sanitizers for dynamic analysis excel at finding vulnerabilities related to memory safety violations but largely fail to detect business logic vulnerabilities, as these flaws require understanding application-specific semantic context. Recent attempts to infer this context, due to their reliance on heuristics and non-portable language features, are inherently brittle and incomplete. As business logic vulnerabilities constitute a majority (27/40) of the most dangerous software weaknesses in practice, this is a worrying blind spot of existing tools. In this paper, we tackle this challenge with ANOTA, a novel human-in-the-loop sanitizer framework. ANOTA introduces a lightweight, user-friendly annotation system that enables users to directly encode their domain-specific knowledge as lightweight annotations that define an application's intended behavior. A runtime execution monitor then observes program behavior, comparing it against the policies defined by the annotations, thereby identifying deviations that indicate vulnerabilities. To evaluate the effectiveness of ANOTA, we combine ANOTA with a state-of-the-art fuzzer and compare it against other popular bug finding methods compatible with the same targets. The results show that ANOTA+FUZZER outperforms them in terms of effectiveness. More specifically, ANOTA+FUZZER can successfully reproduce 43 known vulnerabilities, and discovered 22 previously unknown vulnerabilities (17 CVEs assigned) during the evaluation. These results demonstrate that ANOTA provides a practical and effective approach for uncovering complex business logic flaws often missed by traditional security testing techniques.
翻译:检测业务逻辑漏洞是软件安全领域的关键挑战。此类缺陷源于应用程序设计或实现中的错误,使攻击者能够触发非预期的应用程序行为。传统用于动态分析的模糊测试净化器擅长发现与内存安全违规相关的漏洞,但在检测业务逻辑漏洞方面大多失效,因为这类缺陷需要理解应用特定的语义上下文。近期试图推断此类上下文的尝试,由于依赖启发式方法和不可移植的语言特性,本质上具有脆弱性和不完整性。鉴于业务逻辑漏洞在实际中构成了最危险软件弱点中的大多数(27/40),这成为现有工具一个令人担忧的盲区。本文通过ANOTA这一新颖的人机协同净化器框架应对该挑战。ANOTA引入了一种轻量级、用户友好的注解系统,使用户能够直接将领域特定知识编码为定义应用程序预期行为的轻量级注解。运行时执行监视器随后观察程序行为,将其与注解定义的安全策略进行比对,从而识别指示漏洞的异常偏差。为评估ANOTA的有效性,我们将ANOTA与最先进的模糊测试工具结合,并与适用于相同目标的其他主流漏洞发现方法进行比较。结果表明ANOTA+FUZZER在检测效能方面优于对比方法。具体而言,ANOTA+FUZZER成功复现了43个已知漏洞,并在评估期间发现了22个先前未知的漏洞(其中17个已分配CVE编号)。这些结果证明ANOTA为发现传统安全测试技术常遗漏的复杂业务逻辑缺陷,提供了一种实用且有效的途径。