Януари 2010, инспекторите от Международната агенция за атомна енергия (MAAE) тъкмо приключили поредната инспекция в завода за обогатяване на уран в Натанз, централен Иран. В един момент те осъзнали, че в помещенията с хилядите центрофуги за обогатяване на уран се случва нещо странно. Техниците, облечени в бели престилки, носещи ръкавици и сини ботуши, тичали насам-натам из „чистите“ каскадни зали, влачейки тежките центрофуги, всяка от които обвита в сребрист цилиндричен калъф. Всеки път, когато работници в завода обявявали дадена центрофуга за повредена или неизползваема по други причини, те трябвало да ги представят пред МААЕ за инспекция, за да се удостовери, че никакъв радиоактивен материал няма да напусне работните помещения, когато центрофугите бъдат изнесени. Техниците правели това вече повече от месец.
Обикновено Иран заменя около 10% от своите центрофуги всяка година заради технически неизправности или други проблеми. При 8700 центрофуги в Натанз към началото на 2010, би било нормално те да заменят около 800 през цялата година.
Но както и инспекторите от МААЕ по-късно установили чрез инсталираните камери за наблюдение, между 1000 и 2000 центрофуги били заменени само за няколко месеца. Това учудило изключително много международните експерти, наблюдаващи иранската ядрена програма.
Сателитна снимка на завода за обогатяване на уран в Натанз. Кадърът показва две каскадни зали в горния десен ъгъл, вкопани дълбоко в земята. Залата вляво – Зала А – единствена все още е в експлоатация и тъкмо в нея се намирали компютрите, от които тръгнала заразата с вируса Stuxnet (Снимка: DigitalGlobe and Institute for Science and International Security)
Въпросът бил „Защо“ ?
Иран не бил длъжен да разкрива причините, поради които заменя центрофугите и инспекторите официално нямали право да питат относно тези процедури. Техният мандат включвал правото да следят какво се случва с ядрения материал в завода, а не да държат сметка за повредите в оборудването. Било очевидно обаче, че нещо е повредило центрофугите.
Това, което наблюдателите не знаели, е, че отговорът, който търсели, се криел навсякъде около тях, скрит в дисковото пространство и паметта на компютрите в Натанз. Няколко месеца по-рано, през юни 2009, някои вкарал един изключително усъвършенстван и разрушителен компютърен червей, който си пробивал път в иранските компютри с една единствена цел – да саботира иранската програма по обогатяване на уран и да не позволи на президента Махмуд Ахмадинеджад да се сдобие с ядрено оръжие.
Инспекторите щели да разберат за това близо година по-късно. Отговорът щял да дойде, след като една дузина специалисти по компютърна сигурност из целия свят ще посветят месеци, за да разгадаят и разучат най-сложния malware (обобщено име за т. нар. „злонамерен софтуер“, който включва вируси, червеи, троянски коне, адуери, шпионски софтуер и др.) създаван някога. Малък софтуер, който в крайна сметка ще остане в историята като първото в света кибероръжие.
На 17 юни 2010 Сергей Уласен бил в своя офис в Беларус, преглеждайки имейла си, когато един доклад за заплаха в мрежата привлякъл неговото внимание. Според доклада, компютър на ирански гражданин не спирал да се рестартира, независимо от усилията на потребителя да го овладее и да отстрани евентуалната опасност. Изглежда, че машината била заразена с вирус.
Уласен ръководи антивирусния отдел на малка компания за компютърна сигурност в Минск, наречена VirusBlockAda. Ако преди време компютърната сигурност беше просто малко разклонение на компютърната наука, през последното десетилетие тя израсна до мултимилионна индустрия, вследствие на все по-изкусните и непрестанни хакерски атаки и еволюиращи вируси, троянски коне и spyware (шпионкси софтуер). Най-добрите специалисти по компютърна сигурност, като Брус Шайер, Дан Камински и Чарли Милър са боготворени от своите потребители, а топ компании като Symantec, Kaspersky и McAfee, са основните имена в бранша, предлагащи защита както за лаптопите на бабите ни, така и за специфични военни мрежи. От друга страна, VirusBlockAda не били сред най-известните в гилдията. Тя била една не особено значителна компания, за която малцина в компютърната индустрия били чували дори. Скоро обаче това щяло да се промени.
Изследователският екип на Уласен хванал вируса, инфектирал компютъра на техния клиент, и разбрали, че това е вирус от типа zero-day (нулев ден за защита срещу вирусни атаки). Този тип вируси са най-мощното оръжие на хакерите, тъй като те се възползват от уязвимите части на софтуера, които все още не са известни на производителя на същия този софтуер или на антивирусните компании. Те са също така изключително рядко срещани. Изискват се значителни умения и упоритост, за да се открият тези слаби места и да бъдат атакувани. От над 12 милиона случая на malware, които антивирусните компании разкриват всяка година, по-малко от една дузина са от типа zero-day.
В този случай, т.нар exploit (експлойт е софтуерен код или поредица от команди, които се възползват от слаби уязвими места в даден софтуер и нарушават неговото типично функциониране) позволявал на вируса да се разпространи от един компютър на друг, посредством USB памет. Уязвимото място се намирало в LNK файла на Windows Explorer, основен компонент на операционната система Microsoft Windows. Когато заразен USB интерфейс бъде вкаран в компютъра, докато Microsоft Explorer сканира автоматично неговото съдържание, кодът на вируса отслабва защитата на машината и тайничко пуска голям, частично криптиран файл в компютъра. Точно както военен самолет пуска маскирани войници във вражеска територия. Това е едно изключително хитро избрано слабо място, което, ако погледнем назад, изглежда логично и очевидно, тъй като атакува една повсеместна функция на компютъра. Този подход, както изследователите скоро щели да разберат с изненада, бил използван и преди.
От VirusBlockAda се свързали с Microsoft, за да им кажат за слабото място в тяхната система и на 12 юли, докато софтуерният гигант подготвял подобрение, с което да се защити от подобни атаки, от VirusBlockAda публично оповестили своето разкритие в един форум за компютърна сигурност. Три дни по-късно, блогърът Браян Кребс разпространил историята и антивирусните компании по света се втурнали да взимат семпли от този malware, за да могат да го разгадаят. Той бил наречен Stuxnet (Стъкснет) от Microsoft заради комбинацията от имена на файлове (.stub and MrxNet.sys), намерена в кода.
След като много компании за компютърна сигурност се захванали да декриптират и разглобяват Stuxnet, още информация за него изтекла в интернет пространството. Оказало се, че кодът е пуснат в интернет още през юни 2009 и неговият загадъчен създател го е усъвършенствал и обновявал през цялото време, лансирайкии го в три различни версии. Най-напред, един от драйвърите на вируса използвал валиден сертификат, откраднат от тайванския хардуер производител RealTek Semiconductor, с цел да заблуди системите, че въпросният malware е чиста и сигурна програма от RealTek. Интернет властите моментално анулирали сертификата. След това обаче открили ,че друг драйвър на Stuxnet използва втори фалшив сертификат, този път откраднат от JMicron Technology, тайвански производител на интегрални схеми. Случайно или не, офисите на JМicron Technology се намират в същия бизнес център както Realtek. Дали хакерите са проникнали физически в сградите на компаниите, за да откраднат сертификатите? Или пък са се добрали до тях от разстояние чрез класическите хакерски прийоми и са откраднали серийните номера на сертификатите? Никой не знае.
“Рядко виждаме толкова професионални операции“, казват от ESET, една от компаниите за компютърна защита, в чийто блог бе разкрит един от сертификатите. „Това значи, че тези, които стоят зад атаките, разполагат със значителни ресурси.“ От друга страна обаче, Stuxnet изглеждал като рутинно и не особено амбициозно начинание, ако съдим по целите му. Експерти установили, че вирусът бил създаден, за да порази Simatic WinCC Step7 софтуер, индустриална контролна система, продукт на германския конгломерат Siemens, която се използва за програмиране на контролери, които управляват електродвигатели, различни клапи и превключватели във всички индустриални сфери от хранителни фабрики, през линии за сглобяване на автомобили до газови тръбопроводи и водопроводни съоръжения. Въпреки че само по себе си това начинание е ново – контролните системи не са обичайна цел на хакерите, тъй като не носят директна финансова облага ако бъдат поразени от кибератака – това, което Stuxnet причинява на системите на Simatic не било ново. Цялото начинание изглеждало като опит да се открадне информация за конфигурацията и дизайна на системите на Simatic, най-вероятно, за да може някой конкурент да копира техните продукти и технологията за създаването им. Така Stuxnet бил възприет като поредният опит за промишлен шпионаж. Антивирусните компании добавили дефинициите на различните версии на този malware в своите продукти и своите проследяващите устройства и се насочили към обичайната си дейност.
Историята на Stuxnet можеше да е приключила в онзи момент. Една група изследователи обаче не били толкова склонни да оставят нещата дотук.
Експертите от офисите на Symantec в Европа и САЩ били сред онези, които първи засекли кода през юли и създали начини за детектиране на Stuxnet за защита за своите клиенти. Но след като веднъж направили това, работата по дигиталния червей била прехвърлена на Лиъм О’ Мърку в техния калифорнийски офис в Кълвър Сити.
О’Мърку е 33-годишен ирландец и запален сноубордист с лиричен акцент и кестеняв перчем, изваян вертикално на челото му като скейтрампа. Като Мениджър операции в Symantec Security Response, на него се падало задължението да изследва даден сериозен malware и да прецени дали той трябва да бъде анализиран и изследван по-задълбочено.
От над 1 милион сигнали за вируси и други компютърни заплахи, които Symantec и останалите антивирусни компании получават всеки месец, по-голямата част са разновидности на вече познат malware. Те биват обработени автоматично без човешка намеса. Определени алгоритми претърсват файловете за подозрително съдържание или улики, за да идентифицират вируса или червея, след това създават и залагат в антивирусните програми дефинициите, чрез които този зловреден софтуер бива заловен и обезвреден ако проникне в компютрите на техните клиенти.
Malware-и, които съдържат zero-day компоненти обаче са малко по-специални и трябва да бъдат изследвани ръчно. О’ Мърку първоначало дал Stuxnet на един инженер, който нямал опит със zero-day malware, мислейки че това е добра възможност за него да потренира. Но след като той самият се заел с кода по същото време, скоро осъзнал, че той е много по-сложен отколкото той самият е предполагал.
Няколко замаскиращи слоя скривали zero-day компонента във вътрешността на червея, което изисквало много работа докато се достигне до самият т.нар zero-day exploit. Освен това червеят бил огромен – 500 килобайта, докато обичайните били по 10-15 килобайта. Обикновено толкова голям malware би следвало да съдържа гигантски снимков файл, подобен на фалшива страница за онлайн банкиране, която изскача на инфектирани компютри, за да подмами потребителите да разкрият техните банкови данни (парола и потребителско име). Но в Stuxnet нямало никаква картинка и никакви излишни украси. Кодът изглеждал като стройна и ефикасна маса от информация и команди. Интересът на О’Мърку мигновено бил прикован към Stuxnet.
Първият му сблъсък с malware бил през 1996, когато негов състудент в Дъблинския колеж, създал вирус, насочен към университетската вътрешна мрежа. През март същата година стотици компютри в студентската библиотека се оказали заключени, докато студентите не отговорят на десет въпроса, мигащи на екраните пред тях. Повечето студенти били отегчени, но О’Мърку бил очарован от кода, използван от неговия колега, и го взел, за да разбере как работи. Неизменна нишка от неговото ДНК бил интересът да разглобява на отделни части разни неща. Като дете той бил от типа хлапета, които разглобяват и после се чудят как да сглобят отново една количка например, вместо просто да си играят с нея. Именно това любопитство го насочило към компютърната сигурност по-късно.
След като се дипломирал, О’Мърку работил известно време за американски производител на интернет списания. Задачата му била да пробие платежната система на списанието и да се добере до съдържанието му безплатно. Компанията първоначално го наела само за няколко теста, но в крайна сметка го задържали за три месеца, тъй като той все успявал да си осигури свободен достъп до съдържанието на тяхното списание, въпреки системите за сигурност. През 2002 той си намерил работа в антиспам фирма, която била погълната от Symantec скоро след това. Така в крайна сметка О’Мърку се присъединил към корпоративния гигант в техния офис в Кълвър Сити, напускайки Дъблин в посока Южна Калифорния.
Когато някой е видял толкова много вируси и червеи, какъвто е случаят с О’Мърку, той се нуждае само от един поглед върху malware-а, за да разбере какво всъщност зловредният файл причинява. Дали е свързан с файла, предаващ командите от клавиатурата или пък е троянски кон, свързан с интернет банкирането; дали е сглобен немарливо или пък е продукт на организиран труд и сериозни знания. Stuxnet бил от вида на последните. Той съдържал множество експлойти, обособени в разлчни локации, за да може червеят да бъде лесно усъвършенстван по всяко време и функциите му да бъдат лесно сменяни според конкретната цел.
Най-смайващото обаче бил начинът, по който malware-ът криел своите функции. Обикновено, функциите на Windows се зареждат от DLL файл (библиотека), разположен в твърдия диск. Ако същото се случваше и със зловредния софтуер обаче, това би бил абсолютен подарък за антивирусните компании. Вместо това, Stuxnet съхранявал своя декриптиран заразен DLL файл само в паметта като вид виртуален файл със специално измислено измамно име. След това той препрограмирал приложно-програмния интерфейс на Windows (API) – интерфейса между операционната система и програмите, които работят върху нея – така че всеки път, когато дадена програма зареждала функция от библиотеката (DLL файла) с това специално маскирано име, тя я зареждала от паметта вместо от хард диска. Stuxnet всъщност създавал принципно нов тип от нар. „ghost file”, който представлява остатъчен файл, съдържащ стара информация за предишно състояние на даден софтуер. Този тип ghost file изобщо не се съхранявал на твърдия диск и следователно ставал неоткриваем. О’Мърку никога не бил виждал подобно изпълнение през всичките си години в сферата на malware-а. „Дори и сложните заплахи, на които ставаме свидетели, включително и най-напредничавите от тях, не действат така“, казва той замислено по време на едно интервю в офиса на Symantec.
Все повече улики сочели, че Stuxnet е дело на висококвалифицирани хора, а О’Мърку бил разучил едва 5 килобайта от 500 килобайтовия код. Очевидно било, че той щял да има нужда от помощ, за да се справи с него. Въпросът бил, трябва ли да се захващат със Stuxnet?
Никой не би обвинил Symantec ако бяха зарязали Stuxnet при това положение и бяха продължили с обичайните си занимания. Основната задача на всяка антивирусна компания е да спира инфекции преди да се случат и да отървава от тях системи, които вече са заразени. Какво се случва със самите компютри, след като те вече имат malware-а в своята система, е от второстепенно значение. Symantec обаче се почувставали длъжни да разрешат тази загадка в услуга на своите клиенти. Освен това, кодът изглеждал твърде сложен и изпипан за обикновен шпионаж. Този пъзел предизвиквал огромен прилив на адреналин и О’Мърку искал да го разгадае. „Всичко в Stuxnet просто караше косите ви да се изправят и си казвате: трябва да видим тази работа“, казал той.
По материали на сп. „Wired“.
Скоро очаквайте продължението на историята…
Калин Боянов
Тагове: Иран Стъкснет САЩ експлойт Symantec zero-day Stuxnet