Возвращение Shamoon: охота за саудовской нефтянкой

4ab27ee7f0944f04b165ec9aa60dbc00.jpg
Помните, как в 2012 году мы препарировали интересного зловреда Shamoon, действующего на Ближнем Востоке? Если не помните, то коротко напомню: то был сетевой червь, уничтожающий содержимое жестких дисков зараженных машин. В коде полно ошибок и, мягко говоря, неоптимальных решений, однако ж Shamoon записал на свой счет более 30 тысяч машин, принадлежащих нефтяным компаниям Saudi Aramco и RasGas, а после залег на дно. Так вот, он вернулся, и не один.


С ноября 2016-го по январь 2017 года мы наблюдали три волны атак новой версии червя — Shamoon 2.0. Ареал обитания тот же: компании, критичные для экономики Саудовской Аравии. Почерк тех самых ребят, что слепили Shamoon четыре года назад, хорошо узнаваем, но пару новых трюков они освоили. Впрочем, схема атаки осталась столь же незатейливой:

— Хакеры добывают из администратора целевой сети его учетные данные. Как именно — мы не знаем, но надеемся, что при помощи классической социальной инженерии, а не путем более традиционных для региона физических мер воздействия.
 — С помощью добытых учетных данных один из серверов локальной сети берется под контроль и в дальнейшем используется для управления червем (не всегда).
 — В Shamoon 2.0 хардкодятся учетные данные администратора, внутренний IP скомпрометированного сервера и дата активации процедуры уничтожения данных.
 — Зловред раскидывается по атакуемой сети так широко, насколько это возможно. Заражаются все машины, на которые есть доступ по добытым учетным данным.
 — В день Д, час Ч и минуту М наступает П, то есть Shamoon 2.0 уничтожает содержимое жестких дисков примерно так же, как это делал его предшественник Shamoon. Раньше файлы заполнялись кусками JPG-файла с горящим американским флагом, теперь используются рандомный мусор либо фото утонувшего сирийского мальчика-беженца. Затем убивается MBR и затирается основной раздел первого диска.

c3c51234ebcf4b6e98da9e520a749d76.jpg
Как и в старом Shamoon, в этой версии червя есть возможность получения команд от локального сервера, хотя для срабатывания по заранее заданному времени никакие внешние команды не требуются. Более того, семпл, пойманный нами в январе этого года, вообще лишен функций связи с сервером.

Словом, все это очень напоминает Shamoon. Тем не менее авторы атаки не сидели четыре года сложа руки и теперь кое-что умеют:

— Shamoon 2.0 научился работать под 64-битными версиями Windows. При заражении он определяет разрядность системы (кривоватым методом — сравнивая значение переменной PROCESSOR_ARCHITECTURE с «AMD64» и «amd64», вместо того чтобы просто воспользоваться функцией IsWow64Process) и устанавливает соответствующий модуль.
bb4f70cb8d1449a4b6b22d714b8d6f7e.jpg
 — В Shamoon 2.0 появился рансомварный модуль! Правда, он пока неактивен. Прежний Shamoon был интересен отсутствием коммерческой составляющей, что в наше время случай редкий и выдает заказной характер атаки. Теперь же, видимо, хакерскую группу готовятся перевести на хозрасчет, без компенсации на питание. В общем, парни крутятся как могут.
 — В Shamoon 2.0 обнаружены признаки того, что авторы используют арабский язык и йеменскую локализацию системы. Впрочем, само по себе это не позволяет прямо обвинить йеменцев, учитывая, как легко подделываются такие «доказательства».

Если хотите шокирующих технических подробностей и примеров кода — читайте отчет об исследовании, он опубликован тут.

Знаки племени Симонова


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

Делается это посредством правил для YARA, в которых описываются индикаторы, свойственные определенному семейству вредоносных программ. О Shamoon мы знали, что он использует дополнительные модули, хранящиеся в зашифрованном виде. Первые пойманные семплы Shamoon 2.0 использовали ресурсы, именованные как PKCS7, PKCS12 и X509. Но авторы быстро исправились, и в следующих версиях файлы получили стандартные имена: ICO, LANG и MENU.

И все же кое-какие привычки создатели зловреда не изменили. Так, в Shamoon и Shamoon 2 имелся ресурс, названный как »101». Сам файл каждый раз разный, но название одно и то же! Наши аналитики покрутили его так и эдак и придумали наконец, как его опознавать:

— Уровень энтропии файла выше 7.8, что означает, что данные в нем зашифрованы или архивированы.
 — Размер около 30 Кб. Мы установили нижний порог в 20 Кб.
 — Язык файла не установлен, притом что все другие ресурсы имели язык Arabic (Yemen) или English United States.
 — Внутри нет нешифрованного PE-файла.

Протестировав эти немудреные правила, аналитики решили добавить еще несколько критериев, дабы снизить уровень возможных ложных срабатываний:
 — Файл не имеет цифровой подписи.
 — Объем всех известных семплов Shamoon с ресурсом »101» не превышал 370 Кб, так что мы установили предел в 700 Кб.
 — Число ресурсов внутри семпла не должно быть слишком велико — не более 15.

В итоге получилось такое правило для YARA:

import "pe"
import "math"

rule susp_file_enumerator_with_encrypted_resource_101 {
meta:

	copyright = "Kaspersky Lab"
	description = "Generic detection for samples that enumerate files with encrypted resource called 101"
	hash = "2cd0a5f1e9bcce6807e57ec8477d222a"
	hash = "c843046e54b755ec63ccb09d0a689674"
	version = "1.4"

strings:

	$mz = "This program cannot be run in DOS mode."

	$a1 = "FindFirstFile" ascii wide nocase
	$a2 = "FindNextFile" ascii wide nocase
	$a3 = "FindResource" ascii wide nocase
	$a4 = "LoadResource" ascii wide nocase

condition:

	uint16(0) == 0x5A4D and
	all of them and
	filesize < 700000 and
	pe.number_of_sections > 4 and
	pe.number_of_signatures == 0 and
	pe.number_of_resources > 1 and pe.number_of_resources < 15 and
	for any i in (0..pe.number_of_resources - 1):
	(	(math.entropy(pe.resources[i].offset, pe.resources[i].length) > 7.8) and 
		pe.resources[i].id == 101 and
		pe.resources[i].length > 20000 and
		pe.resources[i].language == 0 and
		not ($mz in (pe.resources[i].offset..pe.resources[i].offset + pe.resources[i].length))
	)
}

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

А еще с помощью этого самого кусочка простого кода мы нашли еще одного, доселе неизвестного зловреда, которого окрестили StoneDrill.

Друг его StoneDrill

Как и в случае с Shamoon, создатели StoneDrill активно интересуются саудовскими организациями. Кроме того, между этими двумя зловредами прослеживается ряд стилистических параллелей. Подробнее о внутреннем устройстве StoneDrill мы расскажем на следующем саммите антивирусных аналитиков «Лаборатории Касперского», который пройдет со 2 по 6 апреля на острове Святого Мартина.

Несмотря на то что между StoneDrill и Shamoon имеется некоторое сходство, они сильно отличаются друг от друга. Целью StoneDrill также является уничтожение информации, но драйвер для прямого доступа к диску он не использует. Его модуль затирки данных внедряется в браузер, установленный на машине жертвы. Причем, если браузер запущен с правами, не позволяющими затереть диск напрямую, будут удалены лишь доступные файлы.

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

Еще момент — мы полагаем, что есть связь между StoneDrill и атакой NewsBeef, которая также направлена преимущественно против целей, расположенных в Саудовской Аравии. Для StoneDrill мы разработали правила для расшифрованных модулей — так как инструменты целевой атаки обычно модифицируются под цель, эти правила помогают обнаружить новые варианты зловреда, применяемого в атаке. Так вот, эти правила также «ловят» семплы, которые использовались в NewsBeef.

Если дать волю воображению и представить, что за всем этим вредоносным зоопарком стоят одни и те же люди, NewsBeef и StoneDrill выглядят как инструменты для долговременной работы против саудовской экономики, а Shamoon — «тяжелая артиллерия», применяющаяся по наиболее важным целям. Однако, согласно нашей рабочей версии, StoneDrill и Shamoon используются разными группами, преследующими схожие интересы.

Комментарии (0)

© Habrahabr.ru