Unsicheren Rust etwas sicherer machen: Tools zur Überprüfung unsicheren Codes, einschließlich Bibliotheken in C und C++

2024-12-17

Rusts Popularität rührt daher, dass es Speicher- und Nebenläufigkeitsfehler zur Kompilierzeit eliminiert, aber seine `unsafe`-Codeblöcke können diese Prüfungen umgehen. Dieser Artikel untersucht Tools zur Überprüfung unsicheren Rust-Codes, einschließlich Codes, der aus C- oder C++-Bibliotheken aufgerufen wird. Er stellt Runtime-Fehlererkennungstools – Sanitizers – und Miri vor, einen Interpreter, der undefiniertes Verhalten deterministisch findet. Sanitizers erkennen Speicherzugriffe außerhalb der Grenzen, Data Races und mehr, während Miri präzisere Fehlerberichte mit Code-Schnipseln liefert. Miri unterstützt jedoch derzeit keinen über FFI aus C/C++ aufgerufenen Code, daher müssen in solchen Fällen die Sanitizers des C/C++-Compilers verwendet werden. Diese Tools verbessern die Sicherheit und Zuverlässigkeit von Rust-Code, selbst beim Umgang mit `unsafe`-Code oder der Interaktion mit C/C++-Bibliotheken.

Entwicklung Speicherfehler