Marcel Böhme

268 Followers
94 Following
8 Posts
Max Planck Institute for Security and Privacy.
Previously https://twitter.com/mboehme_

Recent paper by MPI-SoftSec PhD student Niklas Risse. Feedback welcome!
📝 https://arxiv.org/abs/2408.12986
🧑‍💻 https://github.com/niklasrisse/TopScoreWrongExam

According to our survey of the machine learning for vulnerability detection (ML4VD) literature published in the top Software Engineering conferences, every paper in the past 5 years defines ML4VD as a binary classification problem:

Given a function, does it contain a security flaw?

In this paper, we ask whether this decision can really be made without further context and study both vulnerable and non-vulnerable functions in the most popular ML4VD datasets. A function is vulnerable if it was involved in a patch of an actual security flaw and confirmed to cause the vulnerability. It is non-vulnerable otherwise. We find that in almost all cases this decision cannot be made without further context. Vulnerable functions are often vulnerable only because a corresponding vulnerability-inducing calling context exists while non-vulnerable functions would often be vulnerable if a corresponding context existed.

But why do ML4VD techniques perform so well even though there is demonstrably not enough information in these samples? Spurious correlations: We find that high accuracy can be achieved even when only word counts are available. This shows that these datasets can be exploited to achieve high accuracy without actually detecting any security vulnerabilities.

We conclude that the current problem statement of ML4VD is ill-defined and call into question the internal validity of this growing body of work. Constructively, we call for more effective benchmarking methodologies to evaluate the true capabilities of ML4VD, propose alternative problem statements, and examine broader implications for the evaluation of machine learning and programming analysis research.

Top Score on the Wrong Exam: On Benchmarking in Machine Learning for Vulnerability Detection

According to our survey of machine learning for vulnerability detection (ML4VD), 9 in every 10 papers published in the past five years define ML4VD as a function-level binary classification problem: Given a function, does it contain a security flaw? From our experience as security researchers, faced with deciding whether a given function makes the program vulnerable to attacks, we would often first want to understand the context in which this function is called. In this paper, we study how often this decision can really be made without further context and study both vulnerable and non-vulnerable functions in the most popular ML4VD datasets. We call a function "vulnerable" if it was involved in a patch of an actual security flaw and confirmed to cause the program's vulnerability. It is "non-vulnerable" otherwise. We find that in almost all cases this decision cannot be made without further context. Vulnerable functions are often vulnerable only because a corresponding vulnerability-inducing calling context exists while non-vulnerable functions would often be vulnerable if a corresponding context existed. But why do ML4VD techniques achieve high scores even though there is demonstrably not enough information in these samples? Spurious correlations: We find that high scores can be achieved even when only word counts are available. This shows that these datasets can be exploited to achieve high scores without actually detecting any security vulnerabilities. We conclude that the prevailing problem statement of ML4VD is ill-defined and call into question the internal validity of this growing body of work. Constructively, we call for more effective benchmarking methodologies to evaluate the true capabilities of ML4VD, propose alternative problem statements, and examine broader implications for the evaluation of machine learning and programming analysis research.

arXiv.org

What kind of guarantees can our tooling & processes really provide about the security of our software systems?

Here are 9 *fundamental* challenges that are routinely exploited to attack a system despite credible assurances about its security.

Preprint: https://arxiv.org/abs/2402.01944

Feedback most welcome!

Fundamental Challenges in Cybersecurity and a Philosophy of Vulnerability-Guided Hardening

Research in cybersecurity may seem reactive, specific, ephemeral, and indeed ineffective. Despite decades of innovation in defense, even the most critical software systems turn out to be vulnerable to attacks. Time and again. Offense and defense forever on repeat. Even provable security, meant to provide an indubitable guarantee of security, does not stop attackers from finding security flaws. As we reflect on our achievements, we are left wondering: Can security be solved once and for all? In this paper, we take a philosophical perspective and develop the first theory of cybersecurity that explains what precisely and *fundamentally* prevents us from making reliable statements about the security of a software system. We substantiate each argument by demonstrating how the corresponding challenge is routinely exploited to attack a system despite credible assurances about the absence of security flaws. To make meaningful progress in the presence of these challenges, we introduce a philosophy of cybersecurity.

arXiv.org
Please share! We will hold the "Fuzzing Summer School 2024" at NUS in Singapore! We are excited to feature speakers such as Abhishek Arya, @mboehme @gannimo, Thuan Pham, and @AndreasZeller. Apply by 16 Feb 2024. https://fuzzing.comp.nus.edu.sg CC @umathur
Home

What if you could make your fuzzer ask an LLM about the correct structure and order of protocol messages as specified in hundreds of pages of RFC?

🎉 Accepted @ NDSS'24
📝 https://mpi-softsec.github.io/papers/NDSS24-chatafl.pdf
🧑‍💻 https://github.com/ChatAFLndss/ChatAFL

Led by Ruijie Meng w/ Martin Mirchev and Abhik Roychoudhury

What the Fuzz? Check out Microsoft's fuzziness and use OneFuzz in your Azure/GitHub CI/CD
https://github.com/microsoft/onefuzz

https://github.com/microsoft/onefuzz-samples

Additional resources:
https://owasp.org/www-community/Fuzzing

#security #fuzzing #azuredevops #azure

GitHub - microsoft/onefuzz: A self-hosted Fuzzing-As-A-Service platform

A self-hosted Fuzzing-As-A-Service platform. Contribute to microsoft/onefuzz development by creating an account on GitHub.

GitHub