← Neueste Arbeiten
💻 Informatik

State-inferer: LLM-Driven State Machine Extraction and Formal Verification for Secure Protocol Implementations

Dieses Paper stellt State-inferer vor, ein White-Box-Framework, das Program Slicing, Large Language Models und formale Modellprüfung integriert, um Protokoll-Zustandsautomaten präzise aus dem Quellcode zu extrahieren und zu verifizieren, wobei eine überlegene Genauigkeit auf Übergangsebene erreicht und vier zuvor unbekannte Sicherheitsanfälligkeiten in TLS-, IKEv2- und SSH-Implementierungen aufgedeckt wurden.

Ursprüngliche Autoren: MengCheng Ju, Xi Chen, XieLi Zhang, Mingliang Zhu, Guanping Zhang, Dongliang Zhao, ChunXiang Gu

Veröffentlicht 2026-11-09
📖 6 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: MengCheng Ju, Xi Chen, XieLi Zhang, Mingliang Zhu, Guanping Zhang, Dongliang Zhao, ChunXiang Gu

Originalarbeit lizenziert unter CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). ✨ Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Die Sicherheit der digitalen Welt beruht maßgeblich auf den unsichtbaren Regeln, die regeln, wie Computer miteinander kommunizieren. Diese Regeln, bekannt als Netzwerkprotokolle, sind darauf ausgelegt, sicherzustellen, dass Daten sicher von einem Sender zu einem Empfänger gelangen, indem Identitäten verifiziert und Geheimnisse bewahrt werden. Im Kern funktionieren diese Protokolle wie ein strenges Skript: Ein Computer muss sich in einem bestimmten Zustand befinden, eine bestimmte Nachricht empfangen und dann in einen neuen Zustand übergehen, bevor er fortfahren kann. Wenn ein Computer einen Schritt überspringt oder eine Nachricht akzeptiert, während er sich im falschen Zustand befindet, kann das gesamte System kompromittiert werden, was es Angreifern ermöglicht, Sicherheitsprüfungen zu umgehen oder sensible Informationen zu stehlen. Seit Jahrzehnten versuchen Sicherheitsexperten zu verifizieren, dass der tatsächliche Code, der auf Servern läuft, diesem Skript perfekt folgt. Doch der Code ist oft unordentlich, voller verborgener Variablen und komplexer Logik, mit der Standard-Testing-Tools Schwierigkeiten haben, sie abzubilden. Wenn das reale Verhalten eines Programms von seinem geschriebenen Design abweicht, können gefährliche Schwachstellen unbemerkt bleiben und darauf warten, ausgenutzt zu werden.

Ein Team von Forschern der PLA Information Engineering University hat eine neue Methode entwickelt, um dieses Problem zu lösen, und ein Tool namens State-inferer geschaffen, das als Übersetzer zwischen komplexem Computercode und den logischen Regeln fungiert, denen er folgen soll. Anstatt zu versuchen, den gesamten Code auf einmal zu lesen oder zu erraten, wie ein Programm reagiert, indem man ihm zufällige Nachrichten sendet, zerlegt dieses Tool den Code in winzige, handhabbare Stücke. Es verwendet eine Technik namens Program Slicing, um exakt nachzuverfolgen, wie sich ein spezifisches Stück Daten verändert, während es sich durch die Software bewegt, und isoliert so die präzise Logik, die dazu führt, dass ein Computer seinen Zustand wechselt. Dieser Prozess ist vergleichbar mit dem Verfolgen eines einzelnen Fadens durch ein verheddertes Wollknäuel, um genau zu sehen, wohin er führt, während der Rest des Chaos ignoriert wird. Durch die Konzentration auf diese spezifischen Fäden kann das System die exakte Sequenz der Ereignisse rekonstruieren, der ein Programm folgt, einschließlich der verborgenen internen Bedingungen, die Standard-Tools oft übersehen.

Die Forscher speisten diese rekonstruierten Sequenzen anschließend in ein Large Language Model ein, eine Art von künstlicher Intelligenz, die darauf trainiert ist, Code zu verstehen und darüber zu schlussfolgern. Im Gegensatz zu früheren Versuchen, bei denen die KI lediglich gebeten wurde, große Textblöcke zu lesen, stellte dieses System der KI für jeden einzelnen Übergang im Protokoll ein kleines, fokussiertes Codefragment zur Verfügung. Dies ermöglichte es der KI, den vollständigen Kontext eines Zustandswechsels zu erfassen, ohne von irrelevanten Informationen überwältigt zu werden. Die KI erstellte daraufhin eine vollständige Karte des Programmverhaltens und notierte dabei nicht nur, welche Nachrichten einen Wechsel auslösten, sondern auch, welche internen Variablen erfüllt sein mussten, damit dieser Wechsel stattfand. Schließlich nutzten die Forscher eine Engine zur formalen Verifikation, um diese Karte gegen die offiziellen Sicherheitsregeln zu prüfen. Diese Engine agiert wie ein strenger Auditor, der systematisch jeden möglichen Pfad prüft, den das Programm nehmen könnte, um festzustellen, ob es jemals gegen die Regeln verstödet, wie etwa das Senden von Daten, bevor eine sichere Verbindung vollständig hergestellt wurde.

Als die Methode an sieben verschiedenen Open-Source-Implementierungen bedeutender Sicherheitsprotokolle, darunter TLS, IKEv2 und SSH, getestet wurde, erwies sie sich als bemerkenswert genau. Sie identifizierte das Verhalten des Codes mit einer Präzision von 95,2 Prozent und übertraf damit deutlich die besten existierenden Tools, die lediglich etwa 78,9 Prozent erreichten. Der Unterschied war nicht bloß eine Frage geringfügiger Fehler; das neue Tool konnte komplexe interne Logik erfolgreich erfassen, die andere Methoden völlig übersah, wie etwa Übergänge, die durch interne Timer oder Ressourcenprüfungen statt durch externe Nachrichten gesteuert wurden. Tatsächlich stellten die Forscher fest, dass ältere Methoden oft fast die Hälfte der kritischen Übergänge nicht erkannten, da sie auf einer vereinfachten Sichtweise des Programms basierten, die diese internen Details ignorierte. Durch die Erfassung des vollständigen Bildes konnte das neue Tool vier bisher unbekannte Schwachstellen in der Software aufdecken. Diese Mängel, die zuvor noch nie entdeckt worden waren, waren schwerwiegend genug, um offizielle Sicherheitskennungen zu erhalten und den Software-Maintainern zur Behebung gemeldet zu werden.

Eine der bedeutendsten Erkenntnisse war, dass die Mängel nicht nur theoretische Möglichkeiten, sondern reale, ausnutzbare Schwachstellen waren. In einem Fall entdeckte das Tool, dass ein Server getäuscht werden konnte, einen kritischen Sicherheitsbericht zu akzeptieren, bevor er den notwendigen Schlüsselaustausch abgeschlossen hatte, was effektiv die Authentifizierung umging. In einem anderen Fall erlaubte eine fehlende Prüfung dem Server, einen endlosen Strom von Nachrichten zu verarbeiten, was potenziell die Ressourcen erschöpfte. Diese Entdeckungen verdeutlichen eine kritische Lücke in der aktuellen Softwareanalyse: Nur auf Input und Output zu schauen, reicht nicht aus, um zu verstehen, wie ein Programm wirklich arbeitet. Die Forscher demonstrierten, dass es durch die Kombination von präziser Codeanalyse mit der Denkfähigkeit künstlicher Intelligenz möglich ist, ein vollständiges und exaktes Modell der internen Logik eines Programms zu erstellen. Dieser Ansatz erfordert weder eine Modifikation der Software noch dass die Forscher jeden Zeile des Codes manuell nachverfolgen müssen, was ihn zu einem skalierbaren Weg zur Prüfung der komplexen Systeme macht, die unsere digitale Infrastruktur schützen.

Die Studie befasste sich auch mit den Einschränkungen früherer Ansätze, die auf der Abfrage von Code basierend auf Textähnlichkeit beruhten. Diese Methoden scheiterten oft, weil sie nicht in der Lage waren, die Verbindungen zwischen verschiedenen Funktionen herzustellen, die zusammenwirkten, um den Zustand eines Programms zu ändern. Das neue System hingegen folgt dem tatsächlichen Daten- und Kontrollfluss und stellt so sicher, dass der der künstlichen Intelligenz bereitgestellte Kontext vollständig und vernetzt ist. Dies ermöglichte es dem System, Sicherheitsprüfungen zu generieren, die speziell auf die Variablen und die Logik jeder einzigartigen Implementierung zugeschnitten waren, anstatt ein generisches Template anzuwenden, das möglicherweise ins Leere greift. Das Ergebnis ist ein Framework, das in der Lage ist, sich an die Besonderheiten verschiedener Codierungsstile anzupassen und dennoch ein zuverlässiges Modell des Systemverhaltens zu produzieren.

Letztlich stellt diese Arbeit eine Verschiebung in der Art und Weise dar, wie wir Sicherheit in der Software angehen. Sie bewegt sich weg von der Vorstellung, dass wir entweder jede Zeile Code manuell inspizieren oder uns auf Black-Box-Testing verlassen müssen, das nur die Oberfläche wahrnehmen kann. Stattdessen bietet sie einen Weg, in die Maschine hineinzusehen und genau zu verstehen, wie sie denkt und reagiert. Die Forscher fanden heraus, dass sie, indem sie den Code als eine Reihe logischer Schritte behandelten, die geschnitten, analysiert und verifiziert werden können, Fehler finden konnten, die jahrelang verborgen geblieben waren. Während das Tool an Open-Source-Projekten getestet wurde, weist die Methode einen Weg auf, um die Vielzahl proprietärer Systeme zu sichern, die das Internet betreiben. Die Fähigkeit, die State Machines komplexer Protokolle automatisch zu extrahieren und zu verifizieren, bedeutet, dass die Sicherheit gründlicher und schneller als je zuvor überprüft werden kann, was potenziell die Arten von Sicherheitsverletzungen verhindern könnte, die die digitale Welt seit Jahrzehnten plagen. Die Ergebnisse bestätigen, dass die Lücke zwischen dem, was ein Protokoll tun soll, und dem, was es tatsächlich tut, der Ort der Gefahr ist, und dass die Schließung dieser Lücke einen tieferen, präziseren Blick auf den Code selbst erfordert.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →