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.
- ID Articolo: 2409.07852
- Titolo: Una Toolchain per Assistere la Migrazione di Eseguibili Software verso la Crittografia Post-Quantistica
- Autori: Norrathep Rattanavipanon, Jakapan Suaboot, Warodom Werapun (Prince of Songkla University)
- Classificazione: cs.CR (Crittografia e Sicurezza)
- Stato di Pubblicazione: Sottomesso alla rivista IEEE ACCESS
- Link Articolo: https://arxiv.org/abs/2409.07852
L'informatica quantistica rappresenta una minaccia globale significativa per gli attuali meccanismi di sicurezza. Sebbene gli esperti di sicurezza e il settore pubblico abbiano pubblicato linee guida per assistere le organizzazioni nella migrazione del software verso la crittografia post-quantistica (PQC), mancano strumenti (semi)automatizzati che supportino questa conversione, in particolare quando il software è distribuito sotto forma di eseguibili binari. Per affrontare questo problema, il presente articolo propone innanzitutto i requisiti necessari per gli strumenti di rilevamento degli eseguibili software vulnerabili ai quantum. Sulla base di questi requisiti, viene introdotto QED: la toolchain di rilevamento degli eseguibili vulnerabili ai quantum. QED adotta un approccio a tre fasi per identificare le dipendenze vulnerabili ai quantum in un determinato insieme di eseguibili, dal livello di file al livello di API, fino all'identificazione precisa delle tracce statiche che attivano le API vulnerabili ai quantum. I risultati della valutazione mostrano che: (1) QED distingue gli eseguibili vulnerabili ai quantum da quelli sicuri con una precisione del 100% su dataset sintetici; (2) QED è pratico e scalabile, completando l'analisi di eseguibili del mondo reale in meno di 4 secondi in media; (3) QED riduce il lavoro manuale richiesto agli analisti per identificare gli eseguibili vulnerabili ai quantum di oltre il 90%.
Con il rapido sviluppo della tecnologia dell'informatica quantistica, evolvendosi da 2 qubit nel 1998 a oltre 1000 qubit oggi, gli esperti prevedono che i computer quantistici funzionali su larga scala saranno commercializzati entro i prossimi vent'anni. I computer quantistici sono in grado di decifrare i sistemi di crittografia a chiave pubblica attualmente diffusi, come RSA (che richiede 4098 qubit logici) e la crittografia a curva ellittica (che richiede 2330 qubit logici).
La consapevolezza globale della minaccia di attacchi quantistici è in aumento, e istituzioni come il NIST raccomandano alle organizzazioni di istituire team pronti per il quantum, preparandosi a migrare i sistemi software verso la crittografia post-quantistica. Questo include:
- Creazione di inventari crittografici per valutare l'uso della crittografia all'interno dell'organizzazione
- Conduzione di valutazioni dei rischi sulla base di questi inventari
- Mancanza di Strumenti Specializzati: Attualmente non esistono strumenti (semi)automatizzati appositamente progettati per assistere i compiti di migrazione verso PQC
- Onere dell'Analisi Manuale: Gli analisti devono fare affidamento su vari strumenti dispersi e analisi manuale per identificare i sistemi software vulnerabili ai quantum
- Sfide nell'Analisi Binaria: Gli analisti spesso non hanno accesso al codice sorgente e devono condurre la migrazione verso PQC basandosi sui file binari del programma
- Problemi di Costo: Richiede conoscenze avanzate di analisi binaria, aumentando i costi di budget, tempo e risorse umane
Affrontando queste sfide, in particolare il problema della mancanza di risorse per la migrazione verso PQC nelle piccole e medie imprese, il presente articolo mira a sviluppare uno strumento automatizzato per alleviare il carico di lavoro degli analisti.
- Formulazione dei Requisiti: Formulazione sistematica per la prima volta dei requisiti di specifica per gli strumenti che assistono la migrazione verso PQC degli eseguibili software
- Toolchain QED: Progettazione e implementazione della toolchain QED che soddisfa i requisiti proposti, con codice open source reso pubblico
- Verifica Empirica: Verifica dell'accuratezza e dell'efficienza di QED su dataset sintetici e del mondo reale, raggiungendo il 100% di vero positivo e riducendo il lavoro manuale di oltre il 90%
- Valore Pratico: Fornitura di uno strumento critico di assistenza alla migrazione verso PQC per le piccole e medie imprese con risorse limitate
Dato un insieme di eseguibili software, l'obiettivo di QED è identificare gli eseguibili vulnerabili ai quantum (QV). Un eseguibile software è definito come QV se e solo se esiste almeno un possibile percorso di esecuzione dal suo punto di ingresso (funzione main) a un'API di libreria crittografica che implementa algoritmi QV (come RSA, Diffie-Hellman, firma digitale a curva ellittica).
- R1 Collegamento Dinamico: Deve essere in grado di identificare gli eseguibili che utilizzano API QV attraverso il collegamento dinamico
- R2 Analisi a Livello Binario: Non dipende dalla disponibilità del codice sorgente
- R3 Caratteristiche Statiche: Utilizza solo caratteristiche statiche, senza richiedere tracce di esecuzione a runtime
- R4 Scalabilità: Supporta l'analisi di un gran numero di eseguibili software, completata in tempo ragionevole
- R5 Validità: Non produce falsi negativi, tollerando un piccolo numero di falsi positivi
QED adotta un'architettura di analisi progressiva a tre fasi:
Obiettivo: Identificare gli eseguibili che hanno relazioni di dipendenza con librerie crittografiche QV
Metodo:
- Costruire il grafo delle dipendenze software G₁ = (V₁, E₁), dove V₁ è l'insieme dei file e E₁ rappresenta le relazioni di dipendenza diretta
- Scoprire tutte le relazioni di dipendenza attraverso la ricerca in profondità
- Localizzare le librerie crittografiche QV in V₁
- Potare i nodi senza relazioni di dipendenza con le librerie crittografiche
Output: Percorsi di dipendenza a livello di file EV₁
Obiettivo: Ridurre i falsi positivi da P1, analizzando le relazioni di dipendenza a livello di API
Metodo:
- Costruire il grafo delle dipendenze API G₂ = (V₂, E₂), dove E₂ contiene triple (n₁, n₂, apis)
- Verificare se i nodi predecessori contengono chiamate di funzione a API QV
- Rimuovere i bordi che non contengono chiamate a API QV
- Incorporare informazioni di dipendenza a livello di API in ogni bordo
Output: Percorsi di dipendenza con informazioni API QV EV₂
Obiettivo: Identificare con precisione gli eseguibili che soddisfano la definizione di QV
Metodo:
- Costruire il grafo di chiamate statico per l'analisi di raggiungibilità
- Verificare i percorsi di esecuzione dal punto di ingresso dell'eseguibile alle API QV
- Supportare modalità normale e conservativa
- Modalità normale: traccia di esecuzione mancante indica direttamente non-QV
- Modalità conservativa: traccia mancante considerata come potenziale falso negativo
Output: Traccia di esecuzione statica EV₃
- Strategia di Analisi Progressiva: Analisi a tre fasi da granularità grossolana a fine, bilanciando velocità e accuratezza
- Utilizzo di Informazioni sui Nomi delle API: Rilevamento dell'uso della crittografia basato su informazioni sui nomi delle API, evitando falsi negativi causati dall'ottimizzazione del compilatore
- Supporto del Collegamento Dinamico: Gestione specializzata di scenari in cui la crittografia viene utilizzata attraverso il collegamento dinamico
- Modalità di Analisi Flessibili: Fornisce modalità normale e conservativa, consentendo agli analisti di scegliere in base alle esigenze
- Librerie Crittografiche: OpenSSL v1.1.1, OpenSSL v3.3.1, MbedTLS v2.28.8, wolfSSL v5.7.2
- Primitive Crittografiche: SHA-512, AES-256, Diffie-Hellman, RSA, ECDSA (gli ultimi tre sono QV)
- Set di Dipendenze Dirette: 20 eseguibili (12 QV, 8 non-QV)
- Set di Dipendenze Indirette: 20 eseguibili (12 QV, 8 non-QV)
- Totale: 40 eseguibili (24 QV, 16 non-QV)
- Coreutils: 109 software non-crittografici (non-QV)
- UnixBench: 18 strumenti di benchmark delle prestazioni (non-QV)
- Network: 13 programmi di strumenti di rete (7 QV, 6 non-QV)
- tpm2-tools: 86 strumenti di implementazione delle funzionalità TPM
- Totale: 226 eseguibili, dimensione media 248KB
- Tasso di Veri Positivi (TPR): Proporzione di eseguibili QV correttamente identificati
- Tasso di Veri Negativi (TNR): Proporzione di eseguibili non-QV correttamente identificati
- Tempo di Esecuzione: Tempo richiesto per l'analisi in ogni fase
- Utilizzo della Memoria: Utilizzo massimo di RAM
- Riduzione del Lavoro Manuale: Numero di file che richiedono ulteriore revisione manuale
- Linguaggio di Programmazione: Python3 (circa 800 righe di codice)
- Librerie Dipendenti: pyelftools (elaborazione file ELF), NetworkX (operazioni su grafi), angr (costruzione di grafi di chiamate statici)
- Ambiente Sperimentale: Ubuntu 20.04, Intel i5-8520U @ 1.6GHz, 24GB RAM
| Fase | Dipendenze Dirette | Dipendenze Indirette | Totale |
|---|
| 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% |
- Tempo di Elaborazione Medio: Circa 4 secondi per eseguibile
- Tempo di Elaborazione Totale: Circa 15 minuti per 226 eseguibili
- Utilizzo della Memoria: P1 e P2 circa 180MB, P3 circa 3-5GB
- Riduzione del Lavoro Manuale: Ridotto da 226 a 20 (riduzione del 91,15%)
- Fase P1: Screening preliminare veloce, ma alto tasso di falsi positivi
- Fase P2: Riduce significativamente i falsi positivi, in particolare per scenari di dipendenza diretta
- Fase P3: Migliora ulteriormente la precisione, ma con maggiore overhead computazionale
- Caso di Falso Negativo: Il programma curl fallisce nell'analisi del grafo di chiamate statico a causa dell'uso di chiamate indirette (puntatori a funzione)
- Eliminazione di Falsi Positivi: I programmi sftp e scp, sebbene collegati a OpenSSL, utilizzano solo API non-QV
- Efficacia dell'Analisi Progressiva: Il design a tre fasi bilancia con successo velocità e accuratezza
- Limitazioni dell'Analisi Statica: Le chiamate indirette rimangono una sfida per l'analisi statica
- Verifica della Praticità: Lo strumento funziona bene in ambienti reali, riducendo significativamente il lavoro manuale
Gli strumenti esistenti si dividono in due categorie: statica e dinamica:
- Metodi Statici: Basati su caratteristiche statiche come vettori di inizializzazione, tabelle di ricerca, sequenze di istruzioni assembly
- Metodi Dinamici: Basati su informazioni a runtime come strutture di ciclo, relazioni input-output
- Processo di Migrazione: Quattro fasi: diagnosi → pianificazione → esecuzione → manutenzione
- Agilità Crittografica: Capacità del sistema di adattarsi a diversi algoritmi crittografici
- Scenari di Applicazione: Binari compilati, asset di sistemi esterni, livello di comunicazione di rete
- Focalizzato specificamente sul rilevamento della vulnerabilità quantistica
- Supporta scenari di collegamento dinamico
- Non richiede esecuzione a runtime o analisi simbolica pesante
- Fornisce uno strumento end-to-end pratico
- QED soddisfa con successo tutti e cinque i requisiti di progettazione (R1-R5)
- Raggiunge il 100% di accuratezza su dataset sintetici
- Riduce significativamente il lavoro manuale su dataset del mondo reale
- Lo strumento dimostra buona scalabilità e praticità
- Rilevamento di Chiamate Indirette: L'analisi statica non può rilevare l'uso di API QV attraverso puntatori a funzione
- Restrizioni sul Modo di Collegamento: Presuppone che gli eseguibili utilizzino librerie crittografiche attraverso il collegamento dinamico
- Problema del Codice Morto: Potrebbe contrassegnare come positivi i richiami di API QV che non vengono mai eseguiti
- Analisi Dinamica Leggera: Combinare l'analisi dinamica per rilevare le chiamate indirette
- Supporto del Collegamento Statico: Estendere il rilevamento alle funzionalità crittografiche direttamente implementate o collegate staticamente
- Patching Automatizzato: Estendere dall'identificazione al patching (semi)automatico dell'uso vulnerabile ai quantum
- Importanza del Problema: Affronta i punti critici effettivi nella migrazione verso PQC
- Approccio Sistematico: Processo completo dall'analisi dei requisiti all'implementazione dello strumento
- Innovazione Tecnica: La strategia di analisi progressiva a tre fasi è ben progettata
- Valore Pratico: Lo strumento open source ha un valore significativo per le piccole e medie imprese
- Sperimentazione Completa: La verifica con dataset sintetici e del mondo reale è esaustiva
- Limitazioni di Piattaforma: Attualmente supporta solo il formato ELF di Linux, con scalabilità limitata
- Limitazioni Linguistiche: Principalmente orientato a programmi C/C++
- Limitazioni dell'Analisi Statica: Analisi insufficiente per le chiamate indirette e il codice morto
- Ambito di Valutazione: Alcuni programmi nel dataset del mondo reale mancano di ground truth
- Contributo Accademico: Colma il vuoto nella ricerca su strumenti per la migrazione verso PQC
- Valore Pratico: Fornisce uno strumento pratico per la valutazione del rischio di migrazione verso PQC nelle organizzazioni
- Riproducibilità: Il codice open source e i dataset supportano la riproduzione dei risultati
- Potenziale di Diffusione: Il metodo è estensibile ad altre piattaforme e linguaggi
- Valutazione del rischio di migrazione verso PQC aziendale
- Audit di sicurezza della catena di fornitura del software
- Analisi delle dipendenze crittografiche
- Controlli di conformità alla sicurezza
L'articolo cita 42 opere correlate, coprendo lo sviluppo dell'informatica quantistica, le linee guida per la migrazione verso PQC, gli strumenti di rilevamento crittografico, l'analisi binaria e altri campi importanti, fornendo una base teorica solida per la ricerca.
Valutazione Complessiva: Il presente articolo affronta il problema importante della migrazione verso la crittografia post-quantistica, proponendo una soluzione sistematica. La toolchain QED è ben progettata, la verifica sperimentale è completa e possiede un significativo valore accademico e pratico. Sebbene esistano alcune limitazioni tecniche, l'articolo apporta contributi importanti al campo della migrazione verso PQC, fornendo in particolare una soluzione pratica per le piccole e medie imprese con risorse limitate.