Stuxnet

Crv koji je pobjegao iz labosa i ubio atome umjesto ljudi — dobrodošao u rat gdje su meci napisani u kodu.

poglavlje 20/2618 min čitanja2011 – 2019
ti@kronika:~$ ./sviraj k6_20_stuxnet.mp3

# da, poglavlje ima pjesmu. ne, nitko ne zna zašto.

2010. godina. Ako tad pitaš prosječnog čovjeka što je to cyber-oružje, dobit ćeš odgovor negdje između Hollywooda i paranoje. Sjećaš se WarGamesa? Onog klinca koji hakira NORAD misleći da igra igricu, pa umalo pokrene treći svjetski rat (K3, pogl. 24)? To je 1983., i tridesetak godina kasnije ta ista slika — momak u mračnoj sobi koji tipka i eksplodiraju stvari na drugom kraju svijeta — još je prvenstveno filmski rekvizit. Zabavno štivo za paranoične generale i scenariste. Nitko normalan to nije uzimao kao stvarnu prijetnju. Zašto bi? Kod ne može ništa fizički slomiti. Kod je nešto što ti krade lozinku, ne nešto što ti podigne ruku i sruši tvornicu.

A malware, onaj stvarni, koji je stvarno postojao i stvarno te mogao pogoditi? Taj je imao posve drugu, puno dosadniju motivaciju: novac. Sjeti se Confickera (K5, pogl. 22) — milijuni zaraženih računala širom svijeta, botnet (zamisli vojsku tuđih računala, zaraženih bez znanja vlasnika, koju netko drugi upravlja na daljinu) dovoljan da se s njim može kupovati i prodavati kriminal na veliko. Ali svrha je uvijek bila novčanik. Krađa podataka kreditnih kartica, iznuda, spam-farme, DDoS usluge za najam — to ti je kad tu istu vojsku zaraženih računala uperiš u jednu stranicu i zatrpaš je lažnim posjetama dok se ne ugasi, pa to netko plati kao uslugu. Prljavo, ali razumljivo. Kriminalci žele lovu, ne dizanje u zrak nuklearnih postrojenja. Cijela sigurnosna industrija bila je uštimana da traži baš to — pohlepu, ne politiku.

I onda, negdje sredinom te godine, u firmi koja se zove VirusBlokAda — da, u Bjelorusiji, ne u Silicijskoj dolini, ne u Fort Meadeu, u maloj antivirusnoj tvrtki o kojoj nikad prije nisi čuo — netko nabasa na crva koji ne slijedi pravila. (Crv je vrsta zlonamjernog programa koji se sam širi s računala na računalo, bez da ga korisnik uopće mora pokrenuti — kao prehlada koja se prenosi i dok spavaš.) Ponašao se čudno. Prevelik. Presložen. Koristio je trikove za koje se znalo da postoje samo u teoriji, ili u vrhu vrha kriminalnih alata koji se prodaju za stotine tisuća dolara na crnom tržištu. Poslali su uzorak dalje. Symantec, Kaspersky, ljudi čiji je posao rastavljati zlonamjerni kod za doručak — i oni su zastali.

Trebalo im je mjeseci, ne dana, da posloži sliku. Ne mjeseci da ga očiste — mjeseci samo da shvate ŠTO gledaju. I kad su konačno posložili sve komadiće, zaključak nije bio »ovo je pisao vrlo talentiran kriminalac«. Zaključak je bio puno neugodniji: ovo nije pisao ni kriminalac, ni haker s ambicijom, ni čak neka organizirana skupina za novac. Ovo je pisala država. S budžetom, s vremenom, s ciljem koji nema nikakve veze s novcem, a svu vezu s nečim mnogo, mnogo ozbiljnijim — iranskim centrifugama za obogaćivanje urana, tim vretenima koja vrte uranov plin sve brže i brže dok se ne nakupi materijal pogodan za nuklearni program, u postrojenju koje ni ne bi trebalo biti spojeno na internet.

I tu priča prestaje biti zanimljiva digresija za sigurnosne konferencije, tema o kojoj šuška nekolicina nerdova uz pivu. Jer prvi put u povijesti — ne u teoriji, ne u holivudskom trileru, stvarno — kod je izašao iz ekrana i fizički uništio industrijsko postrojenje. Nule i jedinice su slomile metal. Rat je upravo dobio novo oružje, a nitko još nije napisao pravila za njega.

Lipanj 2010., Bjelorusija. U VirusBlokAdi, Sergej Ulasen, tehničar koji rješava svakodnevne požare, dobije poziv: računala jednog iranskog klijenta ponašaju se čudno, restartiraju se u krug, bez ikakvog vidljivog razloga. Standardna procedura — pretraži sustav, nađi zlonamjerni fajl, ugasi ga, idi kući. Samo što ovaj put fajl se ne da tako lako ugasiti. Ovaj put fajl se otvori, i sjediš tamo satima, gledajući kod koji jednostavno nema smisla za nešto što bi trebao biti običan crv.

Da malo preskočimo tehnikalije: svaki dan nastane pet tisuća takvih, sklepanih brzo, u pola noći, od nekog tinejdžera ili sitnog kriminalca koji želi zaraditi džeparac. Otvoriš ih, vidiš kod pisan brzo i prljavo, kao sobu poslije žurke, i ideš dalje. Ovaj nije bio takav. Ovaj je bio uredan, slojevit, pisan u više programskih jezika istovremeno, s dijelovima koji naizgled ne rade ništa — dok ne shvatiš da čekaju. Čekaju točno određeni model industrijskog uređaja da se pojavi na mreži.

VirusBlokAda objavi upozorenje, i signal uhvate veliki igrači — Symantec u Americi, Kaspersky u Rusiji. I tu krene ono što bih nazvao najdužim forenzičkim pregledom u povijesti informatike: mjeseci, ne dani, timovi ljudi po cijelom svijetu koji rastavljaju isti kod, uspoređuju bilješke, i svako malo netko od njih otkrije novi sloj i pomisli — čekaj, ovo je nemoguće.

Pa dodaš na to još jednu stvar: dijelovi crva bili su digitalno potpisani ukradenim certifikatima dviju stvarnih tajvanskih tvrtki, Realteka i JMicrona. Certifikat je, u principu, potvrda povjerenja — operativni sustav vidi potpis i kaže „ovo je legitimno, propusti ga bez pitanja”. Ukrasti takav certifikat nije nešto što se radi u pidžami iz sobe. To znači fizički ili duboko digitalno probiti dvije konkretne tvrtke, izvući im privatne ključeve — i to ne primijetiti mjesecima.

Istraživači su, u tom trenutku, počeli sumnjati u nešto što nitko od njih nije htio prvi izgovoriti naglas. Kriminalac koji krade brojeve kreditnih kartica ne trati bogatstvo na ulazna vrata koja mu za taj posao uopće ne trebaju. Kriminalac računa profit i gubitak, a ovo nije mirisalo na profit. Mirisalo je na nekoga kome novac uopće nije bio pitanje — kome je bilo važnije da posao bude obavljen, i obavljen tiho, nego da se štedi na alatu.

Pa dobro, rekli su si, ako nije kriminalac — tko onda ulaže ovoliko resursa u jedan komad koda? I tu je krenulo ono stvarno zanimljivo istraživanje: ne što crv radi, nego zašto. Jer sve dotad opisano — golemina, rasipnost, preciznost — bili su samo simptomi. Bolest je bila negdje drugdje, i vodila je, kako će se ispostati, ravno u srce jednog nuklearnog postrojenja u Iranu.

Meta: Natanz, centrifuge, SCADA
§ 02

Meta: Natanz, centrifuge, SCADA

Dobro, sad dolazimo do dijela gdje ti moram objasniti nešto što zvuči kao detalj za inženjere, a zapravo je cijela poanta priče: Stuxnet nije napao računala. Zaboravi na trenutak sve što znaš o virusima — ekrane koji se zamrznu, datoteke koje se pokvare, lozinke koje netko krade. Ovaj crv je prošao pored svega toga i ciljao nešto puno dosadnije po nazivu, a puno opasnije po posljedicama: PLC, programabilni logički kontroler. To je malo, ružno, industrijsko računalce čiji je jedini posao da otvara ventile, vrti motore i regulira brzinu pumpi — nema tastature, nema miša, nitko ga ne gleda kao »računalo«, i upravo zato je bio idealna meta. Napao je Siemensove kontrolere modela S7-300, one koji u Iranu upravljaju centrifugama za obogaćivanje urana u pogonu Natanz. I prije nego pomisliš da je ovo apstraktna priča o kodu — nije. Ovo je priča o metalnim cilindrima koji se okreću brzinom zvuka i koji, kad im nešto pođe krivo, ne pukne kao balon. Rasprsnu se.

Ali evo prvog problema koji su napadači morali riješiti, i to je problem koji zvuči nerješiv: Natanz nije spojen na internet. „Air-gapped” mreža, kažu stručnjaci — fizički odvojena, izolirana, sigurna po definiciji jer nema kabela koji vodi van. Ako nemaš žicu, nemaš ulaz. Logično, zar ne? E pa, ne. Jer sigurnost mreže je jedno, a sigurnost ljudi koji tu mrežu koriste nešto je potpuno drugo, i tu razliku je neka vlada — vidjet ćemo koja, u sljedećoj sekciji — shvatila puno prije nego što su to shvatili Iranci. Rješenje je bilo glupo jednostavno: USB stick. Netko, negdje, na nekom inženjerskom laptopu izvan zidova postrojenja, zaradi zaraženi USB. Taj netko ga poslije ponese unutra, ubode ga u računalo koje je spojeno na kontrolere — i gotovo, zid je zaobiđen bez da je ijedan zid probijen. Nije to hakiranje u onom holivudskom smislu, s kucanjem po tastaturi u zelenom tekstu na crnom ekranu. To je čekanje da čovjek napravi ono što ljudi rade svaki dan: zabode stick u računalo bez da razmišlja.

Sad, kad je crv jednom unutra — evo dijela koji te tjera da skineš kapu, čak i kad znaš da je ono što opisujem sabotaža i šteta. Stuxnet nije samo ubrzao ili usporio centrifuge. To bi bilo prežestoko, previše bi upalo u oči — operateri bi za pet minuta vidjeli da nešto ne valja i sve ugasili. Umjesto toga, napad je bio strpljiv, gotovo mučki elegantan. Crv je periodično mijenjao brzinu rotacije centrifuga — malo brže, malo sporije, u ciklusima koji su tjerali osjetljivu mehaniku prema granici loma, sitno i postupno, mjesecima. Centrifuge za obogaćivanje urana vrte se brzinama koje su na rubu fizičkih mogućnosti materijala, i najmanja neusklađenost u brzini, održavana dovoljno dugo, radi ono što bi radila svaka stvar koju stalno guraš preko granice — pukne. Ne odjednom, ne dramatično, nego onako kako pukne metal kad ga umoriš. Stotinjak centrifuga u Natanzu, jedna po jedna, počele su se raspadati.

Ali pravi majstorski potez, onaj zbog kojeg ovaj napad zaslužuje mjesto u udžbenicima (ironično, s obzirom na to koliko ova enciklopedija prezire udžbenički ton) — jest ono što je crv radio istovremeno s operaterima u kontrolnoj sobi. Dok su centrifuge doslovno rastrgale same sebe, senzori koji šalju podatke ljudima za pultovima prikazivali su savršeno normalne vrijednosti. Sve u redu. Brzina stabilna. Nema razloga za brigu. Stuxnet je snimio nekoliko sati normalnog rada sustava i onda tu snimku puštao u petlji operaterima, dok je u stvarnosti diktirao sasvim drugu, destruktivnu koreografiju hardveru. To je ono što se u struci zove »lažiranje povratne informacije« — kao da ti netko pusti snimku mirnog mora dok te iza leđa nosi bujica. Operateri su gledali ekrane pune zelenih kvačica dok im se postrojenje raspadalo pred nosom, i nisu imali baš nikakav način da to primijete dok nije bilo prekasno.

Tko i kako (koliko znamo)
§ 03

Tko i kako (koliko znamo)

Dobro, sad dolazimo do dijela gdje svi žele znati jedno: tko je to napravio? Evo ti odgovora koji je istovremeno najgore čuvana tajna desetljeća i nešto što nijedna vlada na svijetu neće nikad, ama baš nikad, potvrditi na papiru s pečatom. Stuxnet je, po svemu što danas znamo, projekt Sjedinjenih Država i Izraela, izveden pod kodnim imenom »Operation Olympic Games« (u prijevodu, otprilike »Operacija Olimpijske igre«). Ime zvuči kao naziv za neku fitness aplikaciju, a zapravo je oznaka za program koji je fizički uništio dio iranskog nuklearnog postrojenja bez ijednog vojnika na terenu.

Kako to onda znamo, ako nitko nije potpisao izjavu? Kroz novinare, prije svega — New York Times je 2012. objavio detaljnu rekonstrukciju s izvorima iz administracije, a onda je 2013. stigao Edward Snowden i njegovi dokumenti iz NSA-e (američke Agencije za nacionalnu sigurnost), koji su priču dodatno potkrijepili — o tome, i o cijelom aparatu masovnog nadzora koji je Snowden razotkrio, više u poglavlju 21 ove knjige, spaja se, sve se ovdje spaja. Nijedan dokument ne kaže „mi smo napravili Stuxnet” crno na bijelo. Ali kad tri neovisna izvora, novinarska istraga i curenje tajnih dokumenata sve pokazuju u istom smjeru, to više nije nagađanje. To je konsenzus koji se samo formalno ne priznaje.

A resursi koje je ovo tražilo? Ne pišeš tako nešto u petak popodne uz kavu. Prema procjenama istraživača koji su crva secirali, razvoj je trajao godinama — vjerojatno od negdje 2005. do 2010., kad je konačno pušten u svijet. I ne samo da su ga pisali dugo, nego su ga i testirali. Ne u simulaciji, ne na papiru — na stvarnim centrifugama, istog tipa kakve su vrtjele uranij u Natanzu. Amerika i Izrael su, po dostupnim navodima, imali pristup identičnim P-1 centrifugama — uređajima koji vrtnjom na ogromnim brzinama razdvajaju izotope urana, i koji su nasljeđe libijskog nuklearnog programa razotkrivenog i predanog 2003. — a upravo su na temelju tog istog dizajna Iranci sklopili svoje IR-1 centrifuge u Natanzu. Na njima su Amerikanci i Izraelci vrtjeli scenarije rušenja dok kod nije radio bezgrešno. Zamisli to za trenutak: cijeli mali nuklearni pogon, sagrađen samo da bi se testiralo kako najbolje uništiti drugi, tuđi pogon. To nije budžet hakera u podrumu. To je budžet države koja ima strpljenja i para da čeka pet godina za jedan udarac.

A cilj? Star kao sam sukob oko iranskog nuklearnog programa. Iran je gradio kapacitet za obogaćivanje urana, Zapad je vjerovao (ili se bojao) da to vodi prema bombi, a standardna opcija na stolu — zračni napad na Natanz — bila je politički radioaktivna u svakom smislu te riječi. Bombardiranje nuklearnog postrojenja povlači rat, sankcije, mrtve, eskalaciju koju nitko ne može kontrolirati. Stuxnet je bio nešto sasvim drugo: isti rezultat, centrifuge se raspadaju, program se usporava — ali bez eksplozije, bez leševa na naslovnicama, bez službenog objašnjenja koje bi trebalo dati Vijeću sigurnosti UN-a. Kod umjesto bombi. Diplomacija bajtova. I upravo je tu Stuxnet promijenio nešto fundamentalno — pokazao je da postoji treća opcija između „ne radimo ništa” i „šaljemo avione”, opcija koja se ne vidi na satelitskim snimkama i koju možeš poricati doslovno do zadnjeg dana.

Duh pušten iz boce
§ 04

Duh pušten iz boce

I onda dolazi obrat. Onaj koji se u kronikama uvijek dogodi baš kad misliš da je priča gotova — pobjeda odrađena, centrifuge se raspadaju, Iran zbunjen, misija ispunjena. Stuxnet je trebao biti kirurški precizan alat: ušetati u Natanz preko zaraženog USB-a, odraditi svoj posao i ostati zatvoren u toj jednoj mreži, kao zatvorenik koji nikad ne izlazi iz ćelije. No netko je, negdje u tom lancu naredbi, pogriješio u proračunu — ili je, iskrenije rečeno, potcijenio koliko kod zapravo mrzi granice.

Jer bomba poštuje geografiju. Baciš je na jednu zgradu, ona uništi tu zgradu, i to je to — fizika ne pregovara. Kod je nešto potpuno drugo. Kod se kopira. Kod putuje na USB štikovima, na laptopima inženjera koji odu s posla i spoje se na kućni wi-fi, na svakom sustavu koji makar nakratko dodirne zaraženi uređaj. Stuxnet je, u nekom trenutku, izašao iz Natanza i počeo se širiti po civilnim računalima širom svijeta — u Indoneziji, Indiji, pa i u samim Sjedinjenim Državama, zemlji koja ga je (vjerojatno) i napisala. Ironija toliko debela da bi je i Hollywood odbio kao nerealnu: oružje se okrenulo prema kući koja ga je stvorila.

Sad, budimo pošteni prema alatu — Stuxnet je imao sigurnosnu kočnicu. Bio je programiran da se aktivira i napravi štetu samo ako prepozna vrlo specifičnu konfiguraciju Siemensovih kontrolera identičnu onoj u iranskom postrojenju. Na običnom uredskom računalu bio je potpuno neaktivan, tih kao gost koji sjedi u kutu i ne dira ništa. Ali biti tih ne znači biti neviđen. Postojao je — zapisan, otvoren, dostupan svakom antivirusnom laboratoriju na planetu koji ga je htio secirati. A upravo su to i radili.

Jer to je razlika između nuklearnog oružja i cyber-oružja koju svijet 2010. tek počinje shvaćati, i koju, iskreno, ni danas ne shvaća baš do kraja. Uran možeš zaključati. Centrifuge možeš čuvati vojskom. Fizika obogaćivanja urana brutalno je teška, spora, skupa — zato je Iranu trebalo desetljeće da dođe dovde. Znanje o tome kako napraviti Stuxnet, međutim, jednom kad postoji u analiziranom obliku na internetu, ne može se zaključati u nijedan trezor. Kopira se besplatno, instantno, savršeno, koliko god puta hoćeš. Ne trošiš ništa kopiranjem koda — nema tu nikakve oskudice koja bi te, kao kod urana, usporila.

I baš to se dogodilo. Nedugo nakon Stuxneta pojavljuju se Duqu i Flame — rođaci, sestrinski projekti, s prepoznatljivim genetskim otiskom istih programera, istih tehnika, istog stila pisanja koda (istraživači to zovu „code reuse”, i da, zlonamjerni softver ima stil isto kao pisci). Ali pravi problem nije bio što su se ta konkretna tri crva pojavila. Problem je što je svaka obavještajna služba na svijetu — od Kine do Rusije, od Sjeverne Koreje do gomile manjih igrača koji dotad nisu ni sanjali da im je ovo dostupno — dobila besplatan udžbenik. Naslov: „Evo kako se piše cyber-oružje koje fizički uništava infrastrukturu”, s priloženim izvornim kodom.

Prije Stuxneta, ovo je bila teorija. Konferencijski slajdovi, akademski radovi, ono o čemu bi neki paranoični analitičar upozoravao na simpoziju dok ga ostali gledaju s blagom, sažaljivom nelagodom. Nakon Stuxneta, to više nije teorija. To je dokazan, radni, testirani koncept, s potpisom stvarne štete na stvarnim centrifugama u stvarnoj zgradi. Kutija je otvorena, i — za razliku od one grčke — iz nje nije izletjelo zlo koje se može opisati u jednoj rečenici i zatvoriti natrag. Izletjelo je znanje. A znanje, kad jednom pobjegne, ne vraća se nikamo.

Nova era ratovanja
§ 05

Nova era ratovanja

I onda, 2010., neka birokratska glava u Pentagonu napiše rečenicu koja bi prije deset godina zvučala kao scenarij za jeftinu B-produkciju: cyber prostor je peta domena ratovanja. Uz kopno, more, zrak i svemir. Ne kao metafora, ne kao PR trik — kao službena vojna doktrina, s proračunima, zapovjedništvima i generalima koji su do tada vjerojatno mislili da je firewall nešto što stoji između garaže i kuće. Stuxnet nije izmislio tu ideju, ali ju je dokazao. Prije njega je peta domena bila hipoteza. Poslije njega je bila proračunska stavka.

I tu dolazi dio koji je stvarno neugodan, jer se ne odnosi na dalek nuklearni pogon u pustinji, nego na infrastrukturu koja te grije, hrani i drži na životu. Elektrane, vodovodi, bolnice, plinovodi, semafori — sve to danas vrti neku varijantu istog principa koji je Stuxnet iskoristio u Natanzu: računala koja upravljaju fizičkim stvarima, često stara, često nezakrpana, često spojena na mrežu jer je nekome bilo lakše nego da ne bude. Ta računala imaju i ime — SCADA sustavi, kratica za sustave koji nadziru i upravljaju industrijskim procesima: otvaraju ventile, pokreću pumpe, dirigiraju strojevima, sve ono što u tvornici ili elektrani inače radi čovjek sa škrabicom i ključem, samo brže i bez pauze za kavu. Sjećaš se Confickera koji je šetao bolničkim skenerima i SCADA sustavima jer ih nitko nije zakrpao (K5, poglavlje 22)? Sjećaš se firmi koje su upadale kroz dobavljača, kroz nekog trećeg s manje osiguranim vratima (K7, supply chain napadi)? Sve su to iste rupe, iste navike, ista lijenost. Stuxnet je samo prvi put pokazao koliko duboko te rupe mogu boljeti kad netko stvarno hoće da bole.

I to je prava asimetrija koju je Stuxnet otvorio, ne ona koju su svi očekivali. Ne radi se samo o tome da velika država može nešto što mala ne može — to je bilo jasno i s tenkovima. Radi se o tome da malena grupa ljudi, s pravim ukradenim ili procurjelim alatom, može postići posljedice koje su prije trebale avione, satelite i vojske. Nuklearna bomba treba uranij, centrifuge, državu iza sebe. Cyber oružje treba laptop, strpljenje i sreću da nađe pravu rupu — konkretno, zero-day exploit. Ne postoji ekvivalent kontrole izvoza za zero-day exploit. Ne postoji inspekcija koja broji koliko crva netko ima u ladici.