Forscher des MIT haben im März 2015 auf der Konferenz ASPLOS 2015 DIODE vorgestellt. Das Verfahren erzeugt automatisch Eingaben, die vorhandene Prüfungen passieren und anschließend gezielt Integer-Überläufe auslösen.
Gezielte Eingaben statt zufälliger Testdaten
DIODE steht für Directed Integer Overflow Discovery Engine. Das System untersucht zunächst einen Programmlauf und identifiziert Speicherzuweisungen, an denen ein Überlauf auftreten kann. Danach berechnet es mit einem Solver neue Eingaben, die den relevanten Kontrollfluss erreichen und gleichzeitig die vorgesehenen Eingabekontrollen erfüllen.
Der Ansatz richtet sich auf Fehler, die bei normalen Testdaten unauffällig bleiben. Besonders kritisch sind Überläufe an Speicherzuweisungen, wenn dadurch ein zu kleiner Speicherbereich reserviert wird und nachfolgende Schreibzugriffe außerhalb dieses Bereichs landen.
Relevanz für Tests in komplexer Software
Die Forscher prüften DIODE mit Produktionssoftware auf x86-Systemen. Für Entwicklungs- und Qualitätssicherungsteams zeigt die Arbeit, wie sich gezielte Sicherheitstests über die üblichen Eingabefälle hinaus automatisieren lassen. Bei großen Codebasen kann das helfen, seltene Fehlerpfade systematischer zu untersuchen.
Der technische Hintergrund knüpft an die Frage an, wie Software Daten verarbeitet und Rechenwerke auslastet. Ein älterer Beitrag zur CPU-Pipeline beschreibt die Grundlagen von Instruktionsausführung und Optimierung in Spielesoftware.
