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

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

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

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

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

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

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

    — В 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 используются разными группами, преследующими схожие интересы.
    • +15
    • 11.1k
    • 3
    «Лаборатория Касперского»
    269.07
    Ловим вирусы, исследуем угрозы, спасаем мир
    Share post

    Comments 3

      0
      Ну и для пропаганды этого замечательного инструмента для отлова разной подозрительной софтвари

      Не лучше ли для пропаганды еще и ссылку на замечательный инструмент добавить?
      +1
      Йеменская локализация системы — это, получается, у хуситов появилось собственное киберподразделение? Целеустремленные парни, однако же.

      Only users with full accounts can post comments. Log in, please.