Identifying Vulnerable Third-Party Java Libraries from Textual Descriptions of Vulnerabilities and Libraries
针对现有方法在识别名称复杂相似的易受攻击Java库时准确率低的问题,提出VulLibMiner,结合TF-IDF匹配器与BERT-FNN模型,从漏洞和库的文本描述中识别易受攻击库,并在VulLib数据集上取得F1分数0.657,优于现有方法的0.521。
2023-11-17 cs.CR cs.SE
Exploring the Security Awareness of the Python and JavaScript Open Source Communities
软件安全性无疑是当今软件工程的一个主要关注点。虽然人们对安全问题的认识水平往往很高,但实际经验表明,预防行动和对可能出现的问题的反应在现实中并不总是得到适当处理。通过分析开源社区中的大量提交,我们可以对开发人员缓解的漏洞进行分类,并研究其分布,解决时间等,以学习和改进安全管理流程和实践。在软件遗产图数据集的帮助下,我们调查了两种最流行的脚本语言- Python和JavaScript -从公共存储库收集的项目的提交,并确定了那些减轻代码中某个漏洞的提交(即漏洞解决提交)。一方面,我们确定了提交消息中提到的漏洞类型(根据CWE组),并比较了两个社区中的漏洞数量。另一方面,我们检查了漏洞发布日期与提交中首次引用漏洞之间的平均时间。我们发现,两个社区缓解的漏洞类型有很大的交集,但最普遍的漏洞是特定于语言的。此外,无论是JavaScript还是Python社区都不会对出现的安全漏洞做出快速反应,只有一些CWE组例外。
2020-06-24 cs.PL cs.SE
Data-Driven Vulnerability Detection and Repair in Java Code
Java平台提供了各种API来促进安全编码。然而,对于缺乏网络安全培训的开发人员来说,正确使用安全API通常具有挑战性。先前的工作表明,许多开发人员滥用安全API;这种滥用可能会将漏洞引入软件,使安全保护无效,并向黑客提供安全漏洞。为了消除这种API相关的漏洞,本文提出了SEADER -我们的新方法,检测和修复安全API滥用。给定一个示例性的不安全代码片段及其安全对应代码片段,SEADER会比较这些代码片段并进行数据依赖性分析,以推断安全API滥用模板和相应的修复操作。根据推断的信息,给定一个程序,SEADER执行过程间静态分析,以搜索任何安全API滥用,并针对这些漏洞提出定制的修复建议。为了评估SEADER,我们将其应用于25个<不安全,安全>代码对,SEADER成功地推断出18个独特的API误用模板和相关修复。通过这些漏洞修复模式,我们进一步将SEADER应用于10个开源项目,这些项目总共包含32个已知漏洞。我们的实验表明,SEADER检测漏洞的准确率为100%,召回率为84%,准确率为91%。此外,我们将SEADER应用于100个Apache开源项目,并检测到988个漏洞; SEADER始终正确地定制修复建议。根据SEADER的输出,我们提交了60个pull requests。截至目前,已有18个项目的开发商对SEADER的建议给予了积极的反馈。我们的研究结果表明,SEADE…
2021-02-13 cs.CR cs.SE
Bytecode-centric Detection of Known-to-be-vulnerable Dependencies in Java Projects
针对Java生态中依赖修改导致现有扫描器漏检的问题,提出字节码中心的依赖扫描器Jaralyzer,直接分析字节码,在56个流行组件的评估中表现优于现有工具,尤其适配各类修改后的依赖检测。
2025-10-22 cs.CR cs.SE
PatchFuzz: Patch Fuzzing for JavaScript Engines
针对JavaScript引擎补丁模糊测试的种子来源受限与PoC收集难问题,提出端到端可持续方法PatchFuzz,通过自动化收集历史漏洞PoC并结合对应补丁进行选择性插桩与变异优化,在六款引擎中发现54个漏洞并获62,500美元赏金。
2025-05-01 cs.CR cs.SE
Example-Based Vulnerability Detection and Repair in Java Code
Java库JCA和JSSE提供了加密API以促进安全编码。当开发人员滥用某些API时,他们的代码容易受到网络攻击。为了消除这些漏洞,人们构建了通过模式匹配检测安全API滥用的工具。然而,大多数工具不(1)修复误用或(2)允许用户扩展工具的模式集。为了克服这两个限制,我们创建了Seader--一种基于示例的方法来检测和修复安全API滥用。给定一个示例<insecure,secure>代码对,Seader比较代码片段以推断任何API滥用模板和相应的修复编辑。根据推断出的信息,给定一个程序,Seader执行过程间静态分析来搜索安全API误用并提出定制的修复方案。为了进行评估,我们将Seader应用于28个<不安全,安全>代码对; Seader成功地推断出21个独特的API误用模板和相关修复。通过这些<vulnerability,fix>模式,我们将SEADER应用于一个有86个已知漏洞的程序基准测试。Seader以95%的准确率、72%的召回率和82%的F分数检测到漏洞。我们还将Seader应用于100个开源项目,并手动检查了77个建议的修复;其中76个修复是正确的。Seader可以帮助开发人员正确使用安全API。
2022-04-28 cs.CR cs.SE
DifFuzz: Differential Fuzzing for Side-Channel Analysis
侧信道攻击允许攻击者通过观察程序相对于资源的行为(例如执行时间、消耗的内存或响应大小)来发现秘密程序数据。侧通道漏洞很难推理,因为它们涉及分析多个程序路径上资源使用之间的相关性。我们提出了DifFuzz,一种基于模糊的方法,用于检测与时间和空间相关的侧通道漏洞。DifFuzz通过分析程序的两个版本并使用资源引导的搜索来找到最大化秘密依赖路径之间的资源消耗差异的输入,从而自动检测这些漏洞。DifFuzz的方法是通用的,可以应用于任何语言编写的程序。在本文中,我们提出了一种实现,目标分析的Java程序,并使用和扩展的Kelinci和AFL模糊。我们评估了大量的Java程序的DifFuzz,并证明它可以揭示流行的应用程序中的未知的侧通道漏洞。我们还表明,DifFuzz比较有利的Blazer和Themis,两个国家的最先进的分析工具,在Java程序中找到侧通道。
2019-02-26 cs.CR cs.SE
There are More Fish in the Sea: Automated Vulnerability Repair via Binary Templates
针对现有源代码层面漏洞修复技术的局限性,本文提出基于模板的Java二进制自动化漏洞修复方法TemVUR,通过收集并实现修复模板,在Vul4J和ManyVuls4J数据集上展现出显著的修复效果与通用性。
2024-11-27 cs.SE
Control and Data Flow Execution of Java Programs
十年来,对程序的理解已经成为学生以及参与软件开发过程和为开放问题提供解决方案的其他人的必修任务。在这方面,以最好的方式显示在一个图形表示的问题是一个关键的优势,以更好地理解it.We提供的模型和结构,Java程序理解的控制和数据流分析的执行。特别是它有助于理解Java程序的静态分析,这是软件维护的一个极其重要的阶段。我们提供了Java程序可视化的信息和模型,可以帮助更好地理解程序的学习和分析目的。为构建可视化工具提供的思想是从Java程序的执行中提取数据和控制分析。通过实例分析,证明了本文的思想对理解Java程序的静态分析、软件调试和软件维护具有重要意义。
2017-07-27 cs.SE
Embracing Objects Over Statics: An Analysis of Method Preferences in Open Source Java Frameworks
本研究针对“现代Java应用为提升性能会偏好静态方法”的假设,用YourKit分析器考察28个开源Java框架的运行时行为,发现实例方法和构造函数使用占主导,说明开发者仍青睐面向对象方法。
2024-10-08 cs.PL cs.SE
How Effective Are Neural Networks for Fixing Security Vulnerabilities
Purdue University(普渡大学);University of Waterloo(滑铁卢大学);York University(约克大学);University of Alberta(阿尔伯塔大学);J.P. Morgan AI Research(摩根大通AI研究院)
本文首次系统比较了LLMs与基于深度学习的APR模型在Java漏洞修复上的能力,提出新基准VJBench及变换版本,并发现现有方法修复率低、Codex表现相对最好,呼吁通过更大训练数据、微调和代码简化变换来提升自动修复效果。
2024-04-02 cs.AI cs.CR cs.SE
An Empirical Analysis of CodeQL False Positives and Query Refinements for Java Vulnerabilities
College of Computing & Informatics Drexel University(德雷塞尔大学计算与信息学院);Department of Computer Science Cornell University(康奈尔大学计算机科学系)
该研究分析Java漏洞的CodeQL误报模式,实现查询优化可减少大量误报,还验证了智能编码工具能将优化模式适配新项目,支持以优化为导向的SAST工作流以降低排查工作量。
2026-09-16 cs.CR cs.PL cs.SE
Enhanced Bug Prediction in JavaScript Programs with Hybrid Call-Graph Based Invocation Metrics
针对 JavaScript 静态分析不精确导致函数级缺陷预测受限的问题,提出融合静态特征与混合调用图 HNII/HNOI 度量的模型,并在 BugsJS 的 ESLint 数据上验证性能提升 2–10%。
2024-05-12 cs.SE
SoK: Automated Vulnerability Repair: Methods, Tools, and Assessments
本SoK研究按漏洞分析、补丁生成、补丁验证三步体系化梳理自动化漏洞修复(AVR)方法,构建含144个漏洞的C/C++基准数据集Vul4C,评估了多款C/C++和Java的AVR工具,并指出未来研究方向。
2025-06-13 cs.SE
Improving Vulnerability Prediction of JavaScript Functions Using Process Metrics
由于针对计算机系统的网络攻击越来越多,我们需要特别注意软件系统的安全。为了最大限度地发挥效果,将人类排除在这一过程之外将是一个巨大的突破。第一步是自动识别代码中的脆弱部分。研究人员投入了大量的精力来创建机器学习模型,这些模型可以确定给定的代码片段,或者更准确地说,选定的函数,是否包含任何漏洞。我们的目标是改进现有模型,以之前使用众所周知的静态源代码指标预测JavaScript代码中函数级别的漏洞的结果为基础。在这项工作中,我们建议包括几个所谓的过程度量(例如,代码变动、修改文件的开发人员数量或更改的源代码的时间)添加到功能集中,并检查它们如何影响函数级JavaScript漏洞预测模型的性能。我们可以证实,过程度量显著提高了这些模型的预测能力。平均而言,我们观察到F-测量值提高了8.4%(从0.764到0.848),精确度提高了3.5%(从0.953到0.988),召回率提高了6.3%(从0.697到0.760)。
2021-05-16 cs.CR cs.SE
IRIS: LLM-Assisted Static Analysis for Detecting Security Vulnerabilities
提出IRIS神经符号方法,结合LLMs与静态分析进行全仓库推理以检测安全漏洞,在CWE-Bench-Java数据集上检测出55个漏洞并发现4个未知漏洞。
2025-04-06 cs.CR cs.PL cs.SE
Static JavaScript Call Graphs: A Comparative Study
本文系统比较五种静态 JavaScript 调用图构建工具在基准程序与真实 Node.js 模块上的表现,发现 ACG 精确率最高,ACG 与 TAJS 组合可覆盖 99% 真实边并保持 98% 精确率。
2024-05-12 cs.SE
PPT4J: Patch Presence Test for Java Binaries
本文提出针对 Java 字节码的补丁存在性测试框架 PPT4J,通过从补丁中提取语义信息并利用基于特征的技术识别补丁行,在包含 110 个漏洞的数据集上取得 98.5% 的 F1 分数,并在 IntelliJ IDEA 中发现了未修补的第三方库漏洞。
2024-01-15 cs.CR cs.SE
Understanding and Analyzing Java Reflection
Java反射已经越来越多地用于各种软件中。它允许软件系统在运行时检查和/或修改其类、接口、方法和字段的行为,使软件能够适应动态变化的运行时环境。然而,这种动态语言特性对静态分析提出了重大挑战,因为反射丰富的软件的行为在逻辑上是复杂的,并且在静态上难以预测,特别是当频繁地被静态未知的字符串值操纵时。结果,现有的静态分析工具或者忽略反射或者部分地处理反射,从而导致错过重要行为,即,不健全的结果。因此,改进甚至实现(静态)反射分析(静态地推断反射代码的行为的分析)的可靠性将为许多分析客户端提供显着的好处,例如错误检测器,安全分析器和程序验证器。本文做了两个贡献:我们提供了一个全面的了解Java反射通过检查其基本概念,API和现实世界的使用,并在此基础上,我们介绍了一种新的静态方法来解决Java反射有效地在实践中。我们已经实现了我们的反射分析在一个开源工具,称为太阳能,并评估其有效性广泛与大型Java程序和库。我们的实验结果表明,SOLAR是能够(1)解决反射更健全比国家的最先进的反射分析;(2)自动和准确地识别部分的反射是解决不健全或不准确的程序;和(3)引导用户迭代细化分析结果使用轻量级注释,直到他们的特定需求得到满足。
2017-06-14 cs.PL cs.SE
Static Enforcement of Role-Based Access Control
我们提出了一种新的静态方法,基于角色的访问控制(RBAC)的政策执行。我们提倡的静态方法包括一种新的设计方法,用于涉及RBAC的应用程序,它将安全需求集成到系统的体系结构中。我们将这种新方法应用于限制Java应用程序中方法调用的策略。我们提出了一种语言来表达RBAC策略调用Java中的方法,一组设计模式,Java程序必须遵守的政策,静态执行,并描述了我们的静态验证器的静态执行检查。
2014-09-09 cs.PL cs.SE
The Java Build Framework: Large Scale Compilation
用于研究的大型源代码存储库往往将其效用限制在代码的静态分析上,因为它们不能保证项目是否可编译,更不用说以任何方式运行了。缺乏大型可编译和可运行数据集的直接后果是,需要这些属性的研究无法推广到小型基准之外。我们提出了Java构建框架,这是一种能够自动编译GitHub等开源存储库中大部分Java项目的方法和工具。核心有两个要素:一个非常大的JavaScript文件存储库,以及解决编译错误和依赖关系的技术。
2018-04-12 cs.SE
A Comparative Study of Vulnerability Reporting by Software Composition Analysis Tools
背景:现代软件使用许多第三方库和框架作为依赖项。这些依赖关系中的已知漏洞是潜在的安全风险。因此,软件组合分析(SCA)工具越来越多地被从业者采用,以跟踪脆弱的依赖关系。目的:本研究的目标是了解不同SCA工具在漏洞报告方面的差异。了解现有SCA工具在分析方面是否存在差异以及差异如何,可以帮助安全从业人员选择正确的工具并确定未来的研究需求。方法:我们通过比较9个行业领先的SCA工具对一个大型Web应用程序OpenMRS的分析报告,提出了一个深入的案例研究,OpenMRS由Maven(Java)和npm(JavaScript)项目组成。结果:我们发现这些工具在漏洞报告方面各不相同。在所研究的工具中,Maven报告的脆弱依赖项的数量从17到332不等,npm项目从32到239不等。同样,Maven工具报告的已知漏洞数量从36到313不等,npm项目从45到234不等。我们对工具结果的手动分析表明,漏洞数据库的准确性是SCA工具的关键区别。结论:我们建议从业者目前不应依赖任何单一工具,因为这可能导致遗漏已知漏洞。我们指出了SCA领域的两个研究方向:i)建立框架和指标来识别依赖漏洞的误报; ii)构建自动化技术来持续监控来自开源包生态系统的漏洞数据。
2021-09-01 cs.SE
Many Tools, Few Exploitable Vulnerabilities: A Survey of 246 Static Code Analyzers for Security
Ruhr-University Bochum(鲁尔大学波鸿分校);Chalmers | University of Gothenburg(查尔姆斯理工大学|哥德堡大学)
本文调查了246个静态代码分析器,发现其主要关注有限的漏洞集,且检测的漏洞难以利用,评估方法存在不足。
2026-02-20 cs.CR cs.SE
To what extent can we analyze Kotlin programs using existing Java taint analysis tools? (Extended Version)
作为Java的替代品,Kotlin自推出以来迅速流行,并已成为开发Android应用程序的默认选择。然而,由于其与Java的互操作性,Kotlin程序可能包含与Java程序几乎相同的安全漏洞。因此,我们质疑:在多大程度上可以对Kotlin代码使用现有的Java静态污点分析?在本文中,我们研究了与Java相比,在Kotlin中实现污点分析的挑战。为了回答这个问题,我们进行了一项探索性研究,对每个Kotlin结构进行了检查,并与其Java等效结构进行了比较。我们确定了18个工程挑战,由于Kotlin的独特结构或Kotlin和Java编译器之间生成的字节码的差异,静态分析作者需要以不同的方式处理这些挑战。对于其中的八个,我们提供了一个概念性的解决方案,而其中的六个是我们作为SecuCheck-Kotlin的一部分实现的,这是对现有Java污点分析SecuCheck的扩展。
2022-07-29 cs.CR cs.PL cs.SE
Uncovering Hidden Inclusions of Vulnerable Dependencies in Real-World Java Projects
Paderborn University(帕德博恩大学);SAP Labs(SAP实验室);SAP SE(SAP公司);Fraunhofer IEM(弗劳恩霍夫IEM研究所)
Unshade通过结合元数据扫描的效率和基于代码的扫描能力,揭示现实世界Java项目中隐藏的易受攻击依赖项,发现大量未被传统方法检测到的漏洞。
2026-01-30 cs.CR cs.SE
JBMC: A Bounded Model Checking Tool for Java Bytecode
JBMC是一个开源的基于SAT和SMT的有界模型检验工具,用于验证Java字节码。JBMC依赖于Java库的操作模型,它保守地近似于它们的语义,以验证断言违规,数组越界,意外的算术溢出以及Java字节码中的其他类型的功能和运行时错误。如果状态空间的深度上界是已知的,则JBMC可以用于伪造属性或证明程序正确性。JBMC的实际应用包括但不限于错误发现、属性检查、测试输入生成、安全漏洞检测和程序合成。在这里,我们提供了一个详细的描述JBMC的架构和它的功能,包括深入讨论其背景理论和底层技术,包括一个国家的最先进的字符串求解器,以确保Java字节码的安全性和安全性。
2023-02-05 cs.LO cs.PL cs.SE
Characterizing JavaScript Security Code Smells
针对JavaScript安全代码异味研究匮乏的问题,提出24种安全代码异味,映射至CWE定义的安全问题,提供重构方案与检测机制,并基于现有开源工具实现检测,助力开发人员识别潜在安全弱点。
2024-11-28 cs.CR cs.SE
Chain-of-Experts (CoE): Reverse Engineering Software Bills of Materials for JavaScript Application Bundles through Code Clone Search
针对JavaScript应用程序束逆向生成SBoM的挑战,本文提出多任务深度学习模型Chain-of-Experts (CoE),通过代码分割、分类和克隆检索三个任务,首次为真实世界JavaScript应用束的SBoM生成提供了可扩展、高效且端到端的解决方案。
2024-08-29 cs.SE
Static Metrics Are Insufficient: Predicting Java Method Energy Usage with Execution Time
University of L’Aquila(拉奎拉大学);Vrije Universiteit Amsterdam(阿姆斯特丹自由大学)
研究Java中方法级能源预测局限,通过对2786个Java方法提取静态特征、测量执行时间和能耗,训练比较11个回归模型,发现仅静态指标预测差,加入执行时间可显著提高准确性,执行时间等是能耗的强预测因素。
2026-07-08 cs.AI cs.LG cs.SE
Cross-ecosystem categorization: A manual-curation protocol for the categorization of Java Maven libraries along Python PyPI Topics
本研究针对不同软件生态系统类别名称不统一、难以跨生态比较库数据集的问题,设计了一套人工引导的通用分类协议,参照PyPI主题对256个有严重漏洞的Java/Maven库分类,验证了可行性,为跨生态实证研究的机器学习提供基准真值。
2024-03-10 cs.CR cs.SE
Automated Vulnerability Injection in Solidity Smart Contracts: A Mutation-Based Approach for Benchmark Development
本研究提出基于突变注入的MuSe工具,自动向Solidity智能合约注入六种漏洞以生成基准,并用Slither验证,发现注入率因漏洞而异且静态分析工具检测不全,凸显了改进检测评估的需求。
2025-04-22 cs.SE
Tai-e: A Static Analysis Framework for Java by Harnessing the Best Designs of Classics
静态分析是一个成熟的领域,在缺陷检测、安全分析和代码优化等方面都有应用。为了方便这些应用,静态分析框架通过提供一系列基础服务,如程序抽象、控制流图构造和点到/别名信息计算等,发挥着至关重要的作用。然而,尽管静态分析取得了令人印象深刻的进展,在过去的几十年里,这个领域已经出现了几个流行的框架,但仍然不清楚应该如何设计一个静态分析框架,以使分析开发人员能够受益更多:例如,一个好的IR(用于分析)应该是什么样子?基本面分析模块应该提供哪些功能来简化客户分析?如何方便地开发和集成新的分析?如何管理多个分析?为了回答这些问题,在这项工作中,我们讨论了静态分析框架的关键组件的设计权衡,并通过遵循HBDC来论证最合适的设计(Harnessing the Best Designs of Classics)原则:对于每一个关键部件,我们都比较了其设计选择(可能)由不同的经典框架,如Soot,WALA,SpotBugs和Doop,并选择可以说是最好的一个,但如果没有一个是足够好的,我们然后提出一个更好的设计。这些被选中的或新提出的设计最终构成了Tai-e,一个新的Java静态分析框架。具体来说,太娥在IR、指针分析和新分析的开发等几个方面的设计都是新颖的,从而形成易于学习、易于使用和高效的系统。据我们所知,这是第一个工作,系统地探讨了各种静态分析框架的设计和实现,我们相信它提供了有用的材料和观点,建立…
2022-07-31 cs.PL cs.SE
StaticFixer: From Static Analysis to Static Repair
本文提出 StaticFixer,利用静态分析扰动安全程序生成不安全—安全成对数据,并结合 DSL 与策略学习自动修复非局部信息流漏洞,在数百个 JavaScript 漏洞上优于 CodeT5 和 Codex 基线。
2023-07-24 cs.SE
Learning how to listen: Automatically finding bug patterns in event-driven JavaScript APIs
事件驱动编程在JavaScript社区中得到了广泛的实践,在客户端处理UI事件和AJAX请求,在服务器端处理文件或网络I/O等长时间运行的操作。许多流行的基于事件的API允许将事件名称指定为自由格式的字符串而不进行任何验证,这可能导致未注册侦听器的事件丢失,以及从未发出的事件的死侦听器。在以前的工作中,Madsen等人提出了一种用于检测此类问题的精确静态分析,但他们的分析无法扩展,因为它可能需要大量的上下文,这些上下文在程序大小上是指数级的。集中在检测死侦听器的问题,我们提出了一种方法来学习如何正确使用基于事件的API,首先使用一个简单的静态分析挖掘一个大型的JavaScript代码语料库,以识别注册事件侦听器的代码片段,然后应用统计建模来识别异常模式,这往往表明不正确的API使用。通过对127,531个开源JavaScript代码库的大规模评估,我们的技术能够检测到75个异常标记注册模式,同时在我们的验证集上保持90.9%的精度和7.5%的召回率,这表明基于学习的方法来检测事件处理错误是可行的。在另一个实验中,我们调查了25个开源项目中这些模式的实例,并向项目维护人员报告了30个问题,其中7个已被确认为bug。
2022-02-11 cs.SE
Combining static analysis and dynamic symbolic execution in a toolchain to detect fault injection vulnerabilities
通过审计进行认证,可以确保关键嵌入式系统的安全。这需要审查其关键组件并检查危险的执行路径。后一项任务需要使用专门的工具,这些工具允许探索和重放执行,但在时间和代码知识有限的审计环境中也难以有效使用。故障分析尤其棘手,因为攻击者可能会主动影响执行,使一些常用方法无法使用,并以指数方式增加可能的执行路径。在这项工作中,我们提出了一种新的方法,减少了故障注入点的数量,认为只有最相关的相对于一些安全属性,以减轻这些问题。我们使用快速和强大的静态分析来检测注入点,并断言其影响。然后采用更精确的动态/符号方法来验证攻击路径。通过这种方式,发现攻击所需的洞察力减少了,动态方法可以更好地扩展到实际大小的程序。我们的方法被实现到一个工具链的基础上Frama-C和KLEE和验证WooKey,由法国国家网络安全局提出的案例研究。
2023-03-07 cs.SE
Smart Contract Vulnerability Detection based on Static Analysis and Multi-Objective Search
本文提出一种结合静态分析与多目标优化的智能合约漏洞检测方法,针对重入、调用栈溢出、整数溢出和时间戳依赖四类漏洞,在6,693个合约上验证其覆盖率、精度和效率优于现有工具。
2024-09-30 cs.SE
Vulnerabilities Mapping based on OWASP-SANS: a Survey for Static Application Security Testing (SAST)
为安全的应用程序开发提供适当的框架对于应用程序开发团队将安全性集成到其开发生存周期中具有真正的价值,特别是当移动或Web应用程序越过扫描阶段并越来越关注基于静态应用程序安全测试(SAST)的补救或缓解阶段时。据作者所知,行业标准的开放式Web应用程序安全项目(OWASP)前10个漏洞和CWE/SANS前25个最危险的软件错误第一次在一个矩阵中与Checkmarx漏洞查询同步,产生一个应用程序安全框架,帮助开发团队审查和解决代码漏洞,最大限度地减少静态扫描和渗透测试中发现的误报,目标是提高调查结果的准确性。以一个概念验证的移动恶意软件检测应用程序为例进行了漏洞扫描的案例研究。通过Checkmarx漏洞查询映射OWASP/SANS,证明了漏洞和漏洞的缓解与提高的效率。
2020-07-03 cs.CR cs.SE
Detecting State Manipulation Vulnerabilities in Smart Contracts Using LLM and Static Analysis
针对 DeFi 智能合约中的价格状态操纵攻击,本文提出结合 LLM 与静态分析的 PriceSleuth,通过核心逻辑识别、后向依赖和变量传播分析实现主动检测。
2025-06-11 cs.SE
Ranking Warnings of Static Analysis Tools Using Representation Learning
静态分析工具经常用于检测软件系统中的潜在漏洞。然而,这些工具的一个不可避免的问题是它们具有高误报率的大量警告,这消耗了调查的时间和精力。在本文中,我们提出了DeFP,一种新的方法排名静态分析警告。基于直觉,具有相似上下文的警告往往具有相似的标签(真阳性或假阳性),DeFP使用两个BiLSTM模型构建,以捕获与标记警告的上下文相关的模式。之后,对于一组新的警告,DeFP可以根据它们成为真阳性的可能性(即,实际漏洞)。我们在10个真实项目的数据集上的实验结果表明,使用DeFP,只需调查60%的警告,开发人员就可以找到+90%的实际漏洞。此外,DeFP在精度和召回率方面都将最先进的方法提高了30%。
2021-10-07 cs.SE
Software Security analysis, static and dynamic testing in java and C environment, a comparative study
本文的主要工作是针对各种程序设计语言设计的主要源代码中出现的缓冲区溢出异常进行分析。它描述了如何改进代码并增加其强度,以抵御代码中易受攻击区域发生的安全盗窃。使用的主要语言是JAVA,被认为是最面向对象的语言之一,仍然会产生很多错误,如堆栈溢出,非法/不适当的方法重写。我使用局限于JAVA的工具来测试如何在编译之前纠正代码中的弱点。字节码盗窃是很难被征服的,所以最好是在纯java代码本身中摆脱它。研究中使用的工具是PMD(编程错误检测器),它有助于检测在不久的将来会弹出错误的代码行,例如hashcode(内存映射)重写中的缺陷,由于这些缺陷,Java代码将无法正常运行。另一个工具是FindBUGS,它提供了代码的测试器来分析代码中的弱点,如无限循环,非同步等待,死锁情况,空引用和解引用。为上述工具提供基础的另一个工具是JaCoCo代码覆盖分析,用于检测代码的不可达部分和未使用条件,这改善了空间复杂度并有助于容易地澄清错误。通过本文,我们设计了一种防止数据丢失的算法。主要受众是白盒测试人员,他们可能会在主要的源程序中遗漏基本的代码行,如索引变量、无限循环和不适当的散列代码。该算法用于减少缓冲区溢出情况下的损坏
2012-08-15 cs.CR cs.SE
Static Detection of DoS Vulnerabilities in Programs that use Regular Expressions (Extended Version)
在算法复杂性攻击中,恶意方利用算法的最坏情况行为来造成拒绝服务。一个突出的算法复杂性攻击是正则表达式拒绝服务(ReDoS),其中攻击者通过提供精心制作的输入字符串来触发匹配算法的最坏情况行为,从而利用易受攻击的正则表达式。本文提出了一种自动发现程序中的ReDoS漏洞的技术。具体来说,我们的方法自动识别程序中易受攻击的正则表达式,并确定是否可以将“邪恶”的输入字符串与易受攻击的正则表达式进行匹配。我们已经在一个名为REXPLOITER的工具中实现了我们提出的方法,并在Java Web应用程序中发现了41个可利用的安全漏洞。
2017-01-15 cs.CR cs.FL cs.PL
Human-Written vs. AI-Generated Code: A Large-Scale Study of Defects, Vulnerabilities, and Complexity
该研究基于 Python 和 Java 的 50 余万代码样本,比较人类与 ChatGPT、DeepSeek-Coder、Qwen-Coder 生成代码的缺陷、漏洞和复杂性,揭示二者质量特征差异。
2025-08-29 cs.SE
Software Vulnerability Prediction Knowledge Transferring Between Programming Languages
Ericsson Security Research(爱立信安全研究院);Vodafone(沃达丰)
开发自动化和智能化的软件漏洞检测模型一直受到研究和开发社区的极大关注。这方面最大的挑战之一是缺乏适用于所有不同程序设计语言的代码示例。在这项研究中,我们通过提出一种迁移学习技术来解决这个问题,该技术利用可用的数据集并生成一个模型来检测不同程序设计语言中的常见漏洞。我们使用C源代码样本来训练一个卷积神经网络(CNN)模型,然后,我们使用Java源代码样本来采用和评估学习的模型。我们使用来自两个基准数据集的代码样本:NIST软件保障参考数据集(SARD)和Draper VDISC数据集。实验结果表明,该模型能够检测出C和Java代码中的漏洞,平均召回率为72%.此外,我们采用可解释的人工智能来研究每个功能对所提出的模型中C和Java之间的知识转移机制的贡献。
2023-03-10 cs.AI cs.LG cs.SE
InspectJS: Leveraging Code Similarity and User-Feedback for Effective Taint Specification Inference for JavaScript
静态分析已成为检测安全漏洞的首选武器。污点分析特别是一种非常通用和强大的技术,其中安全策略以禁止流的形式表示,无论是从不受信任的输入源到敏感的接收器(在完整性策略中)还是从敏感的源到不受信任的接收器(在机密性策略中)。这种方法的吸引力在于,污染跟踪机制只需实现一次,然后可以使用不同的污染规范(即,源和汇的集合,以及使其他有问题的流无害的任何消毒器)进行参数化,以检测许多不同类型的漏洞。但是,尽管实现可伸缩的过程间静态污点跟踪的技术已经相当成熟,但制作污点规范仍然是一门艺术而不是科学,并且在实践中往往涉及大量的手动工作。过去的工作主要集中在自动化技术上,用于从库的实现或从它们在客户端代码中的使用方式来推断库的污点规范。在后者中,基于机器学习的方法已经显示出巨大的前景。在这项工作中,我们将现有的机器学习方法与GitHub的CodeQL分析框架中的手动污点建模相结合,以挖掘JavaScript库的水槽规范。我们表明,机器学习组件可以成功地推断出许多新的污点汇,要么不是手动建模的一部分,要么由于分析不完整而未被检测到。此外,我们提出了组织水槽预测使用自动排名和代码相似性指标,使分析工程师能够有效地筛选大量的预测,以确定真正的积极的技术。
2021-11-18 cs.CR cs.SE
A Match Made in Heaven? AI-driven Matching of Vulnerabilities and Security Unit Tests
Hamburg University of Technology(汉堡理工大学)
VuTeCo通过AI技术自动收集漏洞见证测试案例,提升安全单元测试的生成与匹配效率。
2026-01-22 cs.CR cs.LG cs.SE
Guiding Symbolic Execution with Static Analysis and LLMs for Vulnerability Discovery
University of California, Santa Barbara(加州大学圣塔芭芭拉分校)
SAILOR结合静态分析与LLM合成自动构建符号执行Harness,通过三个阶段发现内存安全漏洞,实验表明其在大规模代码库中显著提升漏洞检测效率。
2026-04-07 cs.CR cs.SE
SAGA: Detecting Security Vulnerabilities Using Static Aspect Analysis
提出SAGA方法,通过符号控制流图和领域特定语言定义静态切面,检测Python代码中的多种安全漏洞,在108个漏洞数据集上达到100%敏感度和99.15%特异度。
2026-07-02 cs.CR cs.SE
Automated Software Testing Starting from Static Analysis: Current State of the Art
复杂软件的大规模生产使得人工测试其安全漏洞变得不可能。自动化安全测试工具有各种各样的风格,在软件开发的各个阶段发挥作用,并针对不同类别的软件漏洞。我们有大量的自动化工具可供选择,这很好,但问题是它们的采用和认可并不突出。本研究的目的是探索现有技术的可能性,同时也通过探索安全测试工具和相关技术的未来来拓宽视野。
2023-01-15 cs.SE
Assessing the Cross-Version Applicability of Java Library Vulnerability Exploits
The State Key Laboratory of Blockchain and Data Security, Zhejiang University(浙江大学区块链与数据安全国家重点实验室);Queen’s University(女王大学)
本文通过大规模实证研究探讨披露的Java库漏洞利用在不同版本间的泛化能力,构建包含259个漏洞利用的数据库,验证漏洞利用在不同版本间的适用性,并提出10种迁移策略以提升召回率。
2026-07-31 cs.CR cs.SE
Impact assessment for vulnerabilities in open-source software libraries
针对开源软件库漏洞影响评估依赖专家、成本高且易错的问题,本文提出一种与漏洞类型和编程语言无关的实用方法,并通过 Java 概念验证和案例研究展示其可即时评估应用是否受影响。
2015-04-21 cs.CR cs.SE
CONTRACTFIX: A Framework for Automatically Fixing Vulnerabilities in Smart Contracts
针对智能合约漏洞修复人工成本高的问题,提出通用框架ContractFix,通过多工具集成识别漏洞、模板化生成补丁并验证,可修复94%的已检测漏洞且保留合约预期行为。
2023-07-22 cs.SE
Static Exploration of Taint-Style Vulnerabilities Found by Fuzzing
污点类型的漏洞包括大多数模糊发现的程序故障。这些漏洞通常表现为受污染的程序输入导致的内存访问违规。尽管模糊器已经帮助发现了大多数软件中的污点类型的漏洞,但它们受限于(i)测试覆盖范围;(ii)可模糊测试用例的可用性。因此,单独的模糊化不能提供所有污染类型的漏洞都已被发现的高度保证。在本文中,我们使用静态模板匹配找到模糊发现漏洞的递归。为了弥补模板匹配固有的不完整性,我们实现了一个简单而有效的匹配排名算法,使用测试覆盖率数据集中注意力在那些匹配,包括未经测试的代码。我们使用Clang/LLVM编译器工具链对我们的方法进行原型设计,并将其与afl-fuzzz(一种现代覆盖率引导模糊器)结合使用。使用案例研究进行的开放vSwitch代码库,我们表明,我们的原型发现角落的情况下,缺乏一个模糊的测试工具的模块。我们的工作表明,静态分析可以有效地补充模糊测试,是一个有用的除了安全评估工具集。此外,我们的技术承诺提高程序分析和测试的有效性,并作为一个混合漏洞发现框架的构建块。
2017-06-01 cs.CR cs.PL cs.SE
Understanding and Detecting Annotation-Induced Faults of Static Analyzers
本文首次系统研究静态分析器中的注解诱发故障,分析六个主流工具的246个问题并提出检测修复指南,同时开发AnnaTester框架发现43个新故障,其中20个已修复。
2024-02-22 cs.SE
Advanced Vulnerability Scanning for Open Source Software: Detection and Mitigation of Log4j Vulnerabilities
University of Montana(蒙大拿大学)
本研究开发了高级Log4j扫描工具,通过自动化扫描和持续监控,提高漏洞检测准确性,减少误报,提升开源软件安全性。
2026-01-01 cs.SE