Evaluation of Static Vulnerability Detection Tools with Java Cryptographic API Benchmarks

Sharmin Afrose, Ya Xiao, Sazzadur Rahaman, Barton Miller, Danfeng Daphne Yao

Research output: Contribution to journalArticlepeer-review


Several studies showed that misuses of cryptographic APIs are common in real-world code (e.g., Apache projects and Android apps). There exist several open-sourced and commercial security tools that automatically screen Java programs to detect misuses. To compare their accuracy and security guarantees, we develop two comprehensive benchmarks named CryptoAPI-Bench and Apache-Bench. CryptoAPI-Bench consists of 181 unit test cases that cover basic cases, as well as complex cases, including interprocedural, field sensitive, multiple class test cases, and path sensitive data flow of misuse cases. The benchmark also includes correct cases for testing false-positive rates. The Apache-Bench consists of 122 cryptographic cases from 10 Apache projects. We evaluate four tools, namely, SpotBugs, CryptoGuard, CrySL, and Coverity using both benchmarks. We present their performance and comparative analysis. The Apache-Bench also examines the scalability of the tools. Our benchmarks are useful for advancing state-of-the-art solutions in the space of misuse detection.

Original languageEnglish (US)
JournalIEEE Transactions on Software Engineering
StateAccepted/In press - 2022


  • Benchmark testing
  • Codes
  • Cryptographic API misuses
  • Cryptography
  • Encryption
  • Java
  • Java
  • Passwords
  • Security
  • benchmark

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'Evaluation of Static Vulnerability Detection Tools with Java Cryptographic API Benchmarks'. Together they form a unique fingerprint.

Cite this