Java Cryptography Uses in the Wild
[背景]先前的研究表明,开发人员通常会滥用加密API。[Aim]我们已经进行了一项探索性研究,以了解如何在开源Java项目中使用加密API,存在哪些类型的误用,以及为什么开发人员会犯这样的错误。[方法]使用静态分析工具对数百个依赖Java密码体系结构的开源Java项目进行分析,并对其中一半的分析结果进行人工检查,以评估工具的结果。我们还通过在每个项目的GitHub存储库上创建一个问题来联系这些项目的维护人员,并与开发人员讨论了误用问题。[结果]我们了解到85%的密码学API被滥用,然而,并不是每一次滥用都有严重的后果。开发人员的反馈显示,加密API文档中的安全警告很少,开发人员可能会忽略源自第三方代码的误用,并且应该考虑使用加密API的上下文。[结论]我们得出结论,使用Crypto API对开发人员来说仍然存在问题,但盲目地指责他们滥用可能会导致错误的结论。
2020-09-02 cs.CR cs.SE
GitHub Considered Harmful? Analyzing Open-Source Projects for the Automatic Generation of Cryptographic API Call Sequences
Hamburg University of Technology(汉堡工业大学)
GitHub是一个流行的代码示例数据存储库。它一直被用于训练几个基于AI的工具来自动生成代码。然而,这些工具在正确演示加密API使用方面的有效性尚未得到彻底评估。在本文中,我们调查了滥用的程度和严重性,特别是由GitHub中不正确的加密API调用序列引起的滥用。我们还分析了GitHub数据对训练基于学习的模型的适用性,以生成正确的加密API调用序列。为此,我们手动提取并分析了来自GitHub的调用序列。使用这些数据,我们扩展了现有的基于学习的模型DeepAPI,以创建两个特定于安全的模型,为给定的自然语言(NL)描述生成加密API调用序列。我们的研究结果表明,在使用GitHub等数据源来训练生成代码的模型时,不要忽视API调用序列中的误用。
2022-11-24 cs.CR cs.LG cs.SE
Usable Security for an IoT OS: Integrating the Zoo of Embedded Crypto Components Below a Common API
物联网设备在支持加密的硬件方面存在很大差异,从没有硬件支持到支持包括受保护密钥存储在内的众多操作的强大加速器。操作系统应该提供对这些异构硬件特征的统一访问,这在资源受限的IoT中是一个特殊的挑战。有效的安全性依赖于加密接口的可用性。一个深思熟虑的API设计是具有挑战性的,它有利于重用这样的接口,并广泛分享编程嵌入式安全的知识。在本文中,我们将一个新兴的加密接口集成到物联网操作系统RIOT的可用系统级调用中,该操作系统在240多个平台上运行。此接口支持基于ID的密钥处理,以访问受保护存储中的密钥材料,而不会将其暴露给任何人。我们的设计预见了所有可用变体的硬件加速;我们的实现通过统一接口集成了各种加密硬件和软件后端。我们的性能测量表明,与单独的加密操作相比,具有集成密钥管理的统一API的开销可以忽略不计。我们的方法增强了物联网中加密支持的可用性、可移植性和灵活性。
2022-08-24 cs.CR
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
Contextualizing Sink Knowledge for Java Vulnerability Discovery
Georgia Institute of Technology(佐治亚理工学院);Samsung Research(三星研究院);University of Waterloo(滑铁卢大学)
GONDAR框架通过利用sink API语义进行针对性漏洞发现,通过CWE扫描和LLM静态过滤识别可利用的sink调用点,并通过探索和利用代理协作发现更多漏洞。
2026-04-19 cs.CR
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
Deserialization Gadget Chains are not a Pathological Problem in Android:an In-Depth Study of Java Gadget Chains in AOSP
针对Android平台反序列化gadget链研究空白,本文设计高效检测工具,在Android SDK及第三方库中未发现安全关键gadget链,挑战Java反序列化gadget链普遍问题的观点。
2025-02-12 cs.CR
From Retrieved Evidence to Security Outcomes: A Data-Driven Analysis of Java Security API Misuse in LLM-Generated Code
School of Computer Science University of Auckland Auckland, New Zealand
本研究复制并扩展了Mousavi等人的工作,评估GPT-5.5和Llama-3.3-70B-Instruct在Java安全API(JCA和JSSE)使用中的误用情况,发现外部安全知识能显著改善但效果依赖模型,且误用问题仍未消除。
2026-10-04 cs.CR cs.SE
Embedding Code Contexts for Cryptographic API Suggestion:New Methodologies and Comparisons
Virginia Tech(弗吉尼亚理工大学);Microsoft Research(微软研究院)
尽管最近的研究努力,通过API推荐自动生成代码生成的愿景尚未实现。需要系统地解决API建议的准确性和表现力挑战。我们提出了一种新的基于神经网络的方法,Multi-HyLSTM的API推荐-针对密码相关的代码。Multi-HyLSTM利用程序分析来指导API嵌入和推荐。通过分析API方法的数据依赖路径,我们训练嵌入和专门的API推荐任务,准确地预测下一个API方法调用的多路径神经网络架构。我们解决了两个以前未报告的特定于程序设计语言的挑战,区分功能相似的API和捕获低频长期影响。我们的研究结果证实了我们的设计选择的有效性,包括程序分析引导的嵌入,多路径代码建议架构和低频远程增强序列学习,在前1位建议上具有高准确性。我们实现了91.41%的top-1准确率,而最先进的工具SLANG为77.44%。在对245个测试用例的分析中,与商业工具Codota相比,我们实现了88.98%的top-1推荐准确率,明显优于Codota的64.90%的准确率。我们将我们的数据和代码作为一个大型Java加密代码数据集发布。
2021-03-18 cs.AI cs.CR cs.SE
Dealing with Variability in API Misuse Specification
API是开发人员访问外部定义的服务和工具的主要机制。然而,以前的研究表明,违反API合同的API滥用是普遍的。这种滥用可能会产生有害的后果,特别是在加密库的上下文中。已经提出了各种API误用检测器来解决这个问题,包括CogniCrypt,这是最通用的检测器之一,它使用CrySL语言来指定加密API使用合同。尽管如此,现有的检测API滥用的方法并不是为了系统的重用而设计的,忽略了一个事实,即不同版本的库、不同版本的平台以及不同的建议或指南可能会在API的正确使用中引入差异。然而,很少有人知道这种可变性如何影响正确的API使用规范。本文通过分析各种可变性来源对广泛使用的Java加密库(包括JCA,Bouncy Castle和Google Tink)的影响来研究这个问题。我们的调查结果表明,新版本的API和安全标准等可变性来源会显著影响规范。然后,我们使用从我们的调查中获得的见解来激励扩展名为MetaCrySL的CrySL语言,它建立在Meta编程概念的基础上。我们通过为一系列Android版本指定使用规则来评估MetaCrySL,并说明MetaCrySL可以对我们确定的所有形式的可变性进行建模,并大大减少了正确使用加密API的规范系列的大小
2021-05-17 cs.CR cs.SE
An Investigation into Misuse of Java Security APIs by Large Language Models
University of Adelaide(阿德莱德大学);CREST(CREST机构);Cybersecurity CRC(网络安全合作研究中心);CSIRO’s Data61(澳大利亚联邦科学与工业研究组织数据61部门);Queensland University of Technology(昆士兰科技大学)
本文通过 5 个安全 API、48 个任务及每任务 30 次尝试,评估 ChatGPT 生成 Java 安全 API 代码的可信度,发现约 70% 实例存在误用。
2024-04-04 cs.CL cs.CR cs.CY
From base cases to backdoors: An Empirical Study of Unnatural Crypto-API Misuse
William & Mary(威廉与玛丽学院)
本研究通过分析20,508个Android应用中的140,431个加密API调用,首次大规模刻画非自然加密API误用,提出复杂度度量分层采样5,704个调用进行定性分析,形成两个分类法及17项发现,揭示现有工具局限并给出四项未来工作建议。
2025-10-15 cs.CR
Cryptoscope: Analyzing cryptographic usages in modern software
本文介绍代码扫描工具Cryptoscope,利用密码领域知识和编译器技术静态分析源码,构建可查询的密码资产清单,并检测漏洞,在CamBench上检测出15个弱点中的11个,达到最先进性能。
2025-03-25 cs.CR
Towards the Detection of Malicious Java Packages
开源软件供应链攻击旨在通过毒害开源软件包来感染下游用户。消费这种工件的常见方式是通过包存储库,并且正在研究开发检测这种攻击的审查策略。尽管Java生态系统很受欢迎,但在供应链攻击的背景下,它是一个较少探索的生态系统。在本文中,我们提出了恶意行为的指标,可以通过分析Java字节码静态观察。然后,我们评估这些指标及其组合在检测恶意代码注入时的表现。我们通过将三个来自真实世界示例的恶意有效负载注入libraries.io中十大最受欢迎的Java库来做到这一点。我们发现,分析常量池中的字符串和字节码指令中的敏感API有助于通过显着减少信息来检测恶意Java包,从而使手动分类成为可能。
2022-10-08 cs.CR
JavaVulBench: A Java Vulnerability Benchmark with Realistic Splits, a Unified Multi-Backend Harness, and a Leakage-Aware Evaluation Mode
University Of Szeged(塞格德大学)
发布JavaVulBench用于Java漏洞检测,含约30600个Java方法的数据集,有多种分割策略,框架为三个后端家族提供统一模式,可在相同条件下评估多个检测器,还提供预训练污染审计。
2026-07-07 cs.AI cs.CR
To Fix or Not to Fix: A Critical Study of Crypto-misuses in the Wild
最近的研究表明,使用加密API的Android应用程序中有87%到96%存在可能导致安全漏洞的滥用。由于以前的研究没有对结果的有效性和严重性进行定性检查,我们的目标是更深入地了解结果。我们分析了一组936个开源Java应用程序的加密滥用。我们的研究表明,88.10%的分析应用程序未能安全地使用加密API。通过对随机样本的手动分析,我们对有效的误报有了新的认识。例如,频繁误用的JCA类MessageDigest的每四次误用都是一次有效的误报,因为它发生在非安全上下文中。由于我们希望更深入地了解这些滥用的安全影响,我们为加密API滥用创建了一个广泛的漏洞模型。我们的模型包括以前未讨论的攻击,如DoS攻击的加密API的上下文中。该模型显示,近一半的滥用是高度严重的,例如,硬编码凭证和潜在的中间人攻击
2023-03-24 cs.CR cs.SE
A Java Data Security Framework (JDSF) and its Case Studies
我们提出的东西,我们称之为机密性,完整性和身份验证子框架,这是一个更一般的Java数据安全框架(JDSF)的一部分,旨在支持与数据安全(机密性,源身份验证,完整性和SQL随机化)的各个方面。JDSF最初是在2007年设计的,用于MARF和HSQLDB这两个用例,以允许各种安全方面及其泛化的插件式实现和验证。JDSF项目从两个项目中的数据安全的角度探讨了安全数据存储相关的问题。考虑了各种常见的安全方面和任务,以提取一系列可能的参数,这些方面需要设计一个可扩展的框架API及其实现。正在解决的一个特殊挑战是将不同的方法和算法聚合到一组通用的Java API中,以覆盖所有或至少是最常见的方面,同时保持框架尽可能简单。作为框架的一部分,我们提供了上述子框架的API,以允许MARF和HSQLDB数据库的机密性、完整性和身份验证方面的通用算法实现。与此同时,我们对数据和数据库安全方面的相关工作和文献进行了详细的概述,我们认为这些工作和文献是设计JDSF的可能输入。
2016-03-31 cs.CR cs.SE
"MCP Does Not Stand for Misuse Cryptography Protocol": Uncovering Cryptographic Misuse in Model Context Protocol at Scale
Shandong University(山东大学);Nanjing University(南京大学)
研究提出MICRYSCOPE框架,通过跨语言中间表示、混合依赖分析和基于污点的检测器,揭示MCP中密码学误用问题,并识别出大量存在安全漏洞的服务器实例。
2025-12-03 cs.CR
Mutation-based Evaluation of Cryptographic API Misuse Detectors
Bellini College of AI, Cybersecurity, and Computing, University of South Florida(南佛罗里达大学贝利尼人工智能、网络安全与计算学院);Computer Science Department, William & Mary(威廉玛丽大学计算机科学系);Department of Computer Science, University of Central Florida(中佛罗里达大学计算机科学系)
本文提出MASC框架,通过突变测试系统评估密码API误用检测器的有效性,发现多个未记录缺陷,揭示了不同来源的检测器均受其影响。
2026-02-03 cs.CR cs.SE
An AI Approach to Verified Production Cryptographic Libraries
Stanford University(斯坦福大学);University of North Carolina at Chapel Hill(北卡罗来纳大学教堂山分校);VMware Research by Broadcom(博通旗下VMware研究院);Amherst College(阿默斯特学院)
本文提出基于AI的CryptoProver系统,可从API合约合成内部规范与Verus验证的证明,成功验证了支撑Signal等系统的curve25519-dalek和RustCrypto的chacha20实现,遵循信任优先设计原则。
2026-10-19 cs.AI cs.CR
Python Crypto Misuses in the Wild
背景:先前的研究表明,高达99.59%的使用加密API的Java应用程序至少滥用过一次API。然而,这些研究都是在Java和C上进行的,而对其他语言的实证研究则缺失。例如,一项针对Python中加密任务的受控用户研究表明,68.5%的专业开发人员为加密任务编写了安全的解决方案。目的:为了了解这种观察是否适用于现实世界的代码,我们对Python中的加密误用进行了研究。方法:我们开发了一个静态分析工具,涵盖了5种不同Python加密API的常见误用。通过这项分析,我们分析了来自GitHub的895个流行Python项目和51个嵌入式设备的MicroPython项目。此外,我们将我们的结果与以前的研究结果进行了比较。结果:我们的分析显示,52.26%的Python项目至少有一个误用。此外,一些Python加密库API设计可以帮助开发人员避免滥用加密函数,这在使用Java和C代码进行的研究中更为常见。结论:我们得出结论,我们可以看到良好的API设计对Python应用程序的加密滥用产生了积极的影响。此外,我们对MicroPython项目的分析揭示了混合分析的重要性。
2021-09-02 cs.CR cs.SE
Microwalk-CI: Practical Side-Channel Analysis for JavaScript Applications
针对 JavaScript 密码学库缺乏易用侧信道检测工具的问题,本文提出 Microwalk-CI 框架,支持泄漏定位量化、执行轨迹生成与 CI 集成,并在多个流行库中发现严重泄漏。
2022-08-31 cs.CR cs.SE
CognixShield: PoV-Guided Vulnerable API Usage Detection in Large Codebases via LLMs
Virginia Tech(弗吉尼亚理工大学);Nanyang Technological University(南洋理工大学);Wake Forest University(维克森林大学)
CognixShield是一款LLM驱动的框架,通过保留语义的AST碎片化、感知漏洞的多智能体RAG、PoV引导的语义推理三个核心组件,在57个Java应用上实现了优于现有工具的漏洞API使用检测性能。
2026-08-11 cs.CR cs.SE
Beyond Static Tools: Evaluating Large Language Models for Cryptographic Misuse Detection
Ontario Tech University(安大略理工大学)
本研究全面比较了传统静态分析工具与大型语言模型在密码学API误用检测中的表现,发现GPT 4-o-mini在部分数据集上超越静态工具,并评估了LLM提供安全编码建议的实际效用。
2024-11-14 cs.CR cs.LG
Symmaries: Automatic Inference of Formal Security Summaries for Java Programs
Newcastle University(纽卡斯尔大学);OcamlPro;University of Liverpool(利物浦大学)
Symmaries通过自动化生成Java程序的安全摘要,提升静态分析工具的精度和可扩展性。
2025-12-23 cs.CR cs.FL cs.PL