Stuxnet под микроскопом: что червь делает с S7-315 и S7-417
Подробный технический разбор Stuxnet изменил наш подход к защите промышленных объектов: whitelisting ПО и отдельная сеть для каждого ПЛК-стенда.
В июле 2010 Stuxnet идентифицирован как целевое оружие против SCADA Siemens S7-315/S7-417 и центрифуг обогащения урана.
В марте мы делали срочный аудит у клиентов с Siemens после первых сообщений о Stuxnet - тогда детали ещё были неполными, основной вывод сводился к «изолируйте сеть и уберите дефолтные пароли TeamViewer». В мае построили полноценную трёхзонную архитектуру у одного производственного клиента. Казалось, тему закрыли.
В июле аналитики Symantec и независимые исследователи опубликовали развёрнутый технический разбор того, что именно Stuxnet делает с ПЛК. Прочитали - и поняли, что кое-что недооценили.
Что стало ясно из детального разбора
Червь не просто «ищет Siemens и что-то ломает». Он действует очень конкретно:
- Цели - S7-315 и S7-417. Stuxnet ищет проекты Step 7, загруженные именно на эти серии контроллеров. Если конфигурация не совпадает - он не вмешивается. Это не шумная атака веером, а хирургически точная.
- Модификация блоков OB35 и OB1. Червь подменяет организационные блоки программы ПЛК, внедряя собственный код. При этом Step 7 на инженерной станции показывает оригинальный проект - подменённые блоки на контроллере скрыты от среды разработки. Инженер смотрит на экран и видит нормальную программу, а контроллер выполняет другую.
- Перехват функций WinCC DB89 и DB890. Для контроллеров серии S7-417 задействованы специфические блоки данных, связанные с управлением частотными преобразователями. Контроллер получает команду изменить скорость - и выполняет её. Потом возвращает к норме. Потом снова. Оператор на экране видит нормальные показания, потому что данные телеметрии тоже подменены.
Это принципиально другой уровень сложности по сравнению с «зашифровать файлы» или «украсть базу». Здесь атака направлена на физический процесс, и её следы специально скрыты от тех, кто должен её заметить.
Как это меняет наши рекомендации
До этого разбора мы работали с промышленными сетями в логике «изоляция от корпоративного LAN - основная мера, USB - второстепенная». Теперь картина другая.
Первое - изоляция по-прежнему необходима, но недостаточна. Stuxnet распространялся через флешки и сетевые шары, поэтому физически изолированная сеть защищает от дистанционного заражения. Но если инженер-наладчик подключил ноутбук с инфицированной копией Step 7 - изолированная сеть ему не помеха. Он уже внутри.
Второе - whitelisting ПО на инженерных станциях. Это то, о чём мы говорили вскользь, а теперь настаиваем явно. На машине с Step 7 и WinCC должен работать только заранее согласованный список программ. Никаких «установил параллельно браузер для новостей» или «скачал утилиту для флешки». Application whitelisting - не антивирус, который ловит известные сигнатуры. Это запрет на запуск всего, чего нет в списке. В контексте промышленных станций это реализуемо: набор ПО там меняется редко и согласовывается с интегратором.
Третье - отдельная сеть для каждого ПЛК-стенда. Мы строили трёхзонную архитектуру «корпоративная - DMZ - технологическая» как единую технологическую зону. Теперь думаем иначе: если на объекте несколько технологических линий с разными ПЛК - они не должны видеть друг друга. Заражение через флешку в одном стенде не должно автоматически распространяться на остальные. Это дороже в реализации, но логика сегментации та же, что в корпоративных сетях - только применённая внутри промышленного сегмента.
Что с этим делать прямо сейчас
У наших клиентов с Siemens мы провели дополнительный технический визит. Смотрели на три вещи:
Версии прошивок контроллеров. Stuxnet эксплуатирует конкретные версии - обновление прошивки ПЛК не всегда тривиально (требует согласования с интегратором и иногда остановки процесса), но знать, уязвима ли конкретная версия, нужно.
Есть ли несколько ПЛК-стендов в одном сегменте. У одного клиента оказалось два независимых производственных участка в одной технологической VLAN - исторически сложилось, когда добавляли второй участок. Сейчас это в плане на разделение.
Процедура работы с проектами Step 7. Кто, с каких машин, как загружает проекты в контроллеры. Если инженер работает с ноутбука, который он носит домой - это вектор. Проекты Step 7 должны жить на выделенной инженерной станции, которая никуда не ходит.
Про whitelisting честно
Application whitelisting - не самое удобное решение для инженеров, которые привыкли ставить что хотят. Первая реакция обычно «это нам работать помешает». Наш опыт показывает, что помешает первые две недели: пока инвентаризируют всё необходимое ПО и вносят в белый список. Дальше работает прозрачно. Но важно, чтобы процедура добавления нового ПО в список была рабочей, а не занимала месяц согласований - иначе люди начнут искать обходы.
Технически для Windows-машин это реализуется через Software Restriction Policy или AppLocker в Windows 7. На изолированных станциях с фиксированным набором ПО - вполне управляемо.
Stuxnet оказался сложнее, чем выглядел в марте. Это не значит, что надо паниковать - это значит, что аудит защиты промышленного сегмента теперь включает больше пунктов, чем полгода назад.