2015_лекции / Лекция №6_2015
.pdfБазовые механизмы устойчивости для ОС Windows
использование ключей реестра
создание новой службы
расширение Winlogon
создание нового элемента в папке startup и изменение порядка запуска Dll.
записи в файле INI
создание троянизированных версий системных dll
Использование ключей реестра
Исходное предположение: изменение значений ключей в реестре менее заметно, что установка нового ПО или замена системных файлов
Автозапуск
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\C urrentVersion\Run\malware.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT \CurrentVersion\Winlogon\Userinit\ userinit.exe,malware.exe
HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\[Random Variable]\StubPath\malware.exe
Можно обнаружить: Autoruns (Sysinternals)
Использование ключей реестра
Запуск dll
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wi ndows NT \CurrentVersion\ Windows
ключ AppInit_DLL (user32.dll)
Перехват событий Winlogon
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wi ndows NT \CurrentVersion\ Winlogon\Notify
Перехват событий: вход/выход в систему, блокировка экрана, запуск и выключение системы
Создание сервисов
Note! Исходное предположение: никто не заметить установку нового программного обеспечения
Установка ВрПО в виде dll процесса svchost.exe
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ServiceName
Поля
Description
ImagePath
если запускается в рамках процесса svchost.exe %SystemRoot%/System32/svchost.exe –k GroupName как dll
Путь к ВРПО, если запускается в отдельном процессе
ServiceName\Parameters\ServiceDLL – путь к dll-библиотеке
ServiceName\Parameters\start – параметры запуска вредоносной dll (обычно автозапуск)
Изменение компонентов управления COM-объектами
HKCR\CLSID\{GUID}\InprocServer32 (хранится путь к dll или exe)
GUID – это уникальный идентификатор COM объекта.
Создание троянизированных dll
Замена системной службы (dll библиотеки)
вызов исходной dll в вызове DllMain() и
ServiceMain()
Замена существующих компонентов управления COM объектов
HKCR\CLSID\{GUID}\InprocServer32 (хранится путь к dll или exe)
GUID – это уникальный идентификатор COM объекта.
Исходное предположение: замена менее заметна, чем добавление нового ПО
Изменение порядка загрузки dll
Стандартный порядок поиска dll:
1.каталог, из которого запускает приложение
2.текущий каталог
3.системный каталог (возвращает функция
GetSystemDirectory, Win32 обычно …/Windows/System32/)
4.16 -битный системный каталог (…/Windows/System/)
5. Каталог Windows ( возвращает функция
GetWindowsDirectory …/Windows/)
6. Каталоги перечисленные в переменной среды PATH
Note! Исходное предположение: странное расположение легитимной библиотеки мало кто заметит
Изменение порядка загрузки
dll
Защита библиотек в каталоге \system32
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Control\Session Manager\KnownDLLs
Пример
C:\Windows\explorer.exe
ntshrui.dll – не перечислена в KnownDLLs
?
C:\Windows\ntshrui.dll
C:\Windows\Subsystem32\ntshrui.dll
Порядок запуска DLL
Запуск dll с включенным флагом SafeDllSearchMode
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Se ssion Manager\SafeDllSearchMode
1.каталог, из которого запускает приложение
2.системный каталог (возвращает функция GetSystemDirectory, Win32
обычно …/Windows/System32/)
3.16 -битный системный каталог (…/Windows/System/)
4.Каталог Windows ( возвращает функция GetWindowsDirectory
…/Windows/)
5.текущий каталог (было на 2 позиции)
6.Каталоги перечисленные в переменной среды PATH
https://msdn.microsoft.com/enus/library/windows/desktop/ms682586(v=vs.85).aspx
Другие реализации persistence-
механизмов
Использование других подсистем:
Драйвера очереди печати
Криптографическое API, API для выполнения аутентификации
Редакторы методов ввода (Input Method Editors, IME, это программа или компонент операционной системы, позволяющий пользователям вводить символы, которых нет на клавиатуре)
Обработчики типов MIME, протоколов
Использование подсистем с собственным стеком
Сообщения Window
Кодеки изображений
Платформа фильтрации Windows (Windows Filtering Platform, WFP)
Любые драйвера, использующие обработчики IRP_MJ
Служба планировщика заданий
Планировщик / atsvc – время в будущем для запуска вредоносного процесса
Использование гибернации
В Hiberfil.sys хранится состояние всей физической памяти при гибернации.
Несколько байтов (hibr) указывают OS, что она должна «проснуться», а не загружаться (механизм модификации MBR для модификации hiberfil.sys при загрузке, http://www.blackhat.com/presentations/bh-usa-09/KLEISSNER/BHUSA09- Kleissner-StonedBootkit-SLIDES.pdf)
Использование MBR
Недостатки механизмов устойчивости
Остаются часто обнаруживаемые/предсказуемые признаки (сигнатуры) механизмов устойчивости
Многие создатели вредоносного ПО не находят грань между преимуществами использования механизмов устойчивости и более высокими шансами их обнаружения из-за их использования
Аналитики часто ищут именно признаки использования механизмов устойчивости врПО.