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 del Artículo: 2409.07852
- Título: A Toolchain for Assisting Migration of Software Executables Towards Post-Quantum Cryptography
- Autores: Norrathep Rattanavipanon, Jakapan Suaboot, Warodom Werapun (Universidad Príncipe de Songkla)
- Clasificación: cs.CR (Criptografía y Seguridad)
- Estado de Publicación: Enviado a la revista IEEE ACCESS
- Enlace del Artículo: https://arxiv.org/abs/2409.07852
La computación cuántica representa una amenaza global significativa para los mecanismos de seguridad actuales. Aunque expertos en seguridad y el sector público han publicado directrices para ayudar a las organizaciones a migrar software hacia criptografía post-cuántica (PQC), existe una carencia de herramientas (semi)automatizadas que respalden esta transformación, particularmente cuando el software se implementa en forma de ejecutables binarios. Para abordar este problema, este artículo primero propone los requisitos necesarios para herramientas de detección de ejecutables de software vulnerables a ataques cuánticos. Basándose en estos requisitos, se introduce QED: la cadena de herramientas de detección de ejecutables vulnerables a ataques cuánticos. QED adopta un enfoque de tres fases para identificar dependencias vulnerables a ataques cuánticos en un conjunto dado de ejecutables, desde el nivel de archivo hasta el nivel de API, identificando finalmente con precisión los rastros estáticos que activan APIs vulnerables a ataques cuánticos. Los resultados de la evaluación muestran que: (1) QED distingue ejecutables vulnerables y seguros ante ataques cuánticos con una precisión del 100% en conjuntos de datos sintéticos; (2) QED es práctico y escalable, completando el análisis de ejecutables del mundo real en menos de 4 segundos en promedio; (3) QED reduce el trabajo manual requerido por los analistas para identificar ejecutables vulnerables a ataques cuánticos en más del 90%.
Con el rápido desarrollo de la tecnología de computación cuántica, evolucionando desde 2 qubits en 1998 hasta más de 1000 qubits en la actualidad, los expertos predicen que las computadoras cuánticas funcionales a gran escala se comercializarán dentro de los próximos veinte años. Las computadoras cuánticas pueden romper los sistemas criptográficos de clave pública ampliamente utilizados actualmente, como RSA (que requiere 4098 qubits lógicos) y criptografía de curva elíptica (que requiere 2330 qubits lógicos).
La conciencia global sobre la amenaza de ataques cuánticos está aumentando, y instituciones como NIST recomiendan que las organizaciones establezcan equipos preparados para la era cuántica, listos para migrar sistemas de software hacia criptografía post-cuántica. Esto incluye:
- Crear inventarios criptográficos para evaluar el uso de criptografía dentro de la organización
- Realizar evaluaciones de riesgo basadas en estos inventarios
- Falta de Herramientas Especializadas: Actualmente no existen herramientas (semi)automatizadas diseñadas específicamente para asistir en tareas de migración a PQC
- Carga de Análisis Manual: Los analistas deben depender de diversas herramientas dispersas y análisis manual para identificar sistemas de software vulnerables a ataques cuánticos
- Desafíos del Análisis Binario: Los analistas típicamente no tienen acceso al código fuente y deben realizar la migración a PQC basándose en binarios de programa
- Problemas de Costo: Requiere conocimientos avanzados de análisis binario, aumentando los costos presupuestarios, de tiempo y de recursos humanos
Frente a estos desafíos, particularmente el problema de que pequeñas y medianas empresas carecen de recursos para realizar migración a PQC, este artículo tiene como objetivo desarrollar una herramienta automatizada para aliviar la carga de trabajo de los analistas.
- Formulación de Requisitos: Formulación sistemática por primera vez de especificaciones de requisitos para herramientas que asistan en la migración a PQC de ejecutables de software
- Cadena de Herramientas QED: Diseño e implementación de la cadena de herramientas QED que satisface los requisitos propuestos, con código de fuente abierta disponible públicamente
- Verificación Empírica: Validación de la precisión y eficiencia de QED en conjuntos de datos sintéticos y del mundo real, logrando una tasa de verdaderos positivos del 100% y reduciendo el trabajo manual en más del 90%
- Valor Práctico: Proporciona una herramienta crítica de asistencia para migración a PQC para pequeñas y medianas empresas con recursos limitados
Dado un conjunto de ejecutables de software, el objetivo de QED es identificar ejecutables vulnerables a ataques cuánticos (QV). Un ejecutable de software se define como QV si y solo si existe al menos una ruta de ejecución posible desde su punto de entrada (función principal) hasta una API de biblioteca criptográfica que implementa un algoritmo QV (como RSA, Diffie-Hellman, firma digital de curva elíptica).
- R1 Vinculación Dinámica: Debe ser capaz de identificar ejecutables que utilizan APIs QV a través de vinculación dinámica
- R2 Análisis a Nivel Binario: No depende de la disponibilidad del código fuente
- R3 Características Estáticas: Utiliza únicamente características estáticas, sin requerir rastros de ejecución en tiempo de ejecución
- R4 Escalabilidad: Respalda el análisis de grandes cantidades de ejecutables de software, completándose en tiempo razonable
- R5 Validez: No produce falsos negativos, tolerando una pequeña cantidad de falsos positivos
QED adopta una arquitectura de análisis progresivo de tres fases:
Objetivo: Identificar ejecutables que tienen relaciones de dependencia con bibliotecas criptográficas QV
Método:
- Construir un grafo de dependencias de software G₁ = (V₁, E₁), donde V₁ es el conjunto de archivos y E₁ son relaciones de dependencia directa
- Descubrir todas las relaciones de dependencia mediante búsqueda en profundidad
- Localizar bibliotecas criptográficas QV en V₁
- Podar nodos sin relaciones de dependencia con bibliotecas criptográficas
Salida: Rutas de dependencia a nivel de archivo EV₁
Objetivo: Reducir falsos positivos de P1, analizando relaciones de dependencia a nivel de API
Método:
- Construir un grafo de dependencias de API G₂ = (V₂, E₂), donde E₂ contiene triples (n₁, n₂, apis)
- Verificar si los nodos predecesores contienen llamadas a funciones de APIs QV
- Eliminar aristas que no contengan llamadas a APIs QV
- Incrustar información de dependencia a nivel de API para cada arista
Salida: Rutas de dependencia con información de APIs QV EV₂
Objetivo: Identificar con precisión ejecutables que cumplen la definición de QV
Método:
- Construir un grafo de llamadas estático para análisis de alcanzabilidad
- Verificar rutas de ejecución desde el punto de entrada del ejecutable hasta APIs QV
- Respaldar modo ordinario y modo conservador
- Modo ordinario: La falta de rastro de ejecución indica directamente no-QV
- Modo conservador: Tratar rastros faltantes como posibles falsos negativos
Salida: Rastros de ejecución estática EV₃
- Estrategia de Análisis Progresivo: Análisis de tres fases de granularidad gruesa a fina, equilibrando velocidad y precisión
- Utilización de Información de Nombres de API: Detección de uso criptográfico basada en información de nombres de API, evitando falsos negativos causados por optimizaciones del compilador
- Soporte para Vinculación Dinámica: Manejo especializado de escenarios donde se utilizan bibliotecas criptográficas a través de vinculación dinámica
- Modos de Análisis Flexibles: Proporciona dos modos, ordinario y conservador, permitiendo a los analistas elegir según sus necesidades
- Bibliotecas Criptográficas: OpenSSL v1.1.1, OpenSSL v3.3.1, MbedTLS v2.28.8, wolfSSL v5.7.2
- Primitivas Criptográficas: SHA-512, AES-256, Diffie-Hellman, RSA, ECDSA (los últimos tres son QV)
- Conjunto de Dependencias Directas: 20 ejecutables (12 QV, 8 no-QV)
- Conjunto de Dependencias Indirectas: 20 ejecutables (12 QV, 8 no-QV)
- Total: 40 ejecutables (24 QV, 16 no-QV)
- Coreutils: 109 programas de software no criptográficos (no-QV)
- UnixBench: 18 herramientas de pruebas de rendimiento (no-QV)
- Red: 13 programas de herramientas de red (7 QV, 6 no-QV)
- tpm2-tools: 86 herramientas de implementación de funcionalidad TPM
- Total: 226 ejecutables, tamaño promedio 248KB
- Tasa de Verdaderos Positivos (TPR): Proporción de ejecutables QV identificados correctamente
- Tasa de Verdaderos Negativos (TNR): Proporción de ejecutables no-QV identificados correctamente
- Tiempo de Ejecución: Tiempo requerido para análisis en cada fase
- Uso de Memoria: Uso máximo de RAM
- Reducción de Trabajo Manual: Número de archivos que requieren revisión manual adicional
- Lenguaje de Programación: Python3 (aproximadamente 800 líneas de código)
- Bibliotecas de Dependencia: pyelftools (procesamiento de archivos ELF), NetworkX (operaciones de grafos), angr (construcción de grafos de llamadas estáticos)
- Entorno Experimental: Ubuntu 20.04, Intel i5-8520U @ 1.6GHz, 24GB RAM
| Fase | Dependencias Directas | Dependencias Indirectas | General |
|---|
| 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% |
- Tiempo de Procesamiento Promedio: Aproximadamente 4 segundos por ejecutable
- Tiempo de Procesamiento Total: Aproximadamente 15 minutos para 226 ejecutables
- Uso de Memoria: P1 y P2 aproximadamente 180MB, P3 aproximadamente 3-5GB
- Reducción de Trabajo Manual: De 226 reducido a 20 (reducción del 91.15%)
- Fase P1: Cribado preliminar rápido, pero con alta tasa de falsos positivos
- Fase P2: Reduce significativamente falsos positivos, particularmente para escenarios de dependencias directas
- Fase P3: Mejora adicional de precisión, pero con mayor costo computacional
- Caso de Falso Negativo: El programa curl falla en el análisis del grafo de llamadas estático debido al uso de llamadas indirectas (punteros a funciones)
- Eliminación de Falsos Positivos: Los programas sftp y scp, aunque vinculados a OpenSSL, solo utilizan APIs no-QV
- Análisis Progresivo Efectivo: El diseño de tres fases equilibra exitosamente velocidad y precisión
- Limitaciones del Análisis Estático: Las llamadas indirectas siguen siendo un desafío para el análisis estático
- Verificación de Practicidad: La herramienta funciona bien en entornos reales, reduciendo significativamente el trabajo manual
Las herramientas existentes se dividen en dos categorías: estáticas y dinámicas:
- Métodos Estáticos: Basados en características estáticas como vectores de inicialización, tablas de búsqueda, secuencias de instrucciones de ensamblador
- Métodos Dinámicos: Basados en información en tiempo de ejecución como estructuras de bucles, relaciones entrada-salida
- Proceso de Migración: Cuatro pasos: diagnóstico → planificación → ejecución → mantenimiento
- Agilidad Criptográfica: Capacidad del sistema para adaptarse a diferentes algoritmos criptográficos
- Escenarios de Aplicación: Binarios compilados, activos de sistemas externos, capas de comunicación de red
- Enfoque especializado en detección de vulnerabilidad cuántica
- Respalda escenarios de vinculación dinámica
- No requiere ejecución en tiempo de ejecución o análisis simbólico pesado
- Proporciona una herramienta práctica de extremo a extremo
- QED satisface exitosamente todos cinco requisitos de diseño (R1-R5)
- Logra una precisión del 100% en conjuntos de datos sintéticos
- Reduce significativamente el trabajo manual en conjuntos de datos del mundo real
- La herramienta demuestra buena escalabilidad y practicidad
- Detección de Llamadas Indirectas: El análisis estático no puede detectar el uso de APIs QV a través de punteros a funciones
- Restricciones de Método de Vinculación: Asume que los ejecutables utilizan bibliotecas criptográficas a través de vinculación dinámica
- Problema de Código Muerto: Puede marcar como positivos llamadas a APIs QV que nunca se ejecutan
- Análisis Dinámico Ligero: Combinar análisis dinámico para identificar llamadas indirectas
- Soporte para Vinculación Estática: Extender la detección a funcionalidad criptográfica implementada directamente o vinculada estáticamente
- Parches Automatizados: Extender desde identificación a parches (semi)automáticos de uso vulnerable a ataques cuánticos
- Importancia del Problema: Aborda puntos débiles prácticos en la migración a PQC
- Enfoque Sistemático: Proceso completo desde análisis de requisitos hasta implementación de herramientas
- Innovación Técnica: El diseño de estrategia de análisis progresivo de tres fases es razonable
- Valor Práctico: La herramienta de código abierto tiene valor importante para pequeñas y medianas empresas
- Experimentación Completa: Verificación exhaustiva con conjuntos de datos sintéticos y del mundo real
- Limitaciones de Plataforma: Actualmente solo respalda formato ELF de Linux, escalabilidad limitada
- Limitaciones de Lenguaje: Enfoque principal en programas C/C++
- Limitaciones del Análisis Estático: Análisis insuficiente de llamadas indirectas y código muerto
- Alcance de Evaluación: Algunos programas en el conjunto de datos del mundo real carecen de verdad fundamental
- Contribución Académica: Llena el vacío en la investigación de herramientas de migración a PQC
- Valor Práctico: Proporciona herramientas prácticas para evaluación de riesgo de migración a PQC organizacional
- Reproducibilidad: El código de fuente abierta y conjuntos de datos respaldan la reproducción de resultados
- Potencial de Promoción: El método es extensible a otras plataformas e idiomas
- Evaluación de riesgo de migración a PQC empresarial
- Auditoría de seguridad de cadena de suministro de software
- Análisis de dependencias criptográficas
- Verificación de cumplimiento de seguridad
El artículo cita 42 referencias relacionadas, cubriendo múltiples campos incluyendo desarrollo de computación cuántica, directrices de migración a PQC, herramientas de detección criptográfica, análisis binario y otros trabajos importantes, proporcionando una base teórica sólida para la investigación.
Evaluación General: Este artículo aborda el importante problema de la migración a criptografía post-cuántica, proponiendo una solución sistemática. La cadena de herramientas QED está bien diseñada, con verificación experimental completa, poseyendo valor académico y práctico significativo. Aunque existen algunas limitaciones técnicas, hace contribuciones importantes al campo de migración a PQC, proporcionando particularmente una solución viable para pequeñas y medianas empresas con recursos limitados.