[Review] CryptoGuard: High Precision Detection of Cryptographic Vulnerabilities in Massive-sized Java Projects
The paper designs a new architecture called CryptoGuard to detect the cryptographic API misuse.
Use 16 rules to figure out the misuses and 5 refinement methods to avoid false positive, which resulting a precision of 98.61%.
Creates a benchmark named CryptoApi-Bench with 112 unit test cases. CryptoApi-Bench contains basic intraprocedural instances, inter-procedural cases, field sensitive cases, false positive tests, and correct API uses.
Introduction:
For cryptographic API misuse detection, both static and dynamic analyses have their respective pros and cons.
Static methods do not require the execution of programs. They scale up to a large number of programs, cover a wide range of security rules, and are unlikely to have false negatives.
Dynamic methods require one to trigger and detect specific misuse symptoms at runtime. They tend to produce fewer false positives than static analysis.
API misuse mainly contain the following problems:
![[Review] CryptoGuard: High Precision Detection of Cryptographic Vulnerabilities in Massive-sized Java Projects](/blog/images/30/cover.png)
![[Review] Automatic Detection of Java Cryptographic API Misuses: Are We There Yet?](/blog/images/29/cover.png)
![[Review] PyRTFuzz: Detecting Bugs in Python Runtimes via Two-Level Collaborative Fuzzing](/blog/images/28/cover.png)
![[Review] DynSQL: Stateful Fuzzing for Database Management Systems with Complex and Valid SQL Query Generation](/blog/images/27/cover.png)
![[Review] Nuances are the Key: Unlocking ChatGPT to Find Failure-Inducing Tests with Differential Prompting](/blog/images/26/cover.png)
![[Review] Prompting Is All You Need: Automated Android Bug Replay with Large Language Models](/blog/images/25/cover.png)
![[Review] Examining Zero-Shot Vulnerability Repair with Large Language Models](/blog/images/24/cover.jpg)
![[Review] Automated Program Repair in the Era of Large Pre-trained Language Models](/blog/images/23/cover.jpg)
![[Review] Prompt Programming for Large Language Models: Beyond the Few-Shot Paradigm](/blog/images/22/cover.png)
![[Review] Large Language Models are Zero-Shot Fuzzers: Fuzzing Deep-Learning Libraries via Large Language Models](/blog/images/21/cover.jpg)
![[Review] Assisting Static Analysis with Large Language Models: A ChatGPT Experiment](/blog/images/42/cover.png)
![[Review] Detecting Missed Security Operations Through Differential Checking of Object-based Similar Paths](/blog/images/41/cover.png)
![[Review] GPTScan: Detecting Logic Vulnerabilities in Smart Contracts by Combining GPT with Program Analysis](/blog/images/40/cover.png)
![[Review] MoonShine: Optimizing OS Fuzzer Seed Selection with Trace Distillation](/blog/images/39/cover.png)
![[Review] One Simple API Can Cause Hundreds of Bugs: An Analysis of Refcounting Bugs in All Modern Linux Kernels](/blog/images/38/cover.png)