Kim Zetter. Countdown to Zero Day. Глава 4. Stuxnet разоблачен.

В первые дни после выхода новостей о разоблачении Stuxnet, с дюжину исследователей из Symantec на трех континентах были вовлечены в первичный анализ кода вируса.Очень быстро их количество сократилось всего до трех – Чиена, О`Мурчу и Фальере – поскольку остальные специалисты рассредоточились на новые поступающие угрозы. Теперь, спустя почти неделю как обнаружен Stuxnet, трое аналитиков все еще копались с «ракетной» частью червя, пока что так и не начав изучать принцип его работы.

Как и классическое оружие, цифровое оружие состоит из двух частей – ракетной и системы доставки, которые отвечают за распространение вредоносной полезной нагрузки и ее установки на компьютер, и за саму полезную нагрузку, которая и выполняет фактическую атаку, например, кражу данных или выполнение других действий на зараженном компьютере. Конкретно в данном случае, полезной нагрузкой был вредоносный код, предназначенный для программного обеспечения ПЛК от Siemens.

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

Офисы Symantec в Калвер-Сити занимают громадное здание в бизнес-кампусе площадью 36 тысяч квадратных метров, сплошь и рядом усеянном пальмами и пустынными кустами. Сделанная на современный манер пятиэтажка ярко контрастирует с тесным офисом VirusBlockAda, построенным по всем коммунистическим канонам, с просторным атриумом с высокими потолками и полом с цементной плиткой, которая при ходьбе по ней издает глухой звук полого стекла, вероятно из-за того, что под ней находятся силовые конструкции и вентиляционные системы здания. Офисный комплекс Symantec имеет золотой сертификат LEED – за свою экологическую архитектуру, со светоотражающей крышей, защищающей от палящего солнца южной Калифорнии, и стеклянный фасад, позволяющий каждому мимо проходящему человеку заглянуть внутрь довольно странного соседа торговым центрам и скоростным шоссе, которые расположились недалеко от аэропорта Лос-Анджелеса.

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

Чиен кратко изложил сделанные ранее открытия О`Мурчу для своих коллег – необычайно большой размер кода, его сложный метод загрузки и скрытия файлов, и таинственную полезную нагрузку, которая, казалось, предназначалась только для ПЛК Siemens. Он также показал причудливую географическую структуру зараженных данных. Однако о своих подозрениях в возможном политическом подтексте атаки он решил промолчать.

«Мы хотим поставить Нико на полный рабочий день», – сказал Чиен своим менеджерам, имея ввиду Фальера из Франции. «И я считаю, что нам с Лиамом стоит продолжать работать дальше». Однако было одно «но». Он понятия не имел о том, сколько времени потребуется, чтобы закончить полный анализ кода.

В среднем исследовательские команды компании анализировали около 20 вредоносных файлов в день, поэтому посвящать силы трех топовых аналитиков одной угрозе на неопределенный срок не имело для бизнеса никакого смысла. Так случалось, чтобы сразу несколько главных аналитиков компании работали над анализом одного вредоноса, лишь однажды, с червем Conficker в 2008 году. Но Conficker был изменяющим форму червем, который заразил миллионы компьютеров по всему миру и оставил множество безответных и по сегодняшний день вопросов, в первую очередь, почему он вообще был создан.1 Stuxnet, напротив, заразил относительно небольшое количество машин на еще меньшем подмножестве – ПЛК компании Siemens. Тем не менее, загадочный код требовал дальнейшего изучения, и руководители Чиена согласились, что пока что не должны бросать эту работу. «Но держите нас в курсе того, что вам удастся обнаружить», – добавили они, даже не подозревая, что на их еженедельных встречах на протяжении нескольких следующих месяцев в главной роли всегда будет выступать Stuxnet.

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

Symantec – крупная международная корпорация, Чиен и О`Мурчу работали в ее небольшом дочернем офисе, занимаясь делами грубо говоря в одиночку, по минимуму прибегая к помощи компании. Они работали в лаборатории аналитики компьютерных угроз, филиале Symantec, кибер-эквиваленте лаборатории биологической защиты, где исследователи могли использовать вредоносный код в «красной» сети – изолированной системе бизнес сети Symantec – чтобы наблюдать за его поведением в контролируемой среде. Чтобы попасть в лабораторию, которая располагалась на первом этаже, рабочим проходилось проходить несколько проверочных пунктов, каждый из которых все более ужесточал правила прохода. Последний пункт не пропускал никого, за очень редким исключением, и физически изолировал красную сеть от компьютеров, подключенных к внешнему интернету. Портативные носители были строго запрещены – никаких DVD, CD-ROM или USB – чтобы предотвратить бездумные желания работников вынести опасный вредоносный софт за границы лаборатории.

Термин «лаборатория аналитики компьютерных вирусов» это вовсе не о стерильных кабинетах с учеными в белых халатах, согнутых над микроскопами и чашками Петри. Лаборатория Symantec была просто неописуемым офисным пространством, заполненным в основном пустыми кабинетами и горсткой рабочих, которые целыми днями пристально смотрели на свои мониторы, под частую в полной тишине, выполняя методическую и, казалось, довольно утомительную работу. Не стенах не висело картин; не было автоматов Nerf или других глупых офисных игрушек, к которым прибегают работяги с целью выпустить пар и отдохнуть; никаких растений, искусственных либо каких-нибудь других, чтобы придать помещению домашний уют. Единственный клочок природы был виден только через окна – поросший травой и деревьями холм – вид, который бизнес-парки имитировали, чтобы хоть как-то симулировать природу для запертых внутри рабочих.

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

Кабинет Чиена был соседним с О`Мурчу, и был лишь немного более украшен странной коллекцией художественных открыток и пиратским флагом рядом с дверью, на котором было написано ЧИЕН ЛУНАТИК – каламбур на его имени. В переводе с французского это означало «Осторожно, собака», но Чиен предпочитал более буквальный перевод «бешенная собака».

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

Из них троих он работал в Symantec дольше всех. Это была его первая работа после окончания колледжа, на которую он попал по счастливому стечению обстоятельств. В начале 90-х он обучался в Калифорнийском университете, где изучал смесь генетики, молекулярной биологии и электротехники, и, подобно О`Мурчу, был на пути к светлой научной карьере. Но после окончания учебы в 1996 году он, с несколькими своими друзьями, пошел работать в Symantec, намереваясь поработать там пару лет, чтобы заработать денег на аспирантуру. Но несколько лет слишком затянулись.

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

Когда Чиен присоединился к команде Symantec, его коллеги, занимавшиеся исследованием антивирусов, были похожи на ремонтников MayTag из этой культовой рекламы – у них постоянно был простой. Вирусы все еще были довольно редким явлением и распространялись с очень небольшой скоростью, посредством дискет или «sneaker net» – переносились из одного компьютера на другой вручную. Клиенты, считавшие что их машина заражена вирусом, отправляли подозрительный файл на гибком диске в лабораторию Symantec, где он мог пролежать неделю или больше, прежде чем Чиен, или один из его коллег не возьмется за его анализ. В большинстве случаев файлы оказывались чистыми. Но иногда попадались и не совсем безобидные экземпляры. В таком случае, специалист подбирал несколько сигнатур для его обнаружения, бросал их на другую дискету и отправлял по почте клиенту вместе с инструкциями по обновлению своего антивирусного сканера.

Прошло не так много времени прежде чем вредоносное ПО эволюционировало, и ситуация изменилась. Представление Microsoft Windows 98 и Office, наряду с расширением интернета и, соответственно, распространением электронной почты, породило быстро распространяющиеся вирусы и сетевые черви, которые заражали компьютеры миллионами за считанные минуты. Одним из самых печально известных вирусов того времени стал вирус Мелисса, выпущенный в 1999 году.2 Запущен 32-летним программистом из Нью-Джерси по имени Дэвид Смит, он встраивался в документ Word, который Смит публиковал в группе новостей alt.sex.usenet. Смит хорошо понимал свою целевую аудиторию, поэтому заманивал их открыть файл под предлогом того, что в нем имеются записи с логинами и паролями для доступа к порно сайтам. После открытия документа, Мелисса, воспользовавшись уязвимостью в макро-функции Microsoft Word, автоматически рассылала письмо с этим же документом первым 50 контактам в адресной книге Outlook. Через три дня первый в мире вирус массовой рассылки распространился на более чем 100 тысяч машин, что было впечатляющим показателем, учитывая время его запуска. В дополнение к автоматической рассылке через Outlook, Смит вставил в зараженные документы ссылку на занудный Скраббл: «двадцать два, плюс оценка по трем словам, плюс пятьдесят баллов за использование всех моих писем. Игра окончена. Меня здесь нет». Мелисса была довольно безобидной, но она открыла дорогу всем остальным быстро распространяющимся вирусам и червям, которые будут располагаться на главных страничках газет на протяжении многих лет.3

По мере расширения области угроз, Symantec поняла, что нужно как можно быстрее останавливать заражение, прежде чем оно распространится на другие машины. Когда компания только вошла в антивирусный бизнес, то обнаружить и обезвредить угрозу в течении одной недели считалось хорошим временем отклика. Но Symantec стремилась сократить это значение к одному дню, и даже меньше. Чтобы добиться подобного результата, компании требовались специалисты сразу в нескольких часовых поясах, дабы выявлять вирусы в первые часы их появления и предоставлять сигнатуры клиентам из США, прежде чем те проснуться и начнут кликать на вредоносные вложения в письмах электронной почты.

К тому времени Чиен уже работал в Symantec дольше двух лет. Он накопил достаточно денег для обучения в аспирантуре и планировал вскоре переехать в Колорадо, чтобы как следует отдохнуть перед предстоящей учебой – заняться сноубордингом и катанием на велосипеде. Но Symantec подкинула ему заманчивое предложение – вакансию в Нидерландах. Компания имела отдел технической поддержки и отдел продаж за пределами Амстердама, но теперь ей также требовалась команда аналитиков вредоносного ПО. Чиен не смог отказаться. Он приземлился в Нидерландах за пару дней до того, как будет запущен червь Love Letter в мае 2000 года. Червь изначально был создан как проект на урок одного из филлипинских студентов, но быстро распространился на миллионы машин по всему миру. Это была идеальная возможность для Symantec проверить дееспособность новой европейской команды реагирования на вредоносные программы, пускай даже эта команда состояла из одного человека. В течении рекордных 20 минут Чиен проанализировал код и создал сигнатуры для его обнаружения. (К сожалению, это достижение было совершенно напрасно, поскольку Love Letter использовал настолько большую пропускную способность интернета, что клиенты попросту не могли зайти на сайт Symantec чтобы скачать сигнатуры). Как только кризис прошел, Чиен нанял еще четырех специалистов, тем самым создав свою собственную команду в Амстердаме, которая и встретила появление в следующем году большой угрозы под названием Code Red.

Он ненадолго переехал в Токио, чтобы открыть еще один исследовательский офис. Затем, в 2004 году, Symantec перенесла свою европейскую штаб-квартиру из Амстердама в Дублин, и Чиен отправился вместе с ними. Вскоре после чего он пополнил свою команду еще десятком новых сотрудников, включая О`Мурчу.

В настоящее время в Калвер-Сити им двоим и Фальеру предстояла грандиозная задача по разбору Stuxnet.

Первое препятствие, с которым столкнулись исследователи, произошло при попытке расшифровать код Stuxnet. Как уже выяснил О`Мурчу, ядром Stuxnet был большой файл .dll, который загружался на машину жертвы. Внутри него было упаковано с десяток .dll файлов поменьше и некоторых других компонентов, которые нужно было взломать и удалить, прежде чем они выполнят свой код. К счастью, ключи для разблокировки были в самом коде. Каждый раз, когда Stuxnet оказывался на компьютере под управлением Windows, он использовал ключи для расшифровки и извлечения компонентов из .dll файла по мере необходимости, в зависимости от условий, которые он обнаруживал на компьютере. По крайней мере, О`Мурчу так предполагал. Некоторые ключи не были активированы на их тестовом компьютере – последние, необходимые для разблокировки полезной нагрузки.

           О`Мурчу копался в коде, пытаясь найти причину, и именно тогда он обнаружил ссылки на конкретные модели ПЛК от Siemens. Stuxnet не просто охотился за системами с установленным программным обеспечением Siemens Step 7 или WinCC, ему нужна была конкретная линейка ПЛК Siemens – программируемые логические контроллеры S7-315 и S7-417. Только эта комбинация программного и аппаратного обеспечения активировала ключи для разблокировки полезной нагрузки.

Единственной проблемой было то, что у Чиена и О`Мурчу не было ни софта Siemens, ни их ПЛК. Без них ученые должны были использовать отладчик, чтобы найти ключи и вручную разблокировать полезную нагрузку.

Программа отладки, главный инструмент реверс-инженеров, позволяет шаг за шагом пройтись по коду – подобно стоп-кадрам на камере – чтобы рассмотреть каждую функцию по отдельности и задокументировать ее деятельность. Используя данный метод, они разбили весь код на секции, которые содержали команды для расшифровки вредоносных компонентов и следовали им, чтобы найти ключи. Но найти ключи было лишь полдела. Заполучив себе все ключи, они должны были найти алгоритм шифрования, который разблокировал бы каждый ключ. Копание в коде заняло в аналитиков несколько дней, но, когда все кусочки паззла собрались воедино, они наконец могли увидеть каждый шаг, который совершал Stuxnet на начальных этапах заражения.4

Первое, что делал Stuxnet, это определял, является зараженная машина 32 или 64 разрядной. Это связано с тем, что он работал только с 32 разрядными операционными системами. Также он проверял компьютер на то, не заражен ли он уже. Если система уже была заражена, вирус просто уверялся, что текущие вредоносные файлы обновлены до последней версии и, если нужно, заменял старые файлы на новые. Но если Stuxnet оказывался на новой машине, он начинал свой тщательно продуманный танец с вредоносными файлами, быстро перескакивая из директории в директорию, в поисках наилучшего пути заражения.

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

           Если Stuxnet удавалось пройти защиту, он продолжал свою работу, и затем активировался второй процес. Этот процес состоял из двух задач – первая заключалась в том, чтобы заразить любой USB-накопитель, вставленный в компьютер для последующего заражения других машин, вирус на USB накопителе «жил» 21 день.5 Вторая, и наиболее важная задача заключалась в расшифровке и загрузке обширного .dll файла и его различных компонентов в память машины, используя уникальные методы, которые уже успел задокументировать О`Мурчу. Сначала распаковывался главный .dll файл, чтобы освободить меньшие .dll внутри него, а затем загрузить их в память. Поскольку файлы находились в оперативной памяти, каждый раз, когда машина перезагружалась, файлы стирались из нее, поэтому процессу необходимо было перезагружать их в оперативную память после каждой перезагрузки.

Как только главный .dll файл и его содержимое были распакованы и загружены в память, Stuxnet начинал искать новые машины для заражения и вызывал серверы управления и контроля, чтобы сообщить о новом завоевании, но, если он попадал на систему под управлением Siemens Step 7 или WinCC, он резко останавливал все свои процессы после этих действий.

Таким образом, исследователи из Symantec теперь знали, как Stuxnet распространял и загружал свои файлы, но оставался еще один вопрос: почему его создали, и для чего он был предназначен? Ответ на этот вопрос все еще был спрятан в его полезной нагрузке.

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

 Помимо сложных способов, которыми Stuxnet загружал свои файлы и обходил защитное программное обеспечение, он использовал обширный контрольный список, чтобы убедиться, что все условия на машине были идеальными, прежде чем разблокировать его полезную нагрузку. Stuxnet также тщательно отслеживал все ресурсы, которые он использовал на машине, и обеспечивал их разгрузку, как только в них пропадала нужда – если вирус потреблял слишком много ресурсов, появлялся риск замедления скорости работы машины и соответственно его обнаружения. Он также перезаписывал многие временные файлы, созданные на машине, если они больше не были нужны. Абсолютно все программы создают временные файлы, но далеко не все заботятся об их удалении, поскольку они просто перезаписываются временными файлами, создаваемыми другими приложениями. Однако мошенники не хотели, чтобы файлы Stuxnet надолго задерживались в системе, это увеличивало риск, что их увидят.

Но, несмотря на все усилия, которые прохвосты вложили в свой код, было несколько моментов, которые казались очевидно недоделанными. О`Мурчу был не единственным, кто увидел эту деталь. Когда спустя пару недель исследователи Symantec начали делиться своими выводами о Stuxnet, члены сообщества безопасности начали ворчать о многих недостатках кода, настаивая на том, что разработчики вируса являлись далеко не «элитой хакеров» как их называли в первые дни атаки. Некоторые исследователи говорили, что их техническое мастерство было непоследовательным, и они допустили ряд ошибок, которые и позволили специалистам легко раскрыть их намерения.

Например, Stuxnet было бы гораздо сложнее анализировать, если бы разработчики применяли лучшие способы обфускации, чтобы помешать работе ученых, такие как более сложные методы шифрования, которые не позволили бы никому, кроме целевой машины разблокировать полезную нагрузку или даже идентифицировать, что Stuxnet был нацелен на Siemens Step 7 и ПЛК. Вирус также использовал слабое шифрование и стандартный протокол для связи со своими серверами контроля и управления вместо кастомных, что значительно бы затруднило исследователям установление допущенных в коде ошибок и считывание трафика вредоносного ПО.

Криптограф Нейт Лоусон не без презрения позже комментировал в своем блоге, что авторы Stuxnet «должны быть смущены своим аматорским подходом к сокрытию полезных данных» и использованием устаревших методов, которые уже давно не использует преступный мир. «Я действительно надеюсь, что это не было написано в США, – писал он, – потому что я хотел бы быть уверен в том, что наши элитные разработчики кибероружия хотя бы что-то слышали о том, что делали болгарские подростки в начале 90-х».6 Согласно современным способам разработки и техникам из Hacker 101 Stuxnet выглядел как Франкенштейн, слепленный из устаревших методов, а не как топовый проект элитного разведывательного агентства.7

Но у О`Мурчу были другие мысли насчет несоответствий в Stuxnet. Он полагал, что злоумышленники сознательно использовали слабое шифрование и стандартный протокол для связи с серверами, потому что хотели, чтобы данные, передаваемые между зараженными машинами и серверами, ничем не отличались от всех остальных, и не привлекали к себе внимания. А поскольку связь с серверами была минимальной – вредоносная программа передавала только необходимую информацию о каждой зараженной машине – хакерам не требовалось более совершенное шифрование, чтобы скрыть ее. Что касается лучшей защиты полезной нагрузки, то, возможно, существуют ограничения, которые не позволяют им использовать более сложные методы, такие как шифрование с помощью ключа, полученного из обширных данных конфигурации на целевых машинах, чтобы его могли разблокировать только эти машины.8 Целевые машины, например, могут не иметь одинаковую конфигурацию, что затрудняет использование одного ключа шифрования полезной нагрузки, или могут быть опасения, что конфигурация на машинах может измениться, что сделает такой ключ бесполезным и полезную нагрузку уже будет не разблокировать.

Сбои в работе Stuxnet также могли быть следствием нехватки времени – возможно, что-то заставило злоумышленников запустить свой код в спешке, потому экспертам и показалась эта работа сделанной небрежно и непрофессионально.

Но было и другое возможное объяснение небрежной техники написания кода: Stuxnet, вероятно, был создан разными командами программистов с разным уровнем скиллов и талантов. Модульная природа вредоносного ПО означала, что разработку вполне могли осуществлять разные команды, которые работали над разными частями программы одновременно или даже в разное время. По оценкам О`Мурчу, для кодирования Stuxnet понадобилось как минимум три команды – элитная, высококвалифицированная команда первоклассных хакеров, которая работала над полезной нагрузкой, ориентированной на программное обеспечение и ПЛК Siemens; группа второго уровня отвечала за механизмы распространения и установки, и также частично за разблокировку полезной нагрузки; и третья, наименее квалифицированная команда, настраивала серверы управления и контроля и обрабатывала шифрование и протокол связи для Stuxnet. Возможно, что разделение обязательств было настолько четким, а команды настолько разделены, что они никогда не взаимодействовали между собой.

Но хотя у каждой из команды был разный уровень умений и опыта, все они были едины, по крайней мере, в одном – никто из них не оставил никаких следов в коде, которые можно было бы легко использовать для их отслеживания. По крайней мере так казалось.

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

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

Код Stuxnet был куда более стерильным, чем те вредоносные программы, с которыми обычно встречались Чиен О’Мурчу. Но все-таки из общей картины выделялись две мелкие детали.

Однажды Чиен уже в который раз просматривал записи, сделанные во время анализа Stuxnet, когда на глаза ему попалось нечто интересное – маркер заражения, который не позволял вирусу устанавливаться на определенные машины. Каждый раз, когда Stuxnet стыкался с потенциальной жертвой, перед тем, как он начать процесс распаковки и загрузки своих файлов, он проверял реестр Windows на наличие «магической» строки», состоящей из набора букв и цифр – 0x19790509. Если таковая имелась, вирус остановит свое заражение и оставит машину.

Чиен встречался с подобными «прививками» раньше. Хакеры помещали их в раздел реестра своих собственных компьютеров, чтобы после запуска кода их не заразил их же вирус, таким образом защищая собственную машину, либо другие компьютеры, которые они хотели оставить незараженными. Значение такой «прививки» могло быть абсолютно любым. Как правило, это была просто строка со случайным набором чисел и букв. Но эта строка, очевидно, была датой – 9 мая 1979 года – сначала указывался год, затем месяц и день, общий формат даты для Unix. Другие числовые строки, которые встречались в коде Stuxnet, почти наверняка, также были датами, написано все в том же формате. 

Чиен быстро зашел в Google, и вбил все произошедшие события за 9 мая 1979 года. Каково же было его удивление, когда один из результатов был связан с конфликтом Ирана и Израиля. В тот день 1979 года в Тегеране был расстрелян известный иранский еврей, бизнесмен Хабиб Элганян, после того как новое правительство захватило власть после исламской революции. Пока его не убили в подозрении за шпионаж в пользу Израиля, он был богатым филантропом и уважаемым лидером еврейской общины Ирана. Его убийство стало поворотной точкой в отношениях между еврейской общиной и иранским государством. В течении почти 40 лет, пока у власти находился Мохаммед Реза Шах Пахлави, иранские евреи имели довольно дружественные отношения со своими соседями-мусульманами, как и исламская нация с государством Израиль. Но казнь Элганяна всего через три месяца после того, как революция свергла шаха, для многих персидских евреев стала «Хрустальной ночью», дав им ясно понять, что их жизнь более не будет прежней. Это событие вызвало массовую эмиграцию евреев из Ирана в Израиль и способствовало разжиганию вражды между двумя народами, которая сохраняется и по сегодняшний день.

Была ли майская дата в Stuxnet посланием «Помни Аламо» Израилю от Ирана – что-то вроде ракет, которые американские солдаты рисовали на бомбы, сброшенные на вражескую территорию? Или это сделано специально, чтобы сбить следователей с цели? Или это просто больное воображение Чиена, которое видит отсылки там, где их нет? Все что можно было сделать, это только догадываться.

Но затем команда Symantec нашла еще одну зацепку, которая также имела возможную связь с Израилем, хотя для установления требовалось немного постараться. Она заключалась в двух словах – «myrtus» и «guava», которые можно было найти в пути к файлу, который хакеры оставили в одном из файлов драйвера. Путь к файлу показывает множество папок и подпапок, где находится файл или документ. Путь к файлу для документа под названием «мое резюме», хранящегося в папке «Документы» на диске С: будет выглядеть так: С:\Documents\моерезюме.doc. Иногда, когда программисты запускают исходный код через компилятор – инструмент, который переводит читаемый человеком язык программирования в машиночитаемый двоичный код – путь к файлу, указывающий, где программист сохранил код на своем компьютере, помещается в скомпилированный двоичный файл. Большинство вирусописателей настраивают свои компиляторы таким образом, чтобы путь к файлу не попадал в скомпилированный код, но разработчики Stuxnet этого не сделали, специально или нет, никто не знает. Исследователи увидели путь: b:myrtus\src\objfre_w2k_x86\i386\guava.pdb, указывая, что драйвер был частью проекта, который программист назвал «guava», который в свою очередь был сохранен на компьютере в директории под названием «myrtus». Миртус это семейство растений, которое включает в себя несколько видов гуавы. Интересно, программист был одновременно и ботаником? Или это значило что-нибудь другое?

Чиен продолжил искать информацию о «myrtus» и нашел косвенную связь с другим выдающимся событием в истории евреев, когда королева Эстер помогла спасти евреев древней Персии от расправы в четвертом веке до нашей эры. Обращаясь к истории, известно, что Эстер была еврейкой, которая вышла за замуж за персидского короля Ахешуреса, но сам король не знал истинного происхождения своей жены. Когда она узнала о заговоре премьер-министра Амана, который хотел убить всех евреев в Персидской империи, она пошла к королю, и рассказала о своих еврейских корнях, умоляя его спасти ее и еврейский народ. Тогда король казнил Амана, и позволил евреям сразится против приспешников бывшего премьер-министра. Все закончилось победой народа королевы и 75 тысячами мертвых врагов. Праздник Пурим, ежегодно отмечаемый еврейскими общинами по всему миру, ознаменовывает освобождение персидских евреев от неминуемой смерти.

На первый взгляд, казалось, история не имела ни малейшего отношения к червю Stuxnet. За исключением одного, Чиен нашел возможную связь с вирусом в еврейском имени Эстер. Прежде чем сменить имя и стать королевой Персии, Эстер была известна под именем Гадасса. На иврите ее имя означает мирт, либо же миртус(myrtus).

В свете текущих событий провести параллель между древней и современной Персией не составит никакого труда. В 2005 году в новостях сообщалось, что президент Ирана Махмуд Ахмадинежад призывал стереть Израиль с карты мира. И хотя в последующих отчетах было установлено, что его слова были неправильно переведены, не было секретом, что Ахмадинежад желал, чтобы современное еврейское общество исчезло. Он хотел сделать то, что много столетий назад не вышло у Амана.9 И 13 февраля 2010 года, примерно в одно время с подготовкой разработчиками Stuxnet новой атаки против Ирана, Рав Овадия Йосеф, бывший главный раввин Израиля, провел прямую линию между древней Персией и современным Ираном в проповеди, которую он произнес перед Пуримом. Ахмадинежад, из его слов, был «Аманом современности».

«Сегодня в Персии есть новый Аман, который угрожает нам своим ядерным оружием», – сказал Йосеф, – «Но, как и Аман с его приспешками, Ахмадинежад со сторонниками вскоре увидят, что их луки будут сломаны, а мечи обернуты против них, чтобы “поразить их в собственные сердца”».10

Конечно ничто из этого не указывало на прямую связь «myrtus» в коде Stuxnet и Книгой Эстер. Особенно если брать в расчет тот факт, который позже обнаружили другие исследователи, что миртус можно легко интерпретировать как «my RTUs» – «мои удаленные терминалы». Удаленные терминалы, как и ПЛК, являются элементами промышленного управления, используемыми для управления и контроля оборудования и процессов. Учитывая, что Stuxnet был нацелен на ПЛК Siemens, эта версия казалась много правдоподобней теории заговора Чиена.11 Но кто бы мог сказать наверняка?

           Специалисты из Symantec старались не делать поспешных выводов из этих данных. Вместо этого в своем блоге, Чиен и его коллеги просто сказали: «Да начнутся предположения».

Сноски, ссылки и используемая литература:

1.    Несмотря на то, что Conficker распространился так быстро и успешно, он так ничего и не сделал с большинством зараженных машин, навсегда оставив загадку о мотивах его создания и запуска в сеть. Некоторые аналитики считают, что злоумышленники пытались создать гигантский ботнет для распространения спама или атак типа «отказ в обслуживании» на веб-сайты, согласно более поздней версии, Conficker использовался для того, чтобы напугать некоторых пользователей загрузкой вредоносной антивирусной программы.  Другие опасались, что вирус может установить «логическую бомбу», которая в будущем приведет к самоуничтожению данных с компьютера. Когда прошло много времени, и ни один из этих сценариев не материализовался, большинство людей начали думать, что Conficker использовали в качестве проверки, чтобы посмотреть на реакцию правительства. Код вируса со временем модифицировался, и использовал все более изощренные методы, постоянно оставляя исследователей на шаг позади, не давая им его уничтожить. Это позже заставило думать, что таким образом хакеры проверяли специалистов по кибербезопасности. После раскрытия Stuxnet, Джон Бумгарнер, эксперт по компьютерной безопасности в ЦРУ, заявил, что и Conficker, и Stuxnet были созданы одними людьми, и что Conficker использовался в качестве «дымовой завесы», «выбивающего двери» для Stuxnet. В качестве доказательств Бумгарнер привел время запуска обеих атак и тот факт, что Stuxnet использовал ту же уязвимость, что и Conficker. Но Symantec и другие исследователи, изучавшие Stuxnet и Conficker, сказали, что они не нашли доказательств, подтверждающих его слова. Кроме того, первая версия Conficker избегала заражения любых машин в Украине, на основании чего можно предположить, что это и есть страна происхождения вируса.

2.    На самом деле, Меллиса была не первой результативной атакой. Честь быть самой первой выпала червю Морриса, само распространяющейся программе, созданной 23-летним аспирантом Робертом Моррисом-младшим, сыном специалиста по кибербезопасности в АНБ. И хотя многие из методов Stuxnet было совершенно современными и уникальными, своими корнями он обязан именно червю Морриса, так как они имеют некоторые общие характеристики. Моррис запустил своего червя в 1988 году на ARPAnet, сети, построенной Агентством перспективных исследований Министерства обороны в конце 1960-х годов, которая была предшественником современного интернета. Как и Stuxnet червь Морриса совершал ряд вещей, чтобы скрыть себя, например, помещая файлы в память и удаляя свои временные файлы, в которых он более не нуждается. Но также, как и Stuxnet, у червя Морриса было несколько недостатков, которые заставили его неконтролируемо распространиться на 60 тысяч машин, и в следствии быть обнаруженным. Всякий раз как вирус натыкался на уже зараженную машину, он должен был останавливать свои процессы, и двигаться дальше. Однако Моррис забыл принять во внимание взаимосвязь ARPAnet, поэтому червь неоднократно совершал заражение одних и тех же машин, заражая некоторые из них сотни раз, пока они не отказывали работать под тяжестью нескольких версий вируса. Компьютеры в университете Пенсильвания были атакованы 210 раз за 12 часов. Завершение работы или перезагрузка убивали червя, но только временно. Пока машина была подключена к сети интернет, она заново заражалась другими компьютерами.

3.    Самореплецирующиеся черви – исключение составляют Stuxnet и Conficker – гораздо реже, чем когда-либо, в значительной степени уступают фишинговым атакам, когда ПО попадает на машину через вложения электронной почты либо вредоносные веб-сайты.

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

5.    В некоторых версиях Stuxnet хакеры увеличили период времени до 90 дней.

6.    Нейт Лоусон, “Stuxnet Is Embarrassing, Not Amazing”, 17 января 2011 год, доступно по адресу: http://www.rdist.root.org/2011/01/17/stuxnet-is-embarrassing-not-amazing/#comment-6451

7.    Джеймс Фарвелл и Рафал Рохозинский, “Stuxnet and the Future of Cyber War,” Survival 53, no. 1 (2011): 25.

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

9.    Профессор Мичиганского университета Хуан Коул и другие отметили, что у персидского языка нет такой идиомы, как «стереть с лица земли», и что Ахмадинежад на самом деле сказал, что он надеялся, что еврейские/сионистские оккупационные силы будут повергнуты и стерты со страниц истории.

10. “Rabbi Yosef: Ahmadinejad a New Haman,” Israel National News, 14 февраля 2010 год, доступно на: http://www.israelnationalnews.com/News/Flash.aspx/180521#.UONaAhimWCU

11. Джон Бумгарнер, эксперт по кибербезопаности в ЦРУ, поддерживает эту интерпретацию и также утверждает, что «guava» в пути к файлу Stuxnet, вероятно, относится к проточному цитометру, изготовленному компанией под названием Guava Technologies. Проточные цитометры – это устройства, которые используются для подсчета и исследования микроскопических частиц и также используются, среди прочего, для измерения изотопов урана. Бумгарнер считает, что они могли использоваться в Натанзе, для измерения уровня обогащения газа гексафторида урана, поскольку изотопы U-238 отделены от изотопов U-235, которые необходимы для ядерных реакторов и бомб. Guava Technologies выпускает проточные цитометры под названием Guava EasyCyte Plus, который можно интегрировать с ПЛК, чтобы предоставлять операторам данные об уровне изотопов в уране в режиме реального времени. Проточные цитометры являются контролируемым продуктом, и должны быть зарегистрированы в соответствии с Законом о торговых санкциях и расширении экспорта от 2000 года, прежде чем быть проданными Ирану. Смотрите Джон Бумгарнер, “A Virus of Biblical Distortions”, 6 декабря 2013 год, доступно по адресу: http://www.darkreading.com/attacks-breaches/a-virus-of-biblical-distortions/d/d-id/1141007?.

 Патрик Фицджеральд и Ерик Чиен, “The Hackers Behind Stuxnet”, Symantec, 21 июля 2010 год, доступно по адресу: https://community.broadcom.com/symantecenterprise/communities/community-home/librarydocuments/viewdocument?DocumentKey=4f9aa8d9-2eb5-40f8-8997-10a258055c61&CommunityKey=1ecf5f55-9545-44d6-b0f4-4e4a7f5f5e68&tab=librarydocuments.