Her hacker han en demning

Se Espen Martinsen fra Mnemonic gjøre det han gjør best – hacke.

Publisert Sist oppdatert

GARDERMOEN/OSLO: En bærbar pc og en boks. Boksen, en PLS, avgjør om demningen er åpen eller lukket. Pc-en kan potensielt tenkes å styres boksen, uten at det er så viktig i denne sammenhengen. Det viktigste er at begge enhetene er koblet på samme nettverk. Og at pc-en er koblet på nett.

Espen Martinsen fra Mnenomic lurer pc-ens bruker til å åpne en infisert Java-applikasjon. Det er enkelt, han bare later som det er en superkul applikasjon, brukeren går fem på. Noen tastetrykk senere er det plutselig Martinsen som bestemmer om demningen er lukket eller åpen. Han har full kontroll på boksen, via den infiserte pc-en på samme nettverk sender han kommandoer.

Han har hacket seg til boksen live foran publikum, og viser hvordan han lett kan slå av og på knappene på boksen så de lyser grønt eller ikke. I teorien kan han befinne seg i en hytte i Canada mens han tukler med demningen. En tilsvarende boks kunne vel så gjerne styrt en kraftstasjon eller noe annet samfunnskritisk.

Skråsikre typer

Ok, vi er ikke fysisk ved en norsk demning, dette er en demonstrasjon. Vi er på et konferansehotell ved Gardermoen, der kraftbransjen har samlet seg for å lære om hva som er truslene for tiden. På en scene står kontrollboksen og den infiserte bærbare på ene siden, Martinsen står på andre siden og puncher kommandoer i Linux.

- For ti år siden leide folk oss inn for å teste brannmuren deres. Nå leies vi inn for å teste intern sikkerhet, for eksempel utro konsulenter som tar med seg bærbare pc-er og blir sittende på et møterom i noen dager, sier han.

Han møter mange skråsikre typer i sin penetrasjonstester. Det påpekes at produksjonssystemene er adskilt fra internett. Det påstås at det ikke er noe attraktivt mål. Det påstås at systemene er for avanserte til at det skal være et attraktivt mål. Det argumenteres med at det aldri har vært noen problemer. At alt gjøres riktig, at oppdateringsregimet til Microsoft følges slavisk.

Men det er prat for døve ører overfor Martinsen. Det finnes likevel alltids svake ledd. Infiserte minnepinner kan snikes inn, og dermed glatt gå under brannmurradar. En pc som følger beinhardt oppdateringsregime fra Microsoft kan fortsatt ha utdatert Flash. Et nettverk kan alltids ha en pc som er så gammel at oppdateringer ikke prioriteres på den. Sikkerhet er aldri sterkere enn det svakeste ledd.

Og det verste Martinsen har observert: Det finnes ofte it-folk som utfører vanlig arbeid innlogget som administrator, med alle rettigheter.

Alltid et hull

Media rapporterer til stadighet om sikkerhetsbrudd. Her om dagen var det noen uvedkommende som fikk celledørene i et fengsel i USA til å åpne og lukke seg. Eksemplene er mange. Dessuten er det ekstra farlig når skurken på uredelig vis klarer å snike seg inn i selve forretningslokalet, da kan det scannes etter ulappet programvare eller dårlig policyoppsett.

- Jeg finner alltid maskiner som er av en eller annen veldig god grunn ikke er helt oppdaterte. Det er fryktelig fine ofre, sier Martinsen.

Også har du alltids nettleseren, da, mang et virus har sneket seg inn denne veien.

- Det er skremmende enkelt å få noen til å klikke på noe. Det greieste er ofte å spørre brukeren, eventuelt å legge igjen minnepinner i kantina, forteller han.

Sårbarhetsrammeverk

Slike sårbarheter er ikke noen stor sak å utnytte for en skurk (eller en velmenende hacker som Martinsen). Det finnes flere gode programmer som er gratis. Det sikkerhetsindustrien kan bruke til sin fordel, kan skurkene også bruke til sin fordel. Metasploit, for eksempel, et helt rammeverk med sårbarheter. Eller det kan søkes frem på åpne sider som lister opp sårbarheter til alle tenkelige programmer.

Et søk på Scada, på en slik side, avdekker for eksempel side opp og side ned med svakheter, hvorav riktig så mange fra 2011. Scada er en type kontrollsystem som blant annet kan brukes i anrikingen av uran, og ble for alvor gjort kjent i massemedia under utbruddet av det styggvakre viruset Stuxnet, som var målrettett mot nettopp Scada-systemet og Irans urananrikingsprogram.

Her lister altså en lys åpen nettside øvrige svakheter, mange av dem relativt ferske, som kan utnyttes mot slike systemer. Noen av sårbarhetene på lista har til og med programvare som utnytter sikkerhetshullene tilgjengelig for nedlasting. Ikke rart personen et par rader bak i salen kommer med en veldig ærlig blanding av et sukk og et «huff», han erkjente nok nettopp at jobben hans er mer komplisert enn han trodde.

Martinsen lister opp tre måter å utføre angrep på. Det første, «remote exploit», brukes knapt lenger fordi perimetersikkerheten er bedre enn noen sinne. Brannmur, antivirus og øvrige nettverkssikkerhetdingser mellom internett og intranett er på plass.

Den andre er «clientside exploit». Den trenger aktivitet fra bruker, og er en funksjonell måte å ta seg forbi den nevnte perimetersikkerheten. Sikkerhetsselskapet RSA er blant dem som har hatt lekkasje av sensitiv data på denne måten.

Det siste er «local exploit» der en forsøker å opphøye brukerprivilegiene til administrator-nivå etter å ha fått tilgan til en brukerkonto.

Metasploit i praksis

Tilbake til demningen. Den bærbare er utrustet med Windows 7 og Internet Exploer 8 og står gjerne langt bak i systemet, bak lokal brannmur, proxyserver, virusmur og andre sikkerhetsbokser.

På sin egen maskin fyrer Martinsen opp Linux-distroen Backtrack 5, som har verktøyene han trenger. Deriblant Metasploit, der han setter opp angrep kalt Backtrack5R1 som utnytter en sårbarhet i Java. Han puncher inn i kommandolinjen.

Metasploit skal sette opp en webserver på port 80. Sårbarheten skal kommunisere via protokollen http som brukes for å kommunisere med vanlige webservere – en enkel måte å snike seg ut og inn av brannmur ettersom kommunikasjon på denne protokollen ofte er åpen. Den sårbare applikasjonen han setter opp skal til og med være utstedt med falskt sertifikat fra Mnemonic.

Så går han over på pc-en ved boksen. Han besøker webserveren med den infiserte filen. Klikker på en sabla kul lenke. Kjører Java-applikasjonen med sårbarheten. Og vips, så får han i Metasploit vite at det nå er koblet opp en infisert maskin.

Først dupliserer han sesjonen – backup er bra selv for hackere – så får han opp kommandolinjen hos den hackede pc-en. Det er en jakt i blinde, så først må Martinsen se seg litt rundt på pc-en og området rundt. Han trykker inn «run get_local_subnet», og finner ut av nettverket å den infiserte pc-en.

Så legger han til en rute til nettverket i Metasploit, via det som nesten er likt Linux-kommandoen «route». Det sikrer at alle handlinger går via nettverket han nå har brutt seg inn i. Han titter seg litt rundt, søker etter «modbus» via «modbus_detect». Kjører scan etter modbus-systemer, slik demning-boksen kjører i denne anledningen. Og jaggu dukker den opp, PLS-boksen som styrer demningen.

Gammeldags seriellprotokoll

Dermed kan Martinsen starte Modbus_client i Metasploit. Han har ikke jobbet særlig mye med modbus-systemer før, men finner ut av kommandoene. Delvis ved å overvåke trafikken på nettverket til den infiserte bærbare, og til dels via Wikipedia.

Så får han lampene til å slå seg av og på. Demningen kan nå åpnes og lukkes på hans kommando.

- Slik kan en altså gjennomføre et liveangrep mot operatøren som surfer mens han jobber, sier Martinsen.

Årsaken til at det er så enkelt er Scada-protokollene som sådan. De er egentlig laget for seriellkommunikasjon og designet for lukkede, proprietære nettverk. Spesifisert og implementert etter OSI-modellen. Deretter er de modifisert til å håndtere ip-kommunikasjon. Uten særlig tanke på sikkerhet og med liten støtte for sikkerhetsmekanismer.

- For meg virker det som om noen har sagt «dette må vi få på nettverk» og så pakket en TCP-header rundt, sier Martinsen.

- Jeg gjorde jo ingen exploit mot boksen, boksen foretok ikke autentisering eller noen verdens ting.

Modbus-protokollen brukes ikke bare av kraftbransjen, men det var det eksempelet Martinsen og hans kompanjonger rakk å sette opp i tide for demonstrasjonen. Og alle systemer har jo en svakhet.