Тип работы:
Предмет:
Язык работы:


Методы поиска уязвимостей в программном обеспечении на основе технологии фаззинга

Работа №51857

Тип работы

Бакалаврская работа

Предмет

физика

Объем работы73
Год сдачи2017
Стоимость4390 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
263
Не подходит работа?

Узнай цену на написание


Введение 4
1. Обзор 6
1.1. Определение фаззинга 6
1.2. Фазы фаззинга 6
1.3. Ограничения и исключения при фаззинге 7
1.4. Методы и типы фаззинга 9
2. Структура фаззеров 12
2.1. Фаззеры коммуникационных протоколов 12
2.2. Фаззер Sulley 13
2.2.1. Использование Sulley 14
2.2.2. Протокол Sulley 14
2.2.3. Строки 14
2.2.4. Разделители 15
2.2.5. Постоянные и случайные 16
2.2.6. Фаззинговая библиотека 18
2.2.7. Бинарные данные 18
2.2.8. Целые числа 18
2.2.9. Блоки и группы 20
2.2.10. Кодировщики 23
2.2.11. Зависимости 24
2.2.12. Блоки помощники 25
2.2.13. Измеритель 25
2.2.14. Расчет контрольной суммы 26
2.2.15. Повторитель 27
2.2.16. Методы фаззинга Sulley 29
2.2.17. Скелет HTTP протокола 30
2.2.18. Процесс Sulley 32
2.2.19. Мониторинг фаззиногово трафика 33
2.3. Сравнение фаззеров Sulley и SPIKE 37
2.4. Сравние фаззеров Sulley и Scapy 37
2.5. Фаззинг ActiveX/COM 38
2.5.1. ActiveX 38
2.5.2. Использование COMRaider 40
3. Разработка программного обеспечения для проведения фаззинга OPC серверов 46
3.1. Краткие теоретические сведения по технологии OPC 46
3.1.1. Объектная модель OPC DA. Интерфейсы 48
3.1.2. Принципы функционирования OPC DA 50
3.1.3. Механизмы чтения и записи данных процесса 53
3.1.4. Адресное пространство OPC DA сервера 53
3.1.5. Способы чтения данных из OPC DA сервер 54
3.2. Фаззинг OPC серверов с помощью методов фаззинга COM объектов...56
3.2.1. Описание действий. Практическое обоснование неприменимости
методов фаззинга COM объектов к фаззингу OPC серверов 57
3.2.2. Теоретическое обоснование неприменимости методов фаззинга COM
объектов к фаззингу OPC серверов 59
3.3. Разработка инструмента фаззинга работающий через функции opcproxy.dll 63
3.3.1. Результаты 63
3.3.2. Недостатки 63
Заключение 65
Список литературы 66
Приложение

В современном мире компьютерные и программные технологии не просто стремительно входят в нашу жизнь, но уже используются практически во всех ее сферах. К сожалению, это не только облегчает рутинные процессы, автоматизирует промышленность и предоставляет людям большие возможности, но и как любой инструмент несет опасность вероятных сбоев в своей работе.
Программные технологии еще далеки до совершенства, и можно с уверенностью сказать, что по мнению многих специалистов в коде более чем 90% программного обеспечения содержаться ошибки (а в некоторых программных продуктах даже специально заложены недокументированные возможности, так называемые бэкдоры). Эти ошибки и бэкдоры приводят к различным уязвимостям и некорректной работе, в результате соответствующие программы уже не могут считаться безопасными для использования. Для повышения безопасности и корректной работы программного обеспечения были созданы специальные методы и технологии. Одной из таких технологий является фаззинг.
Фаззинг - это процесс отсылки намеренно некорректных данных в исследуемый объект с целью искусственного создания ситуации сбоя или ошибки. Устоявшихся правил проведения фаззинга нет. Это такая технология, при которой успех его проведения измеряется исключительно результатами теста.
Для любого отдельно взятого тестируемого программного продукта количество вводимых данных может быть бесконечным. Фаззинг - это процесс предсказания, задачей которого является определить: какие типы скрытых программных ошибок могут оказаться в продукте и какие именно значения вводимых данных могут вызвать эти ошибки. Фаззинг - это в большей степени искусство, чем наука или технология.
Актуальность фаззинга сейчас велика, как никогда. Если раньше его использовали лишь специалисты по информационной безопасности и хакеры, то сейчас большое количество известных IT-компаний, таких как Intel, Google и Microsoft, помимо других средств используют и фаззинг для тестирования своих приложений.
Еще на слуху действия нашумевшего вируса Stuxnet. По одной из версий вирус представляет собой специализированную разработку спецслужб Израиля и США, направленную против ядерного проекта Ирана. Вирус фактически атаковал систему автоматизированного управления технологическими процессами. Безопасность и корректность таких систем является важной задачей потому, что на основе таких систем работают химические заводы, промышленные фабрики, гидроэлектростанции и атомные станции. Любое несанкционированное действие со стороны подобных программ может не только разрушить многомиллионное оборудование, но и унести тысячи и даже миллионы человеческих жизней.
ОРС (OLE for Process Control) является наиболее распространенным протоколом, используемым в системах автоматизированного управления технологическими процессами (АСУ ТП). На момент написания данной работы не удалось найти результатов по фаззингу ОРС протокола или программ использующих данный протокол.
Целью данной работы является проведение фаззинга программного обеспечения, функционирующего на основе ОРС протокола.
Для достижения поставленной цели необходимо выполнить следующие задачи:
• Обзор и систематизация современных методов фаззинга.
• Обзор и изучение серверов с OPC протоколом.
• Разработка программного инструмента для фаззинга серверов, использующих ОРС протокол.
• Тестирование и выявление случаев некорректной работы серверов, использующих ОРС протокол, с помощью разработанного инструмента.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В рамках выполнения данной работы был проведен обзор современных методов фаззинга, изучены и описаны основные идеи, способы генерации данных.
Изучены и использованы на практике современные средства фаззинга (фаззеры) разных типов. Составлен подробный обзор фаззеров с описанием функций и инструментов некоторых из них.
Приведены примеры успешной работы фаззинговых приложений. Обзор современных средств фаззинга показал, что фаззинг является хорошим средством для поиска уязвимостей и случаев некорректной работы программного обеспечения, с помощью которого можно сильно сократить временные затраты на проверку приложений.
Была исследована применимость современных средств фаззинга к приложениям, работающих по протоколу ОРС DA. В результате этих исследований были сделан вывод о том, что современные средства фаззинга не подходят для поиска уязвимостей в реализациях программного обеспечения, использующего стандарт ОРС, из-за применения в них библиотеки opcproxy.dll.
Был разработан программный инструмент, в котором реализована возможность отсылки некорректных данных с помощью методов библиотеки opcproxy.dll. С помощью этого инструмента была выявлена некорректная работа OPC сервера ModbusOPCServer. Данный сервер перестает работать при обработке данных в случаях наличия хотя бы одного параметра, имеющего тип double, для передачи которого задействуются строка, превышающая 21 символ. На основании этого можно сделать вывод о том, что в любом приложении, работающем по протоколу ОРС (несмотря на корректную реализацию протокола) могут содержаться ошибки, которые могут проявится при обработке данных.
Таким образом, поставленные задачи выполнены, цель достигнута.



[1] Wiki
Sulley Installation
https://github.com/OpenRCE/sulley/wiki/Windows-Installation
[2] Justin Seitz
GRAY HAT PYTHON
http: //www.reverse4you. org/translate/GHP/Book/Gray_Hat_Python.pdf
[3] Pedram Amini and Aaron Portnoy
Sulley: Fuzzing Framework http://www.fuzzing.org/wp- content/SulleyManual .pdf
[4] Enno Rey and Daniel Mende
Advanced Protocol Fuzzing
https://www.emw.de/download/l2_fuzzing_shmoo08.pdf
[5] High-Tech Bridge SA
Fuzzing: An introduction to Sulley Framework
https: //www.htbridge.com/publication/The- Sulley-Fuzzing- Framework.pdf
[6] Xiong Qi, Peng Yong, Zhonghua Dai, Shengwei Yi, and Ting Wang OPC-MFuzzer: A Novel Multi-Layers Vulnerability Detection Tool for OPC Protocol Based on Fuzzing Technology
International Journal of Computer and Communication Engineering
[7] Rebecca Shapiro, Sergey Bratus, Edmond Rogers and Sean Smith IDENTIFYING VULNERABILITIES IN SCADA SYSTEMS VIA FUZZ-TESTING
[8] FANG LAN, WANG CHUNLEI, HE RONGHUI
Research on Memory Access Vulnerability Analysis Technique in SCADA Protocol Implementation
Department of Network Research Beijing Institute of System Engineering 10th North Anxiang Road, Chaoyang District, Beijing
CHINA
[9] Федоренко Денис
Программирование OPC клиентов на C++ и C http: //www.twirpx.com/file/698087/
[10] Xiong Qi, Peng Yong, Zhonghua Dai, Shengwei Yi,Haihui Gao a Ting Wang
Design and Implementation of Fuzzing Technology for OPC Protocol
Ninth Intrtnatioma Conference on Intelligent Information Hiding and
Multimeadia Signal Processing
[11] http://www.fuzzing.org/
Sulley API http://www.fuzzing.org/wp-
content/SulleyEpyDoc/private/sulley-module.html
[12] OPC FOUNDATION
The Interoperability Standard for Industrial Automation
https: //opcfoundation.org/
[13] OPC FOUNDATION
OPC Data Acces Custom Interface Standart ver 2.05A
http://www.vegvesen.no/_attachment/242341/binary/446870?fast_title=Vedleg
OPC+20DA+2.05a+Specification.pdf
[14] Microsoft
Description OLEViewer of utility
https://msdn.microsoft.com/ru-ru/library/d0kh9f4c.aspx
[15] David Zimmer
COMRaider Description and Source
https: //github.com/dzzie/COMRaider
[16] HD Moore
AxMan ActiveX Fuzzer Description and Source
https: //github.com/hdm/axman
[17] Insat
Modbus Universal MasterOPC Server 32 http://www.insat.ru/productsUcategoryM414
[18] MatrikonOPC
MasterScadaOPCDAServer
http://www.matrikonopc.com/downloads/types/drivers/index.aspx
[19] Insat
Modbus Universal MasterOPC Server 32
http: //www.insat.ru/products/?category=1414
[20] Каскад Групп
KDAOPCServer http: //kaskad-asu.com/index.php/produkcij a-i-
uslugi/programmnoe-obespechenie/opc-servery
[21] LectusSoft
Lectus Modbus OPC/DDE сервер
http://www.lectussoft.com/opcserver.html
[22] Michael Sutton, Adam Greene and Pedram Amini
Fuzzing: Brute Force Vulnerability Discovery
[23] Александр Гостев, Лабаратория Касперского
Stuxnet в деталях http://www.kaspersky.ru/about/news/virus/2014/stuxnet- v-detaliakh
[24] sourceforge.net
Dranzer Fuzzer Description and Source
http: //sourceforge.net/proj ects/dranzer/


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ