У ранні 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 року.


