Материал8 сентября 2026 г.

Реконструкция Stuxnet на GitHub: как её читать

Репозиторий Sadpainy/Stuxnet — переписанный на C разбор бинарников 2010 года: загрузчик, руткит-драйверы, перехват S7. Учебный текст, но не источник фактов.

На GitHub выложили репозиторий Sadpainy/Stuxnet — реконструкцию исходников Stuxnet на C, собранную обратным разбором бинарников, которые попали к исследователям в 2010 году. В дереве загрузчик, модули повышения привилегий, библиотеки-перехватчики для работы с контроллерами Siemens S7, руткит-драйверы MRxCls.sys и MRxNet.sys, логика полезной нагрузки. Отдельным файлом TODO - Missing.txt автор перечисляет, что восстановить не удалось. В README — оговорки про академические цели, отказ от ответственности и код «как есть». Пост на Show HN собрал 176 голосов.

Откуда взялся этот код

Оригинальных исходников Stuxnet в открытом доступе нет и не было. Выложено чужое чтение скомпилированного кода, переписанное обратно в C: имена функций, разбивка по файлам, комментарии — версия автора репозитория, а не то, что набирали в редакторе разработчики червя.

Отсюда первое ограничение. Цитировать этот код как доказательство «Stuxnet работал вот так» нельзя. Для фактов есть публичные разборы образцов, сделанные антивирусными лабораториями и специалистами по промышленной автоматике: они опирались на сами бинарники и на поведение на стендах, и их выводы можно перепроверить.

Отсюда же и ценность. Цепочка собрана в одном дереве целиком: попадание через съёмный носитель, закрепление в ядре подписанными драйверами, перехват библиотеки, через которую инженерная станция говорит с контроллером, подмена данных так, чтобы оператор видел норму. Читать это подряд удобнее, чем собирать те же этапы по десятку отчётов разной степени свежести.

Что меняется в работе

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

Полезно другое. Stuxnet держался на двух допущениях, которые живы в любой компании и сегодня. Первое: подпись драйвера считается пропуском в ядро — сертификаты для той атаки были украдены у сторонних производителей. Современный аналог — подписанные артефакты сборки и токены CI, лежащие в переменных окружения у половины команды. Второе: съёмный носитель внутри периметра считается своим. Современный аналог — ноутбук разработчика с правом деплоя и десятком расширений редактора, поставленных «на посмотреть».

Если у вас есть производство и что-то из АСУ ТП, репозиторий стоит открыть вместе с тем, кто отвечает за контур. Вопрос «покажи, где у нас точка, аналогичная перехвату между инженерной станцией и контроллером» даёт больше, чем абстрактный аудит по чек-листу.

Отдельно про судьбу самого репозитория: такие проекты регулярно закрывают по жалобам, и предсказать сроки я не берусь. Собираетесь читать — читайте сейчас, а не когда дойдут руки.

Правило: реконструкция годится как учебный текст и не годится как источник фактов. Проверяемое утверждение о поведении вредоноса берут из разбора образца, а не из чужого переписывания.

Источник: первоисточник
  • безопасность
  • stuxnet
  • реверс-инжиниринг
  • github