К.т.н., доцент Частикова
В.А., Остапов Д.С.
Кубанский государственный технологический
университет, Россия
СНИЖЕНИЕ РИСКОВ РЕАЛИЗАЦИИ
АТАК С ИСПОЛЬЗОВАНИЕМ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Разработчики операционной системы Windows
7 большое внимание уделили безопасности. Прежде всего, необходимо сказать о
нововведениях. Во-первых, появился «Контроль учётных записей пользователей»,
который запрашивает разрешение пользователя на выполнение потенциально опасных
действий. Во-вторых, в связи со значительным распространением вирусов с
использованием flash-носителей, запуск программ из autorun.inf
был отключен. Запуск программ через autorun.inf
остался
только для CD/DVD дисков для облегчения работы
пользователей. В-третьих, усложнилось создание руткитов. Теперь для того, чтобы
программисту создать драйвер, ему необходимо получить ЭЦП для драйвера.
«Контроль учётных записей пользователей»
действительно оказывает своё положительное действие. Но даже при максимальных
настройках уведомления, он пропускает опасные для пользователя действия. Прежде
всего, полностью отсутствует контроль над хуками. Хук – это функция, которая
будет выполняться каждый раз, когда происходит определённое событие. Например,
с использованием хука WH_KEYBOARD
можно перехватить все нажатые пользователем клавиши, т.е. создать клавиатурный
перехватчик. После успешно проведённого эксперимента, оказалось что считывание
нажатых клавиш и запись их в файл, не было проконтролировано ни операционной
системой ни антивирусным программным обеспечением Kaspersky Internet Security, несмотря на то, что
оно является одним из лучших на рынке. Помимо перехвата, можно изменить нажатие
клавиш. Например, пользователь нажимает клавишу «А», затем управление
передаётся хуку и он изменяет код нажатой клавиши, и передаёт уже изменённый
код операционной системе. В результате этого может получиться, что код всех
нажатых клавиш будет изменён и, например, вводя какой-нибудь текст,
пользователь будет вводить только одну букву, например, «Б». Помимо этого,
необходимо отметить опасность хука WH_CBT[2].
С его помощью, можно, например, создать программное обеспечение, имитирующее
нажатие клавиш мыши. Например, при появлении окна, в котором будет
присутствовать кнопка «Нет», хук будет производить нажатие на этой кнопке. Для
полного контроля над системой необходимо использовать глобальные хуки. Для
этого создаётся exe-файл, в котором будет происходить
установка хука, и dll-файл, в котором будет расположена сама
процедура хука, который будет подгружаться в каждый процесс в системе, т.е.
будет происходить тотальный контроль[1].
В качестве примера напишем программу,
имитирующую нажатие кнопок «Нет». Данной программное обеспечение явно
демонстрирует недостатки Windows 7 в области контроля
хуков. А качестве языка программирования был выбран Assembler, т. к. он даёт
возможность на низком уровне увидеть взаимодействия программного обеспечения и
операционной системы[2].
Помимо файла, содержащего код основного файла и
код dll, необходимо создать файл *.def, в котором будет
находиться список экспортируемых функций.
LIBRARY escaper_dll
EXPORTS hookEscape
Для того чтобы вредоносное программное
обеспечение всегда запускалось, разработчики помещают его в автозапуск. Для
этого существует 3 способа:
1.
Внесение
изменений в системный реестр
2.
Внесение
изменений в системные файлы со списком загружаемых программ
3.
Использование
специальных папок автозагрузки[1]
Итак, внесение изменений в системный реестр –
наиболее очевидный способ запуска вредоносного программного обеспечения. Однако
для этой цели существует совсем не один
способ как кажется на первый взгляд. Чаще всего разработчики добавляют
программу в автозапуск, используя ключ HKEY_CURRENT_USER\SOFTWARE\Microsoft/Windows/CurrentVersion\
Run\ и HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\
CurrentVersion\Run\. Помимо этого, можно использовать более хитрый способ
запуска программы. Например, можно сделать так, чтобы при запуске Microsoft Word вместо него запускалась вредоносная
программа (Microsoft Word запускался через эту
программу как через отладчик, или же не запускался вовсе, если такое
невозможно).
Из вышесказанного, необходимо о каких-либо
изменениях в автозагрузке, реестре и файлах win.ini
и system.ini, необходимо извещать пользователя и
предупреждать о потенциальной опасности. Также необходимо детектировать
создание, изменение и удаление ярлыков программами, не входящими в стандартный
состав Windows. К тому же в отдельном log файле необходимо
прописывать все изменения в реестре, автозагрузке и системных файлов, чтобы в
случае необходимости пользователю было легко разобраться, когда произошли
изменения и каким процессом они были произведены. Это облегчит уничтожение
последствий проникновения вредоносного программного обеспечения в систему.
Литература:
1.
Крис Касперски, Ева Рокко. Искусство
дизассемблирования – СПб: БХВ-Петербург, 2009. - 884 с.
2. Юров В.И. Assembler. Учебник для вузов - М.: Питер, 2010. - 636 с.