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

Конечной целью червя, которая, как сообщается, была успешно достигнута, стали промышленные контроллеры производства Siemens. Эти контроллеры, по имеющейся информации, использовались на иранском заводе по обогащению урана в Натанзе. После достижения цели полезная нагрузка Stuxnet манипулировала преобразователями частоты в промышленных центрифугах, стремясь скрытно повредить их роторы, одновременно информируя персонал завода о нормальной работе.
Репозиторий с исходным кодом содержит подробные инструкции по сборке, позволяя заинтересованным техническим специалистам изучать внутренние механизмы Stuxnet. Для тестирования необходима виртуальная машина с Windows XP или Windows 7 без сетевого подключения. Чтобы наблюдать полный эффект полезной нагрузки, а не только механизмы распространения, требуется соответствующее программное и желательно аппаратное обеспечение Siemens. Однако промышленные центрифуги, вероятно, не являются распространенным оборудованием для тестирования.
В период своего активного распространения Stuxnet использовал три различных механизма для инфицирования систем. Основным вектором заражения были USB-накопители, содержащие файлы ярлыков Windows и autorun.inf. После подключения такого накопителя, лишь просмотр содержимого диска мог немедленно вызвать инфицирование благодаря уязвимости нулевого дня, позволявшей автоматическое выполнение вредоносного кода.
Инфицированные системы автономно распространяли червя через сеть, используя уязвимость нулевого дня в службе печати Windows, которая позволяла запись системных файлов на машины с общим доступом к принтеру. Он также копировал себя в доступные сетевые папки. Для обхода проверок цифровых подписей драйверов Windows Stuxnet использовал два цифровых сертификата, украденные у компаний Realtek и JMicron.
Червь имел код для внедрения себя в программное обеспечение Siemens, в частности, через базу данных WinCC SQL Server. Он также встраивал свой код в файлы проектов Step 7, которые автоматически запускались при открытии их инженерами. Поскольку эти файлы почти гарантированно распространялись между несколькими инженерами, это обеспечивало превосходный внутренний вектор инфицирования, не зависящий от контроля сетевых ресурсов.
Финальный шаг заключался в захвате управления библиотекой динамической компоновки (DLL), обеспечивавшей связь с фактическими центрифугами. Stuxnet внедрял вредоносный код непосредственно в программируемые логические контроллеры (PLC) этих машин. Это позволяло ему скрытно манипулировать роторами, изменяя их параметры и вызывая физические повреждения, оставаясь незамеченным для операторов.
Stuxnet считается составной частью операции «Олимпийские игры», которая, по предположениям, была скоординированной инициативой США и Израиля. Ее целью было сдерживание ядерной программы Ирана на объекте в Натанзе. Эта инициатива, вероятно, действовала при администрациях Буша и Обамы, и, по некоторым данным, должна была отговорить Израиль от самостоятельного превентивного удара. Разработка программного обеспечения, как утверждается, осуществлялась Пентагоном и израильским Подразделением 8200, и успешно повредила около 10% центрифуг Натанза.
Червь имел значительный недостаток: он не осуществлял достаточной проверки своего окружения и не распознал выхода за пределы локальной сети. Когда инженеры брали ноутбуки домой, Stuxnet распространился в общий интернет, что привлекло внимание исследователей безопасности во всем мире. К счастью, червь содержал жестко закодированную дату самоуничтожения, установленную на 24 июня 2012 года.


