Разработка метода, алгоритмов и программ для автоматического поиска уязвимостей программного обеспечения в условиях отсутствия исходного кода тема диссертации и автореферата по ВАК РФ 05.13.19, кандидат технических наук Благодаренко, Артем Васильевич

  • Благодаренко, Артем Васильевич
  • кандидат технических науккандидат технических наук
  • 2011, Таганрог
  • Специальность ВАК РФ05.13.19
  • Количество страниц 141
Благодаренко, Артем Васильевич. Разработка метода, алгоритмов и программ для автоматического поиска уязвимостей программного обеспечения в условиях отсутствия исходного кода: дис. кандидат технических наук: 05.13.19 - Методы и системы защиты информации, информационная безопасность. Таганрог. 2011. 141 с.

Оглавление диссертации кандидат технических наук Благодаренко, Артем Васильевич

ВВЕДЕНИЕ.

1. АНАЛИЗ МЕТОДОВ АВТОМАТИЧЕСКОГО ПОИСКА УЯЗВИМОСТЕЙ ПО БЕЗ ИСХОДНОГО КОДА.

1.1. Основные понятия.

1.1.1 Проблема уязвимости ПО.

1.1.2 Задача поиска уязвимостей.

1.2. ' Обзор методов, используемых при тестировании ПО.

1.2.1 Профилактика уязвимостей.

1.2.2 Модульное и интеграционное тестирование.

1.2.3 Внедрение ошибок и отслеживание утечки ресурсов.

1.3. Обзор методов, используемых при верификации ПО.

1.3.1 Ручной поиск уязвимостей.

1.3.2 Поиск шаблонов уязвимостей.

1.3.3 Тестирование методом ««серого ящика»».

1.3.4 Фаззинг в памяти.

1.4. Цель и задачи работы.

1.5. Выводы.

2. РАЗРАБОТКА АЛГОРИТМА ОЦЕНКИ ПОКРЫТИЯ КОДА ТЕСТАМИ

2.1. Выбор критерия оценки покрытия кода тестами.

2.1.1 Классы критериев.

2.1.2 Интегральная структурная оценка степени завершенности тестирования ПО.

2.2. Алгоритм оценки покрытия кода.

2.2.1 Оценка покрытия с использованием датчиков исполнения.

2.2.2 Расстановка датчиков исполнения на основе статического анализа.

2.2.3 Расстановка датчиков исполнения на основе динамического анализа.

2.3. Отслеживание реакции ПО на входные данные.

2.3.1 Динамическая оценка покрытия.

2.3.2 Сохранение значений параметров функций.

2.4. Оценка покрытия с использованием аппаратных средств процессора.

2.4.1 Аппаратные средства отладки процессоров Intel.

2.4.2 Разработка средства оценки покрытия кода на основе аппаратных возможностей

2.5. Выводы.

3. РАЗРАБОТКА АЛГОРИТМОВ ОБЕСПЕЧЕНИЯ И УЛУЧШЕНИЯ ПОКРЫТИЯ КОДА ТЕСТАМИ.

3.1. Алгоритм обеспечения кода тестами.

3.1.1 Аналог модульного тестирования для ПО в условиях отсутствия исходного кода.

3.1.2 Критерий оценки охвата тестирования.

3.1.3 Оценка охвата тестирования.

3.1.4 Алгоритм внедрения данных. Генерация интерфейсов.

3.1.5 Алгоритм внедрения данных. Динамическая компоновка.

3.2. Генерация тестовых данных.

3.2.1 Использование данных, поступающих из спутникового канала.

3.3. Алгоритм улучшения покрытия тестами.

3.3.1 Алгоритм последовательного внедрения ошибок.

3.3.2 Последовательное внедрение ошибок в бинарный код.

3.4. ВЫВОДЫ.

4. РАЗРАБОТКА МЕТОДА АВТОМАТИЧЕСКОГО ПОИСКА УЯЗВИМОСТЕЙ ПО В УСЛОВИЯХ ОТСУТСТВИЯ ИСХОДНОГО КОДА

4.1. Описание.

4.1.1 Входные данные.

4.1.2 Выходные данные.

4.1.3 Ограничения.

4.1.4 Последовательность шагов.

4.1.5 Выбор точки внедрения данных.

4.1.6 Выбор цели.

4.1.7 Предварительный анализ.

4.1.8 Выбор точки внедрения данных.

4.2. Внедрение данных и отслеживание реакции.

4.2.1 Подготовка тестов.

4.2.2 Пример создания теста.

4.2.3 Исполнение теста.

4.2.4 Оценка результатов.

4.3. Анализ уязвимости на основе данных о сбое.

4.4. Выводы.

5. ЭКСПЕРИМЕНТАЛЬНОЕ ИССЛЕДОВАНИЕ МЕТОДА,

АЛГОРИТМОВ И ПРОГРАММ.

5.1. Описание системы.

5.2. Сравнение предложенного алгоритма оценки покрытия с аналогами.

5.2.1 Сравнение с алгоритмом, использующим аппаратные средства.

5.3. Сравнение предложенного алгоритма внедрения данных с аналогами.

5.3.1 Сравнение с тестированием «черного ящика» в памяти.

5.4. Сравнение предложенного алгоритма увеличения покрытия с аналогами.

5.4.1 Алгоритм последовательного внедрения ошибок в действии.

5.4.2 Сравнение с алгоритмом случайного внедрения ошибок.

5.5. Выводы.

Рекомендованный список диссертаций по специальности «Методы и системы защиты информации, информационная безопасность», 05.13.19 шифр ВАК

Введение диссертации (часть автореферата) на тему «Разработка метода, алгоритмов и программ для автоматического поиска уязвимостей программного обеспечения в условиях отсутствия исходного кода»

Актуальность темы

Диссертационная работа посвящена актуальной проблеме разработки методов обнаружения уязвимостей в программном обеспечении (ПО) без исходных кодов. В последние годы задача обнаружения уязвимостей в ПО становится все более актуальной. В редких случаях технологии разработки

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

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

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

Для создания подобного метода требуется разработка алгоритмов обеспечения покрытия исполняемого кода тестами, оценки покрытия, а также алгоритма регистрации реакции на тесты.

Таким образом, задача разработки и исследования методов поиска уязвимостей в ПО без исходных кодов требует проведения интенсивных исследований и является актуальной.

Целью работы является разработка метода, алгоритмов и программ для автоматического поиска уязвимостей ПО в условиях отсутствия исходного кода. Задачи.

1. Разработка алгоритма оценки покрытия программного обеспечения тестами, позволяющего оценить степень завершенности процесса тестирования.

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

3. Разработка алгоритма улучшения покрытия на основе внедрения ошибок, способного быстро покрыть код, отвечающий за обработку аварийных ситуаций.

В рамках исследования используются методы теории графов. Результаты, выносимые на защиту.

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

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

3. Разработанный принцип обеспечения покрытия тестами ПО без исходных кодов позволяет автоматически выбирать точку внедрения, что позволяет уменьшить объем входных данных для обеспечения заданного покрытия.

4. Разработанный алгоритм улучшения покрытия ПО в условиях отсутствия исходного кода позволяет обеспечить покрытие участков кода, отвечающих за обработку аварийных ситуаций за время, пропорциональное количеству таких участков.

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

Практическая значимость и внедрение результатов работы Практическая значимость результатов диссертации заключается в следующем.

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

2. Разработанный принцип обеспечения покрытия тестами ПО в условиях отсутствия исходного кода может быть использован для проведения тестирования «черного ящика» «в памяти» во время лабораторных испытаний ПО. Алгоритм позволяет обойти ограничения интерфейсного кода, такие как ограничение количества сессий и таймауты между вызовами.

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

-4"Разработанный-метод-и-система автоматического поиска уязвимостей ПО в условиях отсутствия исходного кода может быть использован для лабораторных испытаний ПО.

Использование результатов: Основные результаты исследований были использованы на кафедре Безопасности информационных технологий ТТИ ЮФУ при проведении следующих научно-исследовательских и опытно-конструкторских работ: «Исследование методов моделирования и противодействия компьютерным атакам, осуществляемым системами несанкционированного управления», «Разработка и развитие технологий и методов использования уязвимостей систем в открытых сетях», «Исследование возможностей построения транспортной подсистемы на основе узлов сети интернет»; научных исследований, поддержанных грантом РФФИ №07-07-00138 в учебном процессе на кафедре БИТ ТТИ ЮФУ при проведении лабораторных работ по курсу «Низкоуровневое программирование в задачах защиты информации».

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

Апробация работы. По теме диссертации опубликовано 12 научных статей и тезисов докладов. Основные результаты, полученные в ходе работы над диссертацией, были представлены на.

Ovni Всероссийской научной конференции студентов и аспирантов «Техническая кибернетика, радиоэлектроника и системы управления», Таганрог (2006 г.). всероссийской научной конференции «Проблемы информационной безопасности в системе высшей школы: труды XIV всероссийской научной конференции», Москва (2007 г.). [□XIV общероссийская научно-техническая конференция «Методы и технические средства обеспечения безопасности информации». Санкт-Петербург (2007 г.).

Иип научно-технической конференции профессорско-преподавательского состава, аспирантов и сотрудников ТТИ ЮФУ. Таганрог (2008 г.).

§~~]Первой всероссийской молодежной конференции по проблемам информационной безопасности "ПЕРСПЕКТИВА - 2009". Таганрог (2009 г.).

Конференции «Молодежь и современные информационные технологии». Томск (2010 г.). Таганрог (2009 г.). □VI Ежегодная научная конференция студентов и аспирантов базовых кафедр Южного научного центра РАН, Ростов-на-Дону (2010 г.). ¡ПД Международной научно-практической конференции

Информационная безопасность». Таганрог (2010 г.) ^Тринадцатой международной конференции «РусКрипто'2011». Москва (2011).

Объем и структура диссертации. Диссертация состоит из введения, пяти глав, заключения, списка литературы, включающего 78 наименование. Основной текст диссертации изложен на 129 страницах, включая 38 рисунка и 18 таблиц.

Похожие диссертационные работы по специальности «Методы и системы защиты информации, информационная безопасность», 05.13.19 шифр ВАК

Заключение диссертации по теме «Методы и системы защиты информации, информационная безопасность», Благодаренко, Артем Васильевич

5.5. Выводы

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

Заключение

В соответствие с поставленными задачами, в итоге проведенных исследований и разработок были получены следующие основные научные результаты.

1. Разработан алгоритм оценки покрытия программного обеспечения тестами и отслеживания реакции тестов на исследуемое программное обеспечение. В качестве критерия выбрано количество пройденных при тестировании ветвей исполнения. Разработанный алгоритм использует статический и динамический анализ для реализации оценки покрытия кода, и отслеживания реакции ПО на входные данные. Производительность тестируемой системы при этом падает незначительно, а по сравнению с подобными системами оценки покрытия алгоритм работает в среднем в 153,5 быстрее.

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

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

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

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

Список литературы диссертационного исследования кандидат технических наук Благодаренко, Артем Васильевич, 2011 год

1. Руководящий документ. Защита от несанкционированного доступа к информации. Часть 1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей. М: Гостехкомиссия России, 1998.

2. Марков, A.C. Выявление уязвимостей в программном коде /A.C. Марков, C.B. Миронов, В Л. Цирлов // Открытые системы-2005.-№12.

3. А. С. Марков, C.B. Миронов, B.JI. Цирлов. Выявление уязвимостей программного обеспечения в процессе сертификации. Таганрог. Известия ТРТУ №7, 2006. С 82-87

4. Грег Хоглунд, Гари Мак-Гроу. Взлом программного обеспечения: анализ и использование кода. Издательство: Вильяме, 2005 г. 400 стр. ISBN 5-8459-0785-3, 0-201-78695-8

5. С. Макконнелл. Ссовершенный код. Издательство: Питер, 2007 г.896 cip.ISBN 5-469-00822-3, 5-7502-0064-7

6. С VE and ССЕ Statistics Query Page Интернет. -peжимдocтyпahttp://web.nvd.nist.gov/view/vuln/statisticscвoбoдный

7. WASC Web Application Security Statistics 2008. Интернет. режим доступа http://www.scribd.c0m/d0c/21324267/WASC-Web-Application-Security-Statistics-2008-Russian, свободный.

8. Джеймс С. Фостер. Защита от взлома. Сокеты, shell-код, эксплойты. Издательство: ДМК Пресс, 2006 г.784 стр. ISBN 5-9706-0019-9, 1597490-05-9

9. Джеймс К. Фостер, Винсент Лю. Разработка средств безопасности и эксплойтов. Издательство: Питер, 2007 г.432 CTp.ISBN 978-5-91180422-0, 978-5-7502-0301-7, 1-59749-997-8

10. Steve Christey, Robert A. Martin. Vulnerability Type Distributions in CVE. Интернет. режим доступа http://cwe.mitre.org/documents/vuln-trends.html

11. П.Кен Ауэр, Рой Миллер. Экстремальное программирование -постановка процесса с первых шагов и до победного конца.Издательство: Питер, 2003 г.368 CTp.ISBN 5-318-00132-7

12. Фредерик Брукс. Мифический человекомесяц или как создаются программные системы.Издательство: Символ-Плюс, 2010 г.304 стр. ISBN 5-93286-005-7, 0-201-83595-9

13. Кент Бек. Экстремальное программирование разработка через тестирование.Издательство: Питер, 2003 r.ISBN 5-8046-0051-6, 0321-14653-0

14. J. Voas, "Fault Injection for the Masses," Computer, vol. 30, pp. 129— 130, 1997.

15. A. Avizienis, J.-C. Laprie, В. Randell, and C. Landwehr, "Basic Concepts and Taxonomy of Dependable and Secure Computing," Dependable and Secure Computing, vol. 1, pp. 11-33, 2004.

16. G. A. Kanawati, N. A. Kanawati, and J. A. Abraham, "FERRARI: A Flexible Software-Based Fault and Error Injection System," IEEE Transactions on Computers, vol. 44, pp. 248, 1995.

17. T. Tsai and R. Iyer, "FTAPE: A Fault Injection Tool to Measure Fault Tolerance," presented at Computing in aerospace, San Antonio; TX, 1995.

18. Корпорация «Майкрософт» и обеспечение безопасности: результаты изменения подхода к разработке продуктов. Интернет. режим доступаhttp://www.microsoft.com/rus/midsizebusiness/security/sdl.mspx, свободный.

19. Майкл Саттон, Адам Грин, ПедрамАмини. Fuzzing. Исследование уязвимостей методом грубой силы. Издательство: Символ-Плюс, 2009 г. 560 стр. ISBN 978-5-93286-147-9

20. Документация к системе ComRider/ Интернет. режим доступа http://labs.idefense.com/files/labs/releases/previews/CQMRaider/ свободный.

21. В.П Котляров., Т.В Коликова. Основы тестирования программного обеспечения. Учебное пособие. М. Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2006 г.

22. Goodenough J.B., Gerhart S.L. Toward a Theory of Test Data Selection. IEEE Transactions on Software Engineering, 1975, SE-1, №2.

23. Борзов Ю.В., УртансГ.Бю, Шимаров B.A. Выбор путей программы для построения тестов // УСиМ. -1989.

24. Документация к системе Holodeck. Интернет. режим доступа http://www.securityinnovation.com/holodeck/index.shtml свободный.

25. Поискуязвимостейпосредствоманализаисполняемогокода. Динамическийанализ. Сб. трудовУШВсероссийской научной конференции студентов и аспирантов «Техническая кибернетика, радиоэлектроника и системы управления», Таганрог 2006. с. 333.

26. Благодаренко А.В. Статистический и динамический анализ программного обеспечения без исходных текстов ( тезисы доклада ).

27. Проблемы информационной безопасности в системе высшей школы: труды XIV всероссийской научной конференции.-М.:МИФИ, 2007. с. 33-34.

28. Благодаренко А.В. Полномаршрутное тестирование программного обеспечения без исходных кодов. Материалы XIV общероссийской научно-технической конференции Спб. «Методы и технические средства обеспечения безопасности информации». 2007. с. 31.

29. Chris Eagle. The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler. No Starch Press. ISBN: 1593271786. 632 p. 2008.

30. PedramAmini. Process Stalking. Run-time Visual Reverse Engineering. 1. // Интернет. peжимдocтyпahttp://dvlabs.tippingpoint.com/pub/pamini/ProcessStalkin gPedramAmini.pdf, свободный

31. А.С.Марков, В.Л.Цирлов. Аудит программного кода по требованиям безопасности / // InformationSecurity 2008 - №№2 и 3.

32. N. Jovanovic, Ch. Kruegel, Е. Kirda, "Pixy: A Static Analysis Tool for .Detecting Web Application Vulnerabilities".

33. V. Livshits, M. Lam, "Finding security errors in Java programs withstatic analysis", In Proceedings of the 14th Usenix Security Symposium, 2005.

34. AboutPREfastforDrivers. Интернет. -режим доступа http ://msdn.microsoft, com/en-us/windows/hardware/gg487345 свободный.

35. Stephen Johnson. Lint, а С program checker. Computer Science Technical Report 65, Bell Laboratories, December 1977.

36. Kolawa, Adam; Huizinga, Dorota. Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press, pp. 426. ISBN 0470042125.2007.

37. Krill, Paul. "Coverity buys Solidware to boost code analysis". Интернет. режим доступа http://www.infoworld.com/cl/developer-world/coverity-buys-solidware-boost-code-analysis-596 Дата доступа 29.01.2011.

38. Страница проекта FlawFinder. Интернет. режим jocTynawww.dwheeler.com/flawfinder/ свободный.

39. John Viega, J.T. Bloch, Yoshi Kohno, Gary McGraw. ITS4: A Static Vulnerability Scanner for С and С++ Code. Reliable Software TechnologiesDulles, Virginia. 2000

40. Страница проекта RATS. Интернет. режим доступа https://www.fortify.com/ssa-elements/threat-intelligence/rats.html свободный.

41. PROTOSTest-Suite. Интернет. режим доступа www.ee.oulu.fi/research/ouspg/protos/testing/c05/http-reply/ свободный.

42. Allen Harper. Gray Hat Hacking The Ethical Hackers Handbook, 3rd Edition. McGraw-Hill Osborne Media. ISBN: 0071742557. 721 p.2011

43. Ari Takanen, Jared DeMott, Charlie Miller. Fuzzing for Software Security Testing and Quality Assurance. ARTECH HOUSE. ISBN 13: 978-1-59693-214-2. 312 p. 2008.

44. PedramAmini. PaiMei Reverse Engineering Framework. RECON2006. 2006.

45. Благодаренко A.B. Инструментальное средство для проведения сертификационных испытаний программного обеспечения без исходных кодов(статья). Известия ЮФУ. Технические науки. Тематический выпуск. Таганрог 2007, с. 212-215.

46. Гриффитс ApTyp.GCC. Полное руководство. Пре. с англ./Артур Гриффите. К: 000«ТИД «ДС», 2004. -624 с.

47. Microsoft РЕ and COFF Specification. Интернет. режим доступа http://msdn.microsoft.com/en-us/windows/hardware/gg463119 свободный.

48. Виктор Юров. Assembler. Специальный справочник. Издательство: Питер, ISBN 5-469-00003-6. 416 стр. 2004 г.

49. Intel® 64 and IA-32 Architectures Software Developer's Manual Volume ЗА: System Programming Guide, Part 1. Интернет . режим дocтyпahttp://www.intel.com/Assets/PDF/manual/253668■pdf свободный.

50. Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide, Part 2. Интернет. -режимдоступаЬЦр ://www. intel .com/Assets/PDF/manual/253669.pdf свободный.

51. Фрэнк Харари. Теория графов. Издательство: Едиториал УРСС. ISBN: 5-354-00301-6. 296 с. 2003.

52. Ope. Теория графов. Издательство: Либроком, ISBN 978-5-39700044-4, 344 с. 2009 г.

53. Ключарев A.A., Матьяш В.А., Щекин C.B. Структуры и алгоритмы обработки данных: Учебное пособие. СПб.: ГУАП, 2003. - 172 с.

54. Е. Н. Долгова, А. В. Чернов. О некоторых задачах обратной инженерии. Труды Института системного программирования, Том 15, Москва 2008, стр. 119-134.

55. Callingconvention. Интернет. режим доступа http.7/ru.wikipedia.org/wiki/Calling convention свободный.

56. Крис Касперски, Ева Рокко. Искусство дизассемблирования. Издательство: БХВ-Петербург,ISBN 978-5-9775-0082-1, 896 с. 2008 г.

57. Джеффри Рихтер. Windows для профессионалов. Создание эффективных Win32-пpилoжeний с учетом специфики 64-разрядной версии Windows. Издательства: Питер, Русская Редакция. ISBN 5272-00384-5, 1-57231-996-8. 752 стр. 2008 г.

58. Greg Hoglund, Jamie Butler. Rootkits: Subverting the Windows Kernel. Addison-Wesley Professional. ISBN-10: 0321294319. 352 p. 2005.

59. Благодаренко A.B. Пассивный honeypot на анализе спутникового трафика( статья ). с 44-49. Сборник ЮФУ. Тематический выпуск. Информационная безопасность. Перспектива-2009. 2009. с 44-49.

60. NielsProvos, Thorsten Holz. Virtual Honeypots: From Botnet Tracking to Intrusion Detection. AddisonWesleyProfessional, 2007. 480 p.

61. Благодаренко A.B. Широковещательное распространение обновлений безопасности для ОС Linux через спутниковый канал( статья ). Сборник ЮФУ. Тематический выпуск. Информационная безопасность. Перспектива-2009. 2009. с 210-214.

62. Digital Video Broadcasting (DVB) Interaction channel for satellite distribution systems. European Standart (Telecommunications series). ETSIEN301 709 v 1.5.1 (2009-5)

63. Экономим трафик (и время) deltup-ом. URL:http://thinkit.ru/blog/viewblog/391/ (дата обращения: 18.05.2009 ).

64. Nicholas Nethercote. Dynamic Binary Analysis and Instrumentation Электронныйресурс. -Режимдоступа: http://valgrind.org/docs/phd2004.pdf, свободный

65. С. Cowan, S. Beattie, J. Johansen, and P. Wagle. Point-Guard: Protecting pointers from buffer overflow vulnerabilities. In 12th USENIX Security Symposium, 2003.

66. C. Cowan, M. Barringer, S. Beattie, and G. Kroah-Hartman. FormatGuard: automatic protection from printf format string vulnerabilities. InProceedingsofthe 10th USENIX SecuritySymposium, August 2001.

67. James Newsome, Dawn Song. Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software. In Proceedings of the Network and Distributed System Security Symposium, 2005

68. Страница проекта Microsoft ¡exploitable, http://msecdbg.codeplex.com.1. Датадоступа 1.05.2011.

69. Abouchaev, Adel; Hasse, Damian; Lambert, Scott; Wroblewski, Greg. Analyze crashes to find security vulnerabilities in your apps.

70. Rodrigo RubiraBranco. Dynamic Program Analysis and Software Exploitation. 2010.

71. In-memory fuzzing. Corelan team. Интернет. -режим доступа http://www.corelan.be/index.php/2010/10/20/in-memory-fuzzing/?output=pdf свободный.

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.