В этом году я снова посетил киберфестиваль Positive Hack Days. И, как водится, взял много интервью на разные темы в области кибербезопасности. Одним из них был разговор с руководителем сетевой экспертизы в продукте PT NAD (PT Network Attack Discovery) компании Positive Technologies Кириллом Шипулиным — о том, как можно определить, что корпоративная сеть атакована, как выявляются аномалии поведения пользователей и о многом другом. Приятного чтения!
Какими могут быть первые признаки присутствия хакера в сети?
Сеть — лицо компании. И анализируя сетевые запросы и сетевую активность конкретного человека, можно практически полностью расписать его день. И если таким образом понаблюдать за ним достаточно много времени, то можно понять его обычное поведение в сети и сделать т.н. слепок его активности: к каким ресурсам он обычно обращается и чем занимается в рабочее время. А когда пользователь начинает вести себя хаотично — делать запросы, которых никогда не делал или обращаться к системам, куда ни разу не ходил — стоит присматриваться, а не проник ли хакер на его компьютер, чтобы развить свою атаку дальше. Классический пример — это когда сотрудница отдела кадров начинает обращаться на сайты для программистов, скачивать какие-то инструменты и посещать внутренние ресурсы разработчиков. Подозрительно!
Я правильно понимаю, что есть какая‑то технология, чтобы определить, присутствует ли хакер в сети, получил ли он какой‑то первоначальный доступ, взломана сеть или нет. Что это за технология?
Внутри большого сегмента систем для анализа трафика есть разные классы решений, например NGFW (next‑generation firewall) или NTA (network traffic analysis). В сердце большинства из них лежит технология DPI (Deep Packet Inspection).
Эта технология выглядит примерно так: существуют прикладные протоколы, например, те, что мы используем для совершения веб‑запросов в интернете. А в локальной сети, например, компьютеры общаются при помощи уже других протоколов: SMB, LDAP и DCERPC. По ним устройства получают и запрашивают информацию о необходимых им сервисах и всей сети. У средств удаленного управления (TeamViewer, AnyDesk и так далее) существуют уже другие, свои протоколы, по которым их также можно достоверно определять.
Как это происходит? Во‑первых, по сети они общаются с определенным списком «своих» серверов с известными ip‑адресами и именами доменов, это их сетевая инфраструктура. Информация об этих же доменах передается внутри защищенных TLS‑соединений и их даже видно в сопутствующих DNS‑запросах еще до того, как тот же TeamViewer установил сетевое соединение. Как видите, способов обнаружения у нас достаточно, а подобные утилиты, кстати, используются не только сотрудниками на удаленке, но еще и хакерами для закрепления. У них, кстати, существуют свои тренды и мода на инструменты, поэтому какие‑то средства рано или поздно устаревают.
Но вот что еще интересно: для своей работы хакеры, как правило, используют системы Linux, а атакуют они Windows. И там, в сетях на базе Windows, есть куча специальных сетевых протоколов, которые в Microsoft разрабатывались десятки лет и по которым хакеру необходимо уметь общаться для проведения атак. Сложные ли это протоколы? Да, но для того чтобы упростить себе жизнь, они разработали фреймворк Impacket. Сейчас он пользуется огромной популярностью для атак на корпоративные сети, правда вследствие того, что библиотека Impacket реализует лишь необходимый набор функций для хакерских нужд, появляются небольшие различия в поведении и сетевые артефакты, по которым и можно обнаруживать хакера в сети.
Доходит до простого: популярным способом lateral movement — передвижения в сети с компьютера на компьютер — является создание сервисов на хостах, для чего в упомянутом наборе Impacket существует скрипт под названием Smbexec. Этот скрипт на атакуемой машине создает сервис, который затем выполняет определенную команду хакера. Но имя, с которым по умолчанию создается этот сервис — «DUMMY». Такой артефакт крайне сложно игнорировать при разработке сетевых средств защиты. Конечно, это имя можно и поменять, тем более продвинутые злоумышленники так и делают, но в целом — вполне рабочий лайфхак.
Есть и другие артефакты. Например, вместо имени интерпретатора команд в ОС Windows CMD.EXE, которым пользуются и хакеры, и обычные пользователи, Impacket использует его псевдоним «%COMSPEC%» — и это еще один яркий признак хакерской активности, связанный с нюансами работы операционных систем. И нюансов таких хоть отбавляй.
Как я понимаю, такие атрибуты легко найти? Наверно, есть и другие инструменты атак?
Да, перечисленные артефакты очень легко атрибутировать для определения атаки. И насколько легко их можно обнаружить, настолько же и легко спрятать. Но при сноровке, внимании и при помощи таких вроде бы маленьких ошибок можно определить хакерское присутствие и начало атаки.
Кроме этого фреймворка, конечно, есть и другие хакерские утилиты, к примеру разные DNS‑тоннели (техника, позволяющая передавать произвольный трафик поверх DNS‑протокола). Также есть и другие аномалии, указывающие на присутствие злоумышленника: всплески объемов трафика или увеличение количества несвойственных запросов. Простой пример: какое‑то странное соединение с удаленным рабочим столом в ночное время с компьютера бухгалтера. Тут уж явно не сверхурочная работа.
А какие еще есть системы для поиска аномалий в поведении пользователей?
NTA‑системы не просто ищут артефакты атак в трафике, но еще и записывают и хранят его целиком: метаинформацию, источник, поля протоколов и сами сетевые запросы в «сыром» виде. Причем эти данные могут храниться неделю, две — сколько позволит хранилище клиента или сколько этого требует регламент. Потом при помощи этих данных можно обучить механизмы определения аномального поведения. Отклонение от нормы — это тоже один из способов детектирования угрозы, и у этой технологии есть название: Behavioral Anomaly Detection, она основана на машинной обучении ML.
Благодаря всем этим системам, стоит злоумышленнику быть замеченным один лишь раз, и оператор системы защиты расследует всю цепочку его действий от конца к началу. Это позволяет понять, какими системами он завладел, какую скомпрометированную учетную запись использовал и какие действия он еще совершал. Так, постепенно, по мере распутывания клубка событий, оператору и приходит понимание, как хакер проник в сеть, когда началась атака, как давно она длится и что в конце концов делать.
Как защитники узнают о том, какие легитимные инструменты используют хакеры?
В целом, если речь идет не про секретные APT‑группировки с уникальными и неповторимыми инструментами, нет проблем понять, как действуют хакеры. Их техники тоже известны всем, они остаются неизменными. А вот позволить себе сделать, скажем так, эксклюзивные инструменты могут далеко не все: на это надо потратить время, деньги и ресурсы специалистов. А как я уже сказал, стоит злоумышленникам выдать себя один лишь раз — и весь их суперинструментарий будет тут же раскрыт: таких примеров множество.
Кроме того, компании, которые занимаются кибербезопасностью, публикуют свои исследования, отчеты о группировках и расследования. В этих документах есть важные и нужные секции с техническими подробностями. Да и сообщества белых хакеров сами по себе довольно открытые: они также публикуют свои исследования и делятся материалами. Выходит, чтобы быть в курсе последних новостей из мира кибератак, не нужно анализировать дарквеб или иметь доступ к каким‑то закрытым телеграм‑каналам.
Я правильно понимаю, что решения, основанные на нужных технологиях, находят какую‑то аномальную активность, используя базу данных? И сама программа определяет, к какой группировке относится атака? Или же все‑таки это делает кто‑то из специалистов?
Это уже задача специалистов по threat intelligence и incident response. Они исследуют вредоносные программы и участвуют в расследованиях. И уже эти специалисты могут предполагать, какая группировка стоит за такой‑то атакой, на основе анализа вредоносных адресов и инструментов хакеров.
Как я понял из нашего разговора, выявить хакера можно благодаря расставленным маркерам: это как колокольчики на ниточках, которые начинают звонить, если их задеть. Интересно теперь понять, как хакер может определить эти маркеры, чтобы попытаться скрыть свое присутствие в сети от инструментов ИБ и специалистов по кибербезопасности. Ну что же, для этого отправлюсь искать хакера, который объяснит мне, как это сделать.
Автор: IgnatChuker