[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)]