[Translated by Sampsa Suvivuo (KYBS2001EN23K2 course assignment at JYU.FI)] 35c3 alkumusiikki Johdatus tietoverkkoturvallisuuteen Seuraavan esityksen "Johdatus tietoverkkoturvallisuuteen" pitää nomaster. Nomaster on osa Chaosdorfia, aktiivinen jäsen ja lähestyy ongelmia käytännönläheisesti. Uskon että saamme käytännönläheisen johdatuksen tietoverkkoturvallisuuteen. Tervetuloa, nomaster. Kiitos. Tämä on ensimmäinen puheeni kongressissa ja olen niin innoissani, että toivon pysyväni kasassa. Olen iloinen, että olette täällä. Minua pyydettiin pitämään esitys, joka on mahdollisesti enemmän aloittelijoille suunnattu. Toivon, että voitte nauttia esityksestä ja pysytte kyydissä, mutta ettette myöskään ole kuullut kaikkea jo aiemmin. Katsotaan miten sujuu. Ajatus on antaa käytännöllisiä esimerkkejä tietoverkkoturvallisuuden ongelmista. Saamme paljon kyselyjä, onko tähän verkkoon turvallista yhdistää? Yleensä vastaus on, ettei verkko itsessään ole turvallinen. Sinun järjestelmäsi ja kannettavasi tulisi olla turvallisia. Mikä on realistinen esimerkki, mitä voisi tapahtua? Sen haluan näyttää teille ja minulla on kolme esimerkkiä sitä varten. Toivottavasti saatte oivalluksia. Verkkopino Tarvitsemme hieman pohjustusta ennen kuin aloitamme. Tässä on yliyksinkertaistettu verkkopino. Kuten olette voineet kuulla, verkkopino perustuu kerroksiin. Jokaisella tietokoneella on MAC-osoite, joka ei liity millään tavalla Applen tuotteisiin. Lisäksi on IP-osoite. Näiden päällä meillä on sovellus, joka käyttää TCP tai UDP sockettia ja sille määriteltyä protokollaa kuten HTTPS. Millä on merkitystä meille ovat nämä kaksi kerrosta tässä (TCP/IP), koska tämä on käyttämäsi verkko ja sen toimintaan osallistuvat protokollat. Muu on osa järjestelmää, käyttäjän laitetta tai palvelinta ja mihin data virtaa. Mitä haluamme saavuttaa on, ettei kukaan muu pääse käsiksi sovellukseen kuin käyttäjä ja palvelin. Yksityisyytesi on vaarassa, kun kolmansilla osapuolilla on pääsy sovellukseen. Voimme puhua HTTPS:stä myöhemmin. Jotta olisimme samalla sivulla, helppo esimerkki. IP-osoite IPv4-muodossa, esimerkiksi kotireitittimen, ja IPv6-muodossa, joka on vain pidempi ja usein kirjoitettu heksadesimaalina. Sitten on MAC-osoite eli jokaiselle tietokoneelle uniikki osoite verkossa. Tavanomaisesti tämä on "poltettu" laitteeseesi. Käynnistyessään tietokoneesi käyttää MAC-osoitettaan verkon kanssa viestimiseen ja esimerkiksi IP-osoitteen saamiseksi. Pahoja asioita voi tapahtua tässä kohtaa. ARP-väärennös Ensimmäinen esimerkki on ARP-väärennös. Kuka on kuullut siitä? Eli ei mitään mieltä selittää sitä. Luulen, ettei takarivi nostanut käsiään. Yleensä pidän valkotauluista. Minulla ei ole sellaista täällä, joten tein koneellani viime yönä muutaman. Toivottavasti pystytte lukemaan ne. Käsialani on huono. Käytämme ARP-protokollaa selvittämään IP-osoitetta vastaavan MAC-osoitteen. Kuten tiedätte, kerroin sen juuri, MAC-osoite on "poltettu" laitteeseen ja IP-osoite, jota tietokone käyttää verkon kanssa viestimiseen, määritetään laitteelle erikseen. Tarvitsemme tämän osoitteen pakettien lähettämiseksi koneellesi. Paketin täytyy todennäköisesti matkustaa maailman ympäri saavuttaakseen määränpäänsä. Tämän takia meillä on kaksi täysin erilaista osoiteavaruutta. Yksi, joka antaa tietokoneellesi aina käytetyn uniikin osoitteen eli MAC-osoitteen. Ja toinen, IP-osoite, joka on aina yksilöllinen sijainnillesi. Nopeimmat tajusivat, ettei IPv4-osoite, jonka näytin aiemmin, ole todellisuudessa uniikki, mutta yksinkertaistamme asioita. Paikallisverkossa reitittimesi on välitettävä paketit tietokoneellesi. Voidakseen tehdä sen, tietokoneen MAC-osoitteeseen kytketyn IP-osoitteen, johon paketti lähetettiin, on oltava reitittimen tiedossa. Tässä tapauksessa asiakasohjelma kysyy reitittimen IP-osoitetta. Se lähettää broadcast-viestin verkolle ARP-taulukon kautta kysyen "Kenellä on IP-osoite?" Reititin vastaa IP-osoitteen olevan sen MAC-osoitteessa. Jos katsotte tarkkaan, reititin lähettää paketin sanoen IP-osoitteen olevan tässä MAC-osoitteessa. Pysyttekö mukana? Jos joku yrittää varastaa liikennettänne, nämä voivat lähettää vastauksen sanoen "Joku kysyi reitittimen MAC-osoitetta", ja MAC-osoite on heidän osoitteensa. He lähettävät oman väärennetyn MAC-osoitteensa verkolle, jolloin asiakasohjelma oppii osoitteen ja lähettää paketit hyökkääjälle. Katsomme tätä hyökkääjän näkökulmasta. Asiakasohjelman ongelma on, että se näkee vain tavanomaisen datavirran. Asiakasohjelma lähettää datan hyökkääjälle, joka välittää liikenteen reitittimelle ja takaisin. Näin ollen, hyökkääjä voi tarkkailla verkossa tapahtuvaa liikennettä. Luonnollisesti, jos saat kaapattua paketin, pystyt muokkaamaan sitä. Tämä on hyvin perinteinen verkkohyökkäys. Kun tiedätte, miten se toimii, pystytte toivottavasti myös estämään sen. Tämän päivän verkkokytkimissä on turvaominaisuuksia, mutta teidän on oltava tietoisia, että kaikissa verkoissa näin ei aina ole. Jokainen kohtaamanne verkko on luultavasti haavoittuvainen tämän kaltaiselle hyökkäykselle. DNS-kaappaus Seuraavaksi DNS-kaappaus. Tämä hyökkäys tapahtuu toisella verkon kerroksella perustuen DNSään. DNS yhdistää isäntänimen (hostname) IP-osoitteeseen, joten meillä on tässä uusi kerros. Ei IP:stä MAC-osoitteeseen vaan isäntänimestä IP-osoitteeseen. Tämä mahdollistaa samankaltaisen hyökkäyksen, muttei vain paikallisverkossa vaan myös jokaiselle isäntänimelle internetissä. Yritämme päästä käsiksi DNS-serverin IP-osoitteeseen. Tavallisesti asiakasohjelma kysyy osoitetta DNS-serveriltä, johon se yrittää yhdistää. Tässä tapauksessa IPv4-osoitteeseen, jonka DNS-palvelin palauttaa. Asiakasohjelma yhdistää serveriin ja saa vastauksen takaisin. Päivänselvästi, jos saamme haltuumme DNS-serverin osoitteen, voimme tehdä kuten viimeksi. Emme voi lähettää MAC-osoitettamme, koska emme ole samassa lähiverkossa, mutta voimme lähettää oman IP-osoitteemme, johon asiakasohjelma ottaa yhteyttä. Mikä tahansa isäntänimi internetissä. Sitten asiakasohjelma lähettää, vastaamme omalla IP-osoitteellamme, liikennettä meidän kauttamme. Välitämme liikenteen serverille ja näemme, jokaisen kyselyn. Emme näe serveriltä asiakasohjelmalle menevää liikennettä. Se vaatisi palvelimen haltuun ottamista. Muistakaa, ettei liikenteen sisältö ole välttämättä hyökkääjää kiinnostavaa. He haluavat tietää, mitä osoitteita pyydät. Monet yksityisyysongelmat juontuvat pakettien metadatasta. Tosin tässä tapauksessa muu data on kiinnostavampaa. Eli mitä isäntänimeä pyydät. Voitte kuvitella joidenkin isäntänimien olevan pahempia paljastaa kuin toiset. Valvomaton/villi yhteyspiste Siinä oli esimerkit tavanomaisista verkoista. Saamme myös paljon kyselyitä yhteyspisteistä. Ne ovat monimutkaisempi kuvio. Kun yhdistämme tietokoneen kytkimeen, otamme kaapelin ja yhdistämme sen kytkimeen. Tietokone on kytketty siihen kytkimeen. Langaton järjestelmä toimii hyvin samalla tavalla. Insinöörit kehittivät wifin toimimaan langattomana ethernettinä. Eli se toimii aivan kuten yhdistäisin tietokoneeni kytkimeen, mutta kytkimen sijaan se on yhdistetty yhteyspisteeseen. Tietokoneeni valitsee automaattisesti yhteyspisteen, johon muodostaa yhteys. Ikään kuin minulla olisi avustaja, joka yhdistäisi johdon kytkimestä toiseen liikkuessani, jottei minun tarvitse välittää asiasta, kunhan yhteys pysyy päällä. Kun ajattelemme asiaa näin, voimme nähdä ongelmia. Mitä meidän on tiedettävä ensin on, että verkko tunnistetaan SSID:llä. Eli tiedän, mihin kytkinten ryhmään haluan yhdistää. Konferenssin verkko on nimeltään 35C3 Network" ja olette todennäköisesti valinneet jonkin siistin nimen kotiverkollenne. Kotiverkossanne on yksi yhteyspiste ja täällä meillä on satoja. Tietokoneenne vaihtaa yhteyspistettä jatkuvasti. Estääksemme naapureitasi liittymästä verkkoosi, käytämme salausprotokollia. Aiemmin oli WEP, joka on suoraan sanottuna rikki ja vanhentunut. Tänä päivänä meillä on WPA-protokolla, joka hyödyntää ennakkoon jaettua avainta, wifi-salasanaa. Tavanomaisesti menet naapurisi tai kaverisi luokse tai kahvilaan ja pyydät heiltä wifin salasanaa. Yksi ongelma on, että se vain estää muita tahoja käyttämästä verkkoasi. Jokainen, jolla on hallussa ennakkoon jaettu avain, pystyy yhdistämään verkkoosi ja mahdollisesti purkamaan liikenteen salauksen. Toinen ongelma on, että voin asettaa toisen yhteyspisteen, jolla on sama SSID, kuin olemassa olevalla verkolla. Se ei ole kuitenkaan virallinen yhteyspiste. Mitä tapahtuu seuraavaksi on, että käyttäjä yhdistää yhteyspisteeseeni, esimerkiksi koska yhteys on vahvempi. Hyökkääjä voi siirtää pistettä lähemmäksi kohdetta ja lähettää saman SSID:n kuin oikea yhteyspiste. Käyttäjä ottaa yhteyden väärään yhteyspisteeseen ja lähettää liikennettä sen kautta. Ja totta kai myös vastaanottaa. Voisit tehdä sen tässä verkossa. Pyydämme painokkaasti, ettet tee niin. Yksi syy, miksi emme halua liian monia yhteyspisteitä ja kanavia tänne. Toinen on, ettei sinun pitäisi hyökätä toisten ihmisten tietokoneisiin. Selitän miten tämä toimii, jotta voitte estää sen. Onko selvä? Tässä kongressissa meillä on käytössä yrityskäyttöön tarkoitettu järjestelmä, joka käyttää ylimääräistä salauskerrosta estämässä teitä tekemästä niin. Yhteyspiste tarvitsee sertifikaatin todistaakseen, että se on virallinen yhteyspiste. Mitä tapahtuu seuraavaksi on, että tietokoneesi tarkastaa salaustekniikan avulla, että yhteyspiste on oikea. Kun kytket Android-sovelluksesi langattomaan verkkoon täällä, vain virallisella yhteyspisteellä on sovelluksessa oleva sertifikaatti. Tietokoneesi eli tässä tapauksessa älypuhelimesi, varmistaa automaattisesti yhteyspisteen aitouden. Kannettavallasi sinun on tehtävä tämä käsin. Kokeilkaa sitä. Menkää Wikiin. Sieltä löytyy tiedot yhteyden konfiguroimiseksi. Hieman kättelyprotokollaa, hieman salaustunnelointia. Domain nimi, sertifikaatin tunniste. Ja voit sanoa, "varmista sertifikaatin olevan virallinen." Vasta sitten tämä hyökkäys ei toimi enää. Kotonasi sinulla ei todennäköisesti ole yritystason autentikaatiojärjestelmiä, joka tarvitsee serverin ja joka pitää konfiguroida. Tavallisesti kotiverkoilla ei ole näitä. Tulevaisuudessa WPA3 tuo vastaavanlaisen suojan. Yhteenveto Mitä on tehtävissä? Suositukseni sinulle. Varmista, että sinulla on perustiedot protokollista ja standardeista. Tutki netissä RFC:eitä, Request For Comments, protokolladokumentteja, jotka kertovat, miten ne oikeasti toimivat. Kun luet ne huolella, opit samalla, mikä kaikki voi mennä vikaan. Internetistä löytyy runsaasti esitelmääni selkeämpiä selostuksia näistä ja monista muista asioista. Nämä antavat laajemman käsityksen siitä, miten asiat toimivat. Tämä antaa myös näkemystä itsesi suojelemiseen. Jos haluat tehdä vain sen, käytä HTTPS:ää, joka on turvallinen protokolla sovellukselle. Eli asiakasohjelma varmistaa, että se on yhteydessä oikeaan palvelimeen ja salaa liikenteen. Suurin osa liikenteestäsi ei ole havaittavissa, vaikka nämä hyökkäykset olisivatkin käynnissä, mikä on tärkeää. Salattu HTTPS-liikenne on onneksi lisääntynyt kiitos Let's Encrypt organisaation ja olemme kiitollisia siitä Halutessasi voit kokeilla oman yritystason WPA-autentikointijärjestelmän luomista. Käytännönläheisempi asia kannettavallasi kongressin verkossa on tarkastella liikennettä sudo tcpdump -komennolla ja näet pakettien virtavaan sisään ja ulos kannettavastasi. Voit tarkistaa pakettien käyttämän reitin traceroute ohjelmistolla tai kehittyneemmällä mtr:llä. Voit oppia paljon käyttämällä Scapyn kaltaista ohjelmaa. Suosittelen. Se on yksinkertainen python komentotulkki, jonka avulla voit väärentää paketteja. Voit luoda paketin, jolla on tietty lähtöosoite ja määränpää ja näyttää tietynlaiselta. Kunnioittakaa muita. Olkaa mainioita toisillenne. Käyttäkää näitä työkaluja oppiaksenne kuinka liikenne järjestelmienne välillä tai mahdollisesti ystävänne järjestelmään toimii. Kokeile yhdessä muiden paikallaolijoiden kanssa. Toivottavasti sain herätettyä mielenkiintonne. Aikani on lopussa eikä meillä valitettavasti ole aikaa kyselyosiolle. Kiitos. 35c3 loppumusiikki [Translated by Sampsa Suvivuo (KYBS2001EN23K2 course assignment at JYU.FI)]