Естественно, мы взялись его тестировать, потому что такого зверя ещё не видели.
Жила-была компания «Пало Альто», которая делала довольно неплохие межсетевые экраны уровня 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
Комментарии (53)
kolu4iy
14.11.2017 10:59Прекрасная статья. Особенно для конечного пользователя. Вот хочу я тестю купить подписку на этот продукт — и как?
На сайте paolo alto таже хрень — «contact with sales».
Я блин интроверт, я не хочу контакт, я хочу пыщь-пыщь карточкой и антивирус у моего тестя на компьютере… Есть для людей что-то? Или как всегда только суровый интырпрайз?DDrozhzhin Автор
14.11.2017 11:21Да, пока это только enterprise-решение. Для функционирования нужно разворачивать сервер лицензирования ESM (Endpoint Security Manager), поэтому для дома не подойдет, к сожалению.
borisdenis
14.11.2017 12:14Энтерпрайз решение которое инжектится (а значит и защищает/проверяет) только в около 100 exeшников? А если неизвестный вирус? Что будет? Просто пропустит и даст сделать свое черное дело? В таком случае это хлам…
ebragim
14.11.2017 14:20+1Перечитайте статью внимательно. Он инжектится в 100+ типов разных исполнительных файлов.
ildarz
15.11.2017 13:13А вот автор утверждает, что из коробки таки только в заранее определенные приложения. Как и документация.
/offtopic
исполнительных файлов.
"Исполнительный файл" — это файл, который вовремя и аккуратно делает все, о чем вы его просите. :) А то, куда инжектится Traps — исполняемый.
MaximChistov
14.11.2017 11:22>я хочу пыщь-пыщь карточкой и антивирус у моего тестя на компьютере
А они хотят только жырных энтерпрайзных клиентов)
NoFateMan
14.11.2017 11:21Я правильно понял — что данный антивирус инжектируется только в «нужные» .exe, которые он знает? Как было сказано в статье «пока в реестре около ста программ». Не тупиковый ли подход?
Чтобы поймать маньяка, надо думать как маньяк. Тут это принцип не совсем применим.DDrozhzhin Автор
14.11.2017 11:24«Из коробки” действительно инжектируется в самые распространенные, в основном типичные офисные приложения — браузеры, PDF-читалки, архиваторы, пакет Microsoft Office и т.д.
Разумеется, можно добавлять свои приложения для защиты. Процесс описан здесь: www.paloaltonetworks.com/documentation/41/endpoint/endpoint-admin-guide/getting-started-with-rules/process-management/add-a-new-protected-processborisdenis
14.11.2017 12:18эээ, я правильно понимаю что мне нужно знать все exe-шники которые у меня на предприятии разрешены к запуску и для всех их все настроить чтоб гад не пролез? Не кажется ли вам что такой подход — большая дырень в защите? Ведь можно что-то пропустить или банально ошибиться в настройке.
spkody
14.11.2017 13:40Определить список разрешенных программ, которые у вас на предприятии — проще, чем определить список сигнатур запрещенных программ во всём мире. Но в этой индустрии упорно поддерживается обратное утверждение, что есть иллюзия.
DDrozhzhin Автор
14.11.2017 13:41Traps может сам собирать информацию о запускаемых exe-шниках и передавать на сервер управления, где потом можно создавать политики на основе этой информации.
Вообще это предлагаемый подход Palo Alto Networks — Zero Trust, принцип “нулевого доверия”. Разрешено только то, что описано явным образом, остальное запрещено. Это касается политик на их межсетевом экране в том числе.
ildarz
15.11.2017 13:14В принципе это и без Traps становится достаточно распространенным подходом (настройка на винде штатного Applocker доменными политиками, и т.п.).
Maccimo
14.11.2017 18:50Как это соотносится с
Передача семпла происходила простым перетаскиванием исполняемого файла в целевую машину (drag’n’drop), после чего, в зависимости от типа файла, производился запуск. Либо двойным кликом, либо через консоль.
Куда в этом случае инжектился Traps?
Ведь при запуске создаётся новый процесс, в список процессов для проверки не входящий.
Второй вопрос: Сможет ли это решение обнаружить зловреда, написанного на Java?
Исходим из предположения, что пользователь его зачем-то запустил и инжект Traps в java.exe разрешён.
Вот, к примеру: https://www.pcworld.com/article/3031736/security/java-based-trojan-was-used-to-attack-over-400000-systems.html
DDrozhzhin Автор
15.11.2017 13:551. На самом деле даже в рамках статьи мы не сильно углублялись в детали работы трапса. Фокусы с инжектированием DLL в терминологии вендора — это один механизм, Exploit Protection Modules (EPM), мы его детально описали в статье. Помимо этого есть еще Malware Protection Modules (MPM), куда входят в том числе Anti-Ransomware контрмеры, и именно их работу, а конкретно фичи статического анализа, мы проверяли в лабе на указанных семплах. Подробнее можно почитать тут: www.paloaltonetworks.com/documentation/41/endpoint/endpoint-admin-guide/malware-protection/manage-malware-protection-rules
2. Мы можем отслеживать вредоносную активность с помощью MPM, тут поможет Child Process Protection. Мы можем либо запретить процессу java.exe порождать дочерние процессы, либо жестко ограничить белыми списками разрешенные действия. Это, кстати, будет работать и для всяких powershell fileless малварей. Описание тут: www.paloaltonetworks.com/documentation/41/endpoint/endpoint-admin-guide/malware-protection/manage-restrictions-on-executable-files/define-java-restrictions-and-exemptions
NoFateMan
14.11.2017 11:36А если разработчик закочевряжится и не даст согласие на такую «интеграцию»? По сути они просто патчат приложение на функционал контроля своей деятельности. На мой взгляд неоднозначное решение.
Muxlevator
14.11.2017 12:28От разработчика не требуется согласия. Инжект делается in-memory, модификация исходных файлов не производится (насколько я понял из статьи).
DDrozhzhin Автор
14.11.2017 15:17Верно, поэтому взаимодействия с разработчиками не требуется.
FreeMind2000
15.11.2017 01:05Не верно.
Нормальные разработчики защищают свою программу от патчей (в том числе и в памяти), банальная проверка CRC, инжектов dll и более экзотические способы. Программа просто посчитает, что ее лицензию ломают и не даст пользователю с ней работать.
Кстати, вот пример от «больших» производителей.
vilgeforce
14.11.2017 11:43«Список протестированных семплов» должен включать и их хэши. Без них — не тестирование, а непонятно что.
DDrozhzhin Автор
14.11.2017 12:39-1md5 и sha256 хеши протестированных семплов есть на github: github.com/ytisf/theZoo/tree/master/malwares/Binaries
vilgeforce
14.11.2017 13:34То, что где-то что-то есть, это, несомненно, хорошо. Да только тест без указания хэшей — фигня. Даже если эти хэши где-то есть.
borisdenis
14.11.2017 12:10Ссылки на скачивание демо версии нет, на сайте её тоже хрен найдешь с первого раза… В общем у вас минус 1 клиент
DDrozhzhin Автор
14.11.2017 12:10+1при установке надо указывать адрес сервера лицензирования ESM, его нужно устанавливать отдельно. По вопросам полноценного тестирования напишите мне в почту.
borisdenis
14.11.2017 12:16Логичнее было бы сделать триал на 5-10 дней если не обнаружен сервер лицензирования, для тестирования этого вполне бы хватило. Да и писать на почту чтоб попробовать… спасибо, мы лучше на старом решении останемся.
KOCTALEM
14.11.2017 12:10А как продукт ведёт себя с sandbox-aware вредоносами? И как они ведут себя с ним? ;)
DDrozhzhin Автор
14.11.2017 12:43Если речь про те вредоносы, которые детектируют, что они исполняются в виртуализированной среде, то Traps локальным анализом может предотвратить угрозу на самой машине. От типа вредоноса действия Traps не меняются. Protection flow
описан по ссылке: www.paloaltonetworks.com/documentation/41/endpoint/endpoint-admin-guide/malware-protection/malware-protection-flow
Если интересно протестировать конкретный экземпляр, можем попробовать запустить у себя в лабе.
spkody
14.11.2017 12:10В чём отличие с тем же sonar в symantec?
Что нового предлагает Palo Alto traps для разных реликтов, типа банкоматов, когда уже существует например, Symantec Critical System Protection?
teecat
14.11.2017 12:14Описанный подход хорошо работает против неизвестных угроз, но по нашему опыту — периодически бывают ложняки в связи с тем, что некоторые программы ведут себя не так как ожидается или их поведение похоже на поведение тех же шифровальщиков
DDrozhzhin Автор
14.11.2017 13:39Конечно, в реальной эксплуатации ложные срабатывания случаются. Но у Traps удобные инструменты управления политиками, и новые правила можно быстро раскатывать.
teecat
14.11.2017 14:04у Traps удобные инструменты управления политиками, и новые правила можно быстро раскатывать
Правила добавляются пользователем (тогда по сути это исключения) или программу, вызвавшее ложное срабатывание, нужно посылать вендору для добавления правил (это тогда правило самого поведенческого анализатора)?
teecat
14.11.2017 12:16+1И кстати про прохождение PCI-DSS хотелось бы по подробнее. Там четко прописано, что требуется антивирус, обеспечивающий защиту от уже известных угроз. То есть прописано под сигнатуры
spkody
14.11.2017 12:53PCI-DSS мало что определяет конкретно, угроза != сигнатура. Сигнатурный анализ это лишь подход к определению этих угроз. В PCI-DSS пишут, что должен быть реализован периодический скан систем. Здесь мы ничего не сканируем, а мы мониторим процессы постоянно. Так что на вопрос — как вы сканируете и с каким периодом? Можете отвечать — у нас нет периода, мы постоянно сканируем и мониторим угрозы. А угрозой так же может быть определено аномальное поведение программы типа Buffer Overflow и т.д. Вобщем аудиторам можно это залить и 5.2 compliance.
teecat
14.11.2017 13:18Сканирование тут не причем. Пункт 5.1.1
Антивирусное программное обеспечение должно ...:
•обнаруживать все известные виды вредоносного программного обеспечения;
•удалять все известные виды вредоносного программного обеспечения;
•обеспечивать защиту от всех известных видов вредоносного программного обеспечения
То есть четко говорится, что:
— АВ должен обнаруживать известные вредоносные программы (а поведенческий анализатор, описанный в статье, нацелен на обнаружение угроз, пропущенных АВ, еще неизвестных АВ лаборатории)
— АВ должен обнаруживать все типы вредоносного ПО. А поведенческий анализатор, описанный в статье, нацелен на обнаружение угроз, которые могут быть найдены по поведению — инжекту вы процессы скажем
На всякий случай. Я совершенно с вами не спорю, что сигнатуры не панацея и лишь один компонент антивирусной защиты. Мы говорим исключительно о прохождении требований PCI-DSSspkody
14.11.2017 14:10•обнаруживать все известные виды вредоносного программного обеспечения;
•удалять все известные виды вредоносного программного обеспечения;
•обеспечивать защиту от всех известных видов вредоносного программного обеспечения
PCI никак не определяет категоризацию этих видов и ни слова про сигнатуры.
Иными словами вредоносы можно перечислять как trojan, rootkit, backdoor, dos и т.д. а можно как application with Code Injection, Buffer overflow, Privileges Escalation…
да хоть к тому же CWE привязаться, кому как удобнее. Это будет нормально и аудитор с этим не поспорит.
Я не спорю, лишь хочу сказать, что на стандарте PCI-DSS безопасность не должна заканчиваться. В нём весьма обтекаемые формулировки, которые можно обойти.teecat
14.11.2017 14:20Конечно. И это еще не самый плохой стандарт по ИБ
Просто у нас задача обычно не обосновать аудитору, а реализовать заказчику, который имеет свое мнение. Мы вендор и к нам приходят с требованием выполнить. По практике начнешь рассказывать заказчику, что он не прав — кивает и уходит к конкурентам.
DDrozhzhin Автор
14.11.2017 13:22Подробнее можно почитать по ссылке: researchcenter.paloaltonetworks.com/2016/10/achieve-pci-dss-hipaa-compliance-traps
Вкратце, есть компания Coalfire, которая является PCI Qualified Security Assessor (QSA), и в их отчете сказано, что “...an
organization who was using a traditional AV to remain PCI DSS compliant can confidently replace that solution with Traps and remain compliant"
Duss
14.11.2017 12:24Интересно как это решение работает с ПО, которое применяет продвинутые уровни защиты от дебага, в том числе внедрение DLL. Как раз такое чаще всего встречается в enterprise решениях. Части кода (или весь код) может быть помещаются в виртуальную машину, внутрь которой внедрить DLL так просто уже не получится. ПО просто может отказаться работать обнаружив внедрение чужеродного кода в свое адресное пространство.
teecat
14.11.2017 13:22Это не так работает. Перехватчик уже сидит в процессе и отслеживает попытки внедрения в него. А также поведение после внедрения. Поведенческий анализатор изнутри процесса, а не снаружи
Подобный поведенческий анализатор защищает обычно бразузеры, офисное ПО и ПО, с которым есть договор на контроль. Не все подряд.MacIn
14.11.2017 17:50Вопрос был в другом. Сами процессы могут быть против внедрения в них дллки антивируса.
teecat
14.11.2017 17:55Так он не внедряется во все подряд. Только в разрешенный вендором список. По сути это как разрешенный плагин
MacIn
14.11.2017 19:02Речь о том, что далеко не все приложения, которые было бы полезно защитить, позволять внедрить в себя эту защитную dllку
teecat
15.11.2017 11:20Естественно. Более того, если в защищаемое приложение внедряются (легально естественно) дополнительные модули, то их тоже требуется тестировать на совместимость.
Дело в том, что поведенческий анализатор, контролирующий поведение, по сути начинает работу посоле внедрения эксплойта/плагина/допмодуля. И откатить назад к моменту внедрения в процесс близко к невозможному. Поэтому процесс убивается
ivanius
14.11.2017 17:31При этом сейчас если не каждая, то каждая вторая игра\платфрма или еще чего идет с такой защитой, что при запущенной игре даже локальный отладчик в твоей любимой IDE не запускается.
xRay
14.11.2017 17:14С некоторых пор VirtualBox стал сильно параноидален к подобным трюкам. С ним работает это решение или нет?
DDrozhzhin Автор
15.11.2017 13:47В списке несовместимого софта его нет, в лабе сам VirtualBox у меня запустился нормально. Если интересует что-то конкретное, напишите в почту.
OlegYch_real
15.11.2017 07:43лет 10 назад нужно было заинжектить дллку в процесс фаерфокса для перехвата пары функций
все вроде работало у заказчика, но у некоторых тестеров падало
спустя много часов выяснилось, что касперский на рабочих станциях влезал во все процессы и рандомизировал адреса функций
сейчас это вроде как стандартная функция винды, интересно как обходите?
ildarz
15.11.2017 13:23Если говорить про уязвимость в SMBv1 (WannaCry, Petya), то существовала она очень долго, и кто угодно, кто имел о ней информацию, мог её эксплуатировать незаметно. Но пользователи Traps были защищены.
А этому есть какое-то подтверждение?
sergarcada
Напоминает рекетиров из 90-х — «Ты нам плати за безопасность, чтобы тебя другие бандиты не трогали».
quwy
Ой, можно подумать другие антивирусы используют исключительно «легальные» API. Без жеского хакинга ни одного современного зловреда не поймать, ибо играя по правилам не обыграешь того, кто эти правила нарушает.