Содержание статьи
Пока ты читаешь эти строки, в периметре какой-то организации происходит инцидент: вредоносное ПО под тщательным руководством киберпреступников ведет охоту за ценными данными жертвы — за информацией, утечка которой может спровоцировать крупную финансовую катастрофу или поставить под вопрос существование бизнеса.
Зачастую такие спецоперации могут длиться годами, и жертва может даже не догадываться о присутствии постороннего в ее собственной ИТ-инфраструктуре. Однако самое печальное, что о существовании, целях и средствах злоумышленников могут уже знать эксперты, которые пристально следят за активностью киберпреступных групп и развитием их инструментов и, кроме того, участвуют в расследовании аналогичных инцидентов, где использовались подобные средства. Более того, уже могут быть опубликованы материалы исследований инструментов, обнаруженных при проведении той или иной APT-атаки, и в этих материалах, кроме текста о том, как исследователь копался в исходном коде малвари, зачастую может содержаться куда более ценная информация, которая окажется полезной для «харденинга» IT-инфраструктуры.
Когда не успевают патчи
Carbanak. Как много это слово значит для администратора IT-инфраструктуры и ИБ банков. APT-кампания, о которой мы писали ранее, позволила киберпреступникам провернуть кражу в размере, по предварительным оценкам, приближающемуся к миллиарду долларов.
Помимо масштаба украденного, на фоне других угроз эта APT выделяется техниками, которые злоумышленники использовали для изучения своих жертв и закрепления в их инфраструктурах. Киберпреступники проводили разведку в ручном режиме, пытаясь взломать нужные компьютеры (например, компьютеры администраторов) и применяя инструменты, обеспечивающие дальнейшее заражение компьютеров в сети. При этом параллельно эксперты антивирусных компаний расследовали инциденты, за которыми стояли участники преступной группы Carbanak, и поспешно уведомляли жертв, у которых был обнаружены вредоносные компоненты.
Впоследствии по результатам расследования был опубликован отчет, в котором, помимо прочей информации, содержались так называемые индикаторы компрометации. Данные индикаторы предназначены для того, чтобы любой желающий при помощи специализированных инструментов смог проверить наличие вредоносных компонентов Carbanak в своей инфраструктуре и принять соответствующие меры для повышения ее защищенности. Однако приложения, в которых публикуется данная информация, очень часто остаются без нужного внимания, потому что читатель попросту не знает, что делать с различными IOC, YARA rules и прочими структурами данных, представленных в подобных отчетах.
Оперативная информация как средство снижения рисков
Владельцам IT-инфраструктур необходимо регулярно проверять свои информационные ресурсы на наличие в них вредоносных компонентов, которые могут оказаться там, например, в результате эксплуатации злоумышленниками уязвимостей нулевого дня. Но что, если о существовании подобных компонентов еще не знают даже разработчики средств защиты, установленных в информационной системе? При этом в распоряжении ее владельца оказывается экспертная информация — приватный отчет о расследовании той или иной угрозы или уже опубликованное исследование какой-либо APT.
Типичный отчет содержит приблизительно следующую информацию об APT-кампании:
- детали о цели и жертвах;
- время активности;
- перечень узлов (IP-адреса) жертв;
- текущая активность;
- показатели компрометации (IOC, YARA rules);
- инструменты, которые использовали злоумышленники;
- описания инфраструктуры командных центров (C&C);
- MD5-хеши вредоносных компонентов.
Среди технической информации о деталях проведения той или иной APT-кампании для администратора безопасности информационной системы наибольший практический интерес представляют «показатели компрометации». Данная структурированная информация предназначена для импорта в автоматизированные средства проверки инфраструктуры на наличие признаков заражения.
Показатели компрометации
Показатель компрометации (indicator of compromise, IOC) — это артефакт, который при помощи специальных утилит позволяет определить факт заражения и может находиться как на конкретном узле сети, так и в сетевом трафике. Унифицированный формат описания данных индикаторов по-прежнему остается открытым вопросом, однако в индустрии широкое распространение и поддержку получили несколько типов структурированных данных.
IOC
IOC — данные для записи, определения и распространения информации об угрозах, позволяющие определить ее наличие в инфраструктуре посредством автоматизированного анализа программными средствами.
Простые сценарии использования подразумевают поиск специфичных файлов в системе по различным признакам: MD5-хешу, имени файла, дате создания, размеру и прочим атрибутам. Кроме того, можно искать различные специфичные признаки в памяти или специфичные записи в реестре операционной системы Windows.
Администратор также может интегрировать IOC, взятые из отчетов, в различные защитные решения:
- средства защиты класса Endpoint Security;
- SIEM;
- IDS/IPS;
- HIDS/HIPS.
Инструменты для расследования инцидентов
Существует множество коммерческих решений для работы с IOC, однако в ряде случаев достаточно возможностей их «опенсорсных» аналогов для проверки целевой системы на наличие признаков заражения. Например, Loki — IOC-сканер, распространяющийся по лицензии GPL, который позволяет искать в целевой системе различные артефакты в результате вредоносной активности.
Для проверки системы достаточно распаковать архив с утилитой и добавить нужные IOC-атрибуты. В папке приложения signature находятся следующие категории IOC:
filename-iocs
— текстовый файл, в котором содержатся списки атрибутов файловой системы, являющихся результатом активности той или иной угрозы;hash-iocs
— перечень MD5, SHA-1 и SHA-256 хешей вредоносных компонентов, которые присутствуют в системе после ее заражения;falsepositive-hashes
— список исключений MD5, SHA-1 и SHA-256 хешей, которые при детекте соответствующих компонентов помечаются сканером как ложное срабатывание.
В качестве примера возьмем опубликованный отчет об исследовании APT Carbanak. На странице 36 данного отчета содержится перечень MD5-хешей всех вредоносных компонентов, которые могут оказаться в системе после ее заражения. Откроем файл hash-iocs сканера и внесем соответствующее правило в следующем формате:
Xakep #200. Тайная жизнь Windows 10
Затем в текстовом файле filename-iocs
, описывающем атрибуты вредоносных компонентов в файловой системе, создадим индикатор в формате
# COMMENT
# REGULAREXPRESSION;SCORE
После внесения нужных индикаторов в базу знаний сканера можно приступить к сканированию. Для этого необходимо запустить исполняемый файл loki.exe
с правами администратора (в противном случае у сканера не будет возможности проверить содержимое оперативной памяти на наличие атрибутов) и дождаться завершения процедуры.
По результатам сканирования приложение составит отчет, который будет находиться в каталоге с программой и называться loki.txt
.
Yara rules
Помимо IOC-индикаторов, к отчетам могут прилагаться файлы с расширением yar. В них содержатся правила, составленные согласно специальному синтаксису, для YARA — инструмента, предназначенного для идентификации и классификации вредоносных семплов. Так называемые YARA rules описывают признаки наличия малвари. В том случае, если выполняется одно из правил, анализатор выносит вердикт о заражении и конкретных экземплярах вредоносного ПО.
Сканер Loki также поддерживает YARA-правила, а значит, взятые из отчетов yar-файлы могут стать хорошим поводом для проверки своей системы на наличие угрозы, упомянутой в отчете. Для этого достаточно переместить yar-файл в папку signature и запустить проверку. Однако для работы с YARA-правилами куда лучше подходит официальный инструмент от создателей проекта YARA, так как его база знаний регулярно пополняется и она куда больше, чем базы аналогичных утилит, что позволяет в результате сканирования получить более полную картину защищенности инфраструктуры.
Для проверки наличия тех или иных вредоносных компонентов в инфраструктуре на рабочей станции достаточно запустить утилиту YARA с нужными параметрами. Например:
yara32.exe –d md5=<MD5_hash> <this_is_yara_rule.yar> <dir_for_check>
где параметр -d
используется для определения внешних переменных. При соответстви условиям правила утилита выведет уведомление с названием правила и компонент, на котором оно сработало.
В результате администратор может запланировать запуск подобных проверок, например при загрузке системы. Для этого достаточно написать простой PowerShell-скрипт, который будет запускать утилиты с нужными параметрами и, если потребуется, назначать его запуск для всех хостов при помощи Active Directory: User configuration -> Windows configuration -> Scenarios ->Logon
.
STIX/JSON
Structured Threat Information Expression (STIX) — унифицированный язык для структурированной записи информации об угрозах. STIX разработан для эффективного применения данных об угрозах и используется для задач анализа вредоносного ПО, составления индикаторов, оперативного реагирования на инциденты и публикации информации об угрозах.
Огромное количество защитных решений поддерживают правила STIX и JSON для развертывания их в инфраструктуре, в их числе:
- SIEM;
- защитные решения, основанные на индикаторах (например, сканеры);
- forensic-платформы;
- решения класса Endpoint Security и прочее.
STIX-отчета можно импортировать в популярное SIEM-решение IBM QRadar, используя специально подготовленный Python-скрипт:
./stix_import.py -f STIXDocument.xml -i 192.168.56.2 -t XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -r MyReferenceSet
где -f
определяет расположение локального STIX-документа, -i
определяет хост с установленной QRadar-консолью, -t
задает сервис-токен для QRadar.
JSON — один из наиболее популярных форматов представления данных, который также часто прилагается к отчетам. Применение данных в формате JSON зависит от задач администратора и особенностей программного решения, в которое импортируются эти данные. Например, если есть IP-адреса командных центров, к которым подключаются зараженные рабочие станции, администратору защищаемой инфраструктуры имеет смысл внести эти IP-адреса в черный список своего файрвола.
Кто владеет информацией, тот...
Данный материал должен еще раз напомнить (а для кого-то и открыть) читателям нашего ресурса тот факт, что отчеты об исследовании той или иной угрозы несут в себе куда больше полезной информации, чем может показаться на первый взгляд. Они должны быть полезны не только для администратора, который вынужден постоянно искать актуальную информацию об угрозах, но и для защищаемой им инфраструктуры, которая должна оперативно реагировать на появление новых угроз. Ведь, в конце концов, кто владеет информацией, тот снижает риски быть взломанным.
Вопрос для Дениса
Вышла десятая винда. Насколько объективно опасно сейчас сидеть под Windows XP, если учесть, что я не сижу под админом и у меня стоит Google Chrome и адекватный продукт класса Internet Security? Интересно неангажированное мнение Дениса Макрушина 🙂
Система больше не поддерживается разработчиком (только, возможно, в рамках индивидуальных контрактов), а это значит, что 0day-уязвимости останутся там навсегда — никто не будет их патчить. И здесь не поможет Google Chrome, потому что рейтинги по количеству «зиродеев» возглавляют другие, не менее популярные продукты (привет, Adobe!). В данном случае тебя действительно может спасти хороший продукт класса Internet Security, где имеются технологии защиты от эксплоитов или Default Deny технологии, которые не дадут заразе запуститься даже в случае, если она окажется на рабочей станции (например, попадет через USB-носитель).
В качестве конкретного примера возьмем drive-by атаки и какой-нибудь зловред семейства вымогателей (Trojan-Ransom), которые часто распространяются злодеями посредством 100500-day сплоитов к прикладному ПО. Если сплоит к PDF, то Chrome не даст злодеям загрузить троянца по той причине, что все PDF-доки по умолчанию этот браузер запускает в собственной читалке, которая, в свою очередь, находится в песочнице браузера. В том случае, если сплоит, например, к Flash, то антивирусный продукт с активной технологией защиты от эксплоитов определит подозрительное поведение. Это значит, что drive-by в данном случае не сработает.
Однако если этот троянец попадет на рабочую станцию посредством MitM-атаки (злодей подменит скачиваемый жертвой бинарь), то велика вероятность его успешного запуска. В случае с шифровальщиком толковый антивирус заметит подозрительную активность (операции открытия файлов с популярными у шифровальщика расширениями на запись и изменения его структуры требуют предварительного бэкапа) и не даст зловреду выполнить свою функцию. Однако в случае со сложным шпионским ПО ситуация может быть совершенно другая.
Тем не менее ни один разработчик средства защиты никогда не даст стопроцентной гарантии защищенности пользователя (0day в защитных продуктах и недостатки их конфигурации никто не отменял, и, кроме того, не только drive-by атаки служат средством доставки малвари), тем более пользователя, который сам делает все для того, чтобы малварь оказалась на компьютере. Именно поэтому регулярно обновляй стороннее ПО, которое используешь, обновляй базы антивирусного продукта, настрой файрвол, меняй пароли и будь параноиком.