Pääsivu

 

Entä jos Stuxnet-mato onkin tähän mennessä vaarallisin haittaohjelma?


KIRJOITTI JUHANI MÄKELÄ 23. SYYSKUUTA 2010


Kesällä havaittu Stuxnet-haittaohjelma on paljastunut analysoinnin edistyessä monella tavalla merkilliseksi ja ainutlaatuiseksi tapaukseksi. Vähitellen eri tahoilta tihkuneet tiedot alkavat saada jo vakoiluromaanimaisia ulottuvuuksia, joten lienee paikallaan hetkiseksi pysähtyä pohtimaan mitä oikein on tapahtumassa.

Haittaohjelman löysi kesäkuussa valkovenäläinen VirusBlockAda-tietoturvayritys erään iranilaisen asiakkaansa tietokoneesta. Aluksi se vaikutti varsin tavanomaiselta USB-tikkujen kautta leviävältä madolta, jonka merkittävin ominaisuus oli Windowsin ennalta tuntemattoman .LNK-tiedostojen käsittelyyn liittyvän haavoittuvuuden käyttö leviämistienä. Kun madon tartuttama USB-muistitikku kytketään tietokoneeseen, siellä piilotteleva ohjelma käynnistyy automaattisesti ja asentaa käyttöjärjestelmään välittömästi ns. rootkitin, jonka avulla se kätkee itsensä näkyvistä.
Tarkkaan katsomalla voi nähdä kuinka avautuvassa resurssienhallinta-ikkunassa vilahtaa kuusi tiedostoa, jotka kuitenkin häviävät hetken päästä. Muut tikulla olevat tiedostot näkyvät normaalisti ja kaikki vaikuttaa olevan kunnossa, mutta konepellin alla käy kuhina: uusia prosesseja käynnistetään, valmiiksi käynnissä oleviin lisätään uutta ohjelmakoodia ja tunnistetut virustorjuntaohjelmat lamautetaan. Vain tavallista vilkkaammin vilkkuva kiintolevyn merkkivalo saattaisi antaa aihetta olettaa että jotain outoa on tekeillä, mutta Tehtävien ja Palveluiden hallinta näyttävät vain tuttujen ja turvallisten ohjelmien olevan käynnissä, koska rootkit piilottaa niistä Stuxnetin lisäämät osat.


Ajurit kavalasti allekirjoitettuja

Huolestuttava piirre Stuxnetissa on se, että se onnistuu asentamaan tartuttamiinsa järjestelmiin huomaamatta uusia laiteajureita, vaikka uudemmissa Windows-versioissa näiden käyttöjärjestelmäläheisten osien tulee olla digitaalisesti allekirjoitettuja. Se johtuu siitä että ajureilla onkin hyväksyttävä, VeriSignin taiwanilaiselle Realtek-yritykselle myöntämällä varmenteella tehty allekirjoitus. Myöhemmin havaitiin myös muunnos, jossa oli käytetty niin ikään taiwanilaisen JMicronin varmennetta. On erittäin harvinaista että ohjelmistojen allekirjoittamiseen myönnetyt varmenteet päätyvät vääriin käsiin, saati sitten kahden eri yrityksen.

Suurin osa Stuxnetin sisältämästä ohjelmakoodista on salakirjoitettu, joten otti aikansa ennen kuin sen varsinaiset tarkoitusperät alkoivat selvitä. Heinäkuun puolivälissä tietoturvatutkija Frank Boldwein onnistui purkamaan salakirjoituksen ja kansainvälisen tietoturvayhteisön mielenkiinto heräsi. Kävi nimittäin ilmi, että Stuxnetilla oli hyvin täsmällinen kohde: Siemensin Step 7 -prosessinohjausjärjestelmä, jota käytetään yleisesti teollisuuslaitoksissa ja voimaloissa. Stuxnet aktivoitui vain jos tartunnan saaneeseen tietokoneeseen oli asennettu järjestelmän WinCC-ohjaus- ja seurantaohjelmisto, muussa tapauksessa se tyytyi vain levittämään itseään lähiverkkoyhteyksien välityksellä naapurikoneisiin ja tartuttamaan koneessa käytetyt muistitikut.

Tässä vaiheessa Tofino Securityn Eric Byres arveli, että kysymys on teollisuusvakoilusta, koska kohteensa löydettyään Stuxnet tekee WinCC:n tietokantaan joukon kyselyjä ja lähettää yhteenvedon tiedoista kahdelle hyvin viattomalta vaikuttavalle jalkapalloveikkausivustolle, joista toinen sijaitsee Tanskassa ja toinen Malesiassa. Vastatoimenpiteisiin ryhdyttiin ripeästi. Heinäkuun loppuun mennessä Microsoft julkaisi normaalin päivitysaikataulunsa ulkopuolella korjauspäivityksen .LNK-haavoittuvuudelle MS10-046, VeriSign peruutti Realtekin ja JMicronin varmenteet, Stuxnetin käyttämät jalkapallosivustot korvattiin tartuntoja seuraavilla palvelimilla ja virustorjuntaohjelmistojen valmistajat lisäsivät Stuxnetin tietokantoihinsa estääkseen sen leviämisen. Heinäkuun 23. päivänä Kaspersky Labs arvoi noin 45 000 tietokoneen saaneen tartunnan.

Myös Siemensillä toimittiin ripeästi. Havaittuaan järjestelmiensä olevan uhattuna yhtiö lähetti jo seuraavalla viikolla asiakkailleen päivityksen, jolla tartunnat voidaan ehkäistä. Teollisuusautomaation asiantuntija Ralph Langner ryhtyi analysoimaan Stuxnetin keskeisiä osia ja huomasi pian että Stuxnetin tekijöillä on erinomaiset tiedot kohteestaan. Tämänhetkisen tiedon mukaan Stuxnet lisää omaa ohjelmakoodiaan WinCC-järjestelmään kytkettyihin PCS-prosessinohjauslaitteisiin, mutta piilottaa nämä osat huolellisesti muokkaamalla WinCC-järjestelmää niin että lisäyksiä ei
voi havaita eikä poistaa. Tietoa siitä mitä nämä lisäykset saavat aikaan ei ole annettu julkisuuteen, ja Langner kommentoi säästeliäästi: “koko tämä juttu näyttää niin uskomattomalta, että en oikein tiedä mitä siitä voi kertoa yleisölle”.[1]

Nollapäiväaukkoja kerrakseen

Näin taitavasti laadittu haittaohjelma olisi helposti kyennyt tartuttamaan suuremmankin joukon tietokoneita. Kävi ilmi että USB-muistitikkujen lisäksi mato levitti itseään myös toisella, Windowsin kirjoitinjonoon liittyvällä haavoittuvuudella, jota aluksi epäiltiin niin ikään ennen tuntemattomaksi. Lisäksi Stuxnet käyttää kahta niin ikään ennen tuntematonta paikallista haavoittuvuutta saadakseen kohdekoneessa rajoittamattomat käyttöoikeudet. Pelkästään yhden tällaisen Zero-day-haavoittuvuuden löytyminen on uutinen, mutta kolmen tai neljän samanaikainen käyttäminen on ennenkuulumatonta. Ja kuitenkin Stuxnet on ohjelmoitu lopettamaan leviämisensä kolme eri tietokonetta tartutettuaan.

Stuxnetin maantieteellinen levinneisyys on myös hyvin mielenkiintoinen. Symantec huomasi haltuunottamiensa jalkapallosivustojen avulla että yli puolet Stuxnetin tartuttamista tietokoneista on Iranissa. Indonesia, Intia, Azerbaizan ja Pakistan ovat myös kuuden eniten tartuntoja kärsineen maan joukossa. Näin voimakas maantieteellinen keskittyminen johtuu siitä että Stuxnet ei leviä Internetin välityksellä, vaan ainoastaan yleensä vain lähiverkoissa toimivan kirjoitinpalvelun ja fyysistä kontaktia vaativan USB-muistitikun avulla. Ei liene liioiteltua olettaa että haittaohjelman liikkeellelaskijan tarkoitus oli iskeä nimenomaan Iraniin, ja muihin maihin levinneet tartunnat ovat USB-tikkuja mukanaan kuljettaneiden tietotyöläisten aiheuttamia oheisvahinkoja.

Summataanpa yhteen. Stuxnetin tekijöillä on käytössään huippuasiantuntemusta niin tietoturvasta kun prosessikontrollista, hallussaan varastettuja varmenteita ja keinoja käyttää hyväksi useita ennen tuntemattomia haavoittuvuuksia melkeinpä tuhlailevasti. Heidän kohteenaan ovat Iranin teollisuuslaitokset, joista mainittakoon esimerkiksi Busheriin rakenteilla oleva ydinvoimalaitos ja -rikastamo. Onkohan siellä käytössä Siemensin Step 7 -prosessinohjausjärjestelmä?

Mutta mitä hyökkääjät havittelivat? Pari pientä yksityiskohtaa jää vaivamaan ainakin minua. Siihen verrattuna miten taitavasti Stuxnet muuten on laadittu, siihen on jätetty ilmeisesti tarkoituksella pari outoa kömpelyyttä. Miksi rootkit ei estä näkemästä Drivers-hakemistoon lisättyjä tiedostoja? Miksi www-osoitteet joihin ohjelma ottaa yhteyttä on vakioitu? Tumpelommatkin botnetin rakentajat ovat jo pitkään osanneet kierrättää command and control -palvelimien domain-nimiä jonkin vaikeasti arvattavan algoritmin mukaan. Ikään kuin olisi varta vasten haluttu tehdä helpoksi nähdä kuka ja missä on saanut tartunnan.

Itse veikkaisin että kyseessä on varoitus. Joku on halunnut lähettää Iranin päättäjille viestin: me voimme räjäyttää teidän tehtaanne taivaan tuuliin niiden omilla laitteilla jos haluamme. Pitäkää varanne! Lieneekö sattumaa, että Langnerin analysoimassa koodissa esiintyy liipaisinarvona luku #DEADF007, josta saa pienellä mielikuvituksella sanat “dead fool”?

Totuus ehkä selviää aikanaan. Oli asialla kuka tahansa, kissa on nyt nostettu pöydälle arvaamattomin seurauksin. Se on vielä pientä että muuta haittaohjelmian kirjoittajat ovat innokkaasti ryhtyneet lainaamaan Stuxnetin käyttämiä leviämiskeinoja. Mielestäni paljon vakavampi seuraus on se ainakin minut yllättänyt tieto, miten heikosti teollisuuden prosessinohjausjärjestelmät on suojattu. Tilanteen kehittymistä tiiviisti seuranneen Industrial Defender -yrityksen julkaisemasta “The Stuxnet Worm and Options for Remediation” white paperista[2] käy ilmi erittäin huolestuttavia asioita.

• Stuxnetin tehtävä lukea tai tarvittaessa muuttaa WinCC-järjestelmän tietokantaa on helppo, koska tietokantaan pääsee kytkeytymään vakioidulla valmistajatunnuksella. Tunnus on kovakoodattu WinCC-ohjelmiin, joten sitä ei voi edes muuttaa vaikka käyttäjä tulisikin asiaa ajatelleeksi. (Tiedossani ei ole muuttaako Siemensin 22.7. toimittama päivitys tätä tilannetta, mutta käytäntö on kuulemma alalla yleinen.)

• Ohjausjärjestelmissä käytetään yleisesti vanhentuneita käyttöjärjestelmäversioita. Industrial Defenderin keräämien tietojen mukaan lähes puolet Stuxnet-tartunnan saaneista tietokannasta käytti joko Windows 2000 - tai Windows XP SP2 -versioita, joita ei enää tueta ja joille Microsoft ei enää toimita korjauspäivityksiä.

• Ohjausjärjestelmien päivityssyklit ovat hyvin hitaita. Tämä on ymmärrettävääkin, koska teollisuusympäristössä päivitykset on tapana testata ja validoida huolellisesti ennen asentamista. Ikävä kyllä se myös merkitsee sitä, että päivityksiä tehdään harvoin, ja esimerkiksi Stuxnet pystyi menestyksekkäästi käyttämään vielä yhtenä leviämiskeinona jo vuonna 2008 korjattua RPC-haavoittuvuutta MS08-067.

• Lukuisilta WinCC-järjestelmää pyörittäviltä tietokoneilta on suora yhteys julkiseen Internetiin. Symantecin oli helppo todentaa tämä, koska Stuxnet ottaa yhteyttä www-sivuille vain löydettyään WinCC-asennuksen. Siemensin mukaan ainakin 14 tuotantokäytössä olevaa ohjausjärjestelmää on saanut Stuxnet-tartunnan.[3]

• Itse PCL-moduulien suojaus on lähes olematon. Firmaware-päivityksiä ei tarvitse allekirjoittaa, ja niitä voi tehdä miltä tahansa järjestelmään kytketyltä tietokoneelta.

Industrial Defender ei ujostele häpeilemättä mainostaa paperissaan omia IPS- (intrusion prevention) ja IDS- (intrusion detection) -järjestelmiään. Jotain sellaista toivoisi todellakin käytettävän, vaikka parempiakin vaihtoehtoja ehkä olisi, esimerkiksi haittaohjelmille alttiiden ohjaustietokoneiden kertakaikkinen korvaaminen vastustuskykyisemmillä järjestelmillä. Siitä huolimatta suosittelen lämpimästi heidän www-sivuihinsa tutustumista kaikille prosessiautomaation ja tietoturvan parissa vaikuttaville. Pandoran lipas on nyt avattu ja kiinni sitä ei enää saada.

Lähteet:
[1] www.pcworld.com/businesscenter/article/205827/was_stuxnet_built_to_attack_irans_nuclear_program.html
[2] “The Stuxnet Worm and Options for Remediation”, PDF-dokumentti:
www.industrialdefender.com/advisory/stuxnet/tech_paper/stuxnet_08.2010.pdf
[3] http://krebsonsecurity.com/2010/09/stuxnet-worm-far-more-sophisticated-than-previously-thought/
[Langner]
www.langner.com/en/index.htm
[Symantec]
www.symantec.com/connect/blogs/w32temphid-commonly-asked-questions
www.symantec.com/connect/blogs/w32stuxnet-installation-details
www.symantec.com/connect/blogs/distilling-w32stuxnet-components
www.symantec.com/connect/blogs/stuxnet-introduces-first-known-rootkit-scada-devices
www.symantec.com/connect/blogs/stuxnet-using-three-additional-zero-day-vulnerabilities
www.symantec.com/connect/blogs/stuxnet-print-spooler-zero-day-vulnerability-not-zero-day-all
[Industrial Defender]
http://findingsfromthefield.com/?p=549
Industrial Defender Download Center, vaatii rekisteröitymisen:
www.industrialdefender.com/general/downloads/recordings/stuxnet1/index.htm  www.industrialdefender.com/general/downloads/recordings/stuxnet2/index.htm