Ideen & Einblicke

AI-First-Entwicklung, Coding-Leitplanken und die Architektur der Entsorgbarkeit erkunden.

Meta fand 100.000 Bugs im Produktivcode mit einem Static Analyzer, der das Programm nie ausführt

Metas Infer nutzt Abstract Interpretation und Bi-Abduction, um Null-Dereferenzierungen, Memory Leaks und Race Conditions durch Schlussfolgerungen über die Code-Struktur zu finden – nicht durch Ausführung. So funktioniert es und so setzen Sie es in Ihrer eigenen Codebase ein.

Meta hat über 100.000 Bugfixes ausgeliefert, die von einem Static Analyzer gefunden wurden, bevor der Code jemals einen Nutzer erreicht hat. Das Tool heißt…

Statische Analyse kann nicht beweisen, dass Ihr Flugzeug nicht abstürzt. Sie kann etwas Nützlicheres beweisen.

Die abstrakte Interpretation überapproximiert jeden möglichen Programmzustand. Wenn eine Division durch Null in der Abstraktion unerreichbar ist, ist sie im echten Code unerreichbar. So funktioniert sie – und hier zeigen sich ihre Grenzen.

Statische Analyse kann nicht beweisen, dass ein Flugzeug nicht abstürzt. Sie kann beweisen, dass die Regelschleife Ihres Höhenmessers niemals durch Null teilt,…

Wie man beweist, dass Code keine Laufzeitfehler enthält (und warum man wahrscheinlich aufgibt, es zu versuchen)

Abstrakte Interpretation ermöglicht es, Laufzeitfehler vor der Ausführung als unmöglich zu beweisen. So funktioniert es wirklich, warum es schwierig ist und wo es in die Toolchain passt.

Die Testsuite ist grün. Der Typchecker ist grün. Man deployt. Zwei Stunden später wirft die Produktion einen bei einem Edge-Case, an den niemand gedacht hat.…

Capability-Hardware ist nicht gescheitert. Es kam 40 Jahre zu früh.

Memory Safety auf Hardware-Ebene war seit den 1970ern möglich. Hier ist, warum Capability-Architekturen immer gegen flache Speichermodelle verloren haben – und warum CHERI die Rechnung endlich ändert.

Siebzig Prozent aller CVEs sind Memory-Safety-Bugs. Buffer Overflows, Use-after-free, Double Frees. Die Art von Schwachstellen, die einem Angreifer erlauben,…

Ihre C-dependency kann Ihren gesamten Prozess zum Absturz bringen. WebAssembly kann das verhindern.

Container sind overkill, um eine einzelne C-Bibliothek zu isolieren. Kompilieren Sie sie zu WebAssembly und führen Sie sie in einer WASI-Sandbox aus – für Memory Safety, capability-basierten Dateisystemzugriff und Crash-Containment ohne Docker.

Ein einzelner Null-Pointer-Dereference innerhalb einer C-Bibliothek kann Ihre gesamte Anwendung zum Absturz bringen. Wenn diese Bibliothek Benutzereingaben…

Dein Telefon hat bereits Hardware, die Speicherverfälschung erkennt

ARM Memory Tagging Extension und GWP-ASan ermöglichen die Erkennung von Speichersicherheitsproblemen in der Produktion auf modernen mobilen Geräten. So funktionieren sie und welche Kompromisse sie erfordern.

Dein Telefon kann Speicherverfälschungen in der Produktion erkennen. Nicht mit der vollständigen Instrumentierung, die du in der CI ausführst, und nicht bei…

Buffer Overflows passieren weiterhin, weil wir sie in Software beheben

CHERI ist eine Hardware-Erweiterung, die jeden Pointer in eine bounded capability verwandelt. So stoppt es Buffer Overflows auf CPU-Ebene, was es kostet und wie man es auf echter Hardware ausprobieren kann.

Buffer overflows stehen seit zwanzig Jahren auf der CWE Top 25. Wir haben Stack Canaries, ASLR, DEP, Control-Flow Integrity und memory-safe Languages, und…

LLMs können nicht beweisen, dass Ihr Code korrekt ist, aber sie können das Boilerplate dafür schreiben

Die Cleanroom-Verifikation erfordert die Erzeugung und Erfüllung von Proof Obligations. So automatisieren LLMs die Annotation und die VC-Generierung, damit Sie sich auf die eigentlich schwierigen Beweise konzentrieren können.

Die Cleanroom-Softwareentwicklung verlangt, dass Sie die Korrektheit Ihres Codes beweisen, bevor Sie ihn kompilieren. Das klingt edel, bis Sie drei Stunden…

Cleanroom liefert 0,1 Defekte pro KLOC. Du brauchst nicht den vollen Overhead, um das zu erreichen.

Cleanroom Software Engineering senkt die Defektrate um das 100-fache, aber die vollständige Einführung erfordert separate Testteams und formale Beweise. Hier ist eine pragmatische Teilmenge, die den Großteil des Nutzens ohne den Overhead einfängt.

Cleanroom Software Engineering liefert 0,1 Defekte pro tausend Codezeilen. Der Branchendurchschnitt liegt bei 10 bis 50. Der Haken ist, dass vollständiges…