Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

вторая_чать_диплома

.pdf
Скачиваний:
8
Добавлен:
19.03.2016
Размер:
1.63 Mб
Скачать

скрытие процессов. Вторым найденным файлом является rootkit_lib.dll,

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

―Имя_процесса @ модуль_в_этом_процессе:

название_библиотеки.название_функции(адрес_оригинальной_функции) ->

адрес_функции_перехватчика‖

Подобная строка является характеристикой для WinAPI перехватчика,

который осуществляет модификацию таблицы импорта приложения.

Так в выделенной строке говорится, что в процессе с названием

CyberWarrior.exe в модуле G:\..\CyberWarrior.exe перехвачена функция

FindNextFileA из библиотеки kernel32.dll, оригинальный адрес которой

774da659 был изменѐн на 72b815b0.

Рисунок 13 - Эвристический анализатор

Эвристический анализатор так же нашѐл несколько подозрительных объектов (рисунок 13). Так по ряду некоторых причин и необходимости работы в привилегированном режиме CyberWarrior.exe вызвал подозрение у эвристического анализатора, что является верным.

Рисунок 14 - Ложное срабатывание эвристики

Так как режим бдительности эвристического анализатора был максимальным, ложных срабатываний избежать не удалось (рисунок 14).

Файл программы обновления Java-машины был классифицирован как

Downloader (Trojan-Downloader). Строка Downloader говорит о том, что

41

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

Если вспомнить что говорилось ранее - эвристические анализаторы не могут предоставлять стопроцентной гарантии относительно вредоносности,

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

запуска имеется.

По итогам работы программы можно отметить высокую скорость сканирования, сравнимую с GMER – лидером прошлых испытаний.

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

2.8Средства реализации

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

Среда разработки – Microsoft Visual Studio 2013. Студия разработки от Microsoft является очень удобным и эффективным средством для написания приложений под ОС линейки Windows NT. Данная среда разработки включает в

42

себя мощный встроенный редактор кода, с подсветкой синтаксиса и авто подстановкой кода, встроенный отладчик.

Начиная с версии 2013, появилась возможность разработки и тестирования драйверов устройств разных моделей – WDM, WDF, Legacy drivers. Поэтому теперь не требуется отдельная установка пакета разработчика драйверов – Microsoft Driver Development Kit;

Qt Visual Studio Add-in – приложение интегрирующее набор библиотек для разработки графических приложений Qt, в среду разработки Microsoft Visual Studio;

Qt Linguist – вспомогательное приложение из пакета программ

Qt SDK, которое используется для интернационализации приложения;

Язык разработки: С\С++ является наиболее удобным и давно признанным языком системного программирования. По мимо того, что сама операционная система Windows и все еѐ компоненты написаны на C и С++. Компания Microsoft

предоставляет большое количество технической документации,

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

43

3 Аппаратные и программные требования

Разрабатываемое приложение будет выполняться на всей линейке систем Windows NT, начиная с версии XP Service Pack 2 до самой новой на данный момент версии – Windows 8.

Минимальные требования к аппаратной части:

оперативная память: от 256 MB;

процессор: Intel Pentium 4 CPU 2.2 GHz;

требуемое место на диске: 20 MB;

разрешение экрана: 800x600 pix.

44

4 Реализация приложения

Общая схема функционирования и взаимодействия с элементами

системы отображена на схеме ниже.

Рисунок 15 - Схема функционирования приложения

Приложение строится на использовании следующих компонентов

(классов, функций):

1)ui_client – это достаточно большой компонент, в котором реализуется набор компонентов для интерфейса пользователя.

Содержит в себе набор обработчиков (slots) событий пользовательских компонентов, набор графических ресурсов – иконки, изображения и т.д. Представляет собой промежуточный уровень для общения пользователя с системой безопасности,

существует в одном экземпляре. В нѐм инкапсулируется следующие компоненты графического представления:

Common settings widget – вкладка общих настроек программы.

45

Protected lists widget – используется как в вкладка со списком защищѐнных библиотек.

Trusted apps widget – используется для отображения и взаимодействия со списком доверенных приложений.

Quarantine widget – реализует взаимодействие с объектом хранения удалѐнных копий вредоносных программ.

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

приостановлен, возобновлѐн. Работа с деревом найденных угроз так же осуществляется в этом компоненте. Все события от сканера поступают непосредственно к нему – добавление новых файлов, характеристик в дерево.

2)quarantine – класс отвечающий за хранение, добавление, удаление,

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

3)cleaner – компонент отвечающий за корректное удаление вредоносных объектов из системы, снимает хуки, восстанавливает оригинальные адреса в таблице импорта, таблице системных вызовов (System Services Descriptor Table), удаляет файлы.

Занимается выполнением сложных и безопасных операций удаления.

4)security – осуществляет сканирование критических участков системы, не имеет графического представления, оповещает всех заинтересованных, подписчиков о любых подозрительных,

опасных файлах, процессах, модулях, драйверах. Данный объект

46

занимается взаимодействием с эвристическим анализатор для

выполнения дополнительных проверок.

5)system – объект, который предоставляет ограниченный набор методов, которые инкапсулируют в себе целый ряд обращений к системным функциям, что упрощает взаимодействие с системой.

6)heuristic – набор специальных алгоритмов для анализа структур исполняемых файлов. На выходе у большинства алгоритмов получаются структуры характеризующие объект, последующий анализ которых позволяет получить некоторую вероятность нахождения вредоносной составляющей.

7)worklog – весьма важный компонент, который занимается протоколированием работы приложения на всѐм этапе его выполнения. С помощью механизма ведения логов можно упростить процесс разработки, тестирования, а так же в случае возникновения каких-то внештатных ситуаций у конечного пользователя именно подобная информация сможет помочь в решении той или иной проблемы.

8)settings – осуществляют всю работу по сохранению, изменению,

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

9)client0 – объект, посредник между главным приложением и драйвером режима ядра. Предоставляет набор методов для прямого обращения к драйверу. Возможности драйвера используются с целью обхода вызовов системного API, которые могут быть перехваченными, возвращаемая в таком случае информация может быть ложной, с отсутствием необходимых данных.

47

10)сbase – набор базовых, более безопасных функции из библиотеки языка C. В функции были добавлены необходимые проверки корректности аргументов.

11)PeFile – объект для работы с внутренней структурой исполняемых файлов ОС Windows - Portable Executable (.exe, .dll,

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

Рисунок 16 - Диаграмма классов

4.1 Размещение приложения в пользовательской системе

48

Использовать приложение просто, для этого достаточно разместить его файлы в любом месте жѐсткого диска. Для установки может использоваться любой инсталлятор – самораспаковывающийся архив, NSIS (nullsoft scriptable install system), MSI пакет. Структура каталога программы представлена ниже (рисунок 17).

Рисунок 17 - Каталог программы

QtGui4.dll, QtXml4.dll, QtCore4.dll, msvcp100.dll, msvcr100.dll – это набор стандартных библиотек языка C++ и QtSDK.

Killed – каталог в котором хранятся зашифрованные копии ранее удалѐнных файлов, отображаемых во вкладке карантина, главного окна приложения.

Файлы имеют расширение .killed.

Langs – каталог, содержащий файлы для интернационализации приложения.

Plugins – каталог в котором находится ряд вспомогательных библиотек Qt

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

Settings_x – каталог настроек программы. Файлы настроек имеют расширение .conf.

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

Scanlog_дата.log – журнал сканера угроз.

Worklog_дата.log – журнал с общей информацией о работе программы.

49

Ниже приведѐн пример такой информации: 18:05:55: Quarantine path: G:\CyberPeace\killed

18:05:56: file was successfully loaded G:\CyberPeace\settings_x\settings.conf 18:05:56: file was successfully loaded G:\CyberPeace\settings_x\syslibs.conf 18:05:56: file was successfully loaded G:\CyberPeace\settings_x\trusted.conf 18:05:56: settings were loaded successfully

18:05:56: quarantine was loaded successfully 18:05:56: using of quarantine is enabled 18:05:56: heuristic is enabled

18:05:56: The Program was loaded!

18:06:02: Anti-Rootkit driver was loaded successfully 18:06:02: Anti-Rootkit driver was configured successfully 18:06:10: G:\CyberPeace\rootkit_lib.dll was saved in quarantine 18:06:10: G:\CyberPeace\rootkit_lib.dll all hooks were removed

18:06:10: G:\CyberPeace\rootkit_lib.dll was unloaded from system 18:06:19: G:\projects\rootkit_for_test\rootkit.sys was saved in quarantine 18:06:19: G:\projects\rootkit_for_test\ rootkit.sys all hooks were removed 18:06:19: G:\projects\rootkit_for_test\rootkit.sys was unloaded from system

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

4.2 Организация сканера угроз

Сканер угроз активируется по запросу пользователя, путѐм создания так называемой сессии. Сессия эта экземпляр класса Security, в котором хранится различная информация, связанная с текущим процессом сканирования системы. Каждая сессия конфигурируется в соответствии с

50