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 статьи: 2409.07852
- Название: A Toolchain for Assisting Migration of Software Executables Towards Post-Quantum Cryptography
- Авторы: Norrathep Rattanavipanon, Jakapan Suaboot, Warodom Werapun (Университет принца Сонгклы)
- Классификация: cs.CR (Криптография и безопасность)
- Статус публикации: Отправлено в журнал IEEE ACCESS
- Ссылка на статью: https://arxiv.org/abs/2409.07852
Квантовые вычисления представляют серьезную глобальную угрозу для современных механизмов безопасности. Несмотря на то, что специалисты по безопасности и государственный сектор опубликовали руководящие принципы, помогающие организациям перейти на постквантовую криптографию (PQC), отсутствуют (полу)автоматизированные инструменты, поддерживающие такое преобразование, особенно когда программное обеспечение развернуто в виде двоичных исполняемых файлов. Для решения этой проблемы в статье сначала предложены необходимые требования к инструментам обнаружения квантово-уязвимых программных исполняемых файлов. На основе этих требований представлен QED: набор инструментов для обнаружения квантово-уязвимых исполняемых файлов. QED использует трехэтапный подход для выявления квантово-уязвимых зависимостей в заданном наборе исполняемых файлов — от уровня файлов до уровня API, с последующей точной идентификацией статических трасс, вызывающих квантово-уязвимые API. Результаты оценки показывают: (1) QED различает квантово-уязвимые и квантово-безопасные исполняемые файлы с точностью 100% на синтетическом наборе данных; (2) QED практичен и масштабируем, в среднем завершая анализ реальных исполняемых файлов менее чем за 4 секунды; (3) QED снижает объем ручной работы, необходимой аналитикам для выявления квантово-уязвимых исполняемых файлов, более чем на 90%.
С быстрым развитием квантовых вычислений, эволюционировавших от 2 кубитов в 1998 году до более чем 1000 кубитов в настоящее время, эксперты прогнозируют коммерциализацию крупномасштабных функциональных квантовых компьютеров в течение следующих двух десятилетий. Квантовые компьютеры способны взломать широко используемые системы криптографии с открытым ключом, такие как RSA (требует 4098 логических кубитов) и криптография на эллиптических кривых (требует 2330 логических кубитов).
Глобальное осознание угрозы квантовых атак растет, и такие организации, как NIST, рекомендуют организациям создавать команды, готовые к квантовым вычислениям, и готовиться к миграции программных систем на постквантовую криптографию. Это включает:
- Создание криптографических реестров для оценки использования криптографии в организации
- Проведение оценки рисков на основе этих реестров
- Отсутствие специализированных инструментов: В настоящее время отсутствуют (полу)автоматизированные инструменты, специально разработанные для поддержки задач миграции PQC
- Бремя ручного анализа: Аналитики должны полагаться на различные разрозненные инструменты и ручной анализ для выявления квантово-уязвимых программных систем
- Проблемы анализа двоичных файлов: Аналитики часто не имеют доступа к исходному коду и должны проводить миграцию PQC на основе двоичных файлов программ
- Проблемы затрат: Требуется глубокое знание анализа двоичных файлов, что увеличивает затраты на бюджет, время и трудовые ресурсы
В ответ на эти вызовы, особенно на проблему нехватки ресурсов у малых и средних предприятий для проведения миграции PQC, данная работа направлена на разработку автоматизированного инструмента для облегчения работы аналитиков.
- Формулировка требований: Первая систематическая разработка спецификации требований для инструментов, поддерживающих миграцию PQC программных исполняемых файлов
- Набор инструментов QED: Проектирование и реализация набора инструментов QED, отвечающего предложенным требованиям, с открытым исходным кодом
- Эмпирическая проверка: Проверка точности и эффективности QED на синтетических и реальных наборах данных, достижение 100% истинно положительного результата и снижение ручной работы более чем на 90%
- Практическая ценность: Предоставление критически важного инструмента поддержки миграции PQC для малых и средних предприятий с ограниченными ресурсами
Учитывая набор программных исполняемых файлов, цель QED состоит в выявлении квантово-уязвимых (QV) исполняемых файлов. Программный исполняемый файл определяется как QV тогда и только тогда, когда существует по крайней мере один возможный путь выполнения от его точки входа (функция main) до API криптографической библиотеки, реализующей QV-алгоритм (такие как RSA, Diffie-Hellman, подпись ECDSA).
- R1 Динамическое связывание: Должен идентифицировать исполняемые файлы, использующие QV API через динамическое связывание
- R2 Анализ на уровне двоичного кода: Не зависит от доступности исходного кода
- R3 Статические признаки: Использует только статические признаки, не требует трассировки выполнения во время выполнения
- R4 Масштабируемость: Поддерживает анализ большого количества программных исполняемых файлов в разумные сроки
- R5 Действительность: Не производит ложноотрицательные результаты, допускает небольшое количество ложноположительных результатов
QED использует трехэтапную архитектуру прогрессивного анализа:
Цель: Выявление исполняемых файлов, имеющих зависимости от QV криптографических библиотек
Метод:
- Построение графика зависимостей программного обеспечения G₁ = (V₁, E₁), где V₁ — набор файлов, E₁ — отношения прямых зависимостей
- Обнаружение всех зависимостей посредством поиска в глубину
- Локализация QV криптографических библиотек в V₁
- Удаление узлов без зависимостей от криптографических библиотек
Выход: Пути зависимостей на уровне файлов EV₁
Цель: Снижение ложноположительных результатов P1, анализ зависимостей на уровне API
Метод:
- Построение графика зависимостей API G₂ = (V₂, E₂), где E₂ содержит кортежи (n₁, n₂, apis)
- Проверка содержит ли предшествующий узел вызовы функций к QV API
- Удаление ребер, не содержащих вызовов QV API
- Встраивание информации о зависимостях на уровне API для каждого ребра
Выход: Пути зависимостей с информацией о QV API EV₂
Цель: Точная идентификация исполняемых файлов, соответствующих определению QV
Метод:
- Построение статического графика вызовов для анализа достижимости
- Проверка путей выполнения от точки входа исполняемого файла к QV API
- Поддержка обычного и консервативного режимов
- Обычный режим: отсутствие трассы выполнения прямо указывает на не-QV
- Консервативный режим: отсутствие трассы рассматривается как потенциальный ложноотрицательный результат
Выход: Статические трассы выполнения EV₃
- Стратегия прогрессивного анализа: Трехэтапный анализ от крупнозернистого к мелкозернистому, балансирующий скорость и точность
- Использование информации о названиях API: Обнаружение использования криптографии на основе информации о названиях API, избегание ложноотрицательных результатов из-за оптимизации компилятора
- Поддержка динамического связывания: Специальная обработка сценариев использования криптографических библиотек через динамическое связывание
- Гибкие режимы анализа: Предоставление обычного и консервативного режимов, позволяющих аналитикам выбирать в соответствии с требованиями
- Криптографические библиотеки: OpenSSL v1.1.1, OpenSSL v3.3.1, MbedTLS v2.28.8, wolfSSL v5.7.2
- Криптографические примитивы: SHA-512, AES-256, Diffie-Hellman, RSA, ECDSA (последние три — QV)
- Набор прямых зависимостей: 20 исполняемых файлов (12 QV, 8 не-QV)
- Набор косвенных зависимостей: 20 исполняемых файлов (12 QV, 8 не-QV)
- Итого: 40 исполняемых файлов (24 QV, 16 не-QV)
- Coreutils: 109 некриптографических программ (не-QV)
- UnixBench: 18 инструментов тестирования производительности (не-QV)
- Network: 13 сетевых утилит (7 QV, 6 не-QV)
- tpm2-tools: 86 инструментов реализации функций TPM
- Итого: 226 исполняемых файлов, средний размер 248 КБ
- Истинно положительный результат (TPR): Доля правильно выявленных QV исполняемых файлов
- Истинно отрицательный результат (TNR): Доля правильно выявленных не-QV исполняемых файлов
- Время выполнения: Время, необходимое для анализа на каждом этапе
- Использование памяти: Пиковое использование оперативной памяти
- Снижение ручной работы: Количество файлов, требующих дальнейшего ручного рассмотрения
- Язык программирования: Python3 (примерно 800 строк кода)
- Зависимые библиотеки: pyelftools (обработка файлов ELF), NetworkX (операции с графами), angr (построение статического графика вызовов)
- Экспериментальная среда: Ubuntu 20.04, Intel i5-8520U @ 1.6GHz, 24GB RAM
| Этап | Прямые зависимости | Косвенные зависимости | Общее |
|---|
| 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% |
- Среднее время обработки: примерно 4 секунды на исполняемый файл
- Общее время обработки: примерно 15 минут для 226 исполняемых файлов
- Использование памяти: P1 и P2 примерно 180 МБ, P3 примерно 3-5 ГБ
- Снижение ручной работы: с 226 до 20 (снижение на 91,15%)
- Этап P1: Быстрое предварительное отсеивание, но высокий уровень ложноположительных результатов
- Этап P2: Значительное снижение ложноположительных результатов, особенно для сценариев прямых зависимостей
- Этап P3: Дальнейшее повышение точности, но с большими вычислительными затратами
- Случаи ложноотрицательных результатов: Программа curl из-за использования косвенных вызовов (указатели функций) привела к отказу анализа статического графика вызовов
- Устранение ложноположительных результатов: Программы sftp и scp, хотя и связаны с OpenSSL, используют только не-QV API
- Эффективность прогрессивного анализа: Трехэтапная конструкция успешно балансирует скорость и точность
- Ограничения статического анализа: Косвенные вызовы остаются вызовом для статического анализа
- Проверка практичности: Инструмент хорошо работает в реальной среде, значительно снижая ручную работу
Существующие инструменты делятся на статические и динамические категории:
- Статические методы: На основе статических признаков, таких как векторы инициализации, таблицы поиска, последовательности инструкций ассемблера
- Динамические методы: На основе информации во время выполнения, такой как структуры циклов, отношения входа-выхода
- Процесс миграции: Четыре этапа — диагностика, планирование, выполнение, обслуживание
- Криптографическая гибкость: Способность системы адаптироваться к различным криптографическим алгоритмам
- Сценарии применения: Скомпилированные двоичные файлы, внешние системные активы, уровень сетевого взаимодействия
- Специально ориентирована на обнаружение квантовой уязвимости
- Поддерживает сценарии динамического связывания
- Не требует выполнения во время выполнения или тяжелого символического анализа
- Предоставляет комплексный практический инструмент
- QED успешно удовлетворяет всем пяти требованиям проектирования (R1-R5)
- Достигает 100% точности на синтетическом наборе данных
- Значительно снижает ручную работу на реальном наборе данных
- Инструмент обладает хорошей масштабируемостью и практичностью
- Обнаружение косвенных вызовов: Статический анализ не может обнаружить использование QV API через указатели функций
- Ограничения способа связывания: Предполагает, что исполняемые файлы используют криптографические библиотеки через динамическое связывание
- Проблема мертвого кода: Может пометить вызовы QV API, которые никогда не выполняются, как положительные
- Легкий динамический анализ: Интеграция динамического анализа для обнаружения косвенных вызовов
- Поддержка статического связывания: Расширение обнаружения прямо реализованных или статически связанных криптографических функций
- Автоматизированное исправление: Расширение от обнаружения к (полу)автоматическому исправлению использования квантово-уязвимых функций
- Важность проблемы: Решает практические проблемы при миграции PQC
- Систематический подход: Полный процесс от анализа требований до реализации инструмента
- Технические инновации: Разумный дизайн трехэтапной стратегии прогрессивного анализа
- Практическая ценность: Инструмент с открытым исходным кодом имеет важное значение для малых и средних предприятий
- Полные эксперименты: Всестороннее подтверждение с использованием синтетических и реальных наборов данных
- Ограничения платформы: В настоящее время поддерживает только формат Linux ELF, ограниченная расширяемость
- Языковые ограничения: Главным образом ориентирована на программы на C/C++
- Ограничения статического анализа: Недостаточный анализ косвенных вызовов и мертвого кода
- Диапазон оценки: Некоторые программы в реальном наборе данных не имеют ground truth
- Академический вклад: Заполняет пробел в исследованиях инструментов миграции PQC
- Практическая ценность: Предоставляет практический инструмент для оценки рисков миграции PQC организациями
- Воспроизводимость: Открытый исходный код и наборы данных поддерживают воспроизведение результатов
- Потенциал распространения: Методология может быть расширена на другие платформы и языки
- Оценка рисков миграции PQC в предприятиях
- Аудит безопасности цепочки поставок программного обеспечения
- Анализ криптографических зависимостей
- Проверка соответствия требованиям безопасности
Статья цитирует 42 соответствующих источника, охватывающих развитие квантовых вычислений, руководства по миграции PQC, инструменты обнаружения криптографии, анализ двоичных файлов и другие области, обеспечивая прочную теоретическую основу для исследования.
Общая оценка: Данная работа предлагает систематическое решение важной проблемы миграции на постквантовую криптографию. Набор инструментов QED имеет разумный дизайн, полную экспериментальную проверку и обладает важной академической ценностью и практическим значением. Несмотря на некоторые технические ограничения, работа вносит значительный вклад в область миграции PQC, особенно предоставляя практическое решение для малых и средних предприятий с ограниченными ресурсами.