A Stuxnet az ICS/OT kiberbiztonsági alfája és omegája, az origó, a hivatkozási alap, ami nélkül az elmúlt bő 16 év első 5-8 évében nem nagyon lehetett úgy előadást (főleg nem olyan, információ-/IT biztonsági rendezvényen elhangzott előadásokat) nézni/hallgatni, ahol az előadó ne hivatkozott volna a Stuxnet-re.
Időben viszont bőven voltak ICS/OT kiberbiztonsági incidensek és támadások a Stuxnet felfedezése és nyilvánosságra kerülése előtt is (elég csak a mai posztot ebben a sorozatban megelőző részre, a Maroochi megyei szennyvíz-kezelő telep rendszerei elleni támadásra gondolni), azokról azonban jóval kevesebben tudnak és jóval kevesebbet hivatkozzák őket. A világ már csak ilyen, általában nem a valódi elsők aratják le a babérokat, hanem azok, akik az elsők egyikeként megfelelő marketinggel is rendelkeztek. A Stuxnet ebben pedig kifejezetten jól teljesített.
Nem is teljesen alaptalanul. Azok kedvéért, akik esetleg még nem tudnák, miről is van szó: Később hivatalosan is elismert módon az USA hírszerző szervei még a 2000-es években indított egy nagyszabású és teljesen titkos művelet-sorozatot annak érdekében, hogy meghiúsítsák vagy legalább is minél jobban lelassítsák és szabotálják az Iráni Iszlám Köztársaság nukleáris (fegyver?)fejlesztési programját. Mint általában, az ellenérdekelt felek kommunikációja eltérő a témában, Teherán állítja, hogy a nukleáris programja kizárólag békés célokat szolgál, míg a nyugati országok (élükön az USA-val és természetesen Izraellel) folyamatosan arról beszélnek, hogy Irán nukleáris fegyverekhez felhasználható dúsított uránra próbál szert tenni. Figyelembe véve, hogy a villamosenergia-termeléshez nem szükséges komoly urándúsító centrifuga kaszkádokat építeni, az iráni állításokat legalább is nehéz maradéktalanul megalapozottnak tekinteni...
Fentiekből kiindulva az USA (egyes hírek szerint izraeli titkosszolgálati segítséggel) több, egymással részben párhuzamosan futó illetve egymásra épülő, több szintű titkosszolgálati és kiberműveleti akciót indított. Ennek egy korai része volt a blogon néhány hónapja már ismertetett Fast16 szabotázs malware fejlesztése és bevetése, amivel a malware-t vizsgáló kutatók és elemzők szerint nagy valószínűséggel az iráni nukleáris program tervezési és tesztelési/szimulációs fázisait próbálták a precíziós matematikai számítások szintjén szabotálni.
Aztán amikor ez láthatóan nem állította le az iráni atomprogramot (és az ezt célzó tárgyalások, valamint a Nemzetközi Atomenergia Ügynökség ellenőrei sem tudtak a nyugati kormányokat megnyugtató eredményeket felmutatni), jöhetett a következő fázis, a később Stuxnet néven ismertté vált malware, aminek kifejlesztését és bevetését az USA titkosszolgálatai az Olympic Games nevű műveletként indítottak el.
Arról, hogy pontosan hogyan is néz ki az urándúsítási folyamat, a lemil.blog.hu-n Papírzsepi 15 (és fél) éves posztja nagyon jó képet alkot.
A Stuxnet maga egy ún. féreg típusú malware, ami azt jelenti, hogy emberi beavatkozás nélkül képes megfertőzni egy számítógépet (a konkrét esetben a kezdeti fertőzéshez kellett emberi interakció, ami egy USB-s adathordozó csatlakoztatásával kezdődött, de onnantól, hogy valaki bedugta a pen drive-ot egy számítógépbe, további emberi segítségre már nem volt szükség). Ehhez a Stuxnet több (egészen pontosan 4) különböző 0-day sérülékenységet használt ki, azokon túlmenően pedig olyan, tajvani hardver-gyártó cégek által használt elektronikus aláírásokkal hitelesített binárisokat használt, ahol az elektronikus aláírásokat a Microsoft minden további kérdés nélkül elfogadott (ennek a célja ugye az volt, hogy a hardvererek meghajtó programjainak ezekkel a tanúsítványokkal aláírt példányait a Windows operációs rendszer biztonságosnak tekintsen és eszébe se jusson blokkolni/leállítani - valljuk be, így azért könnyebb). Az aláíró tanúsítványokat az érintett titkosszolgálatok egy hagyományos HUMINT (HUman INTelligence) akció keretében szerezték meg (mondjuk ki nyiltan: lopták el).
A 4 darab 0-day kihasználásával és a Microsoft által hivatalosnak és hitelesnek tekintett binárisokkal felvértezve aztán a Stuxnet elkezdett terjedni a megfertőzött hálózatokban és elkezdte keresni a NAÜ vizsgálati jelentéseiből ismert gyártó megadott típusú urándúsító centrifugáinak megfelelő számú és konfigurációjú kaszkádjait (egyes hírek szerint a Stuxnet kódjában még a NAÜ jelentéseiből ismert centrifugák száma is szerepelt, amitől bizonyos mértékben eltérő méretű centrifuga-telepeket kellett keresnie - számolva azzal, hogy időközben az iráni nukleáris szektorban dolgozók változtathattak a centrifugák számán).
A Stuxnet fejlesztésének egy korábbi, de kulcsfontosságú mozzatana volt, amikor az Idaho National Lab munkatársai a Siemens-szel közösen végeztek kiberbiztonsági kutatásokat a Siemens S7 PLC-k biztonságával kapcsolatban. Aztán az így szerzett információk "valahogy" eljutottak az amerikai (és tőlük valószínűleg az izraeli) titkosszolgálatokhoz, akik felhasználták a Stuxnet fejlesztése során.
Amikor pedig a Stuxnet talált egy, a korábban kapott paramétereinek megfelelő urándúsító centrifuga-telepet, akkor beindult a támadás következő fázisa: a Stuxnet lecserélte a centrifuga-vezérlésre és felügyeletre használt Windows számítógépeken azt a WinCC DLL fájlt, amin keresztül az urándúsítás felügyelő operátorok megfigyelték és módosítani tudták az urándúsitó centrifugák működését. Az új DLL fájl lehetővé tette a Stuxnet számára, hogy egyrészt módosítsa a PLC-ken keresztül a centrifugák működési paramétereit, másrészt képessé vált arra, hogy az operátorok képernyőjén megjelenített centrifuga-fordulatszámot meghamisítsa és a valós fordulatszámtól eltérő értéket jelenítsen meg.
Amikor eljött a Stuxnet fejlesztői által meghatározott alkalmas pillanat a malware megfordította az urándúsítási folyamat irányát (ezzel máris elrontva az urán-hexafluorid gáz finomítási folyamatát), majd felgyorsította a centrifugák fordulatszámát 86.400 fordulat/percre, később pedig lecsökkentette a fordulatszámot 120 fordulat/percre. Ezzel tovább rontotta az urándúsítási folyamat hatékonyságát, de ami (iráni szempontból) még rosszabb volt, tömegével kezdtek mechnikailag meghibásodni az urándúsító centrifugák.
Az iráni szakemberek először csak azt vették észre, hogy egyre több centrifugájuk hibásodik meg és csak később, az orosz VirusBlokAda nevű cég csak később fedezte fel a Stuxnet (egyik, mert mint kiderült, három különböző változatban is létezett) változatát. Az akció végére az iráni atomprogram kb. 2000 darab centrifugát veszített és egyes források szerint ez a támadás kb. 5-6 évvel vetette vissza az iráni atomfegyver-fejlesztési képességeket.
Már az eddigiekből is érezhető, hogy a Stuxnet mennyire jól tervezett és hatékony kiberfegyver volt, de ha hozzátesszük azt is, hogy a Stuxnet volt az első ismert, teljesen autonóm malware a világon, amihez nem volt szükség semmilyen (ismert) C2 infrastruktúrára és emberi beavatkozásra ahhoz, hogy a malware el tudja végezni a feladatát.
Idő és terjedelmi korlátok miatt a Stuxnet részletesebb elemzésére nem lesz módom, de aki szeretne többet tudni erről a bátran történelminek nevezhető ICS-specifikus malware-ről, azoknak két publikációt tudok ajánlani, a Symantec (ma már BroadCom) elemzését, ami a malware kiberbiztonsági szempontú vizsgálatát foglalja össze, Ralph Langner pedig a "How to kill a centrifuge" nevű munkájában a folyamatirányítási mérnök szemszögéből vizsgálta a Stuxnet-et. (Ralph weboldala 2013 óta átalakult és az otbase.com oldalán már nem találtam meg ezt az elemzését, ezért jobb híján az archive.org-on elérhető példányt tudom behivatkozni.)