Skriptipennun työkalut ja toimintatavat

Tunne vihollisesi

Lance Spitzner kirjoitti alkuperäisen tekstin Know Your Enemy 15. helmikuuta 2000

Komentajani tapasi sanoa: "Voidaksesi suojautua viholliselta sinun pitää ensin tietää kuka hän on." Tämä sotilaallinen doktriini soveltuu myös verkkoturvallisuuden maailmaan. Aivan kuten sotilaallisessa toiminnassa sinulla on resursseja suojeltavana. Jotta voit suojata resurssisi sinun täytyy tietää kuka on uhka, ja miten hän hyökkää. Tämä artikkeli, ensimmäinen osa kolmiosaisesta sarjasta, auttaa tässä. Artikkeli käsittelee työkaluja ja toimintatapoja, joita eräs yleisimmistä ja universaaleimmista uhkista, skriptipentu, käyttää. Toinen osa keskittyy murtoyritysten havaitsemiseen sekä käytettyjen työkalujen ja hyökkääjän etsimien heikkouksien tunnistamiseen. Kolmas osa keskittyy siihen, mitä tapahtuu kun hyökkääjä saa pääkäyttäjän oikeudet. Erityisesti, miten hän peittää jälkensä ja mitä tekee sen jälkeen.

Kuka on skriptipentu

Skriptipentu etsii helppoa saalista. He eivät yritä etsiä mitään erityistä tietoa tai pidä maalinaan tiettyä yritystä. Heidän tavoitteensa on saada pääkäyttäjän oikeudet mahdollisimman vähällä vaivalla. Tämän he tekevät keskittymällä pieneen määrään tunnettuja tietoturva-aukkoja, ja etsimällä näitä aukkoja koko Internetistä. Ennemmin tai myöhemmin he löytävät haavoittuvan kohteen.

Toiset heistä ovat kehittyneempiä käyttäjiä, jotka suunnittelevat omat työkalunsa ja jättävät jälkeensä hienostuneita takaovia. Toisilla ei ole hajuakaan mitä tekevät, kunhan osaavat vain kirjoittaa "go" komentokehoitteeseen. Taitotasostaan riippumatta heillä kaikilla on yhteinen strategia: he etsivät satunnaisesti tiettyjä heikkouksia ja käyttävät niitä sitten hyväkseen.

Uhka

Kohteiden satunnainen valinta tekee skriptipennuista vaarallisen uhkan. Ennemmin tai myöhemmin jokainen järjestelmä ja verkko skannataan, piiloutua ei voi. Tiedän ylläpitäjistä, joiden yllätykseksi heidän järjestelmänsä oli skannattu kahden päivän sisällä käynnistämisestä, vaikkei kukaan edes tiennyt niistä. Tässä ei ole kuitenkaan mitään ällistyttävää. Todennäköisimmin heidän järjestelmiään skannasi skriptipentu, joka sattui kokeilemaan sitä verkkoaluetta.

Jos tämä rajoittuisi useisiin yksittäisiin skannauksiin, tilastot olisivat meidän puolellamme. Todennäköisimmin kukaan ei löytäisi meitä Internetin miljoonien järjestelmien joukosta. Tämä ei kuitenkaan pidä paikkaansa. Monet murtotyökaluista ovat helppokäyttöisiä ja laajalle levinneitä, kuka tahansa pystyy niitä käyttämään. Nopeasti kasvava ihmisjoukko hankkii näitä työkaluja hälyttävällä vauhdilla. Koska Internet ei tunne maantieteellisiä rajoja, tämä uhka on nopeasti levinnyt ympäri maailman. Yhtäkkiä tilastot ovat kääntymässä meitä vastaan. Kun niin monet Internetin käyttäjät käyttävät näitä työkaluja, kysymys ei enää kuulu skannataanko koneemme, vaan milloin se tapahtuu.

Tämä on erinomainen esimerkki siitä, miten epämääräisyyteen perustuva turvallisuus (security through obscurity) voi pettää. Voit luulla, että ellei kukaan tiedä järjestelmästäsi, olet turvassa. Jotkut taas kuvittelevat, että ellei heidän järjestelmässään ole mitään arvokasta, kukaan ei vaivaudu sitä skannaamaankaan. Mutta skriptipennut tavoittelevat juuri näitä suojaamattomia järjestelmiä joita on helppo käyttää hyväksi, helppoja saaliita.

Menetelmät

Skriptipentujen menetelmät ovat yksinkertaisia. Skannataan Internettiä etsien tiettyä heikkoutta, ja kun se löytyy, hyödynnetään sitä. Useimmat heidän käyttämistään työkaluista ovat automaattisia, ja vaativat vain vähän vuorovaikutusta. Työkalu käynnistetään ja päivien kuluttua palataan hakemaan tuloksia. Työkalut eivät ole saman laisia, kuten eivät tietoturva-aukotkaan. Kuitenkin useimmat työkalut käyttävät samaa strategiaa. Ensin kehitetään tietokanta skannattavista IP-osoitteista, sitten niitä skannataan etsien tiettyä heikkoutta.

Esimerkiksi, oletetaan että käyttäjällä on työkalu jolla voisi väärinkäyttää imap-palvelua Linux-järjestelmissä, esimerkiksi imapd_exploit.c . Ensin hän hankkisi tietokannan skannattavista IP-osoitteista (eli järjestelmistä, jotka ovat käynnissä ja tavoitettavissa). Kun tämä IP-tietokanta on rakennettu, käyttäjä haluaisi ottaa selville missä järjestelmissä ajetaan Linuxia. Monet nykyiset skannerit kykenevät selvittämään tämän helposti lähettämällä virheellisiä paketteja kohdejärjestelmälle ja tutkien vastausta, esimerkiksi Fyodorin nmap. Seuraavaksi hän käyttäisi sopivia työkaluja selvittääkseen mitkä Linux-järjestelmistä ajavat imap-palvelua. Enää jäljellä olisikin vain haavoittuviksi tiedettyjen järjestelmien väärinkäyttäminen.

Voisi luulla, että kaikki tämä skannaaminen olisi äärimmäisen äänekästä ja herättäisi paljon huomiota. Kuitenkaan monet eivät tarkkaile järjestelmiään, eivätkä siten tajua joutuvansa skannatuksi. Lisäksi monet skriptipennut etsivät kaikessa hiljaisuudessa yksittäisen järjestelmän jonka voivat murtaa, ja tämän jälkeen käyttävät sitä laukaisualustana. Täältä he voivat röyhkeästi skannata koko Internettiä pelkäämättä rangaistusta. Jos heidän skannauksensa havaitaan, syy menee järjestelmän ylläpitäjän niskoille.

Lisäksi skannauksen tuloksia usein arkistoidaan tai jaetaan muiden käyttäjien kanssa ja käytetään myöhemmin. Esimerkiksi, käyttäjä kehittää tietokannan avoimista porteista saavutettavissa olevissa Linux-järjestelmissä. Hän rakensi tietokannan käyttääkseen hyväkseen tunnettua imap-palvelun aukkoa. Oletetaan että vaikkapa kuukauden päästä havaitaan uusi aukko jossain toisessa portissa. Sen sijaan, että hän joutuisi rakentamaan uuden tietokannan (joka on aikaa vievin vaihe), käyttäjä voi nopeasti käydä läpi arkistoimansa tietokannan ja murtaa haavoittuvat järjestelmät. Skriptipennut myös jakavat tai jopa myyvät haavoittuvien järjestelmien tietokantoja toisilleen. Näin skriptipentu voi murtaa järjestelmän edes skannaamatta sitä itse. Vaikka järjestelmiäsi ei olisikaan viime aikoina skannattu, ei se tarkoita että olisit turvassa.

Kehittyneemmät murtautujat luovat järjestelmään troijalaisia ja takaovia sen murrettuaan. Takaovet päästävät käyttäjän helposti ja huomaamatta järjestelmään milloin tahansa hän haluaa. Troijalaiset taas tekevät tunkeutujasta huomaamattoman. Hän ei näy missään lokeissa, järjestelmän prosesseissa tai tiedostojärjestelmässä. Hän rakentaa itselleen mukavan ja turvallisen kodin josta voi härskisti skannailla Internettiä. Lisää tietoja osassa Tunne vihollisesi: III .

Hyökkäykset eivät rajoitu mihinkään erityiseen aikaan päivästä. Monet ylläpitäjät etsivät lokeistaan yöaikaan tapahtuvia yhteyksiä, uskoen että murtautujat iskevät silloin. Kuitenkin skriptipennut voivat iskeä mihin aikaan tahansa. Kun he skannaavat 24 tuntia päivässä, ei voi tietää milloin tunnustelu tapahtuu. Sitä paitsi näitä hyökkäyksiä suoritetaan ympäri maailmaa. Kuten Internet ei tunne maantieteellisiä rajoja, ei skannaaminenkaan tunne aikavyöhykkeitä. Murtautujan olinpaikassa saattaa olla keskiyö, mutta meillä kello yksi iltapäivällä.

Haavoittuvien porttien skannaamisen menetelmää voidaan käyttää moniin eri tarkoituksiin. Viime aikoina on raportoitu uusia palvelun tukkimiseen perustuvia (Denial of Service) hyökkäyksiä, tarkemmin ottaen hajautettuja sellaisia (DDoS, Distributed Denial of Service). Nämä hyökkäykset perustuvat siihen, että yksi käyttäjä kontrolloi satoja, ellei tuhansia murrettuja järjestelmiä ympäri maailmaa. Näitä murrettuja järjestelmiä sitten käytetään DoS-hyökkäyksiin yhtä tai useampaa uhria kohtaan. Koska käytetään monia murrettuja järjestelmiä, on erittäin vaikeaa puolustautua tai löytää hyökkäyksen kohde. Usein käytetään skriptipentujen keinoja, että saadaan näin paljon järjestelmiä hallintaan. Ensin etsitään satunnaisesti haavoittuvia järjestelmiä, ja sitten murretaan ne käytettäväksi DDoS-hyökkäyksen laukaisualustoina. Mitä enemmän järjestelmiä on murrettu, sitä voimakkaampi hyökkäys saadaan aikaan. Esimerkki tällaisesta hyökkäyksestä on ' stacheldraht '. Lisätietoja hajautetuista DoS-hyökkäyksistä ja niiltä suojautumisesta saat Paul Fergusonin sivustolta Denialinfo.

Työkalut

Käytetyt työkalut ovat äärimmäisen helppokäyttöisiä. Useimmat on tehty suorittamaan vain yhtä tehtävää, eikä niiden toiminnassa ole paljoa vaihtoehtoja. Ensimmäisillä työkaluilla rakennetaan IP-tietokanta. Nämä toimivat puhtaan satunnaisesti, ja skannaavat Internettiä mitään erottelematta. Esimerkiksi, erään työkalun käytössä on yksi parametri, vaihtoehtoina A, B tai C. Valittu kirjain määrää skannattavan verkon koon. Ohjelma sitten valitsee satunnaisesti mitä valitun kokoista verkkoa skannaa. Toinen vastaava taas käyttää domainin nimeä (z0ne on erinomainen esimerkki). Työkalu rakentaa IP-tietokannan suorittamalla aluekyselyitä valitusta domain-nimestä ja kaikista alidomaineista. Käyttäjät ovat rakentaneet yli kahden miljoonan IP:n tietokantoja skannaamalla koko .com- tai .edu-domainia.

Kun osoitteet on näin saatu, niitä skannataan toisenlaisilla työkaluohjelmilla tarkoituksena löytää heikkouksia esimerkiksi tutkimalla named:in versiota, käyttöjärjestelmää tai järjestelmässä ajettavia palveluita. Kun haavoittuvat järjestelmät on löydetty, murtautuja iskee. On olemassa useita työkaluja jotka yhdistävät kaikki nämä ominaisuudet yhteen, kuten jsbachin sscan tai cracker.pl . Lisää näiden työkalujen käytöstä kerrotaan osassa Tunne vihollisesi: II .

Kuinka suojautua

On olemassa keinoja, joilla suojautua tätä uhkaa vastaan. Ensinnäkin, skriptipentu tavoittelee helppoa saalista ja etsii yleisiä tunnettuja turva-aukkoja. Varmista, etteivät järjestelmäsi ja verkkosi ole haavoittuvaisia näiltä osin. www.cert.org ja www.ciac.org ovat erinomaisia tiedonlähteitä tunnetuista tietoturva-aukoista. Lisäksi postilista bugtraq (arkisto osoitteessa www.securityfocus.com) on eräs parhaista tiedonlähteistä.

Toinen tapa suojautua on ajaa pelkästään niitä palveluita, joita todella tarvitset. Ellet tarvitse jotain palvelua, poista se. Jos palvelua tarvitaan, pidä huoli että se on tuorein versio. Jos haluat esimerkkejä, katso Armoring Solaris, Armoring Linux tai Armoring NT.

Kuten Työkalut-osassa kerrottiin, DNS-palvelimia käytetään usein hankittaessa tietokantaa skannattavista järjestelmistä. Rajoita järjestelmiä, joista voidaan tehdä aluesiirtoja nimipalvelimiltasi. Kerää kaikki luvattomat yritykset lokiin ja seuraa niitä. Suosittelen päivittämään uusimpaan BINDin (DNS-palvelinohjelma) versioon, jonka löydät osoitteesta www.isc.org/bind.html.

Lopuksi, tarkkaile järjestelmiäsi tunnustelujen varalta. Kun havaitset sellaisia, voit jäljittää yrityksiä ja ymmärtää paremmin verkkoosi kohdistuvia uhkia, sekä reagoida näihin uhkiin.

Johtopäätös

Skriptipennut uhkaavat kaikkia järjestelmiä. He skannaavat kaikkia järjestelmiä, riippumatta niiden sijannista tai arvosta. Ennemmin tai myöhemmin sinunkin järjestelmääsi koetellaan. Ymmärtämällä heidän motiivinsa ja menetelmänsä voit suojata järjestelmäsi paremmin tätä uhkaa vastaan.

HUOM: Kiitokset Brad Powellille Sunin Security Teamissa hänen avustaan tätä artikkelia kirjoitettaessa


Kirjoittaja
Lance Spitzner nauttii asioiden opettelusta tuhoilemalla kotonaan Unix-järjestelmiä. Tätä ennen hän oli valmiusjoukkojen upseeri, missä tehtävässä hän tuhosi hieman eri laatuisia asioita. Hänet voi tavoittaa sähköpostiosoitteesta lance@spitzner.net.

Suomentaja
Antti Sinisalo aesinis@cc.jyu.fi


Last modified: Mon Mar 13 01:39:20 EET 2000