В рубрику "Оборудование и технологии" | К списку рубрик | К списку авторов | К списку публикаций
Stuxnet является первым в истории вирусом, переступившим через границу киберпространства в реальный физический мир, первым вирусом, способным портить не только данные и программный код, но и вполне реальные машины и установки. Его появление устремило взоры специалистов по ИБ в абсолютно новую для них область – безопасность промышленных систем. Промышленные сети обычно изолированы и от сетей общего пользования и от внутренних сетей предприятия, в них применяется очень специфическое ПО, все процессы четко регламентированы. Казалось бы, никакой опасности быть просто не может! Но как выясняется, это не так. Разработчикам червя Stuxnet удалось без труда обойти эту, вроде бы самую надежную физическую защиту. Несмотря на то что прошло уже 4 месяца с момента первого обнаружения червя, четкого его анализа до сих пор нет. Причин несколько:
Представьте себе промышленную установку, агрегатами которой нужно управлять по заданному алгоритму. Мы обвешиваем эту установку датчиками и исполнительными механизмами и подключаем к PLC – контроллеру, который и выполняет этот алгоритм. При этом контроллер проверяет уровни температуры, напряжения, давления, оборотов, включает и выключает различные механизмы. И если какие-то параметры выходят за пределы дозволенного, он останавливает установку. Установок может быть много, и контроллеров соответственно тоже. Общаются они между собой через Ethernet, RS-485 и их вариации. Промышленные протоколы Modbus, Profibus и прочие в современных промышленных сетях часто работают поверх TCP/IP.
Сам контроллер – это мини-компьютер для выполнения определенных задач. ОС на PLC обычно собственной разработки производителя, информация о которой малодоступна, QNX (реже Linux) или DOS. Структура PLC, как правило, модульная: к ним подключаются различные модули для решения ряда задач. И все было бы хорошо, но, кроме контроллеров, за работой процесса следит еще и человек – оператор. И следить за информацией с десятков, а зачастую и сотен контроллеров вручную ему неудобно. Для оператора в сеть устанавливается АРМ – автоматизированное рабочее место. Это компьютер с ОС Windows и ПО для отображения технологического процесса (SCADA). SCADA выводит на экран показания с контроллеров, обеспечивает возможность управления в ручном режиме, позволяет изменять некоторые параметры и ведет запись архивов. АРМы всегда находятся в одной сети с контроллерами. Зачастую антивирусное ПО на них не устанавливается, а если и устанавливается, то уж точно не обновляется. Считается, что вирусы в этой изолированной среде появиться не могут. Стоит отметить также, что системное ПО на АРМах обычно не обновляется.
Речь идет о чрезвычайно высокотехнологичном вредоносном ПО во всех его проявлениях. Данный червь использует 4 ранее неизвестные уязвимости системы Microsoft Windows, одна из которых направлена на распространение при помощи USB-накопителей. Также в коде реализована и возможность заражения по сети. Кроме того, червь располагает механизмами контроля количества заражений, самоликвидации и дистанционного управления. После внедрения в систему вредоносное ПО ищет в ней присутствие SCADA-системы фирмы Siemens. Причем он атакует только системы SCADA WinCC/PCS7. Данных о заражении другой SCADA от Siemens – Desigo Insight, используемой для автоматизации зданий и жилых комплексов, аэропортов и т.д. – у нас нет.
Когда червь "понимает", что оказался на машине с WinCC, он заходит в систему, используя стандартные учетные записи. Стоит заметить, что официальный Siemens не рекомендует менять стандартные пароли на своих системах, так как это может повлиять на работоспособность, и использование червем стандартных паролей гарантирует 100% успешной авторизации. Соединившись с WinCC, червь получает доступ к технологическому процессу. Найдя в сети другие АРМы, червь заражает и их, используя 0day уязвимости в службе печати Windows. Также червь видит в сети и контроллеры. Тут мы дошли до самого опасного его функционала: да, Stuxnet умеет перепрограммировать PLC Simatic фирмы Siemens. На PLC этого типа построен технологический процесс на огромном количестве объектов, в том числе стратегических. Например, атомная станция в Иране (Бушер), которую многие эксперты считают целью этого кибероружия, конечно, не использует Simatic для управления реактором, но широко использует для управления вспомогательным оборудованием, и этого вполне достаточно, чтобы червь мог парализовать ее работу. Сам процесс "парализации" проходит очень интересно: "живя" в системе некоторое время, червь накапливает информацию о режимах работы оборудования, и в какой-то момент их меняет. Если, например, завысить уставку по температуре, то агрегат будет продолжать работать после перегрева до полного самоуничтожения. При этом на экране АРМ оператор продолжает видеть нормальные значения и уставки, которые троян подменяет в реальном времени. И если это, например, газоперекачивающая установка, управляемая САУ турбоагрегатами последнего поколения, то изменение уставок может привести к исчезновению с карты всей компрессорной станции вместе с прилегающими к ней районами.
В черве также найден функционал управления частотно-регулируемыми приводами электродвигателей. В Иране червь уже вывел из строя большое количество центрифуг для обогащения урана, для управления которыми применялись ЧРП. Читатель может задать логичный вопрос: почему нас должно волновать, что в Иране ломаются центрифуги? Ответ прост: Stuxnet может, например, вывести из строя сверхскоростные поезда "Сапсан", которые полностью построены на системах Simatic и используют в работе большое количество тех самых "частотников". И не только "Сапсан", а огромное количество различных систем.
Еще одна интересная особенность вируса – искать активное интернет-соединение и отправлять информацию на определенные адреса. Также червь умеет обновлять себя через Интернет, и именно этим обусловлен тот факт, что у разных аналитиков выловленные копии вируса сильно отличаются.
Зачем все эти интернет-функции, когда промышленные сети не связаны с Интернетом? На самом деле, связаны. На некоторых предприятиях связь осуществляется посредством второй сетевой карты на АРМе, на других – GSM-модемом. В некоторых случаях АСУ ТП и ERP-си-стема вообще "в одном флаконе". Способов выхода во внешний мир много, и это непринципиально, главное – сам факт: многие промышленные сети связаны с сетями общего доступа на постоянной или временной основе.
На сегодняшний день все современные антивирусы успешно чистят компьютеры от червя Stuxnet. Но, к сожалению, они очищают от зловреда только АРМ – ту часть технологической сети, которая работает под управлением Windows. А как же контроллеры?
Единственный способ уберечь системы от заражений – это соблюдение персоналом регламентов предприятия и элементарных правил информационной безопасности. К сожалению, этому аспекту уделяют слишком мало внимания. Персонал на большинстве объектов даже не задумывается о том, к каким последствиям может привести установленная на АРМе компьютерная игра или принесенный с собой GSM-модем для серфинга по сети Интернет. Начальство же либо не знает о происходящем, либо закрывает на это глаза.
Именно этим объясняется то, что Stuxnet присутствует на огромном количестве объектов, но факт такого присутствия тщательно скрывается персоналом и руководителями на местах. Нам известны факты такого сокрытия, когда руководство крупной компании после появления червя разослало по своим объектам инструкции и ПО для его выявления и лечения. И вирус на объектах был найден, но НИКТО ЕГО НЕ ЛЕЧИТ! Причина: для очистки системы от вируса необходима перезагрузка, то есть остановка технологического процесса. Также рекомендуется присутствие специалистов для выявления возможных изменений в PLC. Остановить установку, цех или все предприятие – дело непростое: это ЧП, которое нужно обосновывать. А обосновывать его наличием вредоносного ПО нельзя, ведь именно руководители на местах отвечают за выполнение регламента и инструкций. Если червь попал в систему, у руководителя будут неприятности. А неприятностей никто не хочет. Объекты так и живут со Stuxnetом, и не только с ним, а мы сидим на этой "пороховой бочке". Именно на "пороховой бочке", потому что никто не может гарантировать, что "спящий" троян или его модифицированный экземпляр в какой-то момент не атакует. Уместно будет заметить, что "виновник торжества" – фирма Siemens со своим "дырявым" ПО и рекомендациями о "недопустимости смены паролей" очень немногословна в своих заявлениях. Компания утверждает, что червь обнаружен всего у двух десятков ее клиентов, и случаев нарушения технологического процесса не наблюдалось. Здесь необходимо дать некоторые уточнения:
Исходя из вышеизложенного, мы рекомендуем проверить на наличие Stuxnet и другого вредоносного ПО все промышленные системы. Господа руководители крупных компаний, простой директивы недостаточно – никто ничего не сделает! Необходимо либо отправить на объекты своих людей для принудительного выявления и лечения, либо обратиться за помощью к сторонним независимым специалистам.
Достоверно неизвестно, кто создал Stuxnet. Очевидно, что Stuxnet не является обычным криминальным вредителем. Он имеет четкую сферу действия и не распространяется случайным образом. Он не крадет личные данные или номера кредитных карт и не используется для создания бот-сети. Stuxnet нарушает порядок работы промышленных систем, которые контролируются с помощью WinCC\Step 7, созданного Siemens. Stux-net – достаточно дорогой проект, если, конечно, не оценивать его стоимость в контексте бюджетов военных или государственных структур.
По данным анализа кода, проведенного компанией Symantec, самая ранняя дата компиляции кода была произведена еще в начале 2009 г. Это значит, что сам Stuxnet был обнаружен только через год после создания. При этом из анализа не видно, что конкретно делает червь, так как его задачей является замена одного значения конфигураций в программном обеспечения промышленных PLC-контроллеров на другое, а для каждого конкретного завода, поезда или атомной станции существуют свои, сугубо индивидуальные версии этого ПО. То есть мы не знаем даже, каковы возможные последствия вмешательства этого червя в работу промышленных систем. Во время демонстрации вируса на Virus Bulletin Conference в Ванкувере специалист компании Symantec продемонстрировал, как с помощью Stuxnet и инфицированного ПО можно заставить промышленный насос работать 140 секунд вместо положенных 3 секунд, что в итоге привело к наглядному взрыву демонстрационного надувного шара.
Относительно происхождения Stuxnet в СМИ доминирует теория о том, что это работа спецслужб США и Израиля, противодействующих развитию ядерной программы Ирана. Спекуляции на эту тему были начаты исследователем информационной безопасности из Германии Ральфом Ленгнером. Его теория основана на результатах анализа кода, в котором обнаружены два примечательных маркера. Первым является слово myrtus, которое является ссылкой на одного из древних правителей Персии, не допустившего геноцида евреев в IV в. до н. э. Второй маркер – значение 19790509, которое червь устанавливает в регистре, обозначая свое присутствие. Это значение имеет прямую ассоциацию с датой казни иранского промышленника еврейского происхождения Хабиба Эльганана, который после Исламской революции был обвинен в шпионаже в пользу Израиля.
Насколько эта версия правдива, судить трудно. Однако других ответов на вопрос "Откуда взялся Stuxnet?" пока нет. Будем надеяться, что со временем они появятся. Тем более что вирус самостоятельно прекратит свое распространение 24 июля 2012 г. Эта дата заложена в коде.
Возможно, после этого пелена секретности со Stuxnet спадет.
Опубликовано: Журнал "Information Security/ Информационная безопасность" #6, 2010