Quantum computing poses a significant global threat to today's security mechanisms. As a result, security experts and public sectors have issued guidelines to help organizations migrate their software to post-quantum cryptography (PQC). Despite these efforts, there is a lack of (semi-)automatic tools to support this transition especially when software is used and deployed as binary executables. To address this gap, in this work, we first propose a set of requirements necessary for a tool to detect quantum-vulnerable software executables. Following these requirements, we introduce QED: a toolchain for Quantum-vulnerable Executable Detection. QED uses a three-phase approach to identify quantum-vulnerable dependencies in a given set of executables, from file-level to API-level, and finally, precise identification of a static trace that triggers a quantum-vulnerable API. We evaluate QED on both a synthetic dataset with four cryptography libraries and a real-world dataset with over 200 software executables. The results demonstrate that: (1) QED discerns quantum-vulnerable from quantum-safe executables with 100% accuracy in the synthetic dataset; (2) QED is practical and scalable, completing analyses on average in less than 4 seconds per real-world executable; and (3) QED reduces the manual workload required by analysts to identify quantum-vulnerable executables in the real-world dataset by more than 90%. We hope that QED can become a crucial tool to facilitate the transition to PQC, particularly for small and medium-sized businesses with limited resources.
- Papier-ID: 2409.07852
- Titel: A Toolchain for Assisting Migration of Software Executables Towards Post-Quantum Cryptography
- Autoren: Norrathep Rattanavipanon, Jakapan Suaboot, Warodom Werapun (Prince of Songkla University)
- Klassifizierung: cs.CR (Kryptographie und Sicherheit)
- Veröffentlichungsstatus: Eingereicht bei IEEE ACCESS Journal
- Papier-Link: https://arxiv.org/abs/2409.07852
Quantencomputer stellen eine erhebliche globale Bedrohung für heutige Sicherheitsmechanismen dar. Obwohl Sicherheitsexperten und der öffentliche Sektor Richtlinien zur Unterstützung von Organisationen bei der Migration von Software zur Post-Quanten-Kryptographie (PQC) veröffentlicht haben, fehlen (halb)automatisierte Werkzeuge zur Unterstützung dieser Umwandlung, insbesondere wenn Software als binäre ausführbare Dateien bereitgestellt wird. Um dieses Problem zu lösen, werden zunächst die notwendigen Anforderungen für Werkzeuge zur Erkennung quantenempfindlicher Software-Ausführbarer Dateien dargelegt. Basierend auf diesen Anforderungen wird QED eingeführt: eine Toolchain zur Erkennung quantenempfindlicher ausführbarer Dateien. QED verfolgt einen dreistufigen Ansatz zur Identifizierung quantenempfindlicher Abhängigkeiten in einer gegebenen Menge ausführbarer Dateien – von der Dateiebene bis zur API-Ebene – und identifiziert schließlich präzise statische Spuren, die quantenempfindliche APIs auslösen. Die Bewertungsergebnisse zeigen: (1) QED unterscheidet quantenempfindliche und quantensichere ausführbare Dateien mit 100% Genauigkeit auf synthetischen Datensätzen; (2) QED ist praktisch und skalierbar und analysiert durchschnittlich echte ausführbare Dateien in weniger als 4 Sekunden; (3) QED reduziert die manuelle Arbeit, die Analysten zur Identifizierung quantenempfindlicher ausführbarer Dateien benötigen, um über 90%.
Mit der rasanten Entwicklung der Quantencomputertechnologie – von 2 Qubits im Jahr 1998 bis zu über 1000 Qubits heute – prognostizieren Experten, dass großflächig funktionsfähige Quantencomputer innerhalb der nächsten zwei Jahrzehnte kommerzialisiert werden. Quantencomputer können die derzeit weit verbreiteten Kryptosysteme mit öffentlichen Schlüsseln knacken, wie RSA (benötigt 4098 logische Qubits) und Elliptische-Kurven-Kryptographie (benötigt 2330 logische Qubits).
Das globale Bewusstsein für Quantenangriffbedrohungen wächst, und Institutionen wie NIST empfehlen Organisationen, quantenreife Teams zu etablieren und sich auf die Migration von Softwaresystemen zur Post-Quanten-Kryptographie vorzubereiten. Dies umfasst:
- Erstellung kryptographischer Bestandsaufnahmen zur Bewertung der Kryptographieverwendung in der Organisation
- Risikobewertung basierend auf diesen Bestandsaufnahmen
- Mangel an speziellen Werkzeugen: Es gibt derzeit keine speziell für PQC-Migrationstasks entwickelten (halb)automatisierten Werkzeuge
- Manuelle Analysebürde: Analysten müssen sich auf verschiedene verteilte Werkzeuge und manuelle Analyse verlassen, um quantenempfindliche Softwaresysteme zu identifizieren
- Herausforderungen der Binäranalyse: Analysten haben häufig keinen Zugriff auf Quellcode und müssen PQC-Migrationen auf Basis von Programmbinärdateien durchführen
- Kostenfragen: Erfordert fortgeschrittenes Wissen in der Binäranalyse, was Budget-, Zeit- und Personalkosten erhöht
Angesichts dieser Herausforderungen, insbesondere des Ressourcenmangels bei kleinen und mittleren Unternehmen für PQC-Migrationen, zielt dieses Papier darauf ab, ein automatisiertes Werkzeug zu entwickeln, das die Arbeitslast der Analysten verringert.
- Anforderungsfestlegung: Erste systematische Formulierung von Anforderungsspezifikationen für Werkzeuge zur Unterstützung der PQC-Migration von Software-Ausführbaren Dateien
- QED-Toolchain: Entwurf und Implementierung der QED-Toolchain, die die festgelegten Anforderungen erfüllt; Open-Source-Code wurde veröffentlicht
- Empirische Validierung: Validierung der Genauigkeit und Effizienz von QED auf synthetischen und realen Datensätzen mit 100% Erkennungsrate und über 90% Reduktion der manuellen Arbeit
- Praktischer Wert: Bereitstellung eines kritischen PQC-Migrations-Hilfswerkzeugs für ressourcenbegrenzte kleine und mittlere Unternehmen
Gegeben eine Menge von Software-Ausführbaren Dateien besteht das Ziel von QED darin, quantenempfindliche (QV) ausführbare Dateien zu identifizieren. Eine Software-Ausführbare Datei wird als QV definiert, wenn und nur wenn mindestens ein möglicher Ausführungspfad zwischen ihrem Einstiegspunkt (Hauptfunktion) und einer Kryptographie-Bibliotheks-API, die einen QV-Algorithmus implementiert (wie RSA, Diffie-Hellman, Elliptische-Kurven-Digitalsignatur), existiert.
- R1 Dynamisches Linking: Muss ausführbare Dateien identifizieren können, die QV-APIs durch dynamisches Linking verwenden
- R2 Binäranalyse: Nicht abhängig von Quellcode-Verfügbarkeit
- R3 Statische Merkmale: Verwendet nur statische Merkmale, keine Laufzeit-Ausführungsverfolgung erforderlich
- R4 Skalierbarkeit: Unterstützt Analyse großer Mengen von Software-Ausführbaren Dateien in angemessener Zeit
- R5 Validität: Keine falschen Negativen, toleriert kleine Mengen falscher Positiver
QED verfolgt eine dreistufige progressive Analysearchitektur:
Ziel: Identifizierung ausführbarer Dateien mit Abhängigkeiten von QV-Kryptographie-Bibliotheken
Methode:
- Konstruktion eines Software-Abhängigkeitsgraphen G₁ = (V₁, E₁), wobei V₁ die Dateimenge und E₁ direkte Abhängigkeitsbeziehungen sind
- Entdeckung aller Abhängigkeitsbeziehungen durch Tiefensuche
- Lokalisierung von QV-Kryptographie-Bibliotheken in V₁
- Entfernung von Knoten ohne Abhängigkeitsbeziehungen zu Kryptographie-Bibliotheken
Ausgabe: Dateiebenen-Abhängigkeitspfade EV₁
Ziel: Reduktion falscher Positiver aus P1, Analyse von API-Ebenen-Abhängigkeitsbeziehungen
Methode:
- Konstruktion eines API-Abhängigkeitsgraphen G₂ = (V₂, E₂), wobei E₂ Tripel (n₁, n₂, apis) enthält
- Überprüfung, ob Vorgängerknoten Funktionsaufrufe zu QV-APIs enthalten
- Entfernung von Kanten, die keine QV-API-Aufrufe enthalten
- Einbettung von API-Ebenen-Abhängigkeitsinformationen in jede Kante
Ausgabe: Abhängigkeitspfade mit QV-API-Informationen EV₂
Ziel: Präzise Identifizierung ausführbarer Dateien, die der QV-Definition entsprechen
Methode:
- Konstruktion eines statischen Aufrufgraphen für Erreichbarkeitsanalyse
- Validierung von Ausführungspfaden vom Einstiegspunkt der ausführbaren Datei zu QV-APIs
- Unterstützung normaler und konservativer Modi
- Normaler Modus: Fehlende Ausführungsspur zeigt direkt Nicht-QV an
- Konservativer Modus: Fehlende Spuren werden als potenzielle falsche Negative behandelt
Ausgabe: Statische Ausführungsspuren EV₃
- Progressive Analysestrategie: Dreistufige Analyse von grober zu feiner Granularität, Balance zwischen Geschwindigkeit und Genauigkeit
- Nutzung von API-Namensinformationen: Erkennung von Kryptographieverwendung basierend auf API-Namensinformationen, Vermeidung falscher Negativer durch Compiler-Optimierungen
- Unterstützung dynamischen Linkings: Spezielle Behandlung von Szenarien, in denen Kryptographie-Bibliotheken durch dynamisches Linking verwendet werden
- Flexible Analysemodi: Bereitstellung normaler und konservativer Modi, die es Analysten ermöglichen, je nach Anforderungen zu wählen
- Kryptographie-Bibliotheken: OpenSSL v1.1.1, OpenSSL v3.3.1, MbedTLS v2.28.8, wolfSSL v5.7.2
- Kryptographische Primitive: SHA-512, AES-256, Diffie-Hellman, RSA, ECDSA (letztere drei sind QV)
- Direkte Abhängigkeitsmenge: 20 ausführbare Dateien (12 QV, 8 Nicht-QV)
- Indirekte Abhängigkeitsmenge: 20 ausführbare Dateien (12 QV, 8 Nicht-QV)
- Gesamt: 40 ausführbare Dateien (24 QV, 16 Nicht-QV)
- Coreutils: 109 nicht-kryptographische Software (Nicht-QV)
- UnixBench: 18 Performance-Benchmark-Tools (Nicht-QV)
- Netzwerk: 13 Netzwerk-Utility-Programme (7 QV, 6 Nicht-QV)
- tpm2-tools: 86 TPM-Funktionsimplementierungs-Tools
- Gesamt: 226 ausführbare Dateien, durchschnittliche Größe 248KB
- Echte Positivquote (TPR): Anteil korrekt identifizierter QV-Ausführbarer Dateien
- Echte Negativquote (TNR): Anteil korrekt identifizierter Nicht-QV-Ausführbarer Dateien
- Laufzeit: Für jede Analysestufe erforderliche Zeit
- Speichernutzung: Spitzenwert der RAM-Nutzung
- Reduktion manueller Arbeit: Anzahl der Dateien, die weitere manuelle Überprüfung benötigen
- Programmiersprache: Python3 (ca. 800 Codezeilen)
- Abhängigkeitsbibliotheken: pyelftools (ELF-Dateiverarbeitung), NetworkX (Graphoperationen), angr (Konstruktion statischer Aufrufgraphen)
- Experimentelle Umgebung: Ubuntu 20.04, Intel i5-8520U @ 1.6GHz, 24GB RAM
| Stufe | Direkte Abhängigkeit | Indirekte Abhängigkeit | Gesamt |
|---|
| P1 | TPR: 100%, TNR: 0% | TPR: 100%, TNR: 0% | TPR: 100%, TNR: 0% |
| P1+P2 | TPR: 100%, TNR: 100% | TPR: 100%, TNR: 0% | TPR: 100%, TNR: 50% |
| P1+P2+P3 | TPR: 100%, TNR: 100% | TPR: 100%, TNR: 100% | TPR: 100%, TNR: 100% |
- Durchschnittliche Verarbeitungszeit: Ca. 4 Sekunden pro ausführbare Datei
- Gesamtverarbeitungszeit: Ca. 15 Minuten für 226 ausführbare Dateien
- Speichernutzung: P1 und P2 ca. 180MB, P3 ca. 3-5GB
- Reduktion manueller Arbeit: Von 226 auf 20 reduziert (91,15% Reduktion)
- P1-Stufe: Schnelle vorläufige Filterung, aber hohe Falsch-Positiv-Rate
- P2-Stufe: Signifikante Reduktion falscher Positiver, besonders bei direkten Abhängigkeitsszenarien
- P3-Stufe: Weitere Verbesserung der Präzision, aber höherer Rechenaufwand
- Falsch-Negativ-Fall: curl-Programm schlägt bei der statischen Aufrufgraph-Analyse fehl, da indirekte Aufrufe (Funktionszeiger) verwendet werden
- Falsch-Positiv-Beseitigung: sftp- und scp-Programme sind mit OpenSSL verlinkt, verwenden aber nur Nicht-QV-APIs
- Progressive Analyse ist wirksam: Das dreistufige Design balanciert erfolgreich Geschwindigkeit und Genauigkeit
- Einschränkungen der statischen Analyse: Indirekte Aufrufe bleiben eine Herausforderung für die statische Analyse
- Praktizität validiert: Das Werkzeug funktioniert in realen Umgebungen gut und reduziert erheblich die manuelle Arbeit
Bestehende Werkzeuge fallen in zwei Kategorien – statisch und dynamisch:
- Statische Methoden: Basierend auf statischen Merkmalen wie Initialisierungsvektoren, Nachschlagetabellen, Assembler-Befehlssequenzen
- Dynamische Methoden: Basierend auf Laufzeitinformationen wie Schleifenstrukturen, Ein-/Ausgabebeziehungen
- Migrationsprozess: Vier-Schritte-Prozess: Diagnose → Planung → Ausführung → Wartung
- Kryptographische Agilität: Fähigkeit von Systemen, sich an verschiedene Kryptographiealgorithmen anzupassen
- Anwendungsszenarien: Kompilierte Binärdateien, externe Systemressourcen, Netzwerkkommunikationsschicht
- Spezialisiert auf Quantenempfindlichkeitserkennung
- Unterstützt dynamisches Linking
- Benötigt keine Laufzeitausführung oder schwere Symbolanalyse
- Bietet ein End-to-End-Praktikum-Werkzeug
- QED erfüllt erfolgreich alle fünf Designanforderungen (R1-R5)
- Erreicht 100% Genauigkeit auf synthetischen Datensätzen
- Reduziert erheblich die manuelle Arbeit auf realen Datensätzen
- Das Werkzeug zeigt gute Skalierbarkeit und Praktizität
- Erkennung indirekter Aufrufe: Statische Analyse kann QV-API-Verwendung durch Funktionszeiger nicht erkennen
- Einschränkungen der Verknüpfungsmethode: Setzt voraus, dass ausführbare Dateien Kryptographie-Bibliotheken durch dynamisches Linking verwenden
- Tote-Code-Problem: Kann QV-API-Aufrufe, die niemals ausgeführt werden, als positiv kennzeichnen
- Leichte dynamische Analyse: Kombination dynamischer Analyse zur Erkennung indirekter Aufrufe
- Unterstützung statischen Linkings: Erweiterung zur Erkennung direkt implementierter oder statisch verlinkter Kryptographie-Funktionen
- Automatisiertes Patching: Erweiterung von Erkennung zu (halb)automatisiertem Patching quantenempfindlicher Verwendungen
- Problemwichtigkeit: Löst praktische Schmerzpunkte in der PQC-Migration
- Systematischer Ansatz: Vollständiger Prozess von Anforderungsanalyse bis Werkzeugimplementierung
- Technische Innovation: Dreistufige progressive Analysestrategie ist gut konzipiert
- Praktischer Wert: Open-Source-Werkzeug hat wichtigen Wert für kleine und mittlere Unternehmen
- Umfassende Experimente: Validierung mit synthetischen und realen Datensätzen ist gründlich
- Plattformbeschränkungen: Derzeit nur Linux ELF-Format unterstützt, begrenzte Erweiterbarkeit
- Sprachbeschränkungen: Hauptsächlich auf C/C++-Programme ausgerichtet
- Einschränkungen der statischen Analyse: Unzureichende Analyse indirekter Aufrufe und toter Code
- Bewertungsumfang: Teilweise Programme im realen Datensatz fehlt Ground Truth
- Akademischer Beitrag: Füllt Lücke in der PQC-Migrations-Werkzeugforschung
- Praktischer Wert: Bietet praktisches Werkzeug für organisatorische PQC-Migration
- Reproduzierbarkeit: Open-Source-Code und Datensätze unterstützen Ergebnisreplikation
- Verbreitungspotenzial: Methode ist auf andere Plattformen und Sprachen erweiterbar
- Unternehmens-PQC-Migrations-Risikobewertung
- Softwarelieferketten-Sicherheitsaudit
- Kryptographie-Abhängigkeitsanalyse
- Sicherheits-Compliance-Überprüfung
Das Papier zitiert 42 verwandte Arbeiten, die Quantencomputerentwicklung, PQC-Migrationsleitfäden, Kryptographie-Erkennungswerkzeuge, Binäranalyse und andere Bereiche wichtiger Arbeiten abdecken und eine solide theoretische Grundlage für die Forschung bieten.
Gesamtbewertung: Dieses Papier bietet eine systematische Lösung für das wichtige Problem der Post-Quanten-Kryptographie-Migration. Die QED-Toolchain ist gut konzipiert, die experimentelle Validierung ist umfassend, und sie hat wichtigen akademischen Wert und praktische Bedeutung. Obwohl es einige technische Einschränkungen gibt, leistet es wichtige Beiträge zum PQC-Migrationsbereich, besonders durch die Bereitstellung praktischer Lösungen für ressourcenbegrenzte kleine und mittlere Unternehmen.