-
Translated by Mikko Heikkinen (ITKST56 course assignment at JYU.FI)
-
[Musiikkia]
-
OK. Seuraavaksi puhuu Timo Longin,
-
joka tunnetaan myös nimellä Timo Login.
-
Hän tietoturvakonsultti ja tutkija. Hän tulee puhumaan uudesta tekniikasta
-
nimeltään SMTP Smuggling,
-
jolla voidaan väärentää sähköposteja
-
ja hyväksikäyttää eräitä eniten käytettyjä palveluita internetissä.
-
Kiitos. Annetaan Timolle applodit.
-
[Applodeja]
-
Kiitos esittelystä.
-
Ensinnäkin, pulskat pahoittelut omasta ja SEC Consult:n puolesta
-
tämän katastrofaalisen haavoittuvuuden julkaisemisesta.
-
Erityisesti pahoittelut Wietselle ja Viktorille korjausten jälkikorjauksesta
-
sekä kaikille järjestelmävalvojille ympäri maailman,
-
jotka ovat joutuneet asentamaan korjauksia joululoman aikana.
-
Ja lisäksi, joka tapauksessa,
-
suuret kiitokset Wietselle ja Viktorille
-
heidän sitoutumisestaan.
-
Ja lisäksi suuret kiitokset yhteisölle
-
tämän ongelman viemisestä julkaisujärjestelmiin ja niin edelleen.
-
Ja kaikille... Okei...
-
[Applodeja]
-
Ja kaikille niille,
-
joilla ei ole mitään hajua tästä.
-
Joten minäpä autan teidät samalle sivulle.
-
Noin vuosi sitten olin juuri
-
lopettanut tutkimukseni DNS:n parissa.
-
ja etsin uutta tutkimuskohdetta,
-
kun löysin todennäköisesti helpoimman
-
tavan hakkeroida yrityksen
-
ja kaikki tämä vain yhdellä
-
yksinkertaisella Google-haulla.
-
[Yleisön naurua]
-
Ja tämä saattaa kuulostaa tyhmälle,
-
mutta tämä johdatti minut suuntaan,
-
jonka jo tiesin, mutta en ollut ymmärtänyt.
-
Ja se on, että tietojen kalastelu on edelleen
-
numero 1 ensipääsyvektori yritykseen
-
ja sitten minulla välähti:
-
Miksen tutkisi SMTP:tä,
-
simple mail transfer protocol:aa
-
jota käytetään miljardien sähköpostien
-
lähettämiseen joka päivä ympäri maailman
-
kuten on tehty viimeisen 40 vuoden ajan.
-
Joten matkani eteni DNS:stä SMTP:hen
-
ja tänään esittelen uuden
-
SMTP Smuggling -tekniikan
-
sähköpostien väärentämiseksi.
-
Kuka olenkaan? OIen Timo Longin
-
ja työskentelen tietoturvakonsulttina
-
SEC Consult -yhtiössä ja
-
päivisin teen penetraatiotestausta
-
ja öisin teen haavoittuvuustutkimusta.
-
Ja viimeisen kolmen vuoden aikana olen
-
tutkinut paljon DNS-haavoittuvuuksia.
-
Ja olen julkaissut paljon blogikirjoituksia ja työkaluja.
-
Ja minun täytyi siirtyä eteenpäin.
-
Edellisen kerran, kun joku SEC Consult:sta puhui CCC:ssä...
-
se oli... dildoista.
-
[Yleisön naurua]
-
Ja tiedän, että joudun tuottamaan osalle
-
teistä pettymyksen,
-
mutta tämä esitys ei kerro
-
ihmiseen penetroitumisesta.
-
Not Synced
Esitys kertoo tunkeutumisesta SMTP-protokollan muurien läpi.
-
Not Synced
Joten nähdäksemme miten tämä toimii
-
Not Synced
on meidän ensin ymmärrettävä
-
Not Synced
miten sähköpostien lähetys yleensäkin toimii.
-
Not Synced
Joten tässä meillä on melko yksinkertainen sähköposti-infrastuktuuri.
-
Not Synced
Meillä on sähköpostikäyttäjäagentti,
-
Not Synced
kuten Thunderbird, ja Thunderbird haluaa lähettää sähköpostin
-
Not Synced
esimerkiksi käyttäjänä user@outlook.com.
-
Not Synced
Joten jos haluamme lähettää sähköpostin tällä tavalla
-
Not Synced
meidän täytyy ensin tunnistautua
-
Not Synced
Outlook mail transfer agentille tai
-
Not Synced
ulospäin menevälle SMTP palvelimelle.
-
Not Synced
Ja kun olemme tunnistautuneet,
-
Not Synced
voimme lähettää sähköpostin käyttäjänä user@outlook.com.
-
Not Synced
Ja vain käyttäjänä user@outlook.com.
-
Not Synced
Tämän jälkeen viesti siirretään vastaanottajan
-
Not Synced
SMTP-palvelimelle ja tämä palvelin
-
Not Synced
tarkistaa viestin aitouden.
-
Not Synced
Ja kaikkein yleisen tapa tehdä tämä on SPF.
-
Not Synced
Vastaanottava SMTP-palvelin saa SPF-tietueen
-
Not Synced
DNS-palvelun kautta outlook.com osoitteelle.
-
Not Synced
Ja tarkistaa sen jälkeen, että tämä IP-osoite
-
Not Synced
ja IP-alue on sallittu lähettää sähköpostiviestejä
-
Not Synced
outlook.com osoitteelle.
-
Not Synced
Tässä tapauksessa todellinen Outlook SMTP-palvelin
-
Not Synced
tai ulospäin lähtevä SMTP-palvelin lähetti viestin,
-
Not Synced
vastaanottava SMTP-palvelin
-
Not Synced
hyväksyy viestin.
-
Not Synced
Ja nyt luonnollisesti tässä on erittäin
-
Not Synced
mielenkiintoinen kysymys.
-
Not Synced
Ja kysymys on: onko hyökkääjän mahdollista
-
Not Synced
lähettää sähköpostiviesti
-
Not Synced
esimerkiksi osoitteesta admin@outlook.com tai
-
Not Synced
väärennetystä sähköpostiosoitteesta?
-
Not Synced
Tätä me selvitämme tänään
-
Not Synced
ja se on enemmän tai vähemmän
-
Not Synced
tämän tutkimuksen tavoitteista.
-
Not Synced
En tiedä oletteko huomanneet,
-
Not Synced
mutta näiden palvelimien värit
-
Not Synced
muistuttavat minusta Paavo Pesusieneä
-
Not Synced
ja Patrik Tähtöstä.
-
Not Synced
Ja sen vuoksi kutsumme niitä niiksi.
-
Not Synced
Tutkimuksen yleinen tavoite ja
-
Not Synced
tutkimuksen peruste oli löytää
-
Not Synced
tapa väärentää sähköposteja.
-
Not Synced
Ja ajattelin, että miksi en ottaisi haavoittuvuuksia
-
Not Synced
muista tekstipohjaisista protokollista,
-
Not Synced
kuten HTTP:stä, ja soveltaisi niitä SMTP:hen.
-
Not Synced
Ja oli yksi HTTP haavoittuvuus, joka sopi kuvaan
-
Not Synced
ja se oli HTTP-pyynnön käpelöinti.
-
Not Synced
Tässä meillä on taas Paavo ja Patrik,
-
Not Synced
mutta tällä kertaa HTTP-maailmassa.
-
Not Synced
Joten, mitä tässä tapahuu? Paavo Pesusieni saa
POST-tyyppisen pyynnön internetin yli
-
Not Synced
Mielenkiintoista tässä pyynnössä on se,
että siinä on kaksi otsikkoa
-
Not Synced
kuinka käsitellä POST-pyynnön data.
-
Not Synced
Siinä on Content-Length -otsikko, jonka arvona
43 tavua.
-
Not Synced
Ja siinä on myös Transfer-Encoding -otsikko.
-
Not Synced
Nyt Paavo Pesusienen täytyy päättää,
miten käsittelen pyynnön ja Paavo päättää
-
Not Synced
käyttää Content-Length otsikkoa, koska se on
43 tavua.
-
Not Synced
Joten kaikki punaisella kehystetty data
on välitetty Patrikille.
-
Not Synced
Patrikilla ei ole mitään hajua mitä tehdä - pitäisikö
minun tulkita Content-Lenth otsikkoa vai
-
Not Synced
Transfer-Encoding -otsikko? Patrik päättää
tulkita Transfer-Encoding otsikkoa ja
-
Not Synced
nyt meillä on eriävät tulkinnat:
-
Not Synced
Paavo Pesusieni käyttää Content-Length -otsikkoa
ja Patrik Tähtönen käyttää Transfer-Encoding -otsikkoa.
-
Not Synced
Ja koska Transfer-Encoding on määritetty "chunked" ("paloiteltu") ja
ja ensimmäinen pala on 0,
-
Not Synced
on loput Paavo Pesusienen lähettämästä datasta
tulkittu toiseksi pyynnöksi.
-
Not Synced
Itse asiassa tämä tarkoittaa, että Paavo näkee
yhden pyynnön ja Patrik kaksi pyyntöä.
-
Not Synced
Ja toinen pyyntö voidaan kohdistaa mielivaltaiseen
resurssipolkuun, kuten "Admin",
-
Not Synced
joka tässä esimerkissä on avoin vain sisäisesti
palvelimella.
-
Not Synced
Joka on tietenkin ongelma.
-
Not Synced
Joten ajattelin, että miksi en ottaisi
näitä tulkintaeroja
-
Not Synced
ja laittaisi niitä SMTP:hen.
-
Not Synced
Ymmärtääksemme... tai ainakin päästäksemme
lähemmäs ymmärrystä miten tämä toimii,
-
Not Synced
täytyy meidän katsoa ensin itse SMTP
protokollaa.
-
Not Synced
Joten, SMTP näyttää kuta kuinkin tältä.
-
Not Synced
Meillä on kaksi komponenttia: SMTP komennot
punaisella ja sinisellä viestin data.
-
Not Synced
Lähettääksemme viestin, meidän tulee ensin
lähettää SMTP komennot:
-
Not Synced
Meidän pitää esitellä itsemme, kertoa lähettäjän
osoite, yksi tai useampi vastaanottajan osoite ja
-
Not Synced
sitten lähetämme "data" komennon
kertoaksemme vastaanottavalle SMTP-palvelimelle
-
Not Synced
että olemme nyt vastaanottamassa varsinaista
viestin dataa.
-
Not Synced
Ja sitten lähetämme viestin datan: määrittelemme
lähettäjän osoitteen uudelleen, vastaanottajan osoitteen
ja viestin aiheen.
-
Not Synced
Ja sitten tulee viestin leipäteksti.
-
Not Synced
Ja kun jossain vaiheessa haluamme
lopettaa viestin datan lähettämisen,
-
Not Synced
meidän tulee lähettää jotain. jota kutsumme
datan lopetussekvensiksi.
-
Not Synced
Se on "<paluu rivin alkuun><rivinvaihto> piste <paluu rivin alkuun><rivinvaihto>"
[kääntäjän kommentti: jatkossa .]
-
Not Synced
Tässä vaiheessa ajattelin, että ehkä voisimme
hämätä tällä jotenkin SMTP-palvelinten toteutuksia.
-
Not Synced
Ajatus oli siis, että meillä on jälleen Paavo Pesusieni
ja lähetämme sähköpostin Paavo Pesusienelle [SIC].
-
Not Synced
Ja tämä sähköposti sisältää jotain
todella outoa, jotain joka näyttää
-
Not Synced
lopetussekvensille, mutta se ei ole sitä.
-
Not Synced
Koska se ei ole yhdenmukainen RFC:n kanssa, joku
voisi virheellisesti tulkita sen datan lopetussekvensiksi.
-
Not Synced
Joten Paavo Pesusieni katsoo tätä ja ajattelee
ettei tämä ole RFC:stä, en tulkitse tätä
"end-of-data" sekvensiksi
-
Not Synced
Ja seuraavaksi... tai viestin data siihen saakka,
kunnes varsinainen "end-of-data" sekvenssi tulee.
-
Not Synced
Sitten Paavo Pesusieni lähettää viestin Patrikille
-
Not Synced
Ja Patrik on "Jeah, en välitä mistään RFC:stä ja
ja tulkitsen väärän datan lopetussekvenssi
-
Not Synced
varsinaiseksi datan lopetusmerkiksi."
-
Not Synced
Ja ongelmaksi tässä tulee, että kaikki väärin
tulkitun lopetussekvenssin tulkitaan SMPT-komennoiksi
-
Not Synced
Ja nyt hyökkääjänä voimme luoda SMTP-komentoja,
jotka lähettävät toisen sähköpostiviestin.
-
Not Synced
Vaikka Paavo Pesusieni näki yhden ison
sähköpostiviestin