Первая кровь кибервоины - история Stuxnet

 Практически у любой войны есть отправная точка, прецедент/провокация или что-то такое, от чего принято отсчитывать ее начало. Но никто не знает, когда же случилась первая война в истории человечества. На самой заре цивилизации, с конфликта двух племен человекоподобных обезьян? Во время первой драки между кроманьонцем и неандертальцем?
 Зато у войн в киберпространстве, которые идут ежедневно и незаметно для обывателя в 21 веке, есть начало. Именно о нем я расскажу вам историю, историю о вирусе, с которого все началось, историю о Stuxnet. Расскажу максимально подробно, и попробую собрать воедино все, что было собрано журналистами и исследователями за эти годы. Интересно? Тогда добро пожаловать под кат.


Предыстория

 Вы ведь слышали историю арабо-израильского конфликта? Тут на Коте она освещалась множество раз, и эта статья тоже ее затрагивает, но обо всем по порядку. Иран - один из самых грозных противников Израиля, он же “угроза всему миру” со слов представителей Вашингтона.
 Обогащение урана для Ирана - краеугольный камень энергетики и возможность получить ядерное оружие, соответственно, это страшный сон для США и Израиля. Поэтому иранцы подошли к этому вопросу максимально серьезно, был построен город ядерщиков Натанз (примерно как Припять в СССР), где собрали лучшие Иранские умы и построили самый защищенный завод по обогащению урана.
 А как построить защищенный завод? Максимальная секретность на этапе стройки, тщательный отбор кандидатов, отсутствие связи со внешними сетями и особенно Интернетом, пара военных частей рядом (преимущественно ПВО), ну и самую критическую инфраструктуру закопать поглубже под землю!
                                                                            Завод в Натанзе с воздуха
 Конечно же и Израиль и США знали о строительстве, а позже об этом узнал и весь мир. После постройки завод неоднократно показывали по иранскому телевидению, первые лица государства регулярно там бывали, и везде говорилось об успехах ядерщиков.

                                                            Махмуд Ахмадинежад, у центрифуг в Натанзе
 А что Израиль и США думали предпринять на этот счёт? На тот момент США все еще разгребали последствия вторжения в Ирак и даже не думали о какой-либо военной операции против Ирана, у них и так забот было достаточно, а в одиночку евреи ничего сделать и не могли.
 Устроить авианалет они бы очень хотели, даже в 2003 закупили у США самолеты получше и бомбы специальные для уничтожения целей под землей, но осознали что силенок у них не хватит, да и идти на прямой конфликт с Ираном откровенно говоря стремно.
                                                                             Батарея ПВО на страже завода
 Что же тогда делать? И тут в игру вступили спецслужбы, которые напомнили, что у нас же 21 век, киберпанк уже близко, может их это… похакаем? Неизвестно кто первый предложил такой сценарий ЦРУ, АНБ или же израильское подразделение радиоэлектронной разведки 8200 (а почему не 1337, лол), но участвовали в итоге все три, где-то всплывали данные об участии и МИ6, но хоть каких-то даже косвенных доказательств этому обнаружено не было.
                       Так родилась первая военная операция в киберпространстве, которая получила название “Олимпийские игры”.
 А откуда появилось название Stuxnet? Его придумали вирусные аналитики. Почему именно оно? А хрен его знает, где-то увидели такое сочетание слов в коде или просто выдумали, с этим всегда сложно и “приживается” обычно то название, которое больше по душе журналистам.

Подготовка “спортсмена” к “олимпийским играм”

 Почему спецслужбы предложили военным такой необычный по меркам спецопераций сценарий, как полноценная кибердиверсия? Да потому что они не считали это настолько уж необычным, кибероперации меньшей сложности и масштаба уже проводились ими в сети. Однако с иранцами дело обстояло гораздо сложнее.
 Основная задача спецслужб была проста - нарушить работу объекта на как можно более долгий срок. Для этого необходимо было вывести из строя самое сложное и дорогое оборудование на заводе - центрифуги. Центрифуги по обогащению урана - это вершина технического мастерства и инженерной мысли, для их правильной работы необходима очень точная настройка скорости вращения и, нарушив эту настройку, можно было легко вывести их из строя.
 Просто представьте, стоит такая штука которая вращается с гигантской скоростью (90 тыс. оборотов в минуту!) и отделяет одни изотопы от других за счет различной массы оных. Что будет, если она будет вращаться неравномерно? Или быстрее чем надо? Ее разорвет к чертям собачим!) Это то и было нужно.

                                                     Комната контроля над обогащением, кадры с Иранского ТВ
 Они там даже не в “косынку” играли, а работали под камерами ТВ (или делали вид), но рабочее ПО засветили, и стало понятно, что управляют этими центрифугами контроллеры компании Siemens. Как узнать какие именно? Это уже было не сложно вычислить, например слить данные о поставках например. В таком случае, картинка с мониторов, то была не нужна, если данные о поставках спецслужбами были перехвачены сразу. Ведь не так много компаний продают контроллеры подобного рода.
                           Таким образом основная цель была понятна - заражение вирусом контроллеров, перезапись настроек и выведение из строя центрифуг.
 Завод - это всегда множество различных АСУТП (Автоматизированная система управления техническим процессом) со специфичным оборудованием, сложной организацией сети и проблемами с безопасностью внутри этой сети (и так на всех заводах по всему миру, ага). Такого рода сети практически всегда защищаются их изоляцией, а если это еще и военный объект, то скорее всего изоляцией на физическом уровне и от внешних сетей и тем более от Интернета. Всегда ведь проще залить дверь бетоном, чем совершенствовать замки, и тогда ее точно не откроют, верно? Вот так и с изоляцией сети.
 И самое главное эту операцию необходимо было провести незаметно от средств защиты, особенно антивирусного ПО, хотя бы до момента достижения цели. А значит спецслужбам необходимо было решить множество задач, часть которых было довольно нетривиальна на тот момент времени.

Задача 0. Доставка вируса в изолированную сеть.

 Итак у нас есть изолированный от Интернета и большинства сетей объект, на который мы не можем внедрить инсайдера(шпиона, предателя, называйте как хотите), тогда, как этот объект заразить? Кто ответил никак?! Неправильный ответ, так же как и всегда, через работников!
 Ведь большинство крупных промышленных взломов начинается именно с социальной инженерии (атаки на работников), чаще всего с рассылки вредоносных писем. Но вот обнаружить работников секретного объекта, закрытой страны и их домашние компьютеры слишком сложно и долго, да и доступа у них может и не быть к святая святых завода - к АСУТП, а заранее это и не узнаешь.
Значит заразить нужно тех, кто эти АСУТП обслуживает и настраивает, а как правило это внешние организации. Именно поэтому Stuxnet поразил первыми 5 компаний в Иране, которые работали в сфере разработки промышленных систем или поставки соответствующих комплектующих. Логично правда?
Вот она “первичная пятерка”:
          •Foolad Technic Engineering Co - создавала автоматизированные системы для Иранских промышленных предприятий.
          •Behpajooh Co. Elec & Comp. Engineering - аналогично с предыдущей, именно с нее и началась глобальная эпидемия, но об этом позднее.
           •Neda Industrial Group – организация, с сентября 2008 года находящаяся в списке санкций Министерства Юстиции США и обвиняемая в нелегальном экспорте запрещенных веществ (очевидно, что не наркотиков) в Иран, в том числе в военных целях.
           •Control-Gostar Jahed Company – еще одна иранская компания, выполняющая работы в области автоматизации промышленного производства.
          •Kala Electric - ее считают разработчиком иранских центрифуг IR-1 для обогащения урана, самая сладкая для заражения компания.

 Успешное их заражение и позволило решить Задачу 0. Цепочки поставщиков и обслуживающие организации оказались слабым звеном, связанным с заводом в Натанзе. Из какой именно организации вирус попал на завод - неизвестно.

Задача 1. Заражение и распространение.

 Но как именно заразить сети этих компаний? И ведь нужно успешно распространиться по компьютерам в Натанзе в поисках АСУТП центрифуг! Задача тоже не из простых, и судя по всему к ней подошли особо тщательно и не поскупились на “дорогие инструменты”.
 Есть такое понятие в информационной безопасности как “0day”, она же “уязвимость нулевого дня”, это такое “оружие победы” мира хакерства. Уязвимость - к которой на момент использования нет заплатки, а значит и защиты нет и о ее существовании разработчикам неизвестно. А значит все, у кого эта уязвимость присутствует, могут быть через нее взломаны. На черном рынке 0day стоят суммы с большим количеством нулей, ведь они того стоят. Особенно опасные 0day стоят уже девятизначные суммы в долларах. И используют их крайне осторожно, ведь если факт заражения заметят, и обнаружат как именно оно произошло, то и уязвимость станет известна всему мира и будет закрыта как можно быстрее, а значит и стоить она уже будет практически ничего. Идеальное одноразовое оружие.

 Так вот, для своего успешного распространения Stuxnet использовал ЧЕТЫРЕ 0day уязвимости. Представляете каких ресурсов стоило их найти/купить?
 Вот вот, давайте взглянем на них поближе, наша дорогая во всех смыслах четверка:

         •MS10-046 - уязвимость обработки ярлыков (LNK-файлов) в WIndows. Казалось бы, что может быть в ярлыках? Это же даже не файл! А просто ссылка на него или папку! Но вот открытие папки с специально сформированным ярлыком вызывало загрузку вредоносного кода в память системного процесса Windows и запуск его на исполнение, а значит и гарантированное заражение системы. Этот механизм использовался для заражения USB-носителей (флешек) и сетевых папок.
         •MS10-061 - уязвимость системной службы работы с принтерами. Позволяла и как своя на тот момент известная сестренка (MS08-067) удаленно заразить систему без шума и пыли, тут даже действий никаких не требовалось. К слову, MS08-067 тоже была в “арсенале” Stuxnet и использовалась при распространении, если была возможность.
         •MS09-025 - предположительно именно эта уязвимость использовалась для “поднятия привилегий”, то есть выполнение вируса с правами администратора компьютера, в случае если это было необходимо. Например при заражении через ярлыки и запуске по каким-либо причинам с правами пользователя. Ведь для распространения вирусу необходимы были полные “администраторские” права. А не эти ваши плебейские, пользовательские...
         •Неизвестная уязвимость “поднятия привилегий”, подробной информации о ней, к сожалению, нет. Известно лишь что она была закрыта сразу после инцидента со Stuxnet. Использовалась для тех же целей, что и третья
                    Стоит отметить, что ни одно вредоносное ПО, кроме Stuxnet, не использовало на тот момент ни одну из этих уязвимостей.
 Модификаций вируса Stuxnet было несколько, и они использовали разные методы заражения на разных этапах. Первые жертвы были заражены иначе, чем последующие, как показала практика заражение первых жертв было произведено через несколько часов после создания вируса, а значит маловероятно, что они успели быть записаны на USB-носители и перенесены.
 На одном из объектов одновременно были заражены 3 компьютера, из которых два были серверами, что полностью исключает вектор электронной почты и USB-носителей, возможно имело место заражение заранее взломанных серверов через Интернет, ведь у первичных компаний была с ним связь и еще какая! Рассылка вируса по электронной почте возможно также было одним из векторов заражения, хотя явных подтверждений последнего найдено не было. (Ну или просто Иранцы скрыли сей позорный факт)

Задача 1. Была успешно решена, за счет четырех 0day уязвимостей. Это был ОЧЕНЬ дорогой, но невероятно действенный метод.

Задача 2. Автономность, избирательность, контролируемое заражение.

 Избирательность. Вирус может успешно распространиться по Заводу в Натанзе, но у него есть конкретная цель - нарушить работу центрифуг и вывести их из строя. А это самая нетривиальная задача.

 Что нужно? Обнаружить систему управления центрифугами!
Вирус успешно искал на зараженных машинах следующее ПО от Siemens - PCS 7, WinCC, STEP7. Если находил, брал управление на себя, проверял какое оборудование подключено и если понимал, что это центрифуга, а не другая херовина любого другого завода, то переписывал часть кода контроллера, выставляя некорректную скорость вращения. И Бабах! Профит!)
 Для настройки вируса видимо разработчикам предоставили тестовый стенд имитирующий центрифугу ну или… настоящую центрифугу! После четырех 0day я уже ничему не удивлюсь!
 Прочее ПО? Вируса не интересовало, он искал конкретную цель.

 Автономность. Работа вируса было полностью автономна, ему не требовался контроль оператора или доступ в интернет, но при этом существовал риск его излишнего распространения. В вирус были заложены даты остановки деятельности по заражению, а именно 24 июня 2012 года - остановка заражения usb-носителей. Почему именно эта дата? Ну это 3 года с момента запуска одной из версий вируса. Есть еще версии, но это самая правдоподобная. Хотя не все сводилось к этой дате, использование MS10-061 продолжалось до 1 июня 2014 года, а MS08-067 аж до января 2030.
 Поэтому возможно в планах разработчиков, эти даты были не “рубильником” для выключения, а лишь датами которые бы обновились после выпуска новой версии Stuxnet.

 До сих пор не понятно, для чего в Stuxnet внедрили эти даты, а также для чего внедрили систему “логирования”. Вирус зачем-то записывал в своем теле каждое последующее заражение, выстраивая целую цепочку. Хранил он следующие данные:

Дата зараженияИмя операционной системыИмя компьютераДомен                                                    Логи одного из семплов Stuxnet
 Эти логи очень помогли вирусным аналитикам на этапе расследования, особенно при восстановлении цепочки заражений и поиска “первичных” источников.
 Контролируемое заражение. Первые версии Stuxnet запускали и распространяли очень аккуратно. Но в определенный момент пожертвовали осторожностью во имя высокой автономности и срочной необходимости достичь цели любой ценой. Таким образом утечка его последующих, более агрессивной версии в Интернет была лишь вопросом времени.

Задача 2 успешно решена во всем, кроме последнего пункта. Именно заражение Behpajooh Co. Elec & Comp. Engineering более агрессивной версией и привело к эпидемии по всему миру, но об этом далее.

Задача 3. Обход антивирусного ПО.

 Заражение компьютеров и распространение не может остаться долгое время незамеченным со стороны антивирусного ПО. Антивирусы в тот момент уже умели замечать любую подозрительную движуху, даже без участия вирусных аналитиков, просто “по поведению”/“эвристике”. Поэтому для скрытности и успеха операции было просто необходимо было придумать надежный способ обхода антивирусного ПО.

 Но в чем проблема, на 2010 год производителей антивирусного ПО и их продуктов было бесчисленное множество, алгоритмов анализа поведения еще больше, и подстраиваться под все из них задача явно невыполнимая. А “частичная скрытность” руководство операции явно не устраивала.
 Но у руководство было что? Правильно, бабло! А еще и другие “специальные” ресурсы, которые и помогли достать еще одно “оружие победы”, но уже из мира вирусописателей. Как заставить антивирус поверить тебе, что ты не вирус? Представиться продуктом солидной компании с соответствующими документами!

 В 21 веке все крупные производители ПО подписывают свои продукты специальными электронными сертификатами, которые хранятся в святая святых компании. Ведь если программный код подписан, значит он действительно написан этой компанией, и антивирусам проверять его не нужно, им безоговорочное доверие, они в “белом списке”.
 Случаев утечек сертификатов крупных компаний можно по пальцам пересчитать, слишком сложная это задача - украсть сертификат. Да и ведь все понимают опасность такой утечки, ну а в случае утечки эти сертификаты и подписи обычно моментально аннулировались.

 Версии Stuxnet были подписаны аж ДВУМЯ сертификатами двух крупных компаний Realtek Semiconductor Corp. и JMicron. Как они были получены? Неизвестно, но общее у этих компаний в том, что располагаются они в Hsinchu Science Park на Тайване, вполне возможно что были украдены “под задачу” инсайдерами или “специальными” людьми.
Есть мнение, что они были куплены на “черном рынке”, но она не выдерживает никакой критики, ведь риски слишком высоки, а организовать кражу самому спецслужбам и проще и безопаснее.

                                В результате любое антивирусное ПО пропускало Stuxnet, без каких-либо подозрений.

Задача 3 была успешно выполнена за счет “специального” ресурса и украденных сертификатов.

Предположительный запуск вируса и массовая эпидемия.

 Известно что первая сборка и последующий запуск одной из версий Stuxnet случились 23 июня 2009 года в 4:40 по Гринвичу. Эта версия еще не использовала ярлыки (LNK-файлы) для распространения.
 Следующие версии были запущены 28 июня и 7 июля.
По словам журналистов и их источников АНБ медлили с запуском, не давали вирусу прав на автоматическое распространение, Израиль же в корне был не согласен с этой тактикой.

 Представьте себе: рядом с вами набирает мощь весьма агрессивный сосед, который глядишь и применит ядерное оружие и именно по вам!

 В результате код вируса был модифицирован Израилем, был дан старт бесконтрольному распространению для достижения цели любой ценой. Массовый запуск новой более агрессивной версий Stuxnet на компанию Behpajooh Co. Elec & Comp. Engineering состоялся без согласования с АНБ. И понеслось…. из этой компании прямо в Интернет!
 В результате лавинообразного распространения по сетям, эпидемия Stuxnet накрыла весь мир и уже не могла оставаться незамеченной. Хоть Stuxnet и старался не проявлять себя до обнаружения центрифуг, 17 июня 2010 года он был обнаружен антивирусным экспертом белорусской компании «ВирусБлокАда» Сергеем Уласенем. Тут даже не будет шуток про картошку и Белорусь, парень просто красавчик! Сразу после этого все антивирусное комьюнити начало детектировать вирус по всему миру.
 Как и ожидалось наиболее массовым было заражение в Иране (кто бы мог подумать!), Индонезии и Индии. Совпадения первых двух букв в названия стран случайны)
 Брайан Кербс известный журналист опубликовал 15 июля первый подробный отчет о Stuxnet, указав на множественные признаки не просто вируса, а “кибероружия”, чем и привлек дополнительное внимание общественности.
В тот момент экспертам антивирусного сообщества стало уже понятно, что застали они этот вирус уже “на спаде”, что распространение уже случилось, и вероятно цели своей он достиг.

Последствия вируса.

 Сразу же после обнаружения версии Stuxnet подписанной сертификатом компании Jmicro, сертификат был отозван и подпись перестала действовать. Второй же сертификат от Realtek отзывать было опасно, т.к. из-за распространенности ПО от Realtek на сетевом оборудовании, сетевые устройства могли просто перестать работать из-за некорректной подписи. Никто не хотел уложить добрую половину Интернета. Его просто убрали из белого списка антивирусного ПО.
 Ну а что с заводом в Натанзе? Stuxnet достиг своей цели, Иран сделал несколько заявлений, в которых обвинил США и Израиль в ведении кибервойны против страны. Также руководством страны было заявлено, что “они создали нам проблемы с несколькими центрифугами”. В то же время журналистам один из высокопоставленных чиновников, курировавший информационную политику внутри Ирана, заявил: инфицировано несколько десятков тысяч компьютеров в промышленных системах.
 Но по настоящему оценить масштаб ущерба помог отчет МАГАТЭ (Международного агентства по атомной энергии) который зафиксировал сокращение количества центрифуг в Натанзе на 800, Карл, единиц! Думаю, был тот еще хаос, когда все они одновременно начали разлетаться вдребезги...
 Начались спекулятивные слухи по поводу АЭС в Иране, которые строились Россией, однако по словам чиновников Ирана там не использовались контроллеры Siemens, поэтому и угрозы не существовало. Китай отрапортовал о заражении тысяч промышленных объектов, но также без ущерба, т.к. и тут Stuxnet не нашел центрифуг.
                                           Однозначно, свою задачу Stuxnet выполнил.
Последствия первого применения кибероружия
 Спецслужбы не только успешно применили первое в мире кибероружие, но и продемонстрировали остальным, что новое поле боя открыто! С этого момента это стало очевидно для всех стран, причем правил на этом поле боя нет. В этом главное “достижение” этого вируса.

 Впоследствии были обнаружены и другие вирусы сходные со Stuxnet. Duqu - использовавшийся для сетевой разведки и постройки топологии сети. Flame с еще более сложная структурой, обнаруженный гораздо позднее в мае 2012 года. Он использовался для сбора всех действий пользователя и отправкой данных на сервера распространителей. А обнаружили его на нефтедобывающих и нефтеперерабатывающих предприятиях Ирана (опять?!), где, судя по всему, он собирал информацию для последующих атак на инфраструктуру. Его код во многом был связан со Stuxnet, даже использовал заимствования и одинаковые части кода, но его развитие продолжалось независимо от Stuxnet.

 Правительство США, в лице на тот момент Хилари Клинтон косвенно признали, что Stuxnet был разработан в США. Множественные источники журналистов из АНБ и ЦРУ, также подтверждали работу над Stuxnet, они же и рассказали о названии операции - “Олимпийские игры”.
 И лишь в 2015 году появилось очередное подтверждение:
 Хакерская группировка Shadow Brokers осуществила взлом группировки Equation Group, которая предположительно работала на АНБ. В результате все разработки Equation Group оказались в свободном доступе в Интернете, и было замечено серьезное сходство между частями их вредоносного ПО и теми, что были использованы в Stuxnet.
 А еще позднее, после утечки данных из АНБ, организованной Эдвадом Сноуденом, было обнаружено что название множественных инструментов, используемых АНБ и инструментов, разработанных Equation Group также совпадают. Вот построилась и еще одна цепочка “совпадений” до АНБ.

Итог

 Действуя по принципу “цель оправдывает средства” спецслужбы Израиля и США успешно применили первое в мире кибероружие, продемонстрировав всему миру новое поле боя.
 Цель была выполнена, завод в Натанзе поражен и отброшен в развитии назад, хоть и ценой мировой огласки.
 Сейчас же продолжается гонка кибервооружений и постоянные бои на этом, только формирующемся, поле боя.
_________________________
Автор: 4bidden World