Играем с Nextgen-антивирусом от Palo Alto Networks: он инжектирует свои dll в исполняемые процессы типа *.exe

DDrozhzhin 14 ноября в 09:59 15,2k


Естественно, мы взялись его тестировать, потому что такого зверя ещё не видели.

Жила-была компания «Пало Альто», которая делала довольно неплохие межсетевые экраны уровня enterprise. Далее, в соответствии с технологическим трендом, в состав линейки решений вендора вошла песочница, как облачная, так и частная. До определённого момента и потоковые файерволы, и песочницы на входе закрывали задачу обеспечения ИБ. Но со временем и этого стало мало — появилась концепция «непрерывной защиты», которая требовала для полного счастья ещё и защиты конечных машин, так называемые end-point-решения. «Пало Альто» купила компанию Cyvera и её продукт допилила под себя. Вот так появился Трапс, «антивирус нового поколения».

Трапс инжектирует в исполняемые процессы (например, *.exe) свой код, позволяющий запускать всё в режиме своего рода маленького гипервизора, и смотрит за использованием памяти. Сигнатуры он не проверяет, только ловит странное поведение подконтрольного ПО.

Нет ничего смешнее, чем антивирус, который ведёт себя как вирус и работает даже под WinXP. Эта штука и есть Traps.

Вот как это выглядит со стороны process explorer:



Всего есть 300 типов процессов из коробки, куда решение может инжектировать свои модули, плюс можно с помощью довольно простого конструктора сделать кастомизацию под другие типы процессов.

Вот так выглядит интерфейс агента на Win-машине:



Итак, Трапс «прописывается» в exe-файл и начинает следить, что творит «сибиотический» процесс. На уровне ОС Трапс умеет регистрировать подозрительные события с точки зрения управления памятью. По большей части получение привилегий связано с переполнением буфера и другими аномалиями. Именно такие события «Пало Альто» и вычисляет.



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

Ещё в силу элегантного, как удар ломом, решения с «инфицированием» исполняемых файлов Трапс работает на WinXP. А это уже не шутки в корпоративном сегменте: до сих пор многие банкоматы и кассы работают под embed-версиями именно WinXP, и патчи к ним не выпускаются. Каждый раз про разгар очередной эпидемии все желающие могут узнать, например, из экранов терминалов на вокзалах.

Ставится на сервера, VDI-машины и физические рабочие станции. Достаточно нетребователен к ресурсам:



Продукт может сосуществовать и с другими антивирусными решениями, но не со всеми. Информация открытая, список можно взять в release notes.

Если у вас есть другая инфраструктура «Пало Альто», то стоит знать, что Трапс встраивается на ура. Эшелонированная защита выглядит так: их экран, их песочница, их же защита на эндпоинте. Если на трапс-машину приходит неизвестный исполняемый файл (с неизвестной репутацией), можно запретить его исполнение до решения «большой» корпоративной песочницы. Раньше только файервол интегрировался с песочницей — можно было ловить коней только постфактум — после запуска файла на эндпоинте. А Трапс позволяет блокировать исполнение до разбирательств. А при синхронизации с их облачным сервисом туда уходят все хеши приходящих в Трапс файлов — и если известно, что они какие-то не такие, то по ним тут же принимается решение об отказе в исполнении.

Это работает и в обратную сторону. Как только в мире началась эпидемия и глобальная песочница задетектила конкретный экземпляр как вредоносный, то эта сигнатура моментально доступна для всех подписчиков сервиса Palo Alto. И по опыту предыдущих эпидемий типа WannaCry мы видим, что пик заражения приходится на первые сутки, пока никто не очухался. Очень важно иметь защиту в этот период, и Palo Alto её предоставляет.

При атаках есть так называемые killchains — последовательности действий, приводящие к компрометации машины.



Если в этой цепочке хотя бы один элемент заблокирован, то атака не состоится.



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



Естественно, этим ПО нельзя сканировать папки как обычным антивирусом — здесь нет статического анализатора, только хардкор. Классический антивирусный подход в детектировании известных угроз уже не работает. «Antivirus is dead», — это сказал в 2014 году вице-президент Symantec.

Ещё Трапсом хорошо собирать форензику. При срабатывании генерируется дамп памяти, который можно анализировать сколько влезет (дамп может быть скопирован на ваш сервер анализа).

Итог — мы будем ставить это решение там, где нужна защита рабочих станций. Трапс не замещает и не вытесняет антивирусы (по крайней мере пока), а дополняет их. Сейчас вендор уже заявляет, что и антивирусы-то, кроме Трапса, уже не нужны, — есть примеры, когда заказчики прошли PCI DSS и HIPAA комплаенс, с Трапсом в их инфраструктуре.

Если говорить про уязвимость в SMBv1 (WannaCry, Petya), то существовала она очень долго, и кто угодно, кто имел о ней информацию, мог её эксплуатировать незаметно. Но пользователи Traps были защищены.

А вот вам пример того, что выход патчей не гарантирует, что в ближайшее время не будет найдена новая угроза.



5 июля 2015 года была обнаружена уязвимость, патч вышел только 8-го. Соответственно 3 дня пользователи не были защищены, 10 го – новая уязвимость, патч – 14-го. Был бы Трапс, проблем было бы гораздо меньше.

Естественно, я захотел это протестировать. Взял дистрибутивы вирусни и троянов (репозиторий, осторожно, все семплы рабочие, не убейте себе машину). Гипервизор VMWare Fusion Professional Version 10.0.1 (6754183), была создана новая виртуальная машина с использованием оригинального MSDN-образа Windows XP SP3 VL, английская версия (md5 5bf476e2fc445b8d06b3c2a6091fe3aa). Виртуальной машине выделено 1 ядро и 512 МБ памяти. Установлен .NET Framework v3.5.1 (необходим для установки Traps), сверху установлен сам Traps, организовано сетевое взаимодействие с сервером управления ESM, который организован на Windows Server 2016 с БД на SQL-Express (рекомендация вендора на PoC-внедрение). Ни клиент, ни сервер не имели доступ в Интернет для связи с облачной песочницей WildFire. То есть мы моделируем полный офлайн — довольно нередкую историю для банковской машины. Версия ESM 4.1.1.28779, версия Traps-агента 3.4.4.24430.

После установки агента на WinXP был сделан snapshot, на который я откатывался после тестирования каждого семпла. Передача семпла происходила простым перетаскиванием исполняемого файла в целевую машину (drag’n’drop), после чего, в зависимости от типа файла, производился запуск. Либо двойным кликом, либо через консоль.

Список протестированных семплов:
1. Win32.Alina.3.4.B
2. Trojan.Asprox
3. Win32.Avatar
4. Trojan.Bladabindi
5. Win32.Boaxxe.BB
6. Win32.Carberp
7. Win32.Cridex
8. Ransomware.CryptoLocker
9. Ransomware.Cryptowall
10. Win32.Cutwail
11. Trojan.Dropper.Gen
12. Win32.Emotet
13. Win32.Fareit
14. Win32.Hupigon
15. Win32.Infostealer.Dexter
16. Ransomware.Jigsaw
17. Trojan.Kovter
18. Trojan.Loadmoney
19. Ransomware.Locky
20. Ransomware.Matsnu
21. Trojan.NSIS.Win32
22. Ransomware.Petrwrap
23. Ransomware.Petya
24. Ransomware.Radamant
25. Ransomware.Satana
26. Trojan.Stabuniq
27. Trojan.Sinowal
28. Ransomware.TeslaCrypt
29. Ransomware.Vipasana
30. Ransomware.WannaCry

Через Трапс прошла только малварь TeslaCrypt. При этом мы намеренно игнорировали бест практис вендора, чтобы протестить возможности локального анализа Трапса. В частности, мы отключили всё взаимодействие с песочницей, что крайне нежелательно. В обычном режиме, даже если связь сервера с песочницей пропадёт, то когда связь восстановится, он направит неизвестные файлы на анализ, и мы всё равно узнаем о том, что машина была заражена, для этого есть пункт в сервере управления — malware post-detection (см. скриншот). И даже хеши известных файлов на всякий случай с определённой периодичностью всё равно проверяются песочницей на тот случай, если вердикт песочницы изменился. И по нажатии на кнопку WildFire report мы получим детальную инфу, почему этот файл был признан вредоносным. Конкретный отчёт по teslacrypt вот.



Вся непрошедшая малварь была задетектирована локально самим агентом без связи со внешним сервером и сигнатур (связь с локальным сервером была, но сама тестируемая машина и сервер управления не имели доступа в Интернет).

Выглядело так:



В итоге, думаю, борьба с известными вирусами по сигнатурам — это уже прошлый век, учитывая, что хеш вредоноса легко изменить. Подход Traps предлагает способы борьбы с неизвестными угрозами, с фокусом именно на предотвращении угрозы. Работает достаточно хорошо, чтобы в перспективе заменить антивирусы. Уже сейчас идеален для изолированных сред (АСУТП, и т. д.).

Ссылки


  • PDF-руководство от «Пало Альто»
  • Virustotal добавил движок в сканирование, он называется Palo Alto Networks, но это не Трапс, а файервол. Если вы хотите результаты тестов по Трапсу, то они есть по ссылке.
  • Вот ещё интересная ссылка от вендора про замену «старых» антивирусов
  • Моя почта: DDrozhzhin@croc.ru
Проголосовать:
+28
Сохранить: