Алиса Шевченко eSage lab Беззащитная защита? Технологии обхода антивирусов
eSage lab Актуальность
eSage lab Компьютерные вирусы сегодня Не поделка Криминальная индустрия $$ –DDoS, SPAM, кража финансовой информации Ботнеты –Промышленный шпионаж Целевые руткиты
eSage lab Защита ПО: Антивирус, Антируткит, HIPS, Firewall.. (далее – «защита») Технологии: сигнатурное, эвристическое, поведенческое детектирование.. Задача вируса – обход защиты >>
eSage lab Краткая История Войны Первый антивирус => Stealth-вирусы (DOS, 1990) Сигнатурные технологии => полиморфизм, упаковка (DOS, 199x) Kill (AV) => технологии антивирусной самозащиты Эвристика => модификация кода Поведенческий детект => модификация поведения
eSage lab Примеры устаревших методов Деактивация защиты –TerminateProcess() –DeleteFile() system32/drivers/etc/hosts – updates.your-antivirus.com Блокировка открытия файлов –CreateFile(..dwShareMode=0..) –LockFile() Имитация нажатия кнопки «РАЗРЕШИТЬ» в окне алерта защиты Все еще актуально
eSage lab Современная Специфика Войны Антивирусы матереют –Самозащита –Автодобавление сигнатур Задача: прорваться и закрепиться, пока сигнатуры еще нет Мишень 1: realtime защита Мишень 2: ядро
eSage lab Итого, Цель-минимум зловреда – проскользнуть мимо активной защиты, оставшись незамеченным Цель-максимум – проникнуть в ядро и получить полный контроль над защитой
eSage lab Модель защиты
eSage lab Модель защиты Технический модуль –Совокупность технологий, программных функций и алгоритмов –Обеспечивает данными Аналитический модуль Аналитический модуль –Логика принятия решений –Выносит вердикт
eSage lab Картинка для привлечения внимания
eSage lab В основе любого обхода.. Можно обойти защиту на уровне архитектуры или реализации (Технический модуль) А можно обмануть на уровне принятия решений (Аналитический модуль) Ошибки технического модуля: следующий доклад
eSage lab Примеры
eSage lab О примерах Источник: массовые вредоносы гг. –Trojan-Proxy.Win32.Wopla, BackDoor.Bulknet, Trojan-Downloader.Win32.Agent.brk… Мишень: большинство популярных систем защиты Техники: старые Большинство техник: –Обход аналитического модуля –Эксплуатация брешей в архитектуре защиты
eSage lab Обманное Поведение Простейшие примеры –Регистрация драйвера без расширения –Обращение к файлу по альтернативному пути \\Device\\HarddiskVolume1.. \\??\\Volume{GUID}.. \\??\\C:\..
eSage lab Обманное Поведение Нелинейная активность – несоответствие поведенческому паттерну –CreateProcess / WaitForSingleObject Нестандартная автозагрузка – кто бы мог подумать? –Image File Execution Options / Debugger Внедрение в чужой процесс «невыполнимого» кода – не опасно? –WriteProcessMemory / no EXECUTABLE flag
eSage lab RTFM! QueueUserApc / KeInsertQueueApc KeInsertQueueApc( ZwTerminateProcess ) CmRegisterCallback ZwSystemDebugControl( _SYSDBG_COMMAND=9 )
eSage lab ЯДРО DeviceIOControl(..\\.\shadow, IOCTL= h) (exploit)\\.\shadow Подмена системных файлов
eSage lab А нужна ли борьба? Выгрузка драйвера защиты его собственным легальным IOCTL Обход большинства фаерволов: перехват IoGetCurrentProcess()
eSage lab Пример: обход фаервола Если адрес NdisRegisterProtocol лежит за пределами ndis.sys – значит, он перехвачен (= получаем ориентир на адресное пространство фаервола- перехватчика) В таком случае перехватим IoGetCurrentProcess()..И если возвращенное ею значение соответствует нашему вредному процессу,..А адрес возврата в стеке указывает в окрестность NdisRegisterProtocol (= процесс запрошен фаерволом)..То подсунем вместо выдачи IoGetCurrentProcess() ложные данные, соответствующие доверенному процессу.
eSage lab Не рассмотренные техники Блокирование.. –файлов, доступа к памяти, открытия диска для низкоуровневого сканирования.. Руткит-технологии –Подмена объектов на уровне Master File Table –Подмена/блокировка дампов реестра: перехват NtSaveKey Обход системной защиты –Загрузка в SafeMode: SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal\ –Создание файла лишь в момент выключения компьютера: IoRegisterShutdownNotification / ZwWriteFile –Модификация системных файлов: SetSfcFileException (ord Sfc_os.dll
eSage lab ВЫВОДЫ
eSage lab Наблюдения Вызовы документированных функций –CmRegisterCallback, QueueUserApc.. –Вирусописатели читают МСДН чаще, чем разработчики? «Ложная презумпция» в системе защиты –Фиксированный (неверно) формат пути к файлу, запись в read-only память.. –Лишние ограничения на срабатывание поведенческой эвристики Углубление –NtDuplicateObject() вместо DuplicateHandle() –Поверхностная архитектура
eSage lab Ошибки защиты Ложные или недостаточные знания Недостаточно фундаментальная архитектура Одношаговое опережение противника = заплатки Ошибки в реализации = уязвимости >> Дмитрий Олексюк «Уязвимости в драйверах режима ядра для windows»
eSage lab Примечания Актуально для любого типа защитного ПО Любая защита может быть обойдена
eSage lab СПАСИБО вопросы