Hakkerointi

From Karriviki

Roll d20 to Hack the Planet

Roolipelijärjestelmissä on aina kyse mutkikkaiden tosimaailman mekanismien abstraktoimisesta, ja väistämättä yksinkertaistamisesta. Tämän kirjoituksen tarkoitus onkin vain tarjota muutama lisävaihtoehto hakkeroinnin kuvaamiseen roolipelissä. Kuten sanottua, kaikista muistakin taidoista voisi varmasti laatia kuinka syvällisen luotauksen vain, joten ei ole missään nimessä väärin kuvata hakkerointia yhdellä nopanheitolla, varsinkin jos hakkerointi itsessään ei ole pelin tai hahmon teemojen ytimessä. Jos kuitenkin hakkerihahmolla tai hakkeroinnilla on pelissä keskeisempi rooli, tässä muutamia ajatuksia siitä miten hakkerointia voisi pelata.

Mitä hakkerointi on?

Hakkeroinnilla tarkoitetaan tavallisimmin IT-järjestelmän käyttöä eri tavalla kuin on tarkoitettu, esimerkiksi ilman lupaa. Hakkerointia on ollut myös äänitaajuuspuhelinjärjestelmien huijaaminen ääniä vaikka pillillä tuottamalla, että päästään soittelemaan ilmaisia kaukopuheluita. Tai vaikkapa huonekasvin lehtien värähtelyjen täsmällinen mittaaminen tilassa liikkuvien ääniaaltojen (puheen) tunnistamiseksi tilan ulkopuolelta.

Ulkopuoliselle hakkerointi näyttää magialta, joten siitä maailmasta saamme pari käyttökelpoista vertauskuvaa. Joissakin järjestelmissä velhon suurin työ on ”loitsun” suunnittelussa, rakentamisessa ja mieleen painamisessa, mutta kun se on tehty, itse tempun tekeminen on helppoa, nopeaa ja usein varsin yksinkertaista. Samaa analogiaa käyttäen joskus tiettyyn temppuun on mahdollista tehdä niin pitkälle jalostettu työkalu, että tämän ”taikaesineen” käyttö onnistuu keneltä tahansa. Silloin ollaan tyypillisesti hyvin selkeän käyttötapauksen edessä, ja rajat tulevat nopeasti vastaan. Nappia painamalla toimiva luottokortin kopioimislaite ei välttämättä osaakaan kopioida kaikkia luottokortteja, eikä ei-hakkeri joka laitetta käyttää oikein tiedä mitä sitten pitäisi tehdä.

Tai voimme ajatella katutaikuria, joka on elämänsä ajan harjoitellut tiettyjä perustekniikoita sorminäppäryyden alalta, mutta myös ihmisten harhauttamisesta puheella, eleillä ja ennakko-odotuksia rakentamalla. Hän on suunnitellut tempun, törmännyt useaan umpikujaan jotka eivät toimineetkaan, ja lopulta rakentanut esityksen, joka näyttää vaivattomalta ja maagiselta. Vierestä seuraava ammattitaikuri pystynee kuitenkin esittämään valistuneen arvauksen siitä miten temppu tehtiin, tai missä koira on haudattuna.

Hakkerin elämästä iso osa kuluu tutkimustyöhön: luetaan manuaaleja, tutkielmia, teknisiä papereita siitä miten järjestelmät syvällisesti toimivat, kokeillaan uusia ja yllättäviä lähestymistapoja ja yritetään keksiä mitä suunnittelija ei olisi tullut ajatelleeksi. Tähän matkaan kuuluu lukuisia umpikujia, vääriä johtolankoja, ja polkuja jotka eivät johtaneet minnekään… ainakaan sillä kertaa. Joskus matkan varrella on vihjeitä ja merkkejä siitä että ollaan menossa oikeaan suuntaan, mutta joskus lukko pysyy lukittuna kunnes yhtäkkiä ei enää olekaan. Voisikin olla, että hakkeroinnin nopanheitot heitetään salassa, sillä tekijän oma kokemus työn edistymisestä ei korreloi vahvasti oikein edistymisen kanssa. Hakkereiden tarinat ovat täynnä turhauttavaa puurtamista, joka yhtäkkisenä kirkastumisen hetkenä johtaakin lopulliseen voittoon, tai hyvän tuntuista puuhastelua josta puolen vuoden jälkeen selviää että ollaan oltu täysin väärillä jäljillä.

Kaikkea ei vaan voi hakkeroida. Teoriassa kohde voi olla niin hyvin teknisesti suojattu, prosessit viimeisen päälle kunnossa, joka ainut henkilö niin hereillä, että hyväksikäytettävää haavoittuvuutta ei vain ole. Käytännössä ennemmin tai myöhemmin jossain lipsahtaa.

Keskeinen hakkeroinnin kysymys onkin aika: onko aikaa yrittää loputtomiin vai pitäisikö olla tekemässä muutakin, olinko oikeaan aikaan oikeassa paikassa, ehdinkö saada vaikutuksen aikaiseksi ennen kuin aika ajaa ohi tarpeesta?

Keskisyvällinen malli

Jos halutaan yhtä nopanheittoa syvällisempää, mutta ei koko peliä määrittelevää puurtamista, voisi ratkaisu olla pilkkoa hakkerointia vain hieman syvällisemmin:

1.       Laitteen hakkerointi on kyseessä, kun on tarkoitus saada laite toimimaan vastoin sen alkuperäistä käyttötarkoitusta, tai ohittaa laitteessa olevia ohjelmallisia rajoituksia tai käyttöoikeuksia. Kun tuunataan tutkaa toimimaan aallonpituuksilla joita se ei normaalisti käytä, viritetään radiota toimimaan tehokkaammin rakenteiden läpi, suoritetaan maksukorttitapahtumia normaalia kauempaa, yritetään päästä etäyhteydellä käyttämään vihollisen matkapuhelinta tai yritetään saada pankkiautomaatista rahaa ollaan laitteen hakkeroinnin ääressä.

2.       Henkilön hakkerointi tarkoittaa tyypillisesti sellaisen tiedon keräämistä tai käyttämistä, jolla pystytään esiintymään toisena ihmisenä tai ottaman tämän digitaalinen identiteetti käyttöön.

3.       Tiedon kaivaminen järjestelmästä voi olla eräänlaista hakkerointia, varsinkin jos kyse on tiedosta, jota on yritetty suojata ohjelmallisesti, esim. pääsyoikeuksin tai vaikkapa kryptauksella.

4.       Resurssin hakkerointi tarkoittaa esimerkiksi teollisuusjärjestelmän haltuunottoa siten, että järjestelmää voidaan ohjata tai sen toimintaa muuttaa tai mahdollisesti sabotoida.

5.       Verkkojen hakkerointi voisi olla esimerkiksi tietoliikenteen seuraamista tai toisiinsa liitettyjen koneiden löytämistä, seuraava hyppy joista jokainen vie vähän lähemmäs tavoitetta.

Aloittaisin jakamalla hakkerointitaidon yllä mainittuun viiteen alalajiin. Tämän voisi tehdä niin, että jokaista hakkerointitaitoon (olipa sitten alkuperäisessä pelijärjestelmässä kyse tietokoneen käytöstä tai erikoistumisesta hakkerointiin) käytettyä taitopistettä tai tasoa kohden pelaaja saa jakaa näihin uusiin alalajeihin esimerkiksi kolme pistettä. Rajoituksena voisi lisäksi olla, että minkään alalajin taso ei voi ylittää alkuperäistä taitoa, mutta tosiasiassa esimerkkejä vastakkaisesta on: on olemassa hakkereita, jotka ovat huomiota herättävän hyviä yhdessä hakkeroinnin alalajissa, mutta käytännössä kadun miehen tasolla muissa. Kenties muita rajoituksia ei siis tarvita?

Kuvitellaan esimerkiksi pelijärjestelmä, jossa taitojen arvot ovat välillä 1-10. Hakkerihahmomme Hakkerointi-taito on tasolla 5, joten alalajeihin olisi ylläolevalla ehdotuksella käytettävissä 15 pistettä. Olkoon lopputulos sitten vaikka Laitteet 3, Henkilöt 5, Tiedot 3, Resurssit 1 ja Verkot 3. Kaveri on selvästi erikoistumassa social engineeringiin, mutta muutkin hommat näyttävät sujuvan. Teollisuuden järjestelmät eivät oikein kiinnosta, joten koska hahmo ei oikein tiedä miten järjestelmät toimivat keskenään, hänen on vaikea saada juuri toivomaansa vaikutusta aikaiseksi sillä puolella. Ainakin aikaa tuhrautuu.

Kätevä pelimekaniikka olisi pidennetty tutkimusheitto. Pelinjohtaja voi asettaa tavoitteeksi tietyn määrän onnistumisia tietyllä vaikeustasolla, ja sitten katsotaan kuinka monella heitolla valmista tulee. Jokainen lisäheitto tarkoittaa tiettyä aikamäärää, joka työhön käytetään. Hyvä aikamäärä voisi olla vaikkapa työpäivän verran käytettyjä tunteja.

Usein samaan tavoitteeseen on monta eri reittiä, ja toinen mahdollisuus olisikin määrätä eri vaikeustaso ei alalajeille: pääset toimitusjohtajan salaiseen mailinvaihtoon joko Henkilöt-taidon vaikeudella 4 ja Tiedot-taidon vaikeudella 2 tai Verkot 2 ja Tiedot 4.

Toinen, kompleksimpi vaihtoehto, olisi huomioida myös epäonnistuneet heitot, jotka tuovat vähän takapakkia esimerkiksi vähentämällä kokonaisuuden onnistumiseksi jo kerättyjä onnistumisia.  Tässä tapauksessa käyttäisin vähän korkeampaa vaikeustasoa ja vähän pienempää määrää vaadittuja onnistumisia, jotta saadaan kuvattua tutkimustyötä tehdessä vastaan tulevia umpikujia ja vääriä hälytyksiä.

Tutkimustyötä ja kokemusta olisi mahdollista kuvata myös ”loitsukirjalla” jossa hakkerilla on erilaisia aiemmin kehitettyjä työkaluja ja tekniikoita. Jos projekti saadaan onnistumaan vanhaa hyödyntämällä se voi olla tehtävissä minuuteissa (tai jopa sekunneissa) ilman merkittäviä epäonnistumisen mahdollisuuksia (paitsi jos kaikki ei olekaan miltä näyttää, mitä voidaan toki nopanheitolla kuvata) mutta voi olla työlästä seurata mitä on tehty ennenkin ja miten helposti se on hyödynnettävissä tähän tapaukseen. Loitsuja voisi toki jakaa joko yllämainittuihin alalajeihin (”+1 Android-puhelimiin”, ”Windows-työaseman haltuunotto näppäimistöltä”, ”Yleisimmät sähkölukot”) tai vaikkapa seuraavaksi käsiteltävään Kill Chain -malliin ja sen eri vaiheisiin (”Zero-click malware on Androids”, ”Exotic side-channel data exfiltration”). Arvelen kuitenkin, että loitsukirjamalli menee helposti monimutkaisemmaksi ja hankalammaksi kuin mitä roolipelissä on tarpeen, mutta ehkäpä eräänlaisena bonusjärjestelmänä/erikoistumisena tiettyihin tilanteisiin sitä voisi harkita?

Hakkerointi pääosassa

Jos hakkerointi on pelin pääosassa, sitä kannattaa lähestyä projektina. Usein kuulee sanottavan että puolustajan täytyy onnistua joka kerta, mutta hyökkääjän vain kerran. Tämä on totta myös toisin päin: puolustajan täytyy saada vihiä hyökkääjästä ja onnistua pysäyttämään hänet vain yhdessä kohtaa, kun taas hyökkääjällä on edessään sarja temppuja, joissa on onnistuttava huomaamatta, että ollaan maalissa. Tätä kuvaa malli jota kutsutaan nimellä Cyber Kill Chain tai Chain of Compromise.

Steps of a successful cyber attack


Roolipelissä jokainen vaihe voidaan kohdata omana haasteenaan, joista osa (esim. weaponization) on selvästi hakkerin omaa temppuilua, kun taas joissakin (esim. recon ja delivery) ei-hakkerihahmotkin löytävät helposti roolia.

Recon

Kohteeseen perehtyminen voi tarkoittaa yrityksen toimitilojen tuijottamista silmällä, tai julkisten materiaalien (vuosikertomusten, pohjapiirustusten, organisaatiokaavioiden, LinkedIn-profiilien, ihmisten työpisteistään ottamien SoMe-valokuvien) läpikäymistä. Tarkoituksena on ymmärtää miten kohde toimii ja mitä lainalaisuuksia se noudattaa, sekä mikä siellä on normaalia. Mihin aikaan työntekijät ovat toimistolla, ja miten ovat pukeutuneet? Mitä järjestelmiä yritys käyttää? Minkälaisia verkkolaitteita Internettiin on kytketty? Missä henkilö yleensä käy, ja minkälaisia radioverkkoja (BlueTooth, Wifi) hänen kännykkänsä lähettää? Mitä verkkosivuja ja palveluita ihminen käyttää? Mitä verkkosivusta tai sovelluksesta on nähtävillä ennen kuin törmätään kirjautumisikkunaan? Voinko ostaa pimeästä verkosta hakkeroidun käyttätunnuksen firman verkkoon, ja hypätä suoraan ruutuun ”lateral movement”?

Tiedustelun voi tehdä juuri niin ylimalkaisesti tai perusteellisesti kuin haluaa, mutta realistisesti ikinä ei ole aikaa tai mielenkiintoa perehtyä aivan kaikkeen, vaan jossain vaiheessa tulee vastaan fiilis että ”näillä mennään”.

Weaponization

Tässä vaiheessa etsitään haavoittuvuuksia ja laaditaan tarvittavia työkaluja niihin hyökkäämiseksi. Kyse voi olla skannailusta ja koodaamisesta, tai vaikka paineilmapullojen, teippirullien ja rautalangan ostamisesta. Perinteisessä tietojärjestelmään hyökkäämisessä yleensä jonkinlaisella automaattisella työkalulla käydään läpi erilaisia haavoittuvuustyyppejä, ja yritetään selvittää missä tämän heikkoudet ovat. Sitten näitä langanpäitä vedellään ja katsotaan lähteekö kudos purkautumaan. Hyvällä tuurilla tämä voi olla muutaman minuutin juttu, tai sitten päätä hakataan mäntyyn kuukausikaupalla.

Delivery

Kun tarvittava haittaohjelma (eli ”työkalu”) on saatu tehtyä, se täytyy saada sinne missä se voi tehdä työnsä. Tai sitten on aika kiivetä teollisuuslaitoksen aidan yli ja lähteä katsomaan mitä niille lukoille oikein voi tehdä. Joka tapauksessa kohdetta on päästävä käpistelemään. Työkalun voi yrittää saada ujutettua jonkin järjestelmähaavoittuvuuden kautta sisään tai voit yrittää huijata jonkun ajamaan koodiasi (”klikkaamalla linkkiä/liitetiedostoa”). Jos kohde on raskaasti suojattu (verkosta irrallaan oleva laite ydinlaitoksen uumenissa) saatat tarvita sisäpiiriläisen apua, jolloin joku joko tietäen tai tietämättään kiikuttaa vaikkapa muistitikun suljettuun järjestelmään johon ehdottomasti ei saisi muistitikkua kytkeä.

Exploitation, Command & Control

Työkalusi joko tekee temppunsa tai ei, se selviää nopeasti. Pelillisesti vasta tässä kohtaa selviää Weaponization-vaiheen lopullinen tulos, mutta toisenlaisessa hakkeroinnissa tilanne voi olla dramaattisempi. Fyysisen tunkeutumisen exploitatation-vaihe on se kun selviää että sähkölukot ovatkin muokattua mallia, ja ovista ei tulla näillä keinoin pääsemään sisään. Kauanko siihen vartijan kierrokseen olikaan aikaa?

Command and Control tarkoittaa elokuvista tuttua takaporttia: olen loppupeleissä järjestelmässä jossa sinun ei kuuluisi olla, joten miten varmistat pääseväsi takaisin tänne? Jos vaikka työkalusi eivät toimineetkaan ja niitä pitää vähän tunkata, tai et edes oikein tiennyt mistä etsimäsi löytyy ja nyt tarvitsee vähän perehtyä tarkemmin kohteeseen.

Tämän vaiheen haasteet ja tavat jäädä kiinni ovat teknisiä ja siksi nopanheitot toimivat abstraktiona aivan hyvin.

Tämän vaiheen onnistuttua hakkerit ovat ”sisällä”, hakkerointi on tapahtunut ja nyt keskustellaan enää siitä, miten paljon vahinkoa syntyy.

Lateral Movement

Olet nyt saanut ensimmäisen jalansijan kohteeseen: päässyt ohi kirjautumisruudusta, saanut koodisi ajoon työntekijän koneella, ”päässyt läpi palomuurista” tai muuten löytänyt, ja hyödyntänyt, sitä avoimeksi jäänyttä ikkunaa (vertauskuvallisesti tai konkreettisesti). Oletko silti oikeassa paikassa? Onko sinulla riittävät käyttäjäoikeudet? Pääseekö tältä koneelta ylipäätään kirjautumaan Salaiseen Tutkimustietokantaan? Mihin muualle täältä pääsee?

Tässä vaiheessa tiedustellaan sitä osaa kohteesta joka ei näkynyt ulospäin (kirjautumissivun takana, yrityksen sisätiloissa, sisäverkossa tai vaikkapa henkilön puhelimessa olevat tiedot ja sovellukset) sekä selvitellään miten kiinnostaviin asioihin pääsisi käsiksi ja tarvitaanko lisätemppuja esim. käyttöoikeuksien laajentamiseen (”olenkin nyt Admin-käyttäjä”). Oikein monimutkaisessa ja syvällisessä tunkeutumisessa tässä kohtaa käytännössä palataan siis recon-vaiheeseen ja ruvetaan tekemään samoja temppuja uudestaan, mutta tästä sillanpääasemasta käsin.

Actions on Objective

Onneksi olkoon, olet löytänyt kohteesi, sinulla on valtakunnan avaimet käsissäsi, kaikki mahdolliset käyttäjätunnukset ja elämä edessä! Mitä täällä nyt sitten oikein oli tarkoitus tapahtua? Halusitko varasta tietoa, tuhota sitä, muuttaa sitä? Joka tapauksessa viimeistään tässä vaiheessa jätät pysyvän jäljen jota tullaan myöhemmin tutkimaan, joten sillä hetkellä kun painat nappia on selvää että joku kävi täällä ja etsijät ovat perässäsi. Osa tämän vaiheen haasteista on varmasti vain draamallisia/tarinankerronnallisia kuten minkälaisia toivottuja ja yllättäviä vaikutuksia teollasi oli, mutta operaatiokaan ei välttämättä ole vielä ohi. Olet löytänyt tsiljoona tavua dataa Salaisista Hankkeista, millä tämän kaiken saa mukaansa kun downloadissa näyttäisi kestävän 3 päivää ja sinä aikana joku varmaan huomaa että kaikki firman informaatio valuu ulos internettiin. Data exfiltration on oikea ongelma, tai jos tavoitteesi oli jotain muuta ehkä haasteesi on tässä kohtaa lyödä rahoiksi, tai ylipäätään selvitä hengissä ja vapaalla jalalla nauttiman työsi tuloksista. Joka tapauksessa hakkerimielessäsi on varmasti jo alkanut itää kysymys: mitä seuraavaksi?