← Neueste Arbeiten
💬 NLP

Detecting Ladder Logic Bombs in IEC 61131-3 PLC Programs using ESBMC-PLC+: A Formal Verification Approach with Trigger Synthesis

Dieses Paper präsentiert ESBMC-LLB, ein Framework zur formalen Verifizierung, das ESBMC-PLC+ erweitert, um Ladder-Logic-Bomben in IEC 61131-3 PLC-Programmen zu detektieren, indem es verborgene Funktionsblock-Logiken offenlegt und Trigger synthetisiert, wodurch nahezu perfekte Detektionsraten und Robustheit gegenüber adaptiven Triggern auf öffentlichen Datensätzen erreicht wird, bei denen bestehende Methoden versagen.

Ursprüngliche Autoren: Pierre Dantas, Lucas Cordeiro, Waldir Junior

Veröffentlicht 2026-07-10
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Pierre Dantas, Lucas Cordeiro, Waldir Junior

Originalarbeit lizenziert unter CC BY 4.0 (http://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

Stellen Sie sich eine speicherprogrammierbare Steuerung (SPS) als das Gehirn einer Fabrik vor, die ständig eine Schleife durchläuft: Sie betrachtet Sensoren, trifft eine Entscheidung, bewegt eine Maschine und beginnt dann in einem Bruchteil einer Sekunde von vorn. Stellen Sie sich nun vor, ein hinterlistiger Hacker versteckt eine „Logikbombe“ in diesem Gehirn. Diese Bombe ist wie ein schlafender Drache; sie tut nichts, während die Fabrik normal läuft, aber in dem Moment, in dem eine bestimmte, verborgene Bedingung eintritt (wie etwa ein Zähler, der eine bestimmte Zahl erreicht), wacht sie auf und verursacht Chaos – entweder indem sie die Maschine einfriert, falsche Sensormesswerte liefert oder ein Ventil öffnet, wenn es eigentlich geschlossen bleiben sollte.

Lange Zeit hatten die Werkzeuge, mit denen man diese Fabrikgehirne überprüfte, einen blinden Fleck. Sie betrachteten den Hauptcode, ignorierten aber die „Funktionsblöcke“ – die wie kleine Unterroutinen oder Miniprogramme innerhalb des Hauptcodes sind. Das Papier erklärt, dass die schlafenden Drachen (die Bomben) innerhalb dieser ignorierten Funktionsblöcke versteckt waren. Da die alten Werkzeuge diese Blöcke aus ihrer Sicht fallen ließen, sahen der bösartige Code und der sichere Code für den Prüfer identisch aus. Es war, als versuche man, einen Spion in einer Menge zu finden, indem man nur auf die Gesichter der Menschen achtet, während der Spion sich in einem Mantel versteckt, den der Prüfer gar nicht erst betrachtet hat.

Die große Lösung: Den Mantel öffnen
Die Autoren Pierre Dantas, Lucas Cordeiro und Waldir Junior entwickelten eine neue Methode namens ESBMC-LLB. Ihr Haupttrick war einfach, aber kraftvoll: Sie ließen den Prüfer in die Funktionsblöcke hineinschauen. Sie fügten eine „Translatorebene“ hinzu, die den verborgenen Code innerhalb dieser Blöcke nimmt und ihn flach auslegt, damit der Prüfer ihn sehen kann.

Sobsten wenn der Code sichtbar ist, nutzen sie zwei clevere Tricks, um die Bombe zu fangen:

  1. Die Stoppuhr (Scan-Watchdog): Wenn die Bombe versucht, die Maschine einzufrieren, indem sie das Programm in einer Endlosschleife laufen lässt, agiert der Prüfer wie ein strenger Schiedsrichter mit einer Stoppuhr. Er sagt: „Du hast 100 Schritte, um diese Aufgabe zu erledigen. Wenn du drüber bist, bist du raus!“ Wenn die Bombe versucht, ewig zu loopen, erwischt der Prüfer sie sofort.
  2. Der Drahtprüfer (Output Wiring): Wenn die Bombe versucht, über einen Sensor zu lügen oder eine Maschine zum Bewegen zu zwingen, verbindet der Prüfer die Drähte vom verborgenen Code mit dem Hauptsystem. Wenn der verborgene Code versucht, eine „Lüge“ zu senden (wie etwa ein Ventil zu öffnen, wenn es das nicht tun sollte), sieht der Prüfer, wie dies gegen die Sicherheitsregeln verstößt.

Das magische Ergebnis: Den „Geheimcode“ finden
Hier ist der coolste Teil. Wenn der Prüfer eine Bombe findet, sagt er nicht einfach nur „Fehler!“. Er gibt tatsächlich den exakten Auslöser aus. Es ist, als würde der Prüfer sagen: „Ich habe den Drachen gefunden, und hier ist das Geheimwort, das ihn weckt: ‚Wenn der Zähler 12 erreicht‘.“ Dies wird als „Trigger-Synthese“ bezeichnet.

Wie gut hat es funktioniert?
Das Team testete ihre Methode an mehreren Datensätzen, und die Ergebnisse waren beeindruckend, aber mit wichtigen Einschränkungen:

  • Der öffentliche Test: Auf einem berühmten Datensatz von 60 Programmen (30 sichere, 30 mit Bomben) fand ihre Methode alle 30 Bomben. Sie fing jede einzelne und fand für jede den geheimen Auslöser. Sie bewies auch, dass die 29 sicheren Programme wirklich sicher waren. Ein sicheres Programm war so komplex, dass der Prüfer sich nicht zu 100 % sicher war (er sagte „Ich weiß es nicht“ statt „Sicher“), aber er beschuldigte es nicht fälschlicherweise.
  • Der Test mit dem „schlauen“ Hacker: Sie versuchten, ihr System auszutricksen, indem sie den Auslöser in mathematischen Rätseln versteckten (indem sie beispielsweise eine komplexe Berechnung anstelle einer einfachen Zahl verwendeten). Alte Werkzeuge, die nur nach Mustern suchen, übersahen diese Tricks. ESBMC-LLB hingegen verstand die Bedeutung der Mathematik und fing alle 5 dieser trickreichen Versionen ab.
  • Der große Skalierungstest: Sie generierten 310 Programme (155 sichere, 155 mit Bomben), um die Geschwindigkeit zu testen. Das System fing 100 % der Bomben in durchschnittlich 70 Millisekunden (das ist schneller als ein Blinzeln!).
  • Der Realwelt-Test im Wasserwerk: Sie testeten dies an einer realen Simulation einer Wasseraufbereitungsanlage (SWaT-Korpus).
    • Bei der älteren Version der Daten (mit einfachen mathematischen Triggern) fanden sie 149 von 150 Bomben (99 %) bei null Fehlalarmen.
    • Die Grenze: Als sie eine neuere Version mit sehr komplexer, nicht-linearer Mathematik testeten (wie das wiederholte Multiplizieren einer Zahl mit sich selbst), blieb das System stecken. Die Mathematik war zu schwer für den Prüfer, um sie rechtzeitig zu lösen, und die Erkennungsrate sank auf 49 %. Das Papier ist sich hier sehr klar: Ihre Methode ist großartig für Standardlogik und einfache Mathematik, aber sie stößt bei komplexer, nicht-linearer Mathematik an eine Wand. In diesen spezifischen Fällen ist ein anderer Typ von Werkzeug (ein sogenannter CFG-Triage-Detektor) immer noch besser.

Was sie nicht behaupten
Die Autoren sind sehr ehrlich darüber, was ihr Werkzeug nicht kann. Sie geben explizit an, dass das Tool eine Bombe eventuell übersieht, wenn diese so konzipiert ist, dass sie ihre Aufgabe schnell erledigt (ohne ewig zu loopen) und keine spezifische Sicherheitsregel verletzt, nach der der Prüfer suchen sollte. Es ist kein Zauberstab, der jedes mögliche Übel findet; es findet die Dinge, die entweder das System einfrieren oder die Sicherheitsregeln brechen, die sie definiert haben.

Das Fazit
Dieses Papier zeigt, dass wir, indem wir einfach „den Mantel öffnen“, um in die Funktionsblöcke zu schauen, und einen smarten Prüfer verwenden, der die Bedeutung des Codes versteht, die hinterlistigen industriellen Bomben fangen können, die früher ungesehen blieben. Es findet die Bomben, sagt uns genau, wie man sie auslöst (damit wir sie stoppen können), und beweist, dass der Rest des Systems sicher ist – es sei denn, die Mathematik wird zu verrückt, in diesem Fall brauchen wir einen anderen Detektiv. Die Autoren präsentieren dies als ein leistungsstarkes neues Werkzeug, das neben bestehenden Methoden arbeitet und nicht alles ersetzt.

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 →