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


ВЫЯВЛЕНИЕ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ВНЕДРЕННОГО В ЯДРО LINUX

Работа №160824

Тип работы

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

Предмет

информатика

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

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


Введение 7
1 Руткиты 9
1.1 Общие сведения о руткитах, работающих в среде GNU/Linux ... 9
1.2 Подсистемы ядра Linux 10
1.2.1 Интерфейс системных вызовов 10
1.2.2 Управление процессами 13
1.2.3 Управление памятью 14
1.2.4 Подсистема виртуальных файловых систем 15
1.2.5 Сетевой стек 21
1.2.6 Драйвера устройств 21
1.2.7 Архитектурно-зависимый код 22
1.3 Ключевые механизмы работы ядерных руткитов 22
1.3.1 Уровня приложения 22
1.3.2 Уровня библиотек 23
1.3.3 Уровня ядра 23
1.4 Техники сокрытия 24
1.4.1 Перехват 24
1.4.2 Модификация структур ядра 25
2 Существующие методы обнаружения руткитов 26
2.1 Базовые методы 26
2.1.1 lsmod 26
2.1.2 Проверка наличия нелигитимных модулей ядра в директории /sys/module/ 26
2.1.3 Проверка корректности таблицы системных вызовов ... 27
2.1.4 Проверка корректности структуры файловых операций . . 27
2.1.5 Проверка наличия нелигитимных модулей ядра в файле /proc/modules 27
2.1.6 Сравнение содержимого виртуальной файловой системы procfs с выводом команды ps aux 27
2.1.7 Перебор всех возможных идентификаторов процесса. ... 28
2.2 Существующее программное обеспечение для выявления руткитов 28
2.2.1 zeppoo 28
2.2.2 chkrootkit 28
2.2.3 rkhunter 28
2.2.4 unhide 29
3 Разработка методов выявления руткитов 30
3.1 Методы выявления вредоносного программного обеспечения, производящего скрытие процессов операционной системы 30
3.2 Методы выявления вредоносного программного обеспечения, производящего скрытие сетевых соединений 32
3.3 Методы выявления вредоносного программного обеспечения, производящего скрытие объектов файловой системы 35
4 Методы защиты от противодействия своей работе со стороны вредоносного программного обеспечения на уровне ядра операционной системы . . 37
4.1 Основные способы защиты исполняемых файлов 39
4.2 Обфускация сегмента исполняемого кода 40
4.3 Защита модуля ядра от модификации 41
4.4 Случайная перестановка полей структур 42
4.5 Защита межпроцессного взаимодействия между модулем ядра и приложением пользовательского пространства 44
5 Разработка средства обнаружения компрометации ядра 45
5.1 Общее описание 45
5.2 Разработка средства протоколирования 45
5.2.1 Интерфейс для сервисной утилиты 51
5.3 Разработка сервисной утилиты 52
6 Методика настройки и эксплуатации 54
6.1 Общие cведения о программном средстве 54
6.2 Установка и настройка программного средства 55
7 Экспериментальные исследования разработанных алгоритмов 58
7.1 Описание метода проведения исследования 58
7.2 Diamorphine 58
7.3 ivyl rootkit 59
7.4 nurupo rootkit 60
7.5 NoviceLive research-rootkit 61
7.6 Общий результат исследования 62
Заключение 63
Список использованных источников 64
Приложение А Алгоритм функционирования метода выявления скрытых процессов 66
Приложение Б Алгоритм функционирования метода выявления скрытых сетевых соединений 68
Приложение В Алгоритм функционирования метода выявления скрытых объектов файловой системы 70
Приложение Г Схема планировщика задач ядра Linux 72
Приложение Д Схема слоя виртуальных файловых систем ядра Linux .... 74
Приложение Е Схема сетевого стека ядра Linux 76
Приложение Ж Акт о внедрении 76

С ростом популярности использования основанных на ядре Linux операционных систем во всех сферах деятельности общества, GNU/Linux становится все более популярным и в качестве цели атаки. Немаловажным фактором является также то, что Linux многими априори воспринимается как более безопасная система, из-за чего множество системных администраторов пренебрегает вопросами безопасности, не уделяя им должного внимания.
Объемы вредоносного ПО постоянно увеличиваются, и в течении нескольких десятков лет, прошедших с момента появления первых вирусов, количество инцидентов безопасности (и связанных с ними финансовых потерь) продолжает расти в геометрической прогрессии [1].
Закономерным завершением атаки является процесс закрепления на системе. Для этих целей используются руткиты - ПО, обеспечивающее злоумышленнику возможность скрывать свое воздействие на систему, также скрывая и наличие самого вредоносного ПО [2].
Актуальность данного дипломного проекта состоит в том, что несмотря на рост количества инцидентов, связанных с вредоносным программным обеспечением, на данный момент отсутствуют эффективные средства обнаружения вредоносного программного обеспечения на уровне ядра Linux.
Целью данной выпускной квалификационной работы является разработка методов выявления вредоносного программного обеспечения, внедренного в ядро Linux.
Для достижения цели выпускной квалификационной работы были постав-лены следующие задачи:
- описание существующих методов обнаружения руткитов, внедренных в ядро Linux;
- описание разработанных методов;
- разработка алгоритмов выявления вредоносного программного обеспечения;
- разработка и описание средства по обнаружению компрометации ядра;
- разработка и описание методики настройки и эксплуатации средства обнаружения компрометации ядра.

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

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

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


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


1 Linux in the Time of Malware // Federico Kereki, Linux Journal Geek Guide, 2015.—С. 5.
2 ГОСТ Р ИСО/МЭК 27033-3-2014. Информационная технология. Методы и средства обеспечения безопасности. Безопасность сетей. Часть 3. Эталонные сетевые сценарии. Угрозы, методы проектирования и вопросы управления. — М.: Стандартинформ, 2014
3 Professional Linux Kernel Architecture // Wolfgang Mauerer, 2008. - C. 1368.
4 Rootkits - Detection and prevention // Andr'e Jorge Marques de Almeida, 2008 - C. 88.
5 Direct Kernel Object Manipulation // Indiana University of Pennsylvania, 2015-C. 7.
6 Hijacking the Linux Kernel // Boris Prochazka, Tomas Vojnar, Martin Drahansky, 2010 - C. 8.
7 Binary protection schemes // Andrew Griffiths, 2015 - C. 98.
8 Randomizing structure layout [Электронный ресурс]. - Режим доступа: https://lwn.net/Articles/722293/
9 Эмуляция систем с помощью QEMU [Электронный ресурс]. - Режим доступа: https://www.ibm.com/developerworks/ru/library/l-qemu/
10 Hardware Breakpoint (or watchpoint) usage in Linux Kernel // Prasad Krishnan, Linux Symposium, 2009
11 The Go Programming Language Documentation [Электронный ресурс]. - Режим доступа: https://golang.org/doc/
12 Diamorphine [Электронный ресурс]. - Режим доступа: https://github.com/m0nad/Diamorphine
13 ivyl rootkit [Электронный ресурс]. - Режим доступа: https://github.com/ivyl/rootkit
14 nurupo rootkit [Электронный ресурс]. - Режим доступа: https://github.com/nurupo/rootkit
15 NoviceLive research rootkit [Электронный ресурс]. - Режим доступа: https://github.com/NoviceLive/research-rootkit


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




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