Web applications are distributed applications, they are programs that run on more than one computer and communicate through a network or server. This very distributed nature of web applications, combined with the scale and sheer complexity of modern software systems complicate manual security auditing, while also creating a huge attack surface of potential hackers. These factors are making automated analysis a necessity. Static Application Security Testing (SAST) is a method devised to automatically analyze application source code of large code bases without compiling it, and design conditions that are indicative of security vulnerabilities. However, the problem lies in the fact that the most widely used Static Application Security Testing Tools often yield unreliable results, owing to the false positive classification of vulnerabilities grossly outnumbering the classification of true positive vulnerabilities. This is one of the biggest hindrances to the proliferation of SAST testing, which leaves the user to review hundreds, if not thousands, of potential warnings, and classify them as either actionable or spurious. We try to minimize the problem of false positives by introducing a technique to filter the output of SAST tools. The aim of the project is to apply learning algorithms to the output by analyzing the true and false positives classified by OWASP Benchmark, and eliminate, or reduce the number of false positives presented to the user of the SAST Tool.
翻译:网络应用程序是分布式应用程序,它们是一个以上的计算机运行,并通过网络或服务器进行交流;网络应用程序的分布性非常广泛,加上现代软件系统的规模和复杂性,使手工安全审计复杂化,同时造成潜在黑客的巨大攻击面。这些因素使得自动分析成为必要。静态应用安全测试(SAST)是自动分析大型代码基础应用源代码而不编纂的方法,设计显示安全脆弱性的条件。然而,问题在于,最广泛使用的静态应用安全测试工具往往产生不可靠的结果,因为对弱点的错误正面分类大大超过了真实的弱点的分类。这是SAST测试扩散的最大障碍之一,使用户能够审查数百个(如果不是数千个)潜在警告,并将其归类为可操作性或刺激性。我们试图通过采用一种技术来过滤SAST工具的输出,从而尽可能减少错误的肯定值。该项目的目的是通过分析实际和虚假的ASASS基准,并消除对真实性工具的错误分类数字。