SCADA-системы ныне управляют в индустрии работой чего угодно — от электростанций и заводского производства до нефтепроводов и военных объектов.
С этого момента червь Stuxnet стал объектом обширных и пристальных исследований специалистов по компьютерной безопасности. Которые довольно скоро и вполне единодушно были вынуждены признать, что ничего подобного им в своей практике видеть прежде не доводилось. Тогда же в июле Stuxnet был классифицирован как гиперусложненная вредоносная программа, созданная, вероятнее всего, целой командой опытных разработчиков по заказу какого-то государства.
Оценка одного из пораженных инженеров, занимавшегося «препарированием» червя, звучала примерно так: «После десяти лет ежедневных занятий обратной инженерной разработкой кодов, я еще никогда не встречался ни с чем, что хотя бы близко было похоже на ЭТО». Небывало огромный для подобного типа программ (размер исполняемого кода составляет порядка полумегабайта), обильно зашифрованный и слишком сложный для быстрого понимания его назначения, этот червь чрезвычайно удивил специалистов. По словам другого антивирусного эксперта, в сравнении с червем Stuxnet все прочие примечательные атаки последнего времени, вроде приснопамятной Aurora, в ходе которой были хакнуты сети Google и десятков других ведущих компаний, выглядят просто детскими игрушками.
При всей своей перегруженности программа Stuxnet написана чрезвычайно хорошо и грамотно. Она очень, очень тщательно заточена под то, чтобы ничего не поломать и не нарушить в заражаемых ею системах, чтобы не было видно абсолютно никаких внешних признаков инфицирования, а самое главное, она делает все для гарантирования того, чтобы ее окончательная миссия, которая манипулирует параметрами и кодами в управляющем компьютере SPS, была запущена и выполнена лишь в том случае, когда имеется полная уверенность, что это именно та самая система, на которую программа изначально была нацелена.
Однако понимание всех этих нюансов пришло, конечно же, далеко не сразу. Поначалу специалисты фирм Symantec и Kaspersky Lab, примерно одновременно и всерьез взявшихся за борьбу с червем, обнаружили лишь один опасный zero-day-баг. Это была дыра в защите от подсоединяемых к ПК USB-устройств, получившая название LNK, и срабатывала она для инфицирования почти любых компьютеров — в независимости от версии операционной системы Windows, начиная с ископаемой Win 2000 и до наиболее современной, предположительно весьма безопасной Windows 7.
Еще через несколько недель исследований специалисты обеих антивирусных фирм независимо друг от друга обнаружили, что Stuxnet в действительности использует для внедрения далеко не одну, а четыре прежде неизвестных zero-day-уязвимостей (баг спулера печати и два EoP-бага, повышающих привилегии). Одновременное использование сразу четырех zero-day-багов — это очень и очень необычное свойство вредоносной программы, никогда прежде не наблюдавшееся специалистами ни в Symantec, ни у Касперского.
Соответственно, не доводилось им видеть и поведение столь продвинутого червя в работе. Попадая в корпоративную сеть — на первом этапе через зараженное USB-устройство — Stuxnet использовал баги, повышающие его привилегии (EoP), чтобы получить доступ администратора к другим ПК, разыскивал системы, в которых работают программы управления WinCC и PCS 7 SCADA, захватывал эти системы, используя баг спулера печати, а затем пытался применять принятый по умолчанию фабричный пароль Siemens для захвата управления программным обеспечением SCADA.
После чего червь получал возможность перепрограммировать так называемую программу PLC (programmable logic control — программируемый логический контроллер), чтобы диктовать всем управляемым системой механизмам новые команды и инструкции. Попутно следует подчеркнуть, что опаснейшие коды атакующего червя для всякой зараженной системы выглядели совершенно легитимными, поскольку люди, стоявшие за созданием Stuxnet, предварительно похитили по крайней мере два цифровых сертификата, принадлежащие компаниям Realtek Semiconductor и JMicron Technology. Драйверы и программы этих фирм давно и прочно прописаны в операционных системах компьютеров, поэтому действия правильно подписанных кодов Stuxnet не вызывали абсолютно никаких сигналов тревоги.
Еще один интересный нюанс — это один из способов, которым атакующая сторона минимизировала риски обнаружения своей программы. В каждом USB-устройстве, куда подсаживался Stuxnet, работал счетчик, который контролировал число заражаемых устройством машин и не позволял инфицировать больше трех компьютеров. Другими словами, атакующие, судя по всему, таким образом пытались ограничить масштабы распространение червя, дабы он оставался как можно ближе к объекту, против которого был направлен.
Функционирование червя Stuxnet рассчитано на полностью автономную работу программы и не требует ни подключений к интернету для получения дополнительных инструкций, ни управления со стороны человека вообще. В программе выявлено настолько много разных типов выполняемых функций, что для экспертов очевидно — созданием этого продукта занималась команда людей с богатым опытом в самых разных областях: от конструирования невидимых руткитов и эксплуатации багов проникновения до работы с базами данных.
Вредоносное ПО написано на множестве разных языков. С одной стороны, это C, C++ и другие объектно- ориентированные языки высокого уровня. А с другой — коды STL (Statement List), низкоуровневый язык типа ассемблера, используемый в системах управления промышленными процессами. Плюс вообще впервые наблюдаемый специалистами руткит PLC, скрывающий вредоносный STL-код. Если же говорить о работе червя со SCADA-системами вообще, то в первую очередь следует подчеркнуть, что эта область приложения компьютеров отличается очень высоким уровнем специализации. Иначе говоря, по свидетельству специалистов, разработчики Stuxnet в своем распоряжении непременно должны были иметь для тестирования именно то реально применяемое аппаратное обеспечение, под которое затачивалось их кибероружие. Ибо все признаки свидетельствуют, что они в точности и в деталях знали нюансы работы техники на том конкретном объекте, который был избран целью атаки.
Начиная с этого момента разбора представляется наиболее логичным от наблюдений и свидетельств антивирусных экспертов из Symantec и Kaspersky Lab перейти к результатам анализа, выполненного специалистом по безопасности компьютерных промышленных систем из фирмы Siemens. Ибо Stuxnet был несомненно заточен против ПО именно этой компании, уверенно доминирующей на рынке SCADA-систем, а весьма уважаемый германский специалист по безопасности промышленных систем Ральф Лангнер (Ralph Langner), работающий в Siemens, недавно опубликовал в Сети результаты своих исследований, посвященных интересным свойствам невиданного прежде гипер-червя из киберпространства.
Поначалу, как и у экспертов из антивирусных фирм, первой идеей Лангнера было то, что Stuxnet написали для похищения промышленных секретов — каких-нибудь фирменных формул, рецептов или схем, которые