RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2019, том 31, выпуск 6, страницы 33–64 (Mi tisp469)

Эта публикация цитируется в 2 статьях

Программный комплекс для выявления недекларированных возможностей в условиях отсутствия исходного кода

А. Б. Бугеряab, В. Ю. Ефимовb, И. И. Кулагинb, В. А. Падарянcb, М. А. Соловьевbc, А. Ю. Тихоновd

a Институт прикладной математики им. М.В. Келдыша РАН
b Институт системного программирования им. В.П. Иванникова РАН
c Московский государственный университет имени М.В. Ломоносова
d Московский государственный технический университет имени Н.Э. Баумана

Аннотация: Обнаружение недекларированных возможностей программного обеспечения является одной из основных задач анализа безопасности бинарного кода. Автоматизация решения этой задачи затруднена и требует участия эксперта информационной безопасности. Существующие решения ориентированы на ручную работу аналитика, автоматизация его действий не несет в себе системный характер. В случае отсутствия необходимого инструментария аналитик лишается необходимой поддержки и вынужден самостоятельно заниматься разработкой инструментов, что сильно отдаляет его от получения необходимых практических результатов. В данной работе представлен программный комплекс, решающий задачу выявления недекларированных возможностей в целом: от создания контролируемой среды выполнения до подготовки высокоуровневого описания интересующего алгоритма. Представлен пакет инструментов разработчика QEMU QDT, предлагающий поддержку жизненного цикла разработки виртуальных машин, включая вопросы специализированного тестирования и отладки. Представлено высокоуровневое иерархическое представление алгоритма программы на основе блок-схем, а также алгоритм его построения. Предложенное представление основано на гиперграфе и позволяет реализовать ручной анализ потока данных на различных уровнях детализации. В будущем разработанное представление может использоваться для реализации алгоритмов автоматического анализа. Предложен подход к повышению качества полученного представления алгоритма с помощью объединения отдельных потоков данных в один, связывающий логические модули алгоритма. Для оценки результата построения высокоуровневого представления алгоритма разработан набор тестов на основе реальных программ и модельных примеров.

Ключевые слова: анализ бинарного кода, блок-схемы алгоритмов, анализ потока данных, контролируемое выполнение, специализированные среды разработки.

DOI: 10.15514/ISPRAS-2019-31(6)-3



© МИАН, 2024