Научная статья на тему 'Методика и программное средство обнаружения уязвимостей в бинарном коде'

Методика и программное средство обнаружения уязвимостей в бинарном коде Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
429
51
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДИНАМИЧЕСКИЙ АНАЛИЗ / DYNAMIC ANALYSIS / УЯЗВИМОСТЬ / VULNERABILITY / ФАЗЗИНГ / FUZZING / БИНАРНАЯ ИНСТРУМЕНТАЦИЯ / BINARY INSTRUMENTATION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шудрак М.О.

Рассматривается обнаружение уязвимостей в бинарном коде с использованием сочетания технологий динамической бинарной инструментации, анализа покрытия кода и так называемого фаззинга технологии генерации потенциально ошибочных данных и мониторинга результата. Результатом станет программное средство для поиска уязвимостей в сетевых и файловых приложениях, позволяющее значительно оптимизировать процесс динамического тестирования. В результате с помощью описываемой системы будут найдены уязвимости «нулевого дня» в последней версии DNS сервера BIND9.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE TECHNIQUE AND ORIGINAL SOFTWARE FOR BINARY EXECUTABLE VULNERABILITY DETECTION

The dynamic analysis of techniques and cloud-based platform for software security and reliability testing are dealt with. The research is a contribution to dynamic execution analysis techniques. In the first part the technique of dynamic binary analysis which is referred to as «fuzzing» is described. The basic architecture of the tool for security and reliability testing of application and vulnerabilities detection are shown. Due to the use of the dynamic binary instrumentation this technique’s implementation is much faster than those applied previously. The technique described has been implemented as the software platform which includes: web-interface, virtual machine dispatcher, dynamic instrumentation library, debugger, special dll, protocol description and fuzzing manager tool. The results of zero-day vulnerability detection in the popular software the consistency of the technique are confirmed.

Текст научной работы на тему «Методика и программное средство обнаружения уязвимостей в бинарном коде»

utverzhdenii Porjadka provedenija klassifikacii informacionnyh sistem personal'nyh dannyh» [Jelektronnyi recurs]. Rezhim dostupa: http://www.rg.ru/2008/04/12/informaciya-doc.html, svobodnyi (data obrashhenija: 18.09.2013).

3. GOST R 34.11-2012: Nacional'nyj standart Rossijskoj Federacii. Informacion- naja tehnologija. Kriptograficheskaja zashhita informacii. Funkcija hjeshirovanija. Izdanie oficial'noe. M. Standartinform, 2012.

© Шевцов Н. П., Хмызников Г. И., Кучеров М. М., 2013

УДК 004.056

МЕТОДИКА И ПРОГРАММНОЕ СРЕДСТВО ОБНАРУЖЕНИЯ УЯЗВИМОСТЕЙ

В БИНАРНОМ КОДЕ

М. О. Шудрак

Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Россия, 660014, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31 E-mail: mxmssh@gmail.com

Рассматривается обнаружение уязвимостей в бинарном коде с использованием сочетания технологий динамической бинарной инструментации, анализа покрытия кода и так называемого фаззинга - технологии генерации потенциально ошибочных данных и мониторинга результата. Результатом станет программное средство для поиска уязвимостей в сетевых и файловых приложениях, позволяющее значительно оптимизировать процесс динамического тестирования. В результате с помощью описываемой системы будут найдены уязвимости «нулевого дня» в последней версии DNS сервера BIND9.

Ключевые слова: динамический анализ, уязвимость, фаззинг, бинарная инструментация.

THE TECHNIQUE AND ORIGINAL SOFTWARE FOR BINARY EXECUTABLE VULNERABILITY DETECTION

M. O. Shudrak

Siberian State Aerospace University named after academician M. F. Reshetnev 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660014, Russia. E-mail: mxmssh@gmail.com

The dynamic analysis of techniques and cloud-based platform for software security and reliability testing are dealt with. The research is a contribution to dynamic execution analysis techniques. In the first part the technique of dynamic binary analysis which is referred to as «fuzzing» is described. The basic architecture of the tool for security and reliability testing of application and vulnerabilities detection are shown. Due to the use of the dynamic binary instrumentation this technique's implementation is much faster than those applied previously. The technique described has been implemented as the software platform which includes: web-interface, virtual machine dispatcher, dynamic instrumentation library, debugger, special dll, protocol description and fuzzing manager tool. The results of zero-day vulnerability detection in the popular software the consistency of the technique are confirmed.

Keywords: dynamic analysis, vulnerability, fuzzing, binary instrumentation.

На сегодняшний день компании-разработчики ПО сталкиваются с серьёзнейшими рисками, связанными с безопасностью собственных продуктов. Эти риски возникают вследствие того, что процесс разработки невозможен без тех или иных ошибок и недочетов. Так, за предыдущий год эксперты обнаружили более 9 000 различных уязвимостей «нулевого дня», а это 26 уязвимостей в день! Для решения этой проблемы используется множество различных методик и подходов, которые могут эффективно применяться на том или ином этапе разработки и эксплуатации ПО [1]. В данной статье мы остановимся лишь на динамиче-

ском анализе, являющемся наиболее эффективным для анализа бинарного кода, так как метод взаимодействует с реально работающим приложением [2; 3]. Наиболее существенным недостатком динамического анализа на сегодняшний день является сложность и высокая ресурсозатратность для полноценного поиска уязвимостей. Мы попытаемся частично решить эти проблемы.

Методика динамической бинарной инструмента-ции предусматривает проведение тестирования приложения в процессе его исполнения. Как правило, уязвимость в ПО возникает в процессе обработки

Методы и средства защиты информации

внешних или пользовательских данных. Для тестирования корректности обработки этих данных часто используется так называемая технология фаззинга, базовая схема которого приведена на рисунке.

Ключевым этапом, отображенным на схеме, является генерация данных и анализ покрытия кода, который необходим для оценки эффективности проведенного тестирования. Не будем подробно останавливаться на каждом этапе работы системы, лишь отметим, что цель анализатора - сгенерировать данные, которые приведут к ошибке в тестируемом приложении. Для оценки эффективности такого тестирования необходимо оценить степень покрытия бинарного кода тестами.

В ходе работы над программным средством были протестированы различные решения оценки покрытия кода, от отладки до динамической бинарной инстру-ментации (ОБ!) [4].

Analyzer

Data generation «-( Samples ( I

Базовая схема системы

Последняя технология показала наиболее значительный прирост к скорости анализа (на 3-4 порядка в сравнении с отладкой). DBI-технология использует виртуальную машину уровня процесса ОС, в которую внедряется специальная dll, описывающая то, как необходимо проводить анализ тестируемой программы. Такая схема позволяет в значительной степени оптимизировать анализ, так как операционной системе нет необходимости в переключении контекста процессора между анализатором и тестируемой программой.

Разработанная система была реализована с использованием следующих фреймворков:

1. Sulley фреймворк - для генерации тестовых данных [5].

2. Intel PIN - DBI-фреймворк для виртуализации тестируемого приложения.

3. Библиотека PyDBG - для отладки тестируемого приложения и перехвата исключений.

Был протестирован ряд различных приложений для ОС Windows и Linux (список ПО в приложении 1). Система успешно обнаружила как уже известные уязвимости, так и две уязвимости «нулевого дня» в двух приложениях.

Первая уязвимость была несущественна - разработчик некорректно использовал инструкции SSE4 сопроцессора Intel. Однако вторая уязвимость была в DNS сервере BIND9. Для тестирования и передачи

информации разработчику (Internet System Consortium) был разработан эксплойт, который с помощью одного специально созданного DNS-запроса позволяет вызвать удаленный отказ в обслуживании в последних версиях BIND 9. Были протестированы следующие версии сервера:

- BIND 9.9.3rc2 в Ubuntu Linux 12.10;

- BIND 9.9.3rc2 в Microsoft Windows Server 2008 R2;

- BIND 9.8.2 в Ubuntu Linux 12.10.

Разработчик был проинформирован об уязвимости

и после выпуска обновления эксплойт будет опубликован.

Таким образом, автором была разработана методика и программное средство, обладающее возможностью тестирования различных приложений, обрабатывающих сетевой трафик и различные пользовательские файлы. На данный момент проект находится в стадии альфа-тестирования. Дальнейшая работа предполагает расширение числа доступных протоколов для тестирования, использование более эффективных методик анализа покрытия кода, а также применение интеллектуальных алгоритмов для генерации тестовых данных с учетом результатов покрытия кода тестами.

В заключение хотелось бы отметить, что поиск уязвимостей является на сегодняшний день очень важным и необходимым этапом жизненного цикла разработки и поддержки ПО. Например, уязвимость, описанная выше, может привести к серьезным последствиям в случае её использования злоумышленником. BIND9, являясь стандартом де-факто, используется на 10 из 13 корневых DNS-серверов сети Интернет, а также используется на миллионах других серверах по всему миру. Потенциально, уязвимость могла бы стать хорошим инструментов для проведения широкомасштабных атак на ИТ-инфраструктуру тех или иных регионов мира или на Всемирную сеть в целом.

Библиографические ссылки

1. Giuseppe Desoli, Nikolay Mateev, Evelyn Duesterwald, Paolo Faraboschi, and Joseph A. Fisher. Deli: A new run-time control point // Proceedings of the 35th Annual Symposium on Microarchitecture (MICRO35). Istanbul, Turkey, November 2002. P. 257-270.

2. Henry S, Kafura D. IEEE Transactions on Software Engineering. Vol. SE-7, Is. 5, Sept. 1981. P. 510-518.

3. Marco Cova; Viktoria Felmetsger; Greg Banks; Giovanni Vigna; "Static Detection of Vulnerabilities in x86 Executables, "Computer Security Applications Conference, ACSAC '06. 22nd Annual. 2006. Vol., no., pp. 269-278.

4. http ://uninformed.org/index.cgi?v=7&a= 1&p=3.

5. Pedram Amini. Fuzzing Framework. Black Hat USA, 2007.

References

1. Giuseppe Desoli, Nikolay Mateev, Evelyn Duesterwald, Paolo Faraboschi, and Joseph A. Fisher.

Deli: A new run-time control point // Proceedings of the 35th Annual Symposium on Microarchitecture (MICRO35), Istanbul, Turkey, November 2002. p. 257-270.

2. Henry S, Kafura D. IEEE Transactions on Software Engineering Volume SE-7, Issue 5, Sept. 1981. Page(s): 510-518.

3. Marco Cova; Viktoria Felmetsger; Greg Banks; Giovanni Vigna; "Static Detection of Vulnerabilities in x86 Executables, "Computer Security Applications Conference, 2006. ACSAC '06. 22nd Annual, vol., no., pp. 269-278.

4. http ://uninformed.org/index.cgi?v=7&a= 1&p=3

5. Pedram Amini, «Fuzzing Framework», Black Hat USA, 2007.

© mygpaK M. O. 2013

УДК 004.056

СОЗДАНИЕ МЕТОДОЛОГИИ ОБНАРУЖЕНИЯ ИНЦИДЕНТОВ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

К. В. Якименко, М. Н. Жукова

Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Россия, 660014, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31 E-mail: yakimenko.kv@gmail.com

Рассматривается проблема обнаружения и анализа инцидентов информационной безопасности. Предлагается методология обнаружения инцидентов информационной безопасности посредством анализа ключевых признаков.

Ключевые слова: инциденты информационной безопасности.

CREATING DETECTION METHODOLOGIES OF INFORMATION SECURITY INCIDENTS

К. V. Yakimenko, M. N. Zhukova

Siberian State Aerospace University named after academician M. F. Reshetnev 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660014, Russia. E-mail: yakimenko.kv@gmail.com

The problem of detection and analysis of information security incidents is assumed. A methodology to detect information security incidents through the analysis of key features is proposed.

Keywords: information security incidents.

Инцидент информационной безопасности - появление одного или нескольких нежелательных или неожиданных событий информационной безопасности, с которыми связана значительная вероятность компрометации бизнес-операций и создания угрозы информационной безопасности.

На сегодняшний день существуют различные методы реагирования на инциденты информационной безопасности, а также расследования таких инцидентов. Разработаны и эффективно функционируют системы обнаружения и предотвращения вторжений (частный случай решения рассматриваемой проблемы). Однако нет универсальной, формализованной методики обнаружения инцидентов информационной безопасности [1]. Статистика позывает, что инциденты информационной безопасности, как правило, обнаруживаются по факту, уже после того как событие произошло. В свою очередь, утечки конфиденциальной информации вообще могут быть не обнаружены. Проводить расследование таких инцидентов крайне проблематично.

Поиск и обнаружение инцидентов информационной безопасности и предшествующей их возникновению аномальной активности является ключевой проблемой и начальным этапом процесса реагирования на инциденты информационной безопасности. Поиск и обнаружение инцидентов информационной безопасности могут быть реализованы различными методами: сигнатурный анализ и поиск по ключевым признакам.

Сигнатурный метод подобен сигнатурному методу анализа, применяемому различными антивирусными программами, а также системами обнаружения вторжений. В соответствии с заранее заданными сигнатурами анализируются события, происходящие в информационной системе предприятия, и в случае обнаружения совпадения сигнатур инцидента с произошедшим или происходящим событием происходит оповещение администратора безопасности или предпринимаются ответные действия (частный случай такой системы - система предотвращения вторжений (IPS - Intrusion Prevention system).

i Надоели баннеры? Вы всегда можете отключить рекламу.