суббота, 22 июня 2019 г.

Троян в BIOS или руткит в ОС можно обнаружить по сетевому трафику

На прошедшей неделе многие исследователи говорили о том, что проблемой современного мира является атака на цепочку поставок оборудования (supply chain). Существует угроза, что кто-то встроит закладку либо в плату, либо в BIOS в поставляемое вам оборудование. Сделать это можно бесконтрольно в любой точке логистики: от старта производства чипов до доставки собранного оборудования к вам.


Если есть возможность вредоносному коду запуститься до вашей операционной системы и до старта любого защитного продукта, то шансов его обнаружить на самом хосте имеющимися хостовыми средствами защиты очень мало. Начал говорить на эту тему на прошедшей неделе Александр Матросов в своем выступлении на OFFZONE.

Он привел несколько вариантов защиты на уровне ядра, загрузчика. На конференции  ICC.MOSCOW об этом же рассказал в своем выступлении (запись уже доступна) Тимур Биячуев.

Как вы видите на слайде Александра Матросова выше, защиты от трояна в BIOS нет. Так ли все плохо?

Как узнать, что ваш BIOS содержит троян?

Существует одна проблема для атакующего - ему нужно каким-то образом передавать информацию из кода запущенного из BIOS в сторону своего создателя или центра управления. Для этого трояну приходится использовать сеть компании, в которой стоит данное взломанное оборудование, будь то сервер, роутер, сотовый телефон, кофемашина (угрозы IoT) или станок (если мы говорим про защиту ICS/SCADA).

И злоумышленники понимают, что в сетевом пакете им спрятаться некуда. Да, они могут зашифровать само передаваемое сообщение, но сам сетевой пакет им спрятать некуда - он виден в сети и этот неожиданный пакет от конечного оборудования будет замечен и, возможно, заблокирован. Поэтому обычно используются соединения по типовым открытым портам в сети: порт 80, порт 53, порт 123. Смотрите ли вы за всеми неожиданными пакетами в своей сети?

Концепция Zero Trust

Существуют продвинутые безопасники, которые в курсе методологии Zero Trust - безопасно разрешать только те соединения изнутри сети наружу, которые реально нужны для работы. Если в вашей сети соединения в стиле permit any any для всех хостов в сети друг к другу и к Интернет, то безопасности никакой нет и межсетевой экран совершенно бесполезен. Если вы хотите усилить свою безопасность, предлагаемая методика - для вас.

О концепции Zero Trust говорят во всем мире уж лет пять, например, презентация Данила Дрожжина (КРОК) и Евгения Кутумина (PANW) про Zero Trust и реализацию его на межсетевых экранах Palo Alto Networks:

Соответственно, презентация выше о том, что если вы применяете технологию Zero Trust, то вы должны не просто купить лучший в мире межсетевой экран, а еще и важно настроить его правильно. И в этом случае утечь из вашей сети информация из трояна НЕ МОЖЕТ, пока вы ее сами не разрешили.

NGFW отлично справляются с различными видами туннелирования, типа TCP-over-DNS и техниками обхода защиты, например, использования чужого порта другого приложения (например, передавать данные по 80 или 53 порту, которые обычно быть открыты). С правильно настроенным NGFW вредоносному коду сложно бороться.

Как найти несанкционированные соединения в Интернет на своем межсетевом экране. Практика. 

Посмотрите в трафик своей сети и соберите статистику используемых вашими сотрудниками приложений. Вы должны увидеть какие приложения передают трафик с каждого компьютера сотрудника или с сетевого устройства (принтер, роутер, сервер и др). Если у вас NGFW, то каждое соединение "раскрашено" контекстом: что за приложение L7 используется, какая страна, какой URL, какой конкретно сотрудник работает на компьютере, какие типы файлов внутри и др.

Пример: Unknown-TCP

На приведенном ниже скриншоте из вкладки ACC показан dashboard "TOP 10 приложений L7", вы видите, что в сети за последний час были соединения, которые помечены как unknown-tcp. Эта информация должна вас встревожить, потому что в сети компании обычно 200-300 приложений разного типа, и встроенный в NGFW детектор приложений их все "знает", то есть обнаруживает и блокирует, какими бы сложными они не были. На данной картинке видно, что за час сделано 36 сессий TCP, контент которых межсетевой экран не понял, поэтому пометил как unknown-tcp. Картинку можно кликнуть и увеличить:


Что наличие приложения unknown-tcp значит для вас? Наличие неизвестного соединения TCP или UDP или ICMP на NGFW - это инцидент. Нужно проводить расследование!

Проведем расследование инцидента c unknown-tcp используя возможности Palo Alto Networks NGFW

Начнем с простого: посмотрим в какие страны идут эти неизвестные соединения. Включим глобальный фильтр по исследуемому приложению unknown-tcp (видно слева на картинке, что фильтр включен). Посмотрим в dashboard Destination Regions, на котором показаны страны, в которые идет unknown-tcp:


Видно, что за 7 последних дней соединения были с Англией, США, Аргентиной, Россией, Германией, Францией, Китаем, Ирландией. Здесь выводы зависят от вашей сети и от вашего бизнеса. Обычно самые подозрительные - это редкие соединения! 5 раз соединялись с Китаем: кто, почему, зачем? Если вы не ведете бизнес с Китаем, то конечно вас должны заинтересовать все соединения в Китай из вашей сети - то есть вы их будете расследовать как более подозрительные. (Я встречал у заказчиков неизвестные им IPSEC туннели в Китай, хотя вроде как IPSEC в Китае разрешен далеко не всем.)

Следующим шагом можно перейти уже в подробный журнал и вывести на экран все соединения, например, давайте посмотрим все соединения с Китаем по unknown-tcp. Для простоты есть специальная кнопка в виджете Destination Regions - кликаем на кнопку и переходим из вкладки ACC (скриншот вкладки ACC был выше, где были dashboard со статистикой приложений в сети) во вкладку Monitor и в журнал Traffic - в нем журналируется каждое соединение и одновременно хранится обогащенная контекстом информация по этому соединению. Здесь на картинке вы видите уже все соединения, а не просто статистику:

NGFW для unknown-tcp собрал PCAP пакетов, поэтому у вас есть возможность кликнуть на зеленую стрелку (напротив каждой строки соединения) и посмотреть что же за контент был передан в Китай. Также можно скачать себе на компьютер в виде файла PCAP эти собранные пакеты, чтобы посмотреть в Wireshark.

На картинке выше вы видите, что была применена типовая тактика обхода защиты - соединение было сделано по tcp/80 порту, который открыт практически в любой компании (потому что по порту 80 работают все браузеры).

Движок детекта приложений межсетевого экрана (далее APP-ID) не увидел в передаваемом трафике никакого WEB контента и, более того, не увидел никакого известного ему типа трафика вообще. В базе NGFW хранятся тысячи паттернов приложений L7 - они все были проверены на этому трафике и никакой из них не подошел! Посмотрите всю базу приложений Palo Alto Networks на сайте applipedia.paloaltonetworks.com. Раз никакой тип трафика не был обнаружен движком APP-ID, то данный трафик был помечен как unknown-tcp. Мы с вами увидели как реально обходят защиту и увидели как этот обход защиты обнаружить.

Важно понимать, что если у вас L4 firewall, который не смотрит в содержимое пакета, то обнаружить такие атаки невозможно. Более подробно про разницу L4 и L7 читайте статью "Преимущества межсетевых экранов нового поколения".

Приведенный мной метод как никогда актуален, особенно в сетях с критический инфраструктурой.

Чтобы расследовать инцидент дальше нужно разбираться с владельцем конечного устройства: смотреть что работает в памяти устройства и зачем "оно" что-то отправляет в Китай.

Прелесть периметровой защиты в том, что в одной точке вы контролируете сразу все свои тысячи устройств всеми умеющимися у вас индикаторами атак.

Что дальше?

Полное описание лучших практик и стратегии защиты вашей сети на периметре и в том числе методология защиты Zero Trust, есть в виде записи вебинара Евгения Кутумина:



Важное замечание

Заражают не только BIOS. Заражают все виды устройств и софта. И там хакеры тоже используют туннели. Важно будет добавить, что любое приложение 7 уровня может являться транспортом для туннелей: тот же DNS или SSL туннель или HTTP может быть туннелем чего-то нелегитимного. И тут уже помогают сигнатуры IPS и anti-spyware - включайте их все, пожалуйста, неважно какая у вас сеть: телеком, банк, завод, больница, отель или автозаправка.

Сейчас я бы обращал еще внимание на туннели на основе websocket - например, прямо сейчас посмотрите имеющимися средствами кто использует websocket в вашей сети и задайтесь вопросом: зачем? 

суббота, 1 июня 2019 г.

Какие трудности переживает сейчас любой SOC

Какие трудности переживает сейчас любой SOC, включая ГосСОПКУ?


  • мало сотрудников
  • много событий
  • мало времени на расследование и тем более Threat Hunting
  • много утилит, что скорее плохо, чем хорошо, между ними нет интеграции.


По данным уже расследованных взломов обнаружение факта что вас взломали происходит через 2-6 месяцев после взлома и это при наличии в крупных компаний таких передовых продуктов, как EDR,  UEBA, NTA, SOAR и других.

Одновременно существует потребность находить ответ на простой вопрос "как так вышло, что компания была взломана". Ответом на этот вопрос является картинка причинно-следственной связи от начала взлома и до того момента как его обнаружили.
На рынке стали появляться продукты, которые сразу собирают нужные события, чтобы ответить на вопрос что произошло. Ведь после взлома все-равно тратится драгоценное время на поиск в имеющемся объеме информации имеющимися утилитами всех предыдущих шагов.

На диаграмме ниже показано как раскрывает причинно-следственную связь продукт XDR компании Palo Alto Networks. По сути он разворачивает последовательность действий, которые предшествовали обнаружению и блокированию атаки. Если вы увидели, например, событие что локальная защита заблокировала вирус и затем попросили продукт рассказать историю, то на экране появляется картинка что же было до того как случилось. И это можно сделать нажатием одной кнопки, а не блужданием по всем утилитам и логам, что есть в компании. В данном случае - человек получил фишинговое письмо и кликнул на ссылку в нем:

Но у всего есть цена. Такое быстрое расследование инцидентов возможно, если все события заранее собирались и заранее сопоставлялись друг с другом. Ведь по-сути на экране набор совершенно нормальных событий - работа браузера, работа архиватора, работа скриптов. И только в совокупности эти события представляют собой угрозу, а по отдельности - нет.

Сколько нужно места, чтобы хранить эту всю информацию до того момента как она понадобится. Вот что сказали сотрудники исследовательской лаборатории Palo Alto Networks, приехавшие из Тель-Авива: "Для хранения событий 200 рабочих станций выделяется 1 террабайт на 1 месяц в Cortex Data Lake". А поскольку компании сейчас гораздо крупнее и распределены по всему миру, то можно представить что места требуются уже даже не террабайты, а петабайты. 

Единственным адекватным решением, которое сегодня видят разработчики - использовать для хранения журналов и событий облачные хранилища, предоставляемые крупными провайдерами: Google Cloud, Microsoft Azure, Amazon AWS и другие. Компания Palo Alto Networks предоставляет такое хранилище для журналов NGFW, UEBA, NTA, EDR/AET, облачных приложений под торговой маркой Cortex Data Lake. И на основе этого хранилища можно реализовать различные аналитические решения, как например было реализовано решение Cortex XDR.


Особенностью аналитики XDR, является то, что события анализируются поведенческими правилами, созданными на основе опыта реальных сотрудников, которые много лет расследуют инциденты и они заложили в поведенческие индикаторы (BIOC) свой опыт, которые позволяет по косвенным признакам распознать, что начинается взлом компании. Также вы можете заложить и свой опыт создав такие правила в самом интерфейсе продукта. 


Одновременно в мире идет работа над способами обмена информацией о расследованных инцидентах и индикаторами атак, которые уже были совершены. Для этого компании составляют Playbook действий хакеров и делятся друг с другом, например, лаборатория UNIT42 компании Palo Alto Networks свои исследования выкладывает тут https://pan-unit42.github.io/playbook_viewer/

Методики работы атакующих записываются в специальных TTP, что означает Tactics, Techniques, Procedures. И даже по набору TTP можно различать этих атакующих и можно отличать даже что за кампанию они сейчас развернули и на кого она нацелена.


И одновременно продукты безопасности встраивают в себя алгоритмы обмена и проверки таких индикаторов атак. Примерами таких стандартов обмена являются:
  • TAXII™ = Trusted Automated eXchange of Indicator Information
  • STIX™ = Structured Threat Information eXpression
  • СybOX = Cyber Observable eXpression

Существует глобальная база TTP - MITRE ATT&CK  и по ней ваши blue и read team могут проверять готовность компании противостоять описанным методикам и техникам взлома.

Недавно было проведено тестирование продуктов по безопасности, насколько эффективно они работают и по результатам всех опережает продукт TRAPS который обладает уникальными функциями защиты рабочих станций и одновременно является сенсором событий для Cortex XDR: