Выбрать главу

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

Вредоносное ПО написано на множестве разных языков. С одной стороны, это C, C++ и другие объектно-ориентированные языки высокого уровня. А с другой — коды STL (Statement List), низкоуровневый язык типа ассемблера, используемый в системах управления промышленными процессами. Плюс вообще впервые наблюдаемый специалистами руткит PLC, скрывающий вредоносный STL-код. Если же говорить о работе червя со SCADA-системами вообще, то в первую очередь следует подчеркнуть, что эта область приложения компьютеров отличается очень высоким уровнем специализации. Иначе говоря, по свидетельству специалистов, разработчики Stuxnet в своем распоряжении непременно должны были иметь для тестирования именно то реально применяемое аппаратное обеспечение, под которое затачивалось их кибероружие. Ибо все признаки свидетельствуют, что они в точности и в деталях знали нюансы работы техники на том конкретном объекте, который был избран целью атаки.

Начиная с этого момента разбора представляется наиболее логичным от наблюдений и свидетельств антивирусных экспертов из Symantec и Kaspersky Lab перейти к результатам анализа, выполненного специалистом по безопасности компьютерных промышленных систем из фирмы Siemens. Ибо Stuxnet был несомненно заточен против ПО именно этой компании, уверенно доминирующей на рынке SCADA-систем, а весьма уважаемый германский специалист по безопасности промышленных систем Ральф Лангнер (Ralph Langner), работающий в Siemens, недавно опубликовал в Сети результаты своих исследований, посвященных интересным свойствам невиданного прежде гипер-червя из киберпространства.

Поначалу, как и у экспертов из антивирусных фирм, первой идеей Лангнера было то, что Stuxnet написали для похищения промышленных секретов — каких-нибудь фирменных формул, рецептов или схем, которые могут быть использованы конкурентами для производства контрафактной продукции. Однако, углубившись в анализ свойств червя, обнаружил Лангнер нечто существенно иное.

Червь Stuxnet действительно занят непрерывными поисками, однако разыскивает он очень специфические установочные параметры системы, нечто вроде ее «отпечатков пальцев», которые говорят, что именно работает под управлением PLC или программируемого логического контроллера. Как уже говорилось, промышленные SCADA-системы весьма специфичны для каждой конкретной фабрики. Они состоят из множества небольших узлов, измеряющих температуру, давление, потоки жидкостей и газов, они управляют вентилями, моторами, и всем прочим хозяйством, необходимым для поддержания нередко опасных промышленных процессов в рамках их норм безопасности и в пределах эффективности. Таким образом, оба компонента систем — аппаратные модули конфигурации и программное обеспечение — являются специфическим набором, изготовляемым для каждой конкретной фабрики. Ну а с точки зрения червя Stuxnet все эти вещи выглядят как «отпечаток пальцев». И лишь только в том случае, если идентифицирована надлежащая конфигурация, он начинает делать больше, много больше, нежели просто тихо распространять себя в поисках цели.

(Именно эта особенность программы свидетельствует об одной принципиально важной вещи: атакующая сторона очень точно знала конфигурацию выбранной цели. Она наверняка должна была иметь поддержку инсайдера или группы инсайдеров внутри фабрики, либо какой-то еще способ доступа к программной части и аппаратной конфигурации избранного для атаки объекта.)

Среди шагов, которые, как обнаружил Лангнер, делает Stuxnet при обнаружении искомой цели, оказались изменения в фрагментах программного кода Siemens, известного как «оперативный Блок 35». Этот важный компонент программы Siemens занимается мониторингом критических производственных операций — вещей, которые требуют срочной реакции в пределах 100 миллисекунд. Вмешиваясь в работу Блока 35, Stuxnet может, к примеру, легко вызвать аварийный сбой в работе, ведущий к саморазрушению промышленного процесса. Так, во всяком случае, это видит Лангнер.