Return to Video

37C3 - SMTP Smuggling – Spoofing E-Mails Worldwide

  • 0:00 - 0:05
    Translated by Mikko Heikkinen (ITKST56 course assignment at JYU.FI)
  • 0:05 - 0:14
    [Musiikkia]
  • 0:14 - 0:18
    OK. Seuraavaksi puhuu Timo Longin,
  • 0:19 - 0:22
    joka tunnetaan myös nimellä Timo Login.
  • 0:22 - 0:27
    Hän tietoturvakonsultti ja tutkija. Hän tulee puhumaan uudesta tekniikasta
  • 0:28 - 0:30
    nimeltään SMTP Smuggling,
  • 0:30 - 0:32
    jolla voidaan väärentää sähköposteja
  • 0:32 - 0:34
    ja hyväksikäyttää eräitä eniten käytettyjä palveluita internetissä.
  • 0:34 - 0:37
    Kiitos. Annetaan Timolle applodit.
  • 0:38 - 0:42
    [Aplodeja]
  • 0:43 - 0:45
    Kiitos esittelystä.
  • 0:45 - 0:50
    Ensinnäkin, pulskat pahoittelut omasta ja SEC Consult:n puolesta
  • 0:50 - 0:54
    tämän katastrofaalisen haavoittuvuuden julkaisemisesta.
  • 0:55 - 1:01
    Erityisesti pahoittelut Wietselle ja Viktorille Postfixin korjaamisesta.
  • 1:01 - 1:05
    sekä kaikille järjestelmävalvojille ympäri maailman,
  • 1:06 - 1:09
    jotka ovat joutuneet asentamaan korjauksia joululoman aikana.
  • 1:09 - 1:12
    Ja lisäksi, joka tapauksessa,
  • 1:12 - 1:16
    suuret kiitokset Wietselle ja Viktorille
  • 1:16 - 1:18
    heidän sitoutumisestaan.
  • 1:18 - 1:20
    Ja lisäksi suuret kiitokset yhteisölle
  • 1:20 - 1:25
    tämän ongelman viemisestä julkaisujärjestelmiin ja niin edelleen.
  • 1:26 - 1:28
    Ja kaikille... Okei...
  • 1:28 - 1:33
    [Aplodeja]
  • 1:35 - 1:37
    Ja kaikille niille,
  • 1:37 - 1:39
    joilla ei ole mitään hajua tästä.
  • 1:39 - 1:42
    Joten minäpä autan teidät samalle sivulle.
  • 1:42 - 1:44
    Noin vuosi sitten olin juuri
  • 1:44 - 1:46
    lopettanut tutkimukseni DNS:n parissa.
  • 1:46 - 1:49
    ja etsin uutta tutkimuskohdetta,
  • 1:49 - 1:52
    kun löysin todennäköisesti helpoimman
  • 1:52 - 1:54
    tavan hakkeroida yrityksen
  • 1:54 - 1:56
    ja kaikki tämä vain yhdellä
  • 1:56 - 1:58
    yksinkertaisella Google-haulla.
  • 1:58 - 2:01
    [Yleisön naurua]
  • 2:01 - 2:04
    Ja tämä saattaa kuulostaa tyhmälle,
  • 2:04 - 2:06
    mutta tämä johdatti minut suuntaan,
  • 2:06 - 2:08
    jonka jo tiesin, mutta en ollut ymmärtänyt.
  • 2:08 - 2:11
    Ja se on, että tietojen kalastelu on edelleen
  • 2:11 - 2:14
    numero 1 ensipääsyvektori yritykseen
  • 2:14 - 2:16
    ja sitten minulla välähti:
  • 2:16 - 2:18
    Miksen tutkisi SMTP:tä,
  • 2:18 - 2:20
    simple mail transfer protocol:aa
  • 2:20 - 2:23
    jota käytetään miljardien sähköpostien
  • 2:23 - 2:25
    lähettämiseen joka päivä ympäri maailman
  • 2:25 - 2:27
    kuten on tehty viimeisen 40 vuoden ajan.
  • 2:27 - 2:30
    Joten matkani eteni DNS:stä SMTP:hen
  • 2:31 - 2:33
    ja tänään esittelen uuden
  • 2:33 - 2:35
    SMTP Smuggling -tekniikan
  • 2:35 - 2:37
    sähköpostien väärentämiseksi.
  • 2:37 - 2:40
    Kuka olenkaan? OIen Timo Longin
  • 2:40 - 2:42
    ja työskentelen tietoturvakonsulttina
  • 2:42 - 2:43
    SEC Consult -yhtiössä ja
  • 2:43 - 2:45
    päivisin teen penetraatiotestausta
  • 2:45 - 2:48
    ja öisin teen haavoittuvuustutkimusta.
  • 2:48 - 2:50
    Ja viimeisen kolmen vuoden aikana olen
  • 2:51 - 2:53
    tutkinut paljon DNS-haavoittuvuuksia.
  • 2:53 - 2:56
    Ja olen julkaissut paljon blogikirjoituksia ja työkaluja.
  • 2:56 - 2:59
    Ja minun täytyi siirtyä eteenpäin.
  • 2:59 - 3:03
    Edellisen kerran, kun joku SEC Consult:sta puhui CCC:ssä...
  • 3:05 - 3:07
    se oli... dildoista.
  • 3:07 - 3:09
    [Yleisön naurua]
  • 3:09 - 3:12
    Ja tiedän, että joudun tuottamaan osalle
  • 3:12 - 3:14
    teistä pettymyksen,
  • 3:14 - 3:15
    mutta tämä esitys ei kerro
  • 3:15 - 3:17
    ihmiseen penetroitumisesta.
  • 3:18 - 3:22
    Esitys kertoo tunkeutumisesta SMTP-protokollan muurien läpi.
  • 3:22 - 3:25
    Joten nähdäksemme miten tämä toimii
  • 3:25 - 3:27
    on meidän ensin ymmärrettävä
  • 3:27 - 3:29
    miten sähköpostien lähetys yleensäkin toimii.
  • 3:29 - 3:33
    Joten tässä meillä on melko yksinkertainen sähköposti-infrastuktuuri.
  • 3:33 - 3:35
    Meillä on sähköpostikäyttäjäagentti,
  • 3:35 - 3:38
    kuten Thunderbird, ja Thunderbird haluaa lähettää sähköpostin
  • 3:38 - 3:42
    esimerkiksi käyttäjänä user@outlook.com.
  • 3:42 - 3:44
    Joten jos haluamme lähettää sähköpostin tällä tavalla
  • 3:44 - 3:47
    meidän täytyy ensin tunnistautua
  • 3:47 - 3:50
    Outlook mail transfer agentille tai
  • 3:50 - 3:52
    ulospäin menevälle SMTP palvelimelle.
  • 3:52 - 3:55
    Ja kun olemme tunnistautuneet,
  • 3:55 - 3:59
    voimme lähettää sähköpostin käyttäjänä user@outlook.com.
  • 3:59 - 4:02
    Ja vain käyttäjänä user@outlook.com.
  • 4:02 - 4:06
    Tämän jälkeen viesti siirretään vastaanottajan
  • 4:06 - 4:09
    SMTP-palvelimelle ja tämä palvelin
  • 4:09 - 4:13
    tarkistaa viestin aitouden.
  • 4:13 - 4:17
    Ja kaikkein yleisen tapa tehdä tämä on SPF.
  • 4:17 - 4:21
    Vastaanottava SMTP-palvelin saa SPF-tietueen
  • 4:21 - 4:24
    DNS-palvelun kautta outlook.com osoitteelle.
  • 4:24 - 4:27
    Ja tarkistaa sen jälkeen, että tämä IP-osoite
  • 4:27 - 4:30
    ja IP-alue on sallittu lähettää sähköpostiviestejä
  • 4:30 - 4:32
    outlook.com osoitteelle.
  • 4:32 - 4:36
    Tässä tapauksessa todellinen Outlook SMTP-palvelin
  • 4:36 - 4:39
    tai ulospäin lähtevä SMTP-palvelin lähetti viestin,
  • 4:39 - 4:41
    vastaanottava SMTP-palvelin
  • 4:41 - 4:42
    hyväksyy viestin.
  • 4:42 - 4:45
    Ja nyt luonnollisesti tässä on erittäin
  • 4:45 - 4:46
    mielenkiintoinen kysymys.
  • 4:46 - 4:50
    Ja kysymys on: onko hyökkääjän mahdollista
  • 4:50 - 4:52
    lähettää sähköpostiviesti
  • 4:52 - 4:55
    esimerkiksi osoitteesta admin@outlook.com tai
  • 4:55 - 4:57
    väärennetystä sähköpostiosoitteesta?
  • 4:57 - 4:59
    Tätä me selvitämme tänään
  • 4:59 - 5:01
    ja se on enemmän tai vähemmän
  • 5:01 - 5:04
    tämän tutkimuksen tavoitteista.
  • 5:04 - 5:05
    En tiedä oletteko huomanneet,
  • 5:05 - 5:07
    mutta näiden palvelimien värit
  • 5:07 - 5:10
    muistuttavat minusta Paavo Pesusieneä
  • 5:10 - 5:12
    ja Patrik Tähtöstä.
  • 5:12 - 5:15
    Ja sen vuoksi kutsumme niitä niiksi.
  • 5:17 - 5:20
    Tutkimuksen yleinen tavoite ja
  • 5:20 - 5:23
    tutkimuksen peruste oli löytää
  • 5:23 - 5:25
    tapa väärentää sähköposteja.
  • 5:25 - 5:28
    Ja ajattelin, että miksi en ottaisi haavoittuvuuksia
  • 5:28 - 5:30
    muista tekstipohjaisista protokollista,
  • 5:30 - 5:34
    kuten HTTP:stä, ja soveltaisi niitä SMTP:hen.
  • 5:36 - 5:40
    Ja oli yksi HTTP haavoittuvuus, joka sopi kuvaan
  • 5:40 - 5:43
    ja se oli HTTP-pyynnön käpelöinti.
  • 5:43 - 5:48
    Tässä meillä on taas Paavo ja Patrik,
  • 5:48 - 5:51
    mutta tällä kertaa HTTP-maailmassa.
  • 5:51 - 5:58
    Joten, mitä tässä tapahtuu? Paavo Pesusieni saa
    POST-tyyppisen pyynnön internetin yli
  • 5:58 - 6:05
    Mielenkiintoista tässä pyynnössä on se,
    että siinä on kaksi otsikkoa
  • 6:05 - 6:09
    kuinka käsitellä POST-pyynnön data.
  • 6:09 - 6:12
    Siinä on Content-Length -otsikko, jonka arvona
    on 43 tavua.
  • 6:12 - 6:15
    Ja siinä on myös Transfer-Encoding -otsikko.
  • 6:15 - 6:20
    Nyt Paavo Pesusienen täytyy päättää,
    miten käsittelen pyynnön ja Paavo päättää
  • 6:20 - 6:25
    käyttää Content-Length otsikkoa, koska se on
    43 tavua.
  • 6:25 - 6:29
    Joten kaikki punaisella kehystetty data
    on välitetty Patrikille.
  • 6:29 - 6:35
    Patrikilla ei ole mitään hajua mitä tehdä - pitäisikö
    minun tulkita Content-Lenth otsikkoa vai
  • 6:35 - 6:40
    Transfer-Encoding -otsikko? Patrik päättää
    tulkita Transfer-Encoding otsikkoa ja
  • 6:40 - 6:42
    nyt meillä on eriävät tulkinnat:
  • 6:42 - 6:49
    Paavo Pesusieni käyttää Content-Length -otsikkoa
    ja Patrik Tähtönen käyttää Transfer-Encoding -otsikkoa.
  • 6:49 - 6:53
    Ja koska Transfer-Encoding on määritetty "chunked" ("paloiteltu") ja
    ja ensimmäinen pala on 0,
  • 6:53 - 6:58
    on loput Paavo Pesusienen lähettämästä datasta
    tulkittu toiseksi pyynnöksi.
  • 6:59 - 7:04
    Itse asiassa tämä tarkoittaa, että Paavo näkee
    yhden pyynnön ja Patrik kaksi pyyntöä.
  • 7:05 - 7:10
    Ja toinen pyyntö voidaan kohdistaa mielivaltaiseen
    resurssipolkuun, kuten "Admin",
  • 7:10 - 7:14
    joka tässä esimerkissä on avoin vain sisäisesti
    palvelimella.
  • 7:14 - 7:16
    Joka on tietenkin ongelma.
  • 7:16 - 7:20
    Joten ajattelin, että miksi en ottaisi
    näitä tulkintaeroja
  • 7:20 - 7:21
    ja laittaisi niitä SMTP:hen.
  • 7:21 - 7:28
    Ymmärtääksemme... tai ainakin päästäksemme
    lähemmäs ymmärrystä miten tämä toimii,
  • 7:28 - 7:31
    täytyy meidän katsoa ensin itse SMTP
    protokollaa.
  • 7:31 - 7:34
    Joten, SMTP näyttää kuta kuinkin tältä.
  • 7:34 - 7:40
    Meillä on kaksi komponenttia: SMTP komennot
    punaisella ja sinisellä viestin data.
  • 7:41 - 7:47
    Lähettääksemme viestin, meidän tulee ensin
    lähettää SMTP komennot:
  • 7:48 - 7:53
    Meidän pitää esitellä itsemme, kertoa lähettäjän
    osoite, yksi tai useampi vastaanottajan osoite ja
  • 7:53 - 7:59
    sitten lähetämme "data" komennon
    kertoaksemme vastaanottavalle SMTP-palvelimelle
  • 8:00 - 8:03
    että olemme nyt vastaanottamassa varsinaista
    viestin dataa.
  • 8:04 - 8:12
    Ja sitten lähetämme viestin datan: määrittelemme
    lähettäjän osoitteen uudelleen, vastaanottajan osoitteen
    ja viestin aiheen.
  • 8:12 - 8:15
    Ja sitten tulee viestin leipäteksti.
  • 8:15 - 8:18
    Ja kun jossain vaiheessa haluamme
    lopettaa viestin datan lähettämisen,
  • 8:18 - 8:22
    meidän tulee lähettää jotain, jota kutsumme
    datan lopetussekvensiksi.
  • 8:22 - 8:27
    Se on "<paluu rivin alkuun><rivinvaihto> piste <paluu rivin alkuun><rivinvaihto>"
    [kääntäjän kommentti: jatkossa .]
  • 8:29 - 8:37
    Tässä vaiheessa ajattelin, että ehkä voisimme
    hämätä tällä jotenkin SMTP-palvelinten toteutuksia.
  • 8:38 - 8:44
    Ajatus oli siis, että meillä on jälleen Paavo Pesusieni
    ja lähetämme sähköpostin Paavo Pesusienelle [SIC].
  • 8:46 - 8:49
    Ja tämä sähköposti sisältää jotain
    todella outoa, jotain joka näyttää
  • 8:49 - 8:54
    lopetussekvensille, mutta se ei ole sitä.
  • 8:54 - 9:00
    Koska se ei ole yhdenmukainen RFC:n kanssa, joku
    voisi virheellisesti tulkita sen datan lopetussekvensiksi.
  • 9:00 - 9:06
    Joten Paavo Pesusieni katsoo tätä ja ajattelee
    ettei tämä ole RFC:stä, en tulkitse tätä
    "end-of-data" sekvensiksi
  • 9:07 - 9:16
    Ja seuraavaksi... tai viestin data siihen saakka,
    kunnes varsinainen datan lopetussekvenssi tulee.
  • 9:16 - 9:19
    Sitten Paavo Pesusieni lähettää viestin Patrikille
  • 9:19 - 9:26
    Ja Patrik on "Jeah, en välitä mistään RFC:stä ja
    ja tulkitsen väärän datan lopetussekvenssi
  • 9:26 - 9:30
    varsinaiseksi datan lopetusmerkiksi."
  • 9:30 - 9:37
    Ja ongelmaksi tässä tulee, että kaikki väärin
    tulkitun lopetussekvenssin tulkitaan SMTP-komennoiksi
  • 9:37 - 9:45
    Ja nyt hyökkääjänä voimme luoda SMTP-komentoja,
    jotka lähettävät toisen sähköpostiviestin.
  • 9:45 - 9:51
    Vaikka Paavo Pesusieni näki yhden ison
    sähköpostiviestin, Patrik näkee kaksi pienempää viestiä.
  • 9:51 - 9:56
    Ja ongelma on se, että toinen viesti voi sisältää
    mielivaltaisia SMTP-komentoja.
  • 9:56 - 10:01
    Kuten, että viesti tulee osoitteesta admin@outlook.com
    tai mitä tahansa.
  • 10:02 - 10:05
    Näin ainakin teoriassa.
  • 10:06 - 10:08
    Nähdäkseni toimiiko tämä todella.
  • 10:09 - 10:14
    Tutkin muutamia SMTP-palvelinten
    toteutuksia yksinkertaisesti
  • 10:14 - 10:17
    ottamalla niihin yhteyttä telnet:llä tai
    netcat:lla.
  • 10:19 - 10:24
    Kun tein tämän, se näytti aluksi RFC:n mukaiselta.
  • 10:24 - 10:32
    Kun lähetät datakomennon, palvelin pyytää
    lopettamaan datan lähettämisen . merkeillä.
  • 10:33 - 10:39
    Sitten löysin myös palvelimia, jotka sanoivat:
    "lähetä minulla rivi, jossa on vain piste"
  • 10:39 - 10:46
    Ja tämä asia riippuu paljon käytettävästä
    käyttöjärjestelmästä.
  • 10:46 - 10:54
    Windows:ssa tämä voi olla <CR><LF>.<CR><LF>
    ja Linuxissa se voi olla .
  • 10:55 - 11:00
    Siinä kohtaa ajattelin, että tässä voisi
    olla jotain.
  • 11:01 - 11:02
    Ja kokeilin jotain.
  • 11:02 - 11:12
    Ensimmäiseksi kokeilin työntää <CR>-, <LF>- ja piste-
    merkkejä Paavo Pesusienen kautta.
  • 11:12 - 11:19
    Joten kirjoitin SMTP analyysisovelluksen, joka
    lähettää sähköposteja, joissa on virheellisiä data lopetussekvenssejä,
  • 11:19 - 11:24
    kuten <LF>.<LF> Ja lähetin viestejä eri SMTP-
    ohjelmistoilla,
  • 11:24 - 11:29
    sisältäen sähköpostipalveluita Gmail, Outlook, GMX
  • 11:29 - 11:35
    ja lisäksi sähköpostiohjelmistoja kuten Postfix,
    Exim, Microsoft Exchange Server ja niin edelleen.
  • 11:36 - 11:44
    Vastaanottavalla puolella tutkin, että mitkä
    vääristä sekvensseistä menee itse asiassa läpi.
  • 11:45 - 11:51
    Voinko lähettää komennon <LF>.<LF> lähtevän palvelimen
    kautta?
  • 11:51 - 11:54
    Ja useimmissa tapauksissa se ei toiminut.
  • 11:54 - 11:59
    <LF>.<LF> on usein suodatettu tai poistettu
    alkuperäisestä viestistä.
  • 11:59 - 12:05
    Mutta jossain tapauksissa se menee läpi muuttumattomana.
  • 12:06 - 12:12
    Tämä oli tilanne GMX:n kohdalla. Lähetin sähköpostin
    GMX:stä analyysipalvelimelleni
  • 12:12 - 12:16
    ja <LF>.<CR><LF> merkkejä ei poistettu.
  • 12:17 - 12:24
    Seuraavaksi tein proof-of-concept:n, jossa on
    ensin viesti
  • 12:24 - 12:26
    ja sitten väärennetty datan lopetussekvenssi
  • 12:27 - 12:30
    ja sen jälkeen SMTP komentoja ja data
    toiselle sähköpostiviestille.
  • 12:31 - 12:33
    Jos tämä proof-of-concept toimii,
  • 12:33 - 12:37
    meidän pitäisi saada kaksi viestiä
    vastaanottajan puolella.
  • 12:38 - 12:40
    Lähetin tämän kaiken Gmailiin.
  • 12:40 - 12:43
    Ja Gmail oli sitä mieltä,
    että "tämä ei ei ole datan lopetussekvenssi".
  • 12:44 - 12:49
    Ja sen näkee siitä, että datan lopetussekvenssin
    jälkeen kaikki on edelleen tulkittu viestin dataksi.
  • 12:50 - 12:54
    Mutta joissain tapauksissä tämä itse asiassa toimi.
  • 12:54 - 13:01
    Tämä oli ensimmäinen onnistunut
    SMTP Smuggling tapaus, GMX:stä Fastmail:iin.
  • 13:01 - 13:07
    Me näemme, että se toimii. Meillä on ensin
    viesti käyttäjältä user@gmx.net
  • 13:07 - 13:11
    ja toinen viesti käyttäjältä admin@gmx.net,
  • 13:11 - 13:18
    jotka läpäisevät SPF ja DMARC tarkistukset,
    koska ne tulevat todelliselta GMX:n palvelimelta.
  • 13:19 - 13:26
    [Applodeja]
  • 13:28 - 13:32
    Minä olin, että "tämä on aivan sairasta!"
  • 13:35 - 13:38
    Ajattelin, että meillä on tämä toinen viesti
    ja siinä voi olla mitä tahansa.
  • 13:38 - 13:40
    Kuten lähettäjän osoite voi olla mitä vaan.
  • 13:40 - 13:47
    Joten miksi en kokeilisi muita domaineja,
    jotka osoittavat GMX:n palvelimeen?
  • 13:47 - 13:50
    Sitten analysoin SPF tietueen ja tajusin...
  • 13:51 - 14:00
    Tässä on GMX:n SPF-tietue, mutta se on hyvin
    samankaltainen web.de:n tietueen, joka puolestaan
  • 14:00 - 14:03
    on hyvin samankaltainen Ionoksen tietueen kanssa.
  • 14:03 - 14:08
    Ja tilanne on nyt se, että tällä me voimme
    väärentää 1.35 miljoonaa domainia tällä.
  • 14:09 - 14:16
    Jos ette tiedä mikä Ionos on, niin se on superiso
    hosting- ja sähköpostipalveluiden tarjoaja.
  • 14:16 - 14:20
    Ja heillä on nämä 1.35 miljoonaa domainia
    kytketty tähän.
  • 14:21 - 14:24
    Joten, minun täytyi tietenkin kokeilla tätä.
  • 14:25 - 14:29
    Tässä on sähköposti osoitteesta admin@web.de
  • 14:29 - 14:33
    Nyt kysymys on tietysti, että toimiiko
    tämä kaikkialla?
  • 14:33 - 14:38
    Kuten sanoin, niin tämä toimii vain palvelimilla,
    jotka tulkitsevat lopetussekvenssit
  • 14:39 - 14:43
    tavalla, joka ei ole RFC:n mukainen,
    kuten .
  • 14:43 - 14:47
    Voimme siis väärentää 1.35 miljoonaa domainia.
  • 14:47 - 14:56
    Joten pohjimmiltaan meillä on 1.4 miljoonaa Postifix instansia
    ja 150 tuhatta Sendmail instanssia.
  • 14:57 - 15:00
    Ja tämä toimii, koska ne tulkitsevat...
  • 15:00 - 15:02
    [puhuja sekoilee sanoissaan]
  • 15:03 - 15:07
    Ne tulkitsevat <LF>.<CR><LF>, sekoilen itsekin sanoissani,
    lopetussekvensiksi.
  • 15:07 - 15:10
    Ja olin, että OK, tämä on aika vakavaa.
  • 15:11 - 15:13
    Mutta tässä on muutakin.
  • 15:13 - 15:18
    Katsoin outlook.comia myös ja Outlook
    palautti todella oudon virheilmoituksen
  • 15:19 - 15:23
    koska siinä on, että pelkät rivinvaihdot
    eivät ole sallittuja.
  • 15:23 - 15:27
    Olin siinä kohtaa, että pahus, ne tietää
    mitä olen tekemässä.
  • 15:27 - 15:29
    [Yleisöän naurua]
  • 15:30 - 15:34
    Siksi analysoin sen tarkemmin, ette pysty
    minua tuolla pelottelemaan.
  • 15:34 - 15:40
    Joten löysin, että <LF>.<CR><LF>
    on mahdollinen täällä.
  • 15:40 - 15:44
    [Yleisön applodeja]
  • 15:49 - 15:52
    Jeah, pidetään vähän hauskaa.
  • 15:52 - 15:55
    Tässä kohtaa en ollut varma, että
    olenko tulossa hulluksi
  • 15:55 - 15:57
    vai toimiiko tämä todella.
  • 15:57 - 16:00
    Joten tarvitsin jonkinlaisen tarkistuksen.
  • 16:00 - 16:03
    Ja niinpä lähetin sähköpostin
    osoitteesta admin@outlook.com
  • 16:03 - 16:07
    muutamille kollegoilleni. Idea oli siinä,
    että jos he reagoivat tähän,
  • 16:08 - 16:09
    se toimii.
  • 16:09 - 16:11
    Muutoin olen tullut hulluksi.
  • 16:11 - 16:13
    Joten....
  • 16:14 - 16:17
    [Yleisön naurua]
  • 16:18 - 16:23
    Ja ehkä nyt hieman kansainvälisempi esimerkki,
    koska tämä on todella itävaltalainen, luulen.
  • 16:31 - 16:34
    Luulen, että ymmärrätte tämän, vaikka ette
    puhu saksaa.
  • 16:35 - 16:40
    Ja nyt olette, okei, voimme lähettää
    tekstipohjaisia, väärennettyjä sähköposteja
  • 16:40 - 16:43
    mutta ette pysty huijaamaan tällä ketään
  • 16:43 - 16:46
    Mutta juttu on siinä, että voimme ujuttaa
    periaatteessa mitä tahansa,
  • 16:46 - 16:47
    HTML:ää mukaan luettuna
  • 16:48 - 16:54
    Tässä lähetin viestin, kalasteluviestin,
    epätavallisesta kirjautumisesta
  • 16:54 - 16:58
    osoitteesta no-reply@outlook.com
    todelliselta outlook.com palvelimelta
  • 16:59 - 17:00
    itselleni.
  • 17:00 - 17:03
    Ja se vain meni läpi.
  • 17:05 - 17:08
    Mutta jälleen, mitä tämä mahdollistaa?
  • 17:09 - 17:13
    Pohdiskelin, että voimme väärentää outlook.comin,
  • 17:13 - 17:16
    mutta mitä muuta voimme tehdä tällä?
  • 17:16 - 17:23
    Katsoin SPF tietuetta ja se oli outo,
    oudosti tuttu.
  • 17:23 - 17:27
    Koska tämä ei ole pelkästään outlook.comin SPF tietue
  • 17:27 - 17:31
    vaan miljoonien muiden domainien SPF tietue.
  • 17:32 - 17:38
    Sen vuoksi, koska tämä Exchange Online
    palvelun SPF tietue.
  • 17:39 - 17:45
    Outlook.com lähettää sähköpostit Exchange Online
    infrastruktuurin kautta,
  • 17:45 - 17:49
    joten voimme itse asiassa väärentää ne kaikki.
  • 17:49 - 17:53
    Minun piti kokeilla tätä taas.
  • 18:07 - 18:11
    Tämä toimi ainoastaan teknisesti,
    en saanut palkan korotusta.
  • 18:14 - 18:15
    Mikä vaikutus tällä on?
  • 18:15 - 18:20
    Voimme väärentää miljoonia domaineja,
    mutta ketkä hyväksyvät nämä sähköpostit?
  • 18:20 - 18:27
    Jälleen Postfix ja Sendmail, mutta vain ne
    instanssit, jotka eivät hyväksy BDAT komentoa.
  • 18:28 - 18:31
    BDAT on vaihtoehtoinen datakomennolle
  • 18:31 - 18:34
    ja jos sitä tuetaan, tämä ei toimi.
  • 18:36 - 18:39
    Se oli ulospäin SMTP suuntautuva ujutus,
  • 18:39 - 18:41
    joka on yksi osa tätä.
  • 18:41 - 18:44
    Sitten on myös sisäänpäin tuleva
    SMTP ujutus.
  • 18:44 - 18:48
    Ulospäin suuntautuvassa ongelma oli
    lähettävä palvelin
  • 18:49 - 18:56
    koska palvelin epäonnistui tai ei tehokkaasti
    suodattanut väärennettyä datan lopetussekvenssiä
  • 18:56 - 19:02
    kuten <LF>.<CR><LF> Microsoftin ja
    GMX palveluissa.
  • 19:03 - 19:05
    Sitten on lisäksi sisäänpäin tuleva SMTP ujutus.
  • 19:05 - 19:12
    Tämä tapahtuu, kun on vastaanottava palvelin,
    joka tulkitsee sellaisen villin datan lopetussekvenssin,
  • 19:12 - 19:17
    josta lähettävällä palvelimella ei ole hajuakaan
    suodattaa pois.
  • 19:18 - 19:25
    Löysin tällaisen Cisco Securesta, tietysti, Email Cloud Gateway:sta
  • 19:27 - 19:38
    Mitä he tekevät on se, että he siivoavat viestin ja <CR> merkki
    korvataan merkeillä.
  • 19:38 - 19:44
    Joten itse asiassa, <CR>.<CR> merkkien tulkinta
    palauttaa datan lopetussekvenssin.
  • 19:47 - 19:51
    [Yleisön applodeja]
  • 19:55 - 20:03
    Ongelma on nyt siis tietenkin se, että <CR>.<CR>
    ei suodateta ollenkaan pois.
  • 20:03 - 20:09
    On palveluita, jotka sen tekevät, mutta meillä
    on jälleen Exchange Online, iCloud, Sendmail, Postix
  • 20:09 - 20:12
    ja monia muita, jotka päästävät tämän läpi.
  • 20:12 - 20:17
    Tavallaan se käy järkeen, koska en hoksaisi
    sitä itsekään.
  • 20:17 - 20:21
    Joten, minun täytyi kokeilla tätä jälleen.
  • 20:22 - 20:25
    Valitettavasti, tai teknisesti, se toimi jälleen,
  • 20:26 - 20:28
    mutta en saanut en saanut yhtään Applen laitetta.
  • 20:28 - 20:31
    Ei sillä, että olisin halunnut muutenkaan.
  • 20:35 - 20:36
    Mikä vaikutus tällä on?
  • 20:36 - 20:40
    Pohjimmiltaan voimme väärentään vielä
    enemmän domaineja kuin edellä.
  • 20:40 - 20:44
    Meillä on Exchange Online, meillä on iCloud,
  • 20:44 - 20:46
    meillä on Postfix ja Sendmail.
  • 20:46 - 20:50
    Ja voimme väärentää yrityksiä, joilla on
    vara tähän.
  • 20:51 - 20:54
    Aika isoja yrityksiä tässä.
  • 20:54 - 20:58
    Tämä pitää sisällää yli 40 tuhatta muuta domainia.
  • 20:58 - 21:01
    Ja se on vain ne, jotka on hostattu pilvessä.
  • 21:01 - 21:05
    Lisäksi on on-prem instanssit, mutta en pystynyt
    käymään niitä läpi.
  • 21:07 - 21:13
    Ja nyt osuuteen, joka on luultavasti mielenkiintoisin teille,
    tai ainakin osalle teistä.
  • 21:13 - 21:15
    Vastuullinen julkaisu.
  • 21:16 - 21:23
    Puhtaasti teknisesti, koskien lähettäviä ja
    vastaanottavia palvelimia, kenen vika tämä on?
  • 21:23 - 21:28
    Meillä on vastaanottavia palvelimia, joiden ei
    koskaan oleteta tulkitsevan mitään muita
  • 21:28 - 21:34
    datan lopetussekvenssejä kuin <CR><LF>.<CR><LF>,
    ainakin RFC:n mukaan.
  • 21:34 - 21:40
    Sitten meillä on lähettäviä palvelimia, joiden
    ei oleteta lähettävän ja merkkejä
  • 21:40 - 21:42
    toisistaan riippumatta.
  • 21:42 - 21:44
    Joten periaatteessa tämä on kaikkien vika.
  • 21:44 - 21:46
    Lähetimme tiedot GMX:lle.
  • 21:46 - 21:50
    He olivat superkiitollisia ja ilmoittivat
    korjaavansa asian saman tien.
  • 21:51 - 21:54
    10 päivää myöhemmin he korjasivat tämän.
  • 21:54 - 21:58
    He pyysivät meitä tarkastamaan uudelleen ja
    tarkastimme, että he todella korjasivat sen.
  • 21:58 - 22:01
    He maksoivat meille pienen palkkion.
  • 22:01 - 22:04
    Ha laittoivat meidät jopa heidän
    Bug Bounty Hall of Fame:en.
  • 22:04 - 22:08
    Kaiken kaikkiaan se oli 10/10 kokemus.
  • 22:08 - 22:12
    [Applodeja]
  • 22:16 - 22:20
    Aion lähettää heille tallenteen teidän applodeista. Kiitos!
  • 22:20 - 22:24
    Tuntui melkein sille, että meidän olisi pitänyt
    maksaa palkkio heille.
  • 22:25 - 22:29
    Tästä eteenpäin mennäänkin sitten alamäkeä.
  • 22:29 - 22:35
    Meillä on Microsoft. Microsoft oli sitä mieltä,
    että tämä on kohtuullisen riskin haavoittuvuus.
  • 22:39 - 22:43
    En tiedä, ehkä heillä on suurempi kala kiikarissa,
    mutta joka tapauksessa.
  • 22:46 - 22:50
    Lähetimme tiedot heille ja kolme kuukautta
    myöhemmin he sulkivat tapauksen ja sanoivat,
  • 22:50 - 22:54
    että kaikki on korjattu, ei palkkiota ja niin edelleen.
  • 22:54 - 22:58
    Tässä kohtaa olin saanut jo mitä halusin.
  • 22:59 - 23:03
    Ja se on sähköpostin saaminen osoitteesta
    admin@microsoft.com
  • 23:05 - 23:08
    Ja sitten Ciscoon.
  • 23:08 - 23:11
    Ciscon mielestä tämä ei ollut haavoittuvuus,
  • 23:11 - 23:15
    vaan dokumentoitu ja konfiguroitava ominaisuus.
  • 23:27 - 23:30
    Me olimme sitä mieltä, että onpa outo
    ominaisuus,
  • 23:31 - 23:34
    koska voimme väärentää sähköposteja sillä.
  • 23:36 - 23:40
    Sanoimme, että kertokaa edes asiakkaillenne
    tästä ominaisuudesta,
  • 23:40 - 23:44
    joka ei välttämättä ole paras oletustoiminallisuus.
  • 23:45 - 23:50
    He sanoivat "Ei".
  • 23:50 - 23:55
    Me olimme siinä, että meillä on tämä
    suuri SMTP Smuggling ongelma.
  • 23:55 - 23:59
    Ja Cisco ei halua tehdä mitään, Microsoft
    oli haavoittuvainen siihen aikaan.
  • 23:59 - 24:03
    Me veimme tämän tapauksen CERT/CC:lle.
  • 24:03 - 24:09
    Niille, jotka eivät tiedä, CERT/CC koordinoi
    ja käsittelee näitä suuria haavoittuvuuksia,
  • 24:09 - 24:12
    joilla voi olla maailmanlaajuisia vaikutuksia.
  • 24:12 - 24:16
    Me lähetimme tiedot heille ja he itse asiassa
    hyväksyivät tapauksen.
  • 24:16 - 24:20
    Sitten olemme tässä Vince portaalissa.
  • 24:20 - 24:23
    Joka on periaatteessa iso chat-huone, jossa
    on 14 toimittajaa.
  • 24:23 - 24:27
    Siellä on SendMail, Microsoft, Cisco, Google
  • 24:28 - 24:32
    Ja sitten voimme alkaa puhumaan haavoittuvuudesta
  • 24:32 - 24:36
    Ensimmäisessä keskustelussa Cisco sanoo
    edelleen, että kyseessä ei ole haavoittuvuus.
  • 24:37 - 24:41
    Tiedättehän, se ei ole bugi, vaan ominaisuus.
  • 24:41 - 24:44
    Noh, joka tapauksessa se ei ole haavoittuvuus heidän
    mielestään.
  • 24:44 - 24:49
    Ja sitten CERT/CC on sitä mieltä, että
    kyseessä ei ole haavoittuvuus, jostain syystä.
  • 24:49 - 24:54
    OK. Entäs yleinen SMTP ujutusongelma?
  • 24:54 - 25:00
    Entäs Postfixin ja Sendmailin RFC:stä eriävät
    tulkinnat datan lopetussekvenssistä?
  • 25:02 - 25:06
    Ensinnäkin, Sendmail oli tässä Vince portaalissa
    alusta alkaen.
  • 25:06 - 25:11
    He saivat kaikki PoC:t, viestit, kaiken.
  • 25:11 - 25:15
    Ja he eivät sanoneet mitään.
  • 25:16 - 25:20
    Entäpä Postfix? He ovat 10 kertaa suurempi.
  • 25:20 - 25:25
    CERT/CC oli... en tiedä miksi he eivät
    lisänneet heitä tapaukseen suoraan.
  • 25:25 - 25:31
    Mutta CERT/CC lähetti heille sähköpostin, mutta
    unohti mainita SMTP ujutuksen.
  • 25:31 - 25:37
    Luulimme siis, että he kertoivat Postfixille.
  • 25:37 - 25:40
    Sendmailia ei nähtävästi kiinnostanut.
  • 25:40 - 25:43
    CERT/CC on Ciscon puolella asiassa.
  • 25:44 - 25:50
    Me olimme, että Cisco on taatusti haavoittuvainen,
    olimme varmistaneet sen.
  • 25:50 - 25:53
    Joten haluaisimme julkistaa tämän blogissa.
  • 25:53 - 25:56
    Ja tästä ongelmat vasta alkoivatkin.
  • 25:56 - 26:00
    Kerroimme, että haluaisimme julkaista tästä
    blogikirjoituksen
  • 26:00 - 26:04
    ja varoittaisimme Ciscon asiakkaita
    tästä ominaisuudesta.
  • 26:04 - 26:11
    CERT/CC oli sitä mieltä, että "Antaa mennä vaan!
    Lähettäkää meille linkki kirjoitukseen, kun se on julkaistu"
  • 26:14 - 26:19
    Päätimme edetä ja tulimme avanneeksi Pandoran
    laatikon,
  • 26:19 - 26:24
    koska nyt 1.6 miljoonaan Postfix ja Sendmail
  • 26:24 - 26:27
    instanssia ovat haavoittuvina internetissä.
  • 26:27 - 26:31
    Ja se tarkoittaa, että jos tapahtuu ulospäin suuntautuva
    SMTP ujuttelu,
  • 26:31 - 26:35
    niin voit hyväksikäyttää Postfixiä ja Sendmailia yhä.
  • 26:36 - 26:39
    Tarkoittaako tämä, ettei SEC Consultissa ole yhtään vikaa?
  • 26:39 - 26:41
    Totta kai SEC Consultissa on vikaa.
  • 26:41 - 26:47
    Julkaisimme blogikirjoituksen olettaen, että
    vaikutus olisi pienempi kuin se todellisuudessa oli
  • 26:48 - 26:52
    perustuen keskesteluihin CERT/CC:n kanssa ja
    VINCE:ssä muutenkin.
  • 26:52 - 27:00
    Ja jos olisimme vain tuplavarmistaneet Postfixin
    kanssa, että julkaisu ei ole ongelma, tätä ei olisi tapahtunut,
  • 27:00 - 27:05
    koska he ovat järkkymättämiä, että tämä on ongelma.
  • 27:06 - 27:08
    Yhteenveto, mitä tämä tarkoittaa?
  • 27:08 - 27:14
    Korjatkaa Postfix palvelimenne! Löydätte lisätietoja
    Postfixin nettisivuilta.
  • 27:14 - 27:19
    Lisäksi korjatkaa Cisco palvelimenne. Voitte löytää
    lisätietoja siitä SEC Consult:n blogista.
  • 27:20 - 27:24
    [Yleisön naurua ja aplodit]
  • 27:31 - 27:35
    Lopuksi, tässäkin asiassa on jonkinlainen hopeareunus.
  • 27:36 - 27:40
    Nyt Postfix on suoraan mukana VINCE tapauksessa
  • 27:40 - 27:42
    ja he ovat jo antaneet suuren panoksen.
  • 27:43 - 27:47
    Emme työnnä päätämme pensaaseen ja yritä
    aktiivisesti sulkea Pandoran lipasta jälleen.
  • 27:48 - 27:54
    Ja mitä se tarkoittaa? Lisää tutkimusta SMTP ujuttelusta
  • 27:54 - 27:59
    Tarkoitan, että pyysin CERT/CC:tä katsomaan tätä
    tarkemmin, niin, se ei päättynyt kovin hyvin.
  • 27:59 - 28:07
    Lisää blogikirjoituksia, lisää tutkimusta ja
    ennen kaikkea lisää toimijoita VINCE tapaukseen.
  • 28:07 - 28:13
    Yritämme saada kaiken korjattua ja olemme pahoillamme,
    että tämä tapahtui ylipäätään.
  • 28:15 - 28:26
    Lopuksi jotain, jonka kaikki tiedätte. Älkää
    luottako sähköposteihinn sokeasti, erityisesti tällä hetkellä.
  • 28:27 - 28:29
    Kiitos.
  • 28:29 - 28:33
    [Aplodeja]
  • 28:46 - 28:49
    Hienoa, kiitos. Mennään kysymyksiin.
  • 28:49 - 28:51
    Ole hyvä.
  • 28:51 - 28:55
    Hei, minulla on yksi lyhyt kysymys CERT/CC asiasta.
  • 28:56 - 28:59
    Oliko tämä kommunikoitu sähköpostilla?
  • 28:59 - 29:03
    Ja etkö olisi voinut lähettää viestin
    Ciscon CDO:na?
  • 29:04 - 29:08
    Kyllä, olisimme voineet tehdä sen ja luoda
    jonkinlaisen kolmiodraamaan
  • 29:09 - 29:13
    Bill Gatesin, Elon Muskin ja jonkun muun välille.
  • 29:15 - 29:19
    Mutta valitettavasti emme nähneet tätä sähköpostia.
  • 29:19 - 29:23
    Näimme sen jälkeen päin, mutta se oli valitettavasti
    liian myöhäistä.
  • 29:26 - 29:29
    Hei, kiitos teille. Arvostan työtänne.
  • 29:29 - 29:33
    Voisitko kertoa hieman aikajanasta?
  • 29:33 - 29:37
    Koska löysitte tämän ensimmäisen kerran?
  • 29:37 - 29:41
    Aloitin tutkimuksen kesäkuussa kuluvana vuonna
  • 29:42 - 29:46
    Minulla oli 10 päivän projekti SEC Consultilla.
  • 29:46 - 29:51
    Olin sitä mieltä, että 10 päivää ei riitä, joten
    aloitin 10 päivää aiemmin.
  • 29:51 - 29:55
    Sitten löysin SMTP ujuttelun kuudentena päivänä
  • 29:56 - 30:04
    Sitten asia eteni kertomalla GMX:lle, Outlookille
    tai Microsoftille ja Ciscolle
  • 30:04 - 30:08
    koska heillä oli vakavat SMTP ujuttelutapaukset,
    koskien sekä lähtevää ja saapuvaa.
  • 30:09 - 30:15
    Sitten jatkoimme ja kerroimme CERT/CC:lle, koska
    tämä vaikutti olevan laajempi ongelma maailmanlaajuisesti.
  • 30:16 - 30:21
    Aikataulumielessä, minulla ei ole sitä tässä nyt,
    mutta se on SEC Consultin blogikirjoituksessa.
  • 30:24 - 30:27
    Onko joku tietty päivämäärä, jonka haluat tietää?
  • 30:27 - 30:29
    Ei, ei. Käyn lukemassa blogikirjoituksen. Kiitos.
  • 30:33 - 30:37
    Hei, kiitos hyvästä puheesta täällä.
  • 30:38 - 30:41
    Haluaisin kysyä, että on mitään evidenssiä
  • 30:42 - 30:45
    tai epäilyksiä, että tätä olisi jo käytetty?
  • 30:45 - 30:51
    Tämä näyttää melko helpolta
    haavoittuvuudelta hyödyntää.
  • 30:51 - 30:55
    Voisin kuvitella, että sitä on jo hyödynnetty.
  • 30:55 - 30:59
    Jeah, sain joitain kommentteja Reddit postaukseeni
  • 30:59 - 31:03
    että tämä on supervanha,
    mutta asia on...
  • 31:04 - 31:06
    Kohtalainen haavoittuvuus
  • 31:06 - 31:07
    Jeah, todennäköisesti
  • 31:07 - 31:09
    Ei, en tosiaankaan tiedä.
  • 31:09 - 31:13
    Kävin läpi paljon tutkimuksia, mutta niissä
    ei ollut mitään.
  • 31:13 - 31:17
    Siksi kutsun tätä uudeksi haavoittuvuudeksi.
  • 31:22 - 31:30
    Translated by Mikko Heikkinen (ITKST56 course assignment at JYU.FI)
Title:
37C3 - SMTP Smuggling – Spoofing E-Mails Worldwide
Description:

more » « less
Video Language:
English
Duration:
31:40

Finnish subtitles

Revisions Compare revisions