Все, кто следил за новостями начала 2010-х — и особенно за технологическими, — почти наверняка слышали про Stuxnet. Эта вредоносная программа породила огромное количество теорий заговора, причём часть из них впоследствии подтвердилась. Червь был нацелен на иранские ядерные объекты и считается первой цифровой угрозой, вызвавшей прямые физические разрушения в реальном мире. Теперь неизвестный исследователь опубликовал результат его обратной разработки во всей полноте.
Источник изображения — tomshardware.com
Что именно ломал червь
Конечной целью — судя по всему, успешно достигнутой — были промышленные контроллеры Siemens, которые, по имеющимся сведениям, применялись на заводе по обогащению урана в Натанзе. Добравшись до цели, полезная нагрузка Stuxnet манипулировала преобразователями частоты в промышленных центрифугах, чтобы исподволь повреждать роторы — и при этом держать персонал в неведении, рапортуя о штатной работе оборудования.
Именно этот приём и сделал червя вехой в истории кибербезопасности: атака велась не на данные, а на физику процесса, а система мониторинга при этом показывала операторам заранее записанную «нормальную» картину. Подмена телеметрии с тех пор стала обязательным пунктом в моделях угроз для АСУ ТП.
Три пути распространения
В период активности Stuxnet распространялся тремя способами. Основным вектором заражения были USB-накопители с ярлыками Windows и файлами autorun.inf: достаточно было открыть содержимое диска, и заражение срабатывало немедленно благодаря уязвимости нулевого дня.
Заражённые системы затем самостоятельно пытались распространить червя по сети через уязвимость нулевого дня в диспетчере печати Windows, позволявшую записывать системные файлы на любую машину, с которой был общий принтер. Дополнительно программа копировала себя в доступные сетевые папки. Чтобы обойти проверку подписи драйверов, использовались два цифровых сертификата, похищенных у Realtek и JMicron.
Третий путь был самым изощрённым: код внедрялся в программное обеспечение Siemens через базу данных WinCC на SQL Server и прописывался в проектные файлы Step 7, которые запускались автоматически при открытии инженером. Такие файлы почти гарантированно передавались между несколькими специалистами, что делало их отличным внутренним каналом заражения, не требующим доступа к сетевым папкам.
Финальным шагом был перехват библиотеки, которая общалась непосредственно с центрифугами, и внедрение постороннего кода в программируемые логические контроллеры этих машин.
Операция и её последствия
Stuxnet считается частью операции Olympic Games — предполагаемых совместных усилий США и Израиля по сдерживанию иранской ядерной программы в Натанзе. Инициатива, по имеющимся данным, велась при двух администрациях подряд и рассматривалась как способ отговорить Израиль от собственного превентивного удара. Разработку приписывают Пентагону и израильскому подразделению 8200, а результатом называют вывод из строя порядка 10% центрифуг завода из-за серьёзного повреждения роторов.
Впрочем, у червя обнаружился неприятный дефект: он недостаточно тщательно проверял, в какой среде находится, и не заметил, что покинул пределы локальной сети. Когда инженеры унесли ноутбуки домой, программа вырвалась в открытый интернет — и исследователи безопасности по всему миру дружно произнесли «странно, что это такое?» и взялись за анализ. К счастью, в коде была зашита дата самоуничтожения — 24 июня 2012 года.
Опубликованный репозиторий содержит и инструкции по сборке, что превращает его прежде всего в учебный материал по истории атак на промышленные системы. Практический смысл для специалистов по защите здесь очевиден: разбор реального кода даёт куда более полное понимание техник, чем описания по мотивам отчётов пятнадцатилетней давности.










