Virusul Stuxnet – despre cyberwar si centrale nucleare
Centrala atomica iraniana de la Bushehr
Cand iranienii s-au apucat sa construiasca centrala atomica de la Bushehr, prin 1970, au cerut ajutorul nemtilor. Lucrurile nu au decurs prea bine asa ca pana la urma s-au apucat sa-l construiasca printr-un acord cu guvernul rus – totusi, celebra companie germana Siemens a livrat majoritatea aparaturii de control pentru reactor, inclusiv soft-urile.
Un subiect controversat, oprit si restartat de multe ori de-a lungul timpului, reactoarele nucleare de la Bushehr sunt inca inoperative, 30 de ani mai tarziu.
Este posibil ca acest lucru sa fie datorat, printre alte lucruri, unui virus informatic denumit Stuxnet.
Un virus deosebit
In iulie 2010, firma VirusBlokada din Belarus anunta (http://www.secureblog.info/files/new_rootkit.pdf) descoperirea unui nou virus de computere, ce parea sa faca niste lucruri foarte interesante. In principal, anuntul spunea ca acesta include o componenta de ascundere („rootkit”) care este semnata cu un certificat digital valid de la RealTek. Acest lucru are mai multe implicatii foarte serioase si este deja un eveniment major in sine. Certificatele digitale sunt folosite aproape peste tot in ziua de astazi, pentru autentificare. In esenta, un driver semnat de RealTek inseamna ca este scris de RealTek, o firma reputabila, deci ar trebui sa fie OK sa il instalam – mai mult, Windows-ul ii ofera automat un alt nivel de incredere in momentul in care o semnatura digitala este prezenta. Cum poate ajunge un virus sa fie semnat cu un certificat digital valid de la o firma serioase de hardware? In esenta, ar fi doua posibilitati: cineva (sau ceva) a reusit sa fure certificatul digital sau, firma respectiva l-a vandut in cunostinta de cauza catre autorii virusului. Desigur, cand vine vorba de RealTek, a doua varianta este putin probabil, deci ramane prima optiune. Acest lucru a devenit si mai probabil in momentul in care o a doua versiune a fost descoperita, ce folosea de aceasta data un certificat digital furat de la firma JMicron.
Un virus de 1,000,000$
Dupa anuntul respectiv, firmele de securitate din toata lumea au inceput sa analizeze virusul nou, denumit Stuxnet. Descoperirile nu au incetat sa apara. Pe langa faptul ca avea un driver semnat de RealTek, care era folosit pentru a ascunde infectia in sistem, virusul folosea o metoda noua pentru a se raspandi – fisiere cu extensia LNK si o vulnerabilitiate in Windows care permitea executia automata a programului de pe un memory stick in momentul in care acesta era explorat. Ca idee, trebuie mentionat ca o vulnerabilitate de acest gen se vinde cu bani grei pe piata neagra, ajungand pana la 250,000$. Pe masura ce timpul trecea lucrurile deveneau din ce in ce mai ingrijoratoare. Pe langa vulnerabilitatea de tip 0-day legata de fisierele LNK, am mai descoperit in virus inca 2, pe care le-am raportat imediat la Microsoft. In paralel, alti cercetatori au mai descoperit o vulnerabilitate 0-day, ridicand totalul la 4. Ca sa fie mai clar pentru toata lumea, pana acum vorbim de aproximativ 1,000,000$ investiti in acest virus, doar pentru vulnerabilitatile exploatate.
„Return of investment” – cati bani poti face cu o investitie de 1,000,000$?
Lucrurile s-au complicat si mai mult cand a fost descoperit faptul ca virusul pare sa atace sistemele de control industrial de tip SCADA. SCADA este prescurtarea pentru „supervisory control and data acquisition” si reprezinta o clasa de sisteme folosite pentru control industrial, de la apa, curent, lumini de trafic pana la centrale atomice. Pe masura ce analiza progresa, s-a descoperit ca virusul nu ataca orice fel de sisteme SCADA, ci in particular, o versiune a unui soft creeat de Siemens, denumit SIMATIC WinCC.
Poate parea un pic ciudat faptul ca aceste descoperiri s-au intamplat de-a lungul a doua – trei luni, insa este pefect normal. In ziua de azi, analiza unui virus complex, precum este Stuxnet, poate dura luni si chiar si dupa 5-6 luni, este posibil ca sa fi ramas inca fragmente de cod neanalizate.
Pentru a intelege cum functioneaza interactiunea cu sistemele SCADA, sunt necesare echipamente si soft in valoare de 40-50,000$, suma pe care o putem adauga usor la costurile dezvoltarii virusui. In mod clar, autorii acestuia au avut cunostinte de varf despre functionarea sistemelor respective si acces la sisteme controlate de SIMATIC WinCC.
Revenind la interactiunea virusului cu sistemele SCADA, poate cea mai interesanta descoperire a fost ca acesta nu incearca sa fure informatii. Initial s-a crezut ca este un virus ce spioneaza sistemel industriale si fura planuri ale acestora. Socul a fost in momentul in care s-a descoperit ca nu fura planuri ci saboteaza functionarea unui anumit sistem de control.
Actiuni explozive
Desigur, ne putem intreba, ce anume se poate face cu un virus care a costat peste 1 mil de dolari si care saboteaza sisteme industriale?
Explicatia poate fi socanta, insa marcheaza un moment unic in istoria virusilor informatici – momentul in care avem confirmare a razboiului cibernetic intre state.
Mare majoritatea a virusilor ce apar in zilele noastre sunt facut sa fure informatii, care pot fi ulterior vandute. Stuxnet nu a fost scris sa fure nimic si a costat foarte mult, insa pare sa saboteze un anumit sistem industrial.
Ce sistem ar putea fi acesta?
Victimele
Daca ne uitam la lista cu tarile care au fost infectate (http://www.securelist.com/en/blog/325/Myrtus_and_Guava_the_epidemic_the_trends_the_numbers), putem observa ca acesta este un pic anormala. India este un candidat popular, insa Iran-ul nu este. Foarte rar exista epidemii in Iran; in plus, trebuie sa ne gandim ca Stuxnet nu se raspandeste pe Internet ci doar in retelele locale. In esenta, asta inseamna ca cineva a fost foarte activ in a incerc sa-l raspandeasca in Iran, prin metode ce au implicat prezenta fizica la locul faptei.
Desi nu exista dovezi directe, tintele cele mai probabile in Iran pentru acest virus sunt reactoarele nucleare de la Bushehr si centrala de imbogatire a uraniului de la Natanz. Ambele au avut probleme recent: „Delay hits Iran Bushehr plant” http://english.aljazeera.net/news/middleeast/2010/09/2010929145616730389.html si “Iran’s Natanz Nuclear Facility Suffers Growing Pains” – http://blog.heritage.org/2010/02/11/iran%E2%80%99s-natanz-nuclear-facility-suffers-growing-pains/.
Alte stiri interesante:
- 16 iulie 2009: “Iran’s nuclear chief resigns” http://www.telegraph.co.uk/news/worldnews/middleeast/iran/5845080/Irans-nuclear-chief-resigns.html
- 22 septembrie 2010: “Russia rules out supplying missiles to Iran” – http://www.telegraph.co.uk/news/worldnews/europe/russia/8018500/Russia-rules-out-supplying-missiles-to-Iran.html
- 27 septembrie 2010: “Iran confirms Stuxnet cyber attack – “http://www.h-online.com/security/news/item/Iran-confirms-Stuxnet-cyber-attack-1096552.html
A fost sau nu a fost
Poate cea mai mare intrebare care ramane este daca virusul a functionat sau nu. Conform datelor pe care le avem, primele infectii au avut loc anul trecut prin iulie, aproximativ in aceeasi perioada cand seful programului nuclear al Iranului a demisionat. Anul acesta, in septembrie, Rusia a anuntat ca nu va mai vinde Iranului rachete cu care sa apere centralele impotriva atacurilor din aer. In acelasi timp, probleme sunt anuntate si la Bushehr si la Natanz.
In virusul Stuxnet exista o verificare de conditie, care determina daca virusul ruleaza pe sistemul corect, identificat dupa o semnatura specifica. In cazul in care aceasta semnatura este detectata, rutina de cod intoarce valoarea “DEADF007” in hexa, care se poate citi ca “dead fool”. In acelasi timp, virusul introduce un cod in procesoarele de control care are ca rol principal ignorarea unor mesaje potential de alarma, care ar putea sa semnaleze supraincalzirea unui sistem sau o alta conditie critica. Moment in care se intampla… “dead fool”.
Lumea de dupa Stuxnet
Ce este clar in cazul nostru, este ca avem de-a face cu niste atacatori ce dispun de resurse substantiale (milioane de $) pe care sunt dispusi sa le investeasca intr-o arma informatica de precizie chirurgiala. La prima vedere, planurile nu au functionat foarte bine: reactoarele nu au explodat si acum toata lumea stie despre atac. Este posibil ca atacatorii, suparati de esec, sa fi fortat la nivel politic afacerea cu rachetele de aparare, pentru a putea rezolva problema in mod conventional. La adresa http://en.wikipedia.org/wiki/Nuclear_program_of_Iran putem citi un lucru interesant:
“During the Iran-Iraq war, Iran’s Bushehr reactors were damaged by multiple Iraqi air strikes and work on the nuclear program came to a standstill. Iran notified the International Atomic Energy Agency of the blasts, and complained about international inaction and the use of French made missiles in the attack.[66][67] “
Asadar, au mai fost incercari in trecut de a bloca constructia reactorului, insa nu tocmai “elegante”. Este posibil ca intr-un moment ulterior sa se fi gasit o alternativa mai eleganta: un virus informatic capabil sa dea peste cap sistemele de control germane de la Siemens si sa produca cel putin la fel de multe pagube ca un atac conventional. In momentul in care acesta a esuat, s-a revenit la vechile metodele.
Desigur, povestea prezentata aici este doar a mica bucatica din puzzle – cautand pe net, pot fi gasite multe alte evenimente care se integreaza usor in timeline.
In mod cert insa, Stuxnet marcheaza momentul in istorie in care superputerile au inceput in mod serios razboiul rece “cybernetic”. Ce va urma, oare? Sau, cine va fi urmatoarea victima?