Stuxnet и промышленные контроллеры: первые сообщения и срочный аудит
В июле 2010 появились детали о черве Stuxnet, атакующем Siemens SCADA. Мы провели срочный аудит у клиентов с промышленными стендами - нашли два открытых наружу контроллера.
Исследователи обнаруживают Stuxnet - первый известный червь, целенаправленно атакующий промышленные SCADA-системы Siemens
В начале июля в списке рассылки одной белорусской антивирусной компании появилось сообщение о странном черве. Он использовал zero-day в обработке ярлыков Windows, распространялся через USB-флешки и - что сразу привлекло внимание - искал на заражённой машине специфическое ПО: Siemens WinCC и Step 7. Это не корпоративная бухгалтерия и не интернет-банк. Это SCADA - программный комплекс управления промышленными контроллерами.
Новость была достаточно необычной, чтобы мы её не отложили.
Что стало известно к середине июля
Детали появлялись постепенно. Антивирусные компании публиковали первичный анализ, исследователи из разных стран подключались к разбору. Из того, что было ясно уже тогда:
- Цель - Siemens Step 7 и WinCC. Червь искал конкретные проекты Step 7 и модифицировал их, чтобы вмешиваться в работу ПЛК - программируемых логических контроллеров серии S7-300 и S7-400. Это не просто «нашёл SCADA и удалил базу» - речь о целенаправленном изменении логики управления оборудованием.
- Распространение через USB и сетевые шары. Уязвимость в .lnk-файлах (CVE-2010-2568) срабатывала без каких-либо действий пользователя - достаточно было открыть папку с заражённой флешкой в Проводнике. Плюс репликация через сетевые папки и принтерные спулеры.
- Подписанные драйверы. Это был отдельный сюрприз: руткит-компонент был подписан украденными сертификатами Realtek и JMicron. Windows принимала драйверы как доверенные.
Масштаб вмешательства в ПЛК на тот момент оставался открытым вопросом. Но даже без ответа на него вопросы к безопасности промышленных систем возникали сами собой.
Зачем нам это было важно прямо сейчас
Среди наших клиентов есть несколько производственных предприятий. Не крупные заводы, но у двоих - производственные участки с контроллерным оборудованием Siemens: один делает металлоконструкции, другой работает в пищевой промышленности. На обоих объектах есть Step 7 - среда программирования для ПЛК. На одном - WinCC для визуализации процесса.
Мы позвонили обоим в тот же день, когда прочитали развёрнутый разбор от F-Secure. Предложили провести быстрый аудит сетевой доступности промышленного сегмента - не глубокий технический анализ прошивок контроллеров, а базовый вопрос: видно ли это оборудование из офисной сети или, не дай бог, снаружи.
Что нашли
На первом объекте - металлоконструкции - картина оказалась лучше, чем мы ожидали. Промышленный сегмент физически отдельный коммутатор, маршрутизация между ним и офисной сетью закрыта файрволом, наружу выхода нет. Несколько замечаний по настройке самого коммутатора и факту, что инженер-технолог иногда приносит флешку «для переноса проекта» - это задокументировали, дали рекомендацию по процедуре, но в целом сетевая изоляция держится.
На втором объекте - пищевое производство - открылось другое. Машина с WinCC стояла в общей офисной сети. Не потому что кто-то принял такое решение - просто когда несколько лет назад подключали систему визуализации, её воткнули в ближайший свободный порт коммутатора. Никто не задумался, что это тот же сегмент, что и бухгалтерские компьютеры с интернетом.
Более того: на той же машине был настроен TeamViewer для удалённой поддержки поставщика системы автоматизации. Пароль - дефолтный PIN, который интегратор прописал при установке и, судя по всему, не менял. Никаких журналов подключений, никакого ограничения по IP.
Контроллеры на этом объекте не были доступны напрямую снаружи - но путь «интернет - офисная сеть - машина с WinCC и Step 7 - ПЛК» был вполне реальным.
Что сделали немедленно
На объекте два мы действовали быстро:
- TeamViewer отключили сразу - до выяснения необходимости удалённого доступа поставщика вообще. Если нужен - настроим нормально, с фиксированным паролем и журналом.
- Машину с WinCC перенесли в отдельный VLAN с ограниченной маршрутизацией. Связь с ПЛК осталась, выход в офисную сеть - только через конкретные порты, которые нужны технологам для отчётности.
- USB-порты на инженерных станциях заблокировали групповой политикой - съёмные накопители только через запрос IT.
- Антивирус на обеих машинах с WinCC/Step 7 оказался либо устаревшим, либо вовсе не обновлялся, потому что «а вдруг обновление что-нибудь сломает в проекте». Обновили, проверили совместимость - обошлось.
Что осталось непонятным
Stuxnet как явление на тот момент поднимал больше вопросов, чем давал ответов. Кто стоит за этим? Каковы реальные цели заражения конкретных объектов в Иране и других странах, о которых уже начали писать? Насколько глубоко изменённая логика ПЛК влияет на физический процесс?
Эти вопросы мы оставили исследователям. Нас интересовало прикладное: если такой червь попадёт к клиенту через флешку инженера-наладчика, что он найдёт? Что может попасть под удар? У двух клиентов мы теперь знали ответ. У остальных - пока нет.
Если у вас есть промышленное оборудование Siemens в сети - стоит посмотреть на это не как на «у нас всё нормально, мы не завод», а как на конкретный вопрос про сетевую изоляцию. Провести такой аудит инфраструктуры несложно, а картина может оказаться неожиданной.