Pull to refresh

Как Symantec взломала Stuxnet

Reading time4 min
Views12K
Original author: Дэвид Стром
imageИстория, стоящая за спиной Stuxnet — червя ориентированного на Иранские атомные электростанции, была описана уже не раз (в том числе и на Хабре) с того момента, как прошедшей весной группа разработчиков из Symantec выпустила этот документ — досье, посвященное этому беспрецедентно сложному творению чьих-то рук. Но видеть — значит верить. И у меня был шанс присутствовать на специальном брифинге в штаб-квартире Symantec, расположенной в Mountain View — California, где Патрик Гарднер, директор их группы безопасности, показывал как все происходило на самом деле. Это был великолепно.

Stuxnet был очень сложной программой, содержащей около 10 000 строк кода, написание которых заняло человеко-годы. Symantec обнаружила первые версии червя примерно за год до настоящей атаки, имевшей место год назад в июне и у них не был ни малейшего понятия о том, что же это такое, до тех пора пока события не начали развиваться на атомном объекте. Они раскололи код командой из трех человек, работавших на полный рабочий день, за несколько месяцев.

Этот софт очень специфичен, и затрагивал отдельный программируемый логический контроллер от компании Siemens, проводящий серию из 9 000 различных центрифуг, используемых для разделения урана. Червь начисто уничтожал около 1000 из них, наносив серьезный ущерб и отбрасывая всю атомную программу Ирана на год, или даже более, назад.

Компьютерная сеть атомной электростанции имеет т.н. «воздушную дыру» между компьютерами используемыми для работы с контроллерами Siemens и обычными компьютерами бизнес-отделения, подключенными к Интернету. Это значит, что компьютеры подключенные к технике от Siemens не имели доступа к внешней сети, что является стандартной и хорошей практикой в сетевой безопасности такого уровня. Как же тогда они оказались заражены червем? Оказалось, в результате человеческого фактора.

Авторы червя знали о пяти потенциальных субподрядчиках атомной электростанции, будучи уверенными в том, что работник как минимум одного из них войдет на закрытую территорию с рабочим ноутбуком и использует флеш-носитель для того чтобы загрузить обновления ПО в компьютеры, контролирующие контроллеры. После этого, червь делал атаку по уязвимости «нулевого дня» (как мы знаем — до этого неизвестную) таким образом, что менялась иконка windows-файла, отображаемого Explorer'ом и для фактического заражения было достаточно простого просмотра этого файла.

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

На брифинге Symantec нам показали настоящий контроллер Siemens для того чтобы объяснить из первых рук, что бы случилось на самом деле. Это была маленькая коробка, размером примерно с буханку хлеба. К ней был подключен воздушный компрессор, по типу того, который вы перевозите в багажнике своего автомобиля для того чтобы накачать пробитую шину. На первом этапе нам показали «нормальные» операции, когда компрессор работает три секунды для того чтобы надуть шарик (нет, нам не показали никаких ядерных материалов — это было бы слишком). После этого был запущен Stuxnet, который изменил работу контроллера таким образом, что компрессор начал работать без остановки, а шарик, в свою очередь, взорвался.

image

Авторы Stuxnet (хотя никто и не может сказать конкретно, кто они, вы можете представить себе группу разработчиков с опытом, финансируемых скорее всего каким-то государством) имели доступ к конкретным планам станции в Иране, на которой располагались контроллеры. Это значит, что планы были либо украдены, либо каким-то образом переданы в руки авторов червя, для того чтобы запрограммировать в вирус знание того, где находятся конкретные компрессоры, моторы и другое оборудование на станции, а так же каким образом оно соединяется друг с другом. Червь был спроектирован для этого, единственного, архитектурного плана. Stuxnet не смог бы навредить другой атомной станции, использующей то же самое оборудование Siemens.

«Определенно, имел место какой-то тип эксфильтрации данных, не говоря о навыках программирования необходимых для такого рода работы» — говорит Гарднер. Что касается навыков, то у авторов Stuxnet они были не просто на высоте. В червь было встроено 15 различных модулей и 5 механизмов самоскрытия, два руткита: один для ПК и один для контроллера Siemens, который в свою очередь использует специальную встроенную ОС под названием Step7. Авторы червя так же выкрали (или купили) два цифровых сертификата (цифровые подписи), принадлежащих компаниям, физически расположенным в одном бизнес-парке на Тайване: Realtec и JMicron. Почему два? Первый был обнаружен и истек до того момента, как вирус начал работать. В общей сложности, в вирус было запрограммировано 6 неизвестных ранее инфекций. Для того чтобы понять масштаб происходящего, стоит упомянуть, что Symantec обнаруживала все 14 атак «нулевого дня» каждый день в 2010 году.

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

Мысль, проносившаяся в моей голове на протяжении всего этого представления, была примерно такой: «Что будет следующим?» Команда, разработавшая Stuxnet определенно не остановится на этой, к счастью, попытке. Следующее их творение может быть куда более беспощадным.
Tags:
Hubs:
+111
Comments158

Articles