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

С этого момента червь 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, работал счетчик, который контролировал число заражаемых устройством машин и не позволял инфицировать больше трех компьютеров. Другими словами, атакующие, судя по всему, таким образом пытались ограничить масштабы распространение червя, дабы он оставался как можно ближе к объекту, против которого был направлен.