Translated by Esa Lammi
(KYBS2001 course assignment at JYU.FI)
36c3 intromusiikki
Herald: Oletteko koskaan miettineet kuinka
kuinka väärentää sähköposti hyvin? Siinä
tapauksessa voitte olla oikealla luennolla.
Meillä on seuraava puhuja. Andrew, joka
työskentelee nykyisin kansallisessa CERTssa
Latviassa tietoturvatutkijana. Ja hän aikoo
puhua meille sähköpostin väärentämisestä
ja nykyaikaisista anti-spoofing strategioista.
Lava on sinun.
Aplodeja
Andrew: Tervehdys. Olen Andrew ja työs-
kentelen Latvian kansallisessa CERTssa.
Yksi tavoitteistamme on kehittää sähköpostin
turvallisuuden tilaa maassamme ja teemme
tätä enimmäkseen nostamalla tietoisuutta
asiasta ja tiedottamalla parhaista
toimintatavoista. Ja tietenkään emme ole
ainoa organisaatio joka tekee tätä.
On monia CERT yksiköitä lisää eri maissa
ja on myös useita vapaaehtois
järjestöjä jotka tekevät samaa.
Sekä kaupallisia tahoja.
Kuitenkin, toistaiseksi, suoraan sanoen,
menestyksemme on ollut melko
vaatimatonta. Esimerkiksi, tässä on yksi
tilasto, joka on käyttöaste yhdestä
tietystä teknologiasta, DMARCsta, joka
kuten opitte esityksessä on melko
tärkeä ja toivon, että kaikki alkavat
käyttämään sitä. Eli vasemmalla on
20 tuhatta domainia ympäri maailmaa,
jotka ovat tärkeitä domaineja tärkeille
organisaatioille, joiden pitäisi tosissaan
tietää paremmin. Ja oikealla puolella
näemme top 50, top 500 EU kaupallisia
domaineja ja näistä kaksi kolmasosaa
eivät ole konfiguroineet DMARCia vielä.
ja niistä jotka ovat näin tehneet, valtaosa
eivät ole määrittäneet tiukkaa politiikkaa.
Joten jos pitää poimia yksi asia tästä
puheesta, toivon että kaikkien pitäisi
alkaa käyttämään DMARCia. Sitä on tärkeää
käyttää myös domaineissa joiden ei pitäisi
lähettää sähköposteja ulos. Joten yksi
selitys matalalle käyttöasteelle, luulen
olevan, että on näennäisesti liian monta
kilpailevaa teknologiaa. Tämä on puheeni
sisältö. Ja tein todella parhaani
tiivistääkseni sitä. Mutta kuten voitte
nähdä, on kolme lyhennettä, no myös
SMTP ja näistä, SPF, DKIM ja DMARC.
Oikeastaan en muista mitkä ovat kahden
kokonaiset nimet. Mutta silti ne ovat
kaikki tärkeitä. Ja tietenkin, tämä ongelma
että on liikaa muotisanoja, liikaa
teknologioita, eikä ole selvää mitä kaikkia
mitä meidän tulisi käyttää, se ei koske
pelkästään sähköpostia. Meillä on sama
tilanne kaikkialla ja oh, tietoturvan
alueella, luulen että olemme nyt löytäneet
yhden tavan ratkaista asia ja se on
penetraatiotestaus. Eli kun penetraatio
testaus on tehty kunnolla ja tulokset
on julkaistu, me voimme alkaa
puhumaan. Voimme siirtää keskustelun pois
suosiiko
organisaatio teknologiaa A vai teknologiaa
B ja voimme sen sijaan alkaa puhumaan
kysymyksistä, joilla on merkitystä, kuten
onko mahdollista jollekin kolmennelle
osapuolelle väärentää organisaationne
sähköposteja ja lähettää sellaisia
sähköposteja esimerkiksi asiakkaille tai
kumppaneille ja media organisaatioille
siten, että he luulevat sähköpostien
tulleen todellisuudessa teidän
organisaatiolta? Tästä syystä penetraatio
testaajat ovat tämän luennon avainyleisöä.
Kuitenkin, toivon että kuka tahansa blue
teamilainen yleisössä kokee tämän puheen
kiinnostavaksi. Olen varma, että tunnette
jo perusteet sähköpostista ja näistä
teknologioista, mutta asian
tarkasteleminen toiselta puolelta,
hyökkääjän puolelta, voi joskus asettaa
asiat todella oikeaan perspektiiviin.
Se voi auttaa sinua ymmärtämään mihin
sinun pitäisi keskittyä ympäristöä
suojatessasi. Ja lopuksi SMTP protokolla.
Teknologia, joka kulkee meidän
sähköpostikeskustelujen alla on oikeasti
melko helppo ymmärtää.
Ja myös vanhat opetukset koko
SMTPn matkasta, kuinka se kehittyi
ja kuinka on mahdollista väärentää se
ja kuinka kaikki teknologiat koittavat
estää väärentämistä. Mielestäni se on
kiinnostava tapaus ja sen pitäisi olla
mielenkiintoista seurattavaksi jopa niille
joille email on uutta. Um, lopuksi. Uhka
ympäristö. Eli email turvallisuus on laaja
alue. Ja tänään keskityn vain sen yhteen
pieneen alueeseen, joka on onnistunut
sähköpostin väärentäminen. Tampering
attacks. Ja tiedän että monet, pentestaajat
jo nyt hyödyntävät osin phishingia tai
spearphishingia, emulointia heidän
toimeksiannoissaan ja. Mutta tietääkseni
he tekevät sitä enimmäkseen sosiaalisen
hakkeroinnin näkökulmasta käyttäen
social engineering toolkit:ia ja vastaavia
esimerkiksi. Ja se on, en halua kiistellä,
tärkeää demonstroida asiakkaalle
mitkä ovat riskit sosiaalisessa
hakkeroinnissa. Kuitenkin mielestäni teette
asiakkaalle karhunpalveluksen jos se on
ainoa asia mitä testaatte
sähköpostin näkökulmasta, koska asiakkaan,
managerin näkökulmasta joka lukee
raporttinne, jos siinä mainitaan vain
social engineering hyökkäykset, silloin
looginen johtopäätös on, että paras keino
mitigoida näitä uhkia on käyttäjien
kouluttaminen, erityisesti niiden jotka
ovat vähiten teknisiä, kuten näet tässä
esityksessä. On monia hyökkäyksiä ja
useat organisaatiot ovat niille
alttiita, jotka ovat paljon niitä parempia.
Mikään määrä käyttäjäkoulutusta ei auta
koska emme voi olettaa käyttäjien tutkivan
headereitä esimerkiksi käsin.
Joten meidän täytyy oikeasti parantaa
sähköposti infrastruktuuriamme. Tätä ei
voi kieltää. Ja lopuksi ennen siirtymistämme
oikeaan tekniseen asiaan, on pieni salaisuus
jonka uskon auttavan ihmisiä, jotka eivät
työskentele sähköpostin parissa,
ymmärtämään miksi meillä on näitä ongelmia
on, email admineille historiallisesti, um,
he arvostavat saatavuutta järjestelmässä
ja luotettavuutta paljon enemmän
kuin turvallisuutta. Ja koska tämä ei ole
ideologinen kysymys. Se on hyvin
käytännön läheinen. Joten, esimerkiksi,
jos olet email, email admin organisaatiossa
ja joltain käyttäjistäsi loppuu laskujen
vastaanottaminen, esimiehesi etsii
sinut, kertoo tilanteesta ja pyytää
sinua kauniisti korjaamaan tilanteen
niin pian kuin mahdollista, vaikka se ei
olisi sinun vikasi, jos sattuisi käymään
niin että vika on emailin toisessa päässä.
Ei sinun palvelimella. Ja esimerkiksi jos,
toinen esimerkki, jos sinä, jos joku sinun
työntekijöistä vastaanota sähköpostia
tarpeeksi nopeasti, esimerkiksi salasanan
palauttamiseksi tai varmentaakseen
sähköpostiosoitteen tai käyttääkseen usean
välineen tunnistautumista (MFA) ja he eivät
voi kirjautua johonkin tärkeään järjestelmään
he etsivät sinut ja sinun täytyy
ratkaista se. Mutta jos järjestelmässä on
joku tietuturva haavoittuvuus, jos se on
altis spoofaus hyökkäykselle ja niin
edelleen silloin, ei käyttäjä, ei esimies
normaalisti huomaa sitä. Sinä et välttämättä
huomaa, mutta olet. Sinulla on tämä
haavoittuvuus. Joten siksi toki penetraatio
testaajat ovat tärkeitä. Okei.
Nyt voimme viimein alkaa puhumaan teknisestä
asiasta. Ja me aloitamme lyhyellä
perehtymisellä SMTP protokollaan.
SMTP on protokolla joka on kaiken email
kommunikoinnin perusta ja sitä on oikeastaan
melko helpo seurata. Eli tässä on datavirta
mitä tapahtuu kun yksi henkilö lähettää
sähköpostin toiselle henkilölle.
Esimerkiksi Alice lähettää Bobille ja he
käyttävät eri, he työskentelevät
eri yrityksissä. He käyttävät eri
domaineja. Eli mitä tapahtuu tässä on,
että molemmat käyttävät, sanotaan, email
ohjelmaa kuten Outlook tai
Thunderbird. Ja Alice lähettää sähköpostia.
Se kulkee SMTP protokollan läpi Alicen
säkköpostipalvelimelle. Mutta on tärkeä
huomata että tämä on lähtevän postin palvelin.
Yleensä organisaatioilla on kahden tyypin
palvelimia, yksi sisään tulevalle
liikenteelle ja toinen lähtevälle. Pienillä
organisaatioilla se voi olla yksi palvelin
mutta taas, on tärkeää pentestaajan
ajatella niitä eri järjestelminä
koska niillä on, vaikka meillä olisi vain
yksi fyysinen palvelin, siinä on eri
konfiguraatio lähtevälle postille ja
sisään tulevalle postille. Joten penetraatio
testaajana sinun pitää tarkastaa molemmat.
Okei. Nyt, kun Alicen palvelin koittaa
lähettää postin Bobin palvelimelle, on
ongelmana, että palvelimen täytyy jotenkin
automaattisesti selvittää on se toinen
palvelin jolle lähettää se posti ja se
tehdään käyttäen blue box MXaa, joka on
tietty DNS merkintä tyyppi MX. Eli se on
jotain, jota ylläpitää Bob:in organisaatio.
Eli Bobon organisaatio, mikäli he haluavat
vastaanottaa sähköpostia, he luovat tämän
DNS merkinnän. Ja sanon että. Okei. Jos
haluatte lähettää sähköpostia meille,
käyttäkää tätä palvelinta. Eli sen pitäisi
osoittaa Bobin palvelimeen. Ja Alicen lähtettävä
palvelin tietää Bobin vastaanottavan palvelimen
osoitteen ja voi kommunikoida sille. Ja
myöhemmin Bob vastaanottaa sen postin.
Eli kohta jota me pentestaajina koitamme
murtaa on todellisuudessa
Alicen ja Bobin palvelimien välissä.
Ja meidän täytyy miettiä toista esimerkkiä
joka on päinvastainen tapaus. Ja voit
ajatella että siinä ei ole
mieltä, koska me periaatteessa
vain muutamme liikenteen suunnan.
Mutta tärkeä osa tässä meille
pentestaajina on ymmärtää, että
asiakas kontrolloi vain osaa tästä
transaktiosta. Jos asiakkaamme,
sanotaan vaikka loppuesityksen ajan on
Alice tai Alicen organisaatio,
niin toisena esimerkkinä kun lähetämme
postia Bobilta Alicelle
silloin lähetämme vain sähköpostia.
Periaatteessa, osa tästä liikenteestä
kulkisi Alicen palvelimien kautta. Ensim-
mäisessä esimerkissä jos lähetämme postia
Alicelta Bobille, se ei menisi niin. Eli jos
se tuntuu hämmentävälle, se on OK. Palaamme
tähän hieman myöhemmin. Ja lopuksi, on
kolmas esimerkki, joka näyttää samalta
mutta ei ihan. Ja se on jos Alice
kommunikoi. Alice on asiakkaamme.
Ja jos hän kommunikoi hänen työtoverien
kanssa, jotka ovat samassa organisaatiossa,
samassa email palvelimessa, samassa
domainissa. Siinä tapauksessa, jälleen,
on vähintään kaksi loogista email palvelinta,
lähtevä palvelin ja sisääntuleva palvelin.
Mutta molemmat kuuluvat asiakkaallemme.
Eli nyt, jos et ollut tuttu sähköpostin kanssa,
nyt olet. On todella mielenkiintoista
pohtia mitä näistä skenaarioista,
kolmesta skenaariosta, on helponta suojata.
ja myöhemmin
näemme miten se oikeasti tapahtuu.
Okei. Ja sitten meidän täytyy katsoa mitä
oikeasti lähetetään, kun sähköpostia ollaan
lähettämässä. Eli jälleen, se käyttää SMTP
protokollaa ja on tosi kiva protokolla
kuten. Kuten voit nähdä, se on vain tekstiä.
Eli se on puhdas tekstiprotokolla ja sen
kanssa on helppo leikkiä, koska
voit avata telnet yhteyden oikealle
palvelimelle ja voit koittaa kirjoittaa
komentoja käsin. Voit koittaa väännellä
jotain tai muokata tai koittaa erilaisia
erilaisia tyyppejä ja nähdä reaaliajassa
kuinka se menee. Eli vasemmalla
näemme tässä kaksi osaa jotka
määrittää SMTP. Eli ensinnäkin
siinä on SMTP kirjekuori, jonka periaatteessa
kytket palvelimeen. sanot hello,
ja sitten sanot mitä. Määritä sähköpostin
lähettäjä ja vastaanottaja. "mail from"
on lähettäjä. Vastaanottaja on Bob,
esimerkiksi. Ja sitten toinen osa alkaa
datalla ja loppuu quit. Ja sitä osaa
kutsutaan kontentiksi / viestiksi.
Jos haluat leikkiä sillä enemmän, tämän
määrittää eri standardi
joka ei ole tärkeä pentestaajalle, mutta
jos haluat katsoa
yksityiskohtia ja se voisi olla tärkeää.
Ja tämä sisäinen viesti, jota
kutsutaan joko sisällöksi tai SMTP
viestiksi, se taas, se sisältää kaksi osaa.
Yksi on headeri ja toinen on runko. Ja
luulen että jotkut eivät tunne emailia,
mutta varmaan kaikki yleisössä tuntevat
HTTPn ja tämä
näyttää melko, melko samalta. Eli helppoa
ymmärtää. Mutta mielenkiintoinen osa tässä
että saatoit huomata, että meillä on
Alicen ja Bobin osoitteet kahdesti.
Eli. Esimerkiksi, Alice on määritelty
toisella rivillä "mail from". Ja sitten
meillä on sama osoite. alice @ hänen
organisaatio "From" headerissa. Punaiset
ovat headereita. Ja sama tapahtuu Bobilla.
Miksi näin on? No, se johtuu siitä miten
me näemme sähköpostin. Minä tavallisena
henkilönä, joka on käyttänyt sähköpostia
jo aika paljon, näen ne yleensä kuten
vasemmalla, joka on kuin
jonkinlainen postikortti. Eli postikortissa
on joku joka sen on lähettänyt. Lähettäjä.
Siinä on vastaanottaja. Se olen yleensä minä.
Olen vastaanottaja. Ja sitten siinä on joku
viesti. Näin ainakin koin asiat
ennen kuin opin siitä hieman lisää.
Mutta email adminit ja standardointi
järjestöt, he näkevät asian näin
kuten tässä oikealla on. Siinä on
kirjekuori ja kuoren sisällä
siellä on viesti tai postikortti ehkä.
Eli sinulla on kaksi osoitetta
tässä skenaariossa. Sinä määrittelit
osoitteet keneltä ja kenelle olet
lähettämässä kuorta, joka on osa sitä mitä
postikonttori, esimerkiksi, katsoo.
Mutta postikonttori ei yleensä katso sinun
kuoren sisään. Ja sisällä kuoressa
on toinen viesti ja tämä sisäinen viesti
on todellisuudessa tarkoitettu
vastaanottajalle. Eli todellisuudessa,
voisit tehdä vielä enemmän ja jopa laittaa
koko kirjekuoren postikorttiviesteineen
toisen kirjekuoren sisään. Ja tämä voi
kuulostaa hullulta minulle tavallisena
henkilönä, mutta email sallii tämän.
Ja RFC dokumentissa, siinä on esimerkkejä
miksi tämä voi olla välttämätöntä.
Miksi, miksi, miksi moiset asiat on sallittu.
Mutta ne ovat hämäriä. Ja niin seurauksena
se on tässä ensimmäisessä esimerkissä,
näemme, että yleisesti määritämme
saman osoitteen kahdesti. Mutta kysymys
joka meidän pentestaajina tulisi
kysyä on: Vaaditaanko sitä, oikeasti?
Onko se oikeasti totta vai ainoastaan
toiveajattelua? Ja se on vain
toiveajattelua. Eli standardi
ei erityisesti sano, että sinun pitäisi
määrittää sama osoite vastaanottajalle
tai "From" lähettäjän osoitteelle kuoressa
ja viestin sisällä. Eli, voit virittää,
niitä ja lähettää erilaista, eri tavaraa.
Eli, oikeasti,
on monia headereita lisää kuin mitä juuri
näytin. Ne mitä näytin ovat, luulen, niitä
joista meillä kaikilla on kokemusta, koska
vaikka vain käyttäisit emailia, ne ovat
yleensä se juttu jonka näet tai näet
päiväyksen, näet otsikon. näet
kuka on lähettänyt sinulle jotain ja
kenelle se on lähetetty. Yleensä sinulle.
Ja siinä voi olla, toki, useita vastaanottajia.
Oh, yeah. Ja kysymys silloin, toinen kysymys
on: Mikä on oikeasti, jos olemme määritelleet
jostain syystä vahingossa tai erityisesti
jos olemme määritelleet eri osoitteen
tähän kirjekuoreen tässä viestissä
minkä käyttäjä näkee vastaanottajana,
se on oikeasti headeri.
Eli viestin sisällä on se, mikä on
tarkoitettu käyttäjälle. OK. Eli kuten
olin sanomassa, standardit sallivat vähän
enemmän headereita. Ja oikeasti
3 headeria "From", "Sender", "Reply to"
jotka ovat semanttisesti hyvin
lähekkäin ja standardi oikeasti selittää
Milloin sinun pitäisi käyttää mitäkin.
Ja hassu juttu minulle on, että esimerkiksi
"From" headeri, joka on yleensä se
minkä näemme mitä se voi sisältää. RFCta
lukiessa selviää ettei
niitä headereita pitäisi olla kuin yksi,
mutta headeri itsessään voi
sisältää useita osoitteita. Henkilökohtaisesti
en ole ikinä saanut postia usealta
eri lähettäjältä, mutta se on sallittua.
Tärkeä asia ymmärtää on tässä
jälleen on taaksepäin yhteensopivuus,
josta mainitsin aikaisemmin. Eli vaikka
standardi selittää kuinka sinun pitäisi
käyttää kutakin headeria ja ettei
sinun pitäisi käyttää kuin yhtä kappaletta
niistä, käytännössä voi lähettää
väärinmuotoillun sähköpostin. Voisit lähettää
emailin useilla headereilla, sama "From"
header useita kertoja tai voit lähettää
headerin joka ei sisällä "From" mutta
sisältää "Sender" headerin, RFCn mukaan
väärin. Todellisuudessa se toimii.
Useimmilla organisaatioilla, useimmat email
palvelut pyrkivät parhaansa mukaan välittämään
täysin vääristetyn emailin, koska ne oikeasti
haluavat alentaa ylläpitokustannuksia.
Eli jos joku ei toimi, silloin tulet heidän
luokseen. Joten on parempi
saada kaikki toimimaan suurimman osan
ajasta. Tietenkin pentestaajalle tämä
tarkoittaa, että voit leikkiä sillä
koska on
erilaisia implementointeja ja juuri mikä
headeri esimerkiksi, jos sinulla
on kaksi näytetään tai mitä käytetään
johinkin algoritmiin. Se riippuu kyseisestä
implementaatiosta. Eli koska on niin monta
implementaatiota, ne ovat kytkeytyneinä
toisiinsa erilaisilla tavoilla. Sinä voisit
ja sinun pitäisi pentestaajana yrittää
eri asioita, esimerkiksi, lisätä sama
headeri useaan kertaan. OK.
Nyt kun olemme läpikäyneet perusteet,
katsotaan miten oikeasti koittaisit
väärentää emailin, esimerkiksi, yeah. Ja
tässä taas, tulemme takaisin tähän
kuvaan jonka näimme aiemmin. Ja,
esimerkiksi, ensimmäisessä esimerkissä
Alice lähetti postia Bobille. Sanotaan, että
olemme Chuck. Eli olemme kolmas osapuoli.
Olemme lisensoituja pentestaajia, meillä
on sopimus että voimme tehdä näin
ja koitamme lähettää väärennetyn emailin
Bobille. Ja tässä esimerkissä koitamme
väärentää Alicen viestin. Eli aikeena on
että Bob haluaa, Bon vastaanottaa emailin.
Sen pitäisi näyttää heille, Bobille, että
emailin lähettäjä on Alice. Eli riski on tämä.
Okei, en käy läpi riskiä. Luulen, että
voitte kuvitella sen. Eli esimerkiksi,
voisit lähettää vääriä uutisia, se on yksi
ongelmista, joita olemme nähneet Latviassa.
Tätä on käytetty valtionhallintoa vastaan.
Ja kun joku lähettää valeuutisia sähköpostilla
toisille ihmisille ja niin edelleen, ja
koitamme matkia jotain valtiollista
henkilöä. Ja kuten voit kuvitella itse,
ei ole hyvä juttu
sinulle jos se on mahdollista. Mutta
mielenkiintoinen juttu on, että vaikka
Chuck tekee hyökkäystä, riippuu sinun
näkökulmasta. Se voi näyttää, että Alice
hyökkää Bobille. Mutta tässä tapauksessa
email ei mene Alicen järjestelmän läpi.
Kuten näette, Chuck lähettää emailin suoraan
Bobin sisääntulevalle palvelimelle.
Nyt, on olemassa toisen tyyppinen hyökkäys
jota katsotaan. Jos lähetämme emailia
toiseen suuntaan Bobilta Alicelle.
Ja asiakkaamme on Alice. Eli testaamme
Alicen palvelinta. Ja tässä tapauksessa,
koitamme, taas olemme Chuck.
Lähetämme emailia. Tässä tapauksessa, email
menee Alicen järjestelmän läpi.
Eli kiinnostava kysymys on, kumpaa on
helpompi suojata. Voi vaikuttaa, koska
toisessa esimerkissä, email oikeasti kulkee
Alicen järjestelmän läpi, se tarkoittaa,
että Alicella on voimaa tehdä jotain,
tehdä lisätarkastuksia, tutkia jne.
Mutta kuten näet jatkossa, on helpompaa
suojata ensimmäistä esimerkkiä.
Eli, vaikka asiakkaamme on Alice, me
koitamme suojata Alicea,
mutta se on helpompaa suojata käytännössä
tässä esimerkissä kun toinen on myy...
lähettämässä emailia, yrittämässä matkia
Alicea. Okei, Oh, Yeah. On myös kolmas
esimerkki, jossa Alice kommunikoi hänen
kollegoidensa kanssa saman
organisaation sisäisesti. Jälleen, olemme
Chuck. Taas, me vain lähetämme emailia
Alicen sisääntulevalle palvelimelle. Ei
lähtevälle. Oikein. Tärkeää huomata.
Ja taas, periaatteessa, tämä kolmas
esimerkki on helpoin huomata, koska
Alicen organisaatio oletettavasti tietää,
että hänen emailien pitäisi aina tulla
Tältä tietyltä lähtevien palvelimelta.
Just. Jos vaikka lähetetään emailia
Alicen kollegalta, silloin saapuvien
palvelimella pitäisi olla kaikki valta
Ilman mitään standardeja ja sellaisia.
Todellisuudessa, joskus, oikeastaan aika
usein, siinä on erityinen whitelist Alicen
omalle organisaatiolle. Joten joitain
tarkastuksia ei tapahdu jos Alicen saapuvien
palvelin ottaa emailin vastaan, joka tulee
taas, Alicelta. Ja muuten, meillä on tämä
esimerkki. Olemme nähneet sitä parina
viime vuonna. Luulen että se ei ole ainoastaan
Latviassa. Eli tässä, esimerkiksi, on Canada
ja muut, jos näette. Nämä ovat näitä
emaileja, jotka ovat fakeja, ransomwarea yms.
Periaatteessa ne kertovat, että he ovat
hakkeroineet tietokoneesi tai
sähköpostisi. Tässä tapauksessa, ja he ovat
järjestelleet kaikenlaisia talous juttuja tai
joku kiristää sinua. Ja pyytävät sinua
lähettämään heille rahaa. Sinun rahaasi.
Tarkoitan, rahaasi bitcoineina heidän
osoitteeseen. Eli nämä sähköpostit.
Kiinnostavaa näissä emaileissa on, että
yleensä todistaakseen sinulle että heillä
on pääsy sähköpostiisi. He lähettävät
sähköpostin sinun osoitteestasi sinun
osoitteeseen. Ja monelle ihmiselle, se
toimii. Eli he näkevät, että joku on
hakkeroinut heidän tilinsä, selkeästi,
koska he saivat sähköpostin itseltään.
Kuten näet hetken päästä, on oikeasti
helppoa väärentää sellainen email, jos
mitään suojauksia ei ole asetettu
paikoilleen. Eli tärkeä
asia. Toivon, että nyt kukaan yleisössä
ei sorru tällaiseen huijaukseen.
Mutta jos teillä on ystäviä tai kollegoja,
jotka ovat ottaneet yhteyttä ja kertoneet
sellaisista emaileista joita he ovat saaneet.
Mutta yksi asia sen lisäksi, että tarkastavat
salasanansa on alkaa käyttämään tehokkaampia
autentikointeja on, että ehkä voisit
pyytää heitä ottamaan yhteyttä
email admineihin tai
IT teamiin ja kysyä heiltä anti-spoofing
suojauksista, koska todella jos he voivat
vastaanottaa sellaisen emailin ja sitä
ei suodateta, jotain on vialla.
Okei, ja nyt katsotaanpa väärennettyä email
keskustelua, tämä esimerkki on vastaava
kuin edellinen. Mutta tässä olemme oikeasti
Chuck. Eli tämän on lähettänyt Chuck Bobille,
mutta esitämme olevamme Alice. Kysymys
on, voitko nähdä eron
kuinka tämä on erilainen kuin edellinen.
Ja on vaikeaa havaita
eroa, koska sitä ei ole.
Tämä on sama keskustelu.
Eli, juttu tässä on, että SMTP protokollassa
ei itsessään oikeasti ole mitään suojausta.
Eli, yeah, voisit vain esimerkiksi, jos
olet tuo tyyppi, joka lähettää fake
kiristyskirjeitä, voit vain kirjoittaa
tämän tekstin ja dumpata sen
telnetiin ja se toimii monelle
organisaatiolle. Ei kaikille tietenkään,
email adminit tietävät nämä jutut, tietävät
että SMTP ei ole luotettava tällä tavalla.
Se on helppo väärentää ja niin edelleen.
Ja on ollut useita yrityksiä lisätä jotain
suojausta, vähän ad hoc tapaisesti. Eli
ei standardeja, jotain kiristyksiin, lisää
filttereitä ja juttuja omaan mailiisi.
Ja jotkut näistä suojauksista rikkovat
oikeasti RFCta. Jos luet sitä, mutta ketä
kiinnostaa? RFC ei ole kuten pyhä teksti,
vai onko. Hyväksyn tämän täysin, esimerkiksi.
Yeah, jatketaan. Mutta ongelma on, ettei
ole tarpeeksi tietoa.
Eli, jos mietit täällä, jos olemme Bob
ja koitamme suojata järjestelmämme.
Eli olemme Bob, joku system admin varmaan
tai Bob on sys admin ja koitamme lisätä
joitain sääntöjä ja juttuja,
mitä voimme oikeasti tehdä. Eli yksi
esimerkki jonka listasin tähän on tehdä
tämä SMTP takaisinsoitto, ja se tarkoittaa
että juuri kun vastaanotamme emailin
Alicelta, me oikeasti tarkistamme että se
email on olemassa. Koska monet spammerit,
mitä ne tekevät, ne vain lähettävät emailia
olemattomista osoitteista se toimii
jos sinä ajat vain raakaa SMTP palvelinta.
Eli SMTP takaisinsoitossa, periaatteessa
kun olet vastaanottamassa emailia,
esimerkiksi Alicelta, koitat. Ajat,
käynnistät erillisen prosessin, joka
yrittää ottaa yhteyttä takaisin Aliceen, jne.
Ja se koittaa lähettää hänelle emailia, jos
palvelin sanoo Yeah, se on OK. Sellainen
sähköposti on olemassa jne. Sinä et ole,
Sinä oikeasti lopetat keskustelun.
Et jatka emailin lähetystä, mutta sinun
järjestelmä voi automaattisesti huomata
että tämä sähköposti on olemassa.
Toinen tapa tehdä tämä on tarkastamalla
tämä "Hello". Ja tämä on ensimmäinen rivi
ja ensimmäisellä rivillä, sen tavallisesti
pitäisi kertoa sinulle hostname
palvelimella joka lähettää emailia.
Kiinnostava osa. Eli RFCn mukaan jälleen,
sinun ei pitäisi tarkastaa että olet
varmentanut sen. Ja jos se ei onnistu, jos
se on satunnainen, sinun pitäisi hyväksyä
email silti. Mutta mitä monet palvelimet
tekevät, ne koittavat varmentaa sen.
Ensinnäkin, tällä hostnamella kerrot, että
sinulla on tämä hostname joka
oikeasti osoittaa samaan IP osoitteeseen
ja he tekevät päinvastoin. Eli he
ottavat IP osoitteen ja koittavat ajaa
käänteisen DNS PTR kyselyn ja koittavat
selvittää täsmääkö IP osoite oikeasti
tähän hostnameen. Eli jälleen,
pentestaajina meidän tulisi olla tietoisia
näistä suojauksista, ad hoc, suojauksista
koska jos et tunne niitä, koitat
ajaa jotain ja se ei toimi
sinulla. Mutta ne ovat helppoja jos
olet niistä tietoinen ja jos sinun täytyy
tunnistaa, että tämä organisaatio käyttää
niitä. Ne ovat helppoja ohittaa, eli ne eivät
tarjoa hyvää suojaa. Niiden tarkoitus on
suojata massa hyväksikäytöltä, spammilta.
OK, eli SMTP, kuten näimme, itsessään ei
tarjoa minkäänlaisia suojauksia.
Eli mitä lisäyksiä protokollaan voimme
oikeasti käyttää suojataksemme itseämme ?
Yksi sellainen protokolla on SPF. Ja mitä
SPF tekee, se koittaa olla kuten peili
MX järjestelmässä. MX järjestelmä on se,
jota periaatteessa Alica voi käyttää,
Jota Alicen palvelin voi käyttää löytämään
automaattisesti palvelimen joka kuuluu Bobille
ja sen saapuvien palvelimen. Eli SPF on sen
vastakohta. Eli sen idea tässä on
olla automaattisesti ajossa Bobin saapuvien
palvelimella. Ja nyt kun Bob
vastaanottaa emailin, ne voivat ajaa taas
DNS kyselyn ja selvittää minkä IP osoitteiden
oikeasti pitäisi kuulua Alicen lähtevien
palvelimelle. Just. Eli mielestäni se on
helppoa ymmärtää, se on merkityksellinen
tapa. Se kuulostaa merkittävälle
lisäykselle. Ja yksi asia, joka tarkastetaan
tässä esimerkissä on kirjekuoren
lähettäjä. OK. Ja tässä on esimerkki
minimi SPF syntaxista ja kuten voimme
nähdä. Mielestäni sitä on helppo ymmärtää,
vaikka et tietäisi mikä syntaxi on, se listaa
IP osoitteet, mikä on IP, pitäisi olla IP
osoite lähtevien palvelimelle, oikealle
lähtevien palvelimelle. Ja sitten se sanoo
tässä "-all", joka taas on helppo ymmärtää
Tässä tapauksessa, se tarkoittaa, että se
on ainoa. Eli jos vastaanotat viestin,
viesti tulee tästä IP osoitteesta. Se on
hyvä. Hyväksy se. Jos se on jotain muuta
sitten poista se. Ja on monia tapoja
määrittää IP osoite. Voisit vain
määrittää IP osoitteen, voisi määrittää
IP aliverkon, voisit määrittää DNS nimen
Eli se on ainoastaan admineille. Eli
periaatteessa pentestaajalle se ei tee
paljoa eroa, admineille se vain helpottaa
järjestelmien ylläpitoa. Ja sitten ovat
nämä määreet, määreet. Tämä on jotain
jotat laitat
ennen metodeja. Esimerkiksi, tässä
esimerkissä, IPv4:ssa ei ollut mitään
määreitä. Siinä ei ole plussaa tai miinus
tai jotain. Se johtuu siitä, että plus
on oletus vakiona. Eli vakiona, kaikki
mikä on listattu SPF määrityksissä pitäisi
täsmätä johinkin oikeaan SMTP palvelimeen,
lähtevien palvelimeen. Kuitenkin, on muita
vaihtoehtoja, voit käyttää miinusta joka
on fail. Ja se tarkoittaa että jos jokin
täsmää kirjaukseen, esimerkiksi, miinus
all, joka on eniten käytetty,
se tarkoittaa, että jos se täsmää tähän,
se on yleensä viimeinen, niin tuhoa
sähköposti. Se ei ole oikea. Se on fake
email. Ja sitten on kolmas vaihtoehto,
joka on soft fail, joka on tarkoitettu
testauksen ajaksi. Eli kun olet juuri
alkamassa implementoimaan SPFaa, siinä
voisi olla. Eli ongelma on, että saattaisit
unohtaa, esimerkiksi, lisätä joitain SMTP
palvelimia. Eli, koska et ole tehnyt sitä
ennen, ehkä luulit, että sinulla on vain
yksi oikea SMTP lähtevien palvelin, mutta
oikeasti sinulla on useita, tai useita
tapoja lähettää sähköpostia. Eli siinä
tapauksessa, jos alkaisit asettamaan SPF
asetuksia "fail" tiukalla politiikalla,
sinun käyttäjät eivät voisi lähettää enää
viestejä. Eli sen takia testaaminen on
hyvä. Kuitenkin. On myös muita esimerkkejä,
vähän monimutkaisempia, yksi niistä oli
include. Eli sen sijaan, että määrität
policyn itse, koska käytät kolmatta
osapuolta, esimerkiksi, Googlea tässä
tapauksessa, ja sitten vain
sisällytät mitä tahansa Google on
julkaissut. Ja kiinostava juttu tässä on
tämä SPFn käyttö. Jos me vain, jos vain
katsomme niiden domainien määrää
jolle olemme laittaneet jonkun policyn,
se näyttää hyvältä. Arvaan, että esimerkiksi
kaikkein suosituimmat domainit, se olisi
noin 70 prosenttia. Mutta ongelma on,
ettö valtaosa niistä on joko huonosti
konfiguroituja tai ne käyttävät ainoastaan
softail optiota. Ja soft fail ei käytännössä
tee mitään. Voit siitä huolimatta, että
policy on soft failissa, voit useimmissa
tapauksissa väärentää sähköpostisi
ja se menee läpi, koska vastaanttava puoli
ajattelee että se on vain testimoodissa.
Sinun pitäisi poistaa email automaattisesti.
Yeah. Eli. Oikeasti prosentit eivöt
ole kovin hyvät. Kuitenkin, tärkeintä
meille penetraatiotestaajina on
ymmärtää. Eli mitä teemme kun näemme
tämän SPFn. Se tarkoittaa että emme voi
väärentää postiaja. Ei, ei niin. Että se
olisi game over meille. Voimme tehdä
juttuja. Ensinnäkin, on tämä soft fail jonka
mainitsin. Ja siinä periaatteessa sinulla
on jotain sääntöjä, sääntöjä, sääntöjä, ja
lopuksi, laitat tavallisesti tämän
soft failin kaikille. Joten jos me
pentestaajina koitamme väärentää jostain
tuntemattomasta IP osoitteesta. jota ei ole
listattu edellisissä säännöissä. Älä tee
mitään. Tee mitään. Tarkoitan älä estä
emailia. Se on hyvä meille, eikös ?
Se tarkoittaa, että voimme väärentää aivan
vanhaan tapaan ja se yleensä toimii.
Yksi hyvä huomio tässä on, että jotkut
järjestelmät ovat, eivät käytä vain tätä
binääristä luokittelua, onko jokun hyvä
tai paha, vaan ne koittavat tehdä jotain
pisteytystä. Ja voi olla, että vaikka
olisikin tämä soft fail, he eivät
automaattisesti estä sinun emailia, vaan
ehkä he lisäävät jotain epäilyksen tasoa
siihen. Mutta tärkeä asia on, ettei se
ole automaattisesti game over.
Toinen juttu on tämä include. Eli include
on hyvin käytännöllinen jos käytät kolmansia
osapuolia. Mutta ongelma on, että se ei
ole sitä miltä kuulostaa joillekin, edes
standardissa, se mainitsee, että se oli
huonosti valittu nimi. Ja syy tähän
ettei se ole macro. Eli ymmärtääksesi
mitä tapahtuu kun tämä includataan,
sinun ei pitäisi vain leikata ja liimata
kaikkea rekursiivisesti ylätasolle.
Se ei ole miten se toimii. Se koittaa
ajaa kaikkia testejä tämän includen
sisäpuolella. Mutta jos se epäonnistuu, se
ai automaattisesti poista viestiä. Se menee
yhtä tasoa ylemmäs ja se koittaa ajaa
toisia sääntöjä. Ongelmana siinä
on, että kaksi tapausta jotka ovat
tavallisimipia ovat, että joko vain
unohdat lisätä miinuksen kaikkiin tai
se on sinun system admin joka on
unohtanut sen. Siitä tapauksessa, vaikka
he lisäävät miinuksen kaikkiin, se ei toimi
koska, tarkoitan, se toimisi kun vastaan-
ottaja tarkastaa sitä miinus kaikki
includen sisällä ei tarkoita samaa, kuin
mitä se tarkoittaa top levelillä. Ja
toinen olisi, että he ovat lisänneet kaiken,
mutta soft failanneet. Ja sitten adminit
miettivät. Mutta se in okei, koska sisällytän
GMailin ja GMailissa on tämä hard fail.
Se ei toimi niin. Ja lisäksi, tämä on
todellisuudessa mielestäni yleisin tapaus,
on, että usein kun näet oikeasti tämän
tyyppisen SPF listan, mutta siinä
listan sisällä on paljon juttuja IP
osoitteita. Siellä on A kirjauksia
siellä on MX kirjauksia, Siellä on pointer.
Periaatteessa, mitä vain admin voisi
kuvitella ja syy tähän yleensä on että
he eivät ole varmoja miten se toimii.
He eivät ole varmojja mitä sinne tulisi
laittaa. Eli esimerkiksi, yksi juttu
jonka osoittaa on, että jos siellä on MX
tietue SPF listan sisällä, yleensä useissa
organisaatioissa, elleivät ne ole hyvin
pieniä ja heillä on vain yksi palvelin
heillä on eri palvelimia, eri IP osoitteita
lähtevälle postille ja saapuvalle
postille. Tämä tarkoittaa,ettei ole
käytännön syytä tälle organisaatiolle
ei käytännön syytä lisätä MXaa SPFaan
koska ei, ei postia pitäisi lähteä läpi
heidän saapuvan postin palvelimesta. Ja
toinen juttu voi olla, että admin tietää
tietää miten se toimii, mutta heidän oma
arkkitehtuuri on tosi sekainen ja he
lähettävät postia ulos monesta, monesta eri
pisteestä, mikä on kiva pentestaajille.
Se tarkoittaa etteivät he ole hyvin
organisoituneita. OK ja on vielä yksi vika,
joka on, ettei hienojakoisuus sovi hyvin.
Eli ainoa juttu jota voit.
On useita näitä kirjaus tyyppejä. Mutta
ne kaikki varsinaisesti resolvaavat IP
osoitteen. Mutta kuten voit kuvitella,
usein IP ei ole yhdistetty vain email
palvelimeen. Eli yhdessä IPssa voi olla mail
palvelin ja web palvelin tai tietokanta tai
jotan muuta. Ja se tarkoittaa, että
pentestaajana, voit exploitata tämän
jonkun muun. EI mail serveriä itseään,
koska postipalvelin on yleensä aika pieni
kohde. Niissä ei ole paljon haavoittuvuuksia.
SInä vain päivität ne ja se siitä.
Mutta muissa järjestelmissä, esimerkiksi
web on helppo murtaa. Yleensä.
Sitten voit nostaa, kuten tavallaan nostaa
oikeustasoa saadessasi pääsyn jonkun
toisen palvelun kautta siinä IP osoitteessa
tai IP alueessa. Voit alkaa lähettämään
posteja. Ne läpäisevät kaikki SPF suodatukset.
OK. Eli yksi esimerkki ovat jaetut hostaukset
joka on hyvin tavallista ja ongelma jaetussa
hostauksessa on se. Tässä tapauksessa.
Okei. Sinulla on IP osoite SMTP palvelimelle.
Ehkä sitä palvelinta käytetään vain lähettämään
postia. Mutta palvelin itsessään ei tee
työtä vain sinulle. Se palvelee monia
domaineja, ehkä satoja tai tuhansia. Se
tarkoittaa, että hyökkääjänä, taas, voit
exploitata vain yhden niistä, tai jaetussa
hostauksessa voit vain ostaa. Voit tulla
asiakkaaksi siihen jaettuun hostaukseen.
Sinun ei tarvitse murtaa mitään.
Ja sitten voit ehkä alkaa lähettämään
emailia, joka näyttää hyvältä SPFaa
ajatellen, kuten heidän omaansa. Eli. Ja
toinen on että tarkastetaan väärä identifier.
Ja tämä on varmaankin pahin, pahin
ongelma SPFn kanssa. Se on, kuten
kerroin aiemmin, se että on ainakin
kaksi identifieria. Tyypillisesti kuoren
lähettäjä, ulompi, joka listaa lähettäjän
sitten on se sisempi,
joka on yleensä "from" headeri.
Mutta näistä kahdesta SPF tarkastaa,
jos SPF on ainoa teknologia jota käytät,
SPF tarkastaa vain ensimmäisen:
Kuoren lähettäjän. Kuten kerroin aiemmin,
useimmissa tapauksissa, oikeat käyttäjät
jotka saavat mailin, he eivät näe kuoren
lähettäjiä. He näkevät tämän toisen
"from" esimerkiksi, tai jonkun niistä
toisista headereista joita mainittiin.
Tämä käytös on oikeasti korjattu DMARCssa,
joka on teknologia jonka mainitsin. Mutta
valtaosassa SPF asennuksista, domaineissa,
joissa SPF käytössä ei ole DMARCia,
eli ne eivät ole suojassa tältä. Eli vaikka
heidän SPF olisi hienosti hyökkääjälle,
se tarkoittaa, että sinun tarvitsee vain,
sinun pitää vain ohittaa SPF asettaaksesi
kuoren lähettäjän joksikin toiseksi.
Esimerkiksi, sinun kontrolloima osoite,
joka läpäisee SPF tarkastuksen. Mutta sitten
"from" sisällä voit näyttää headerin, joka
täsmää organisaatioon, joka haluat matkia
olevasi. Okei. Sitten on toinen
teknologia, jonka pitäisi korjata tämä
ja se on DKIM. Kuten olemme nähneet
SPF ei ole riittävä. Eli DKIM. Anteeksi,
väärät kirjaimet, DomainKeys Identified Mail.
Se on DKIM ja sinun ei tarvitse muistaa
pitkää nimeä, vain lyhyt nimi.
Ja mitä se tekee, periaatteessa se käyttää
kryptografiaa, mikä on kiva, eikös? Se on
matikkaa. Se on hankalaa murtaa hyökkääjälle.
Ja mitä se tekee, se allekirjoittaa jokaisen
postin eli jokainen posti joka lähtee
DKIM käyttävältä palvelimelta saa
allekirjoitujsen, jonka voit, vastaanottajana,
kryptografisesti varmistaa. Joten kuten näet,
se vaikuttaa aika vaikealta nähdä, koska
sitä ei ole tarkoitettu ihmisten
prosessoitavaksi. Se on kryptografiaa.
se on tarkoitettu prosessoitavaksi tietokoneille.
Mutta tärkeä osa tässä on periaatteessa
keltainen osa joka on kryptografinen
allekirjoitus. Mutta vihreä osa on, mitä
kutsutaan domain tunnisteeksi. Ja punaista
osaa kutsutaan. En muista miksi sitä
sanotaan nauraa. Mutta periaatteessa sen
idea on, että sinulla voi olla useita avaimia
organisaatiollasi, esimerkiksi, organisaatiosi
voisi lähettää posteja sinun alkuperäiseltä
SMTP palvelimelta, sitten sinulla voisi olla
varalla yksi, tai voisi olla, voisit
lähettää joitain viestejä Googlesta tai
joku markkinointikampanja ja niin edelleen.
Ja jokaisella näistä voisi olla erilainen
"punainen" parametrina. Ongelma on ja
sitten vastaanottajan pitää ajaa DNS kysely,
joka on toinen esimerkki käyttäen tätä
yhdistelmää vihreä ja punainen.
Ja sitten ne hakevat julkisen avaimen ja
voivat käyttää sitä varmistamaan alle-
kirjoituksen. Eli se kuulostaa hyvälle.
Ongelma on, ei, toinen ongelma vielä.
Kuinka käyttää sitä? Luulen sitä helpoksi
jos osaat julkisen avaimen salausta. Eli
lähetys päässä, sinun pitää ensin luoda
julkinen ja salainen avainpari. Sitten
julkaiset julkisen osan DNSaan. Sitten
käytät salaista avainta allekirjoittamaan
viestit. Nyt vastaanottaja tekee tavallaan
päinvastoin. Kun he saavat emailin, he
päättelevät tästä punaisesta ja vihreästä
osasta he päättelevät oikean DNS tiedon
jonka ajaa, ajavat sen, saavat julkisen
avaimen ja vertaavat sitä täsmääkö tämä
julkinen avain viestin allekirjoitukseen.
Kuulostaa kivalta, eikös? Mikä on ongelma?
Eli asiakkaat. Selektorit, se on se nimi.
Eli ongelma siinä on se, että selektoreina
voi olla useita selektoreita DKIM:na
kun teet konfiguraatiota,
voit voit valita niin monta kustom
selektoria kuin haluat ja vastaanottaja
ei tiedä, olisiko sinun oikeasti pitänyt
käyttää selektoria ja mitä
selektoria sinun olisi pitänyt käyttää.
Eli ongelma on että kun, jos puhumme vain
vanilja DKIMsta, olemassa olevan alle-
kirjoituksen muokkaaminen on vaikeaa
penaajalle ja hyökkääjälle. Mutta on helppoa
vain poistaa se, koska jos olet poistanut
DKIMn kaikista headereista, vastaanottaja
ei tiedä, että sen olisi pitänyt olla
siinä, koska tarkistaakseen sen, se pitää
olla. Eli, esimerkiksi, tarkastaakseni
allekirjoituksen, minun pitää tietää tämä
vihreä osa. Tämä domain tunniste ja
selektori, jotka ovat osa headeria. Just.
Eli se on valtava ongelma. Ja se tarkoittaa
että. Yeah. Se tarkoittaa, että vaikka
me emme voi huijata DKIMaa itseään
voimme vain leikata DKIMn, lähettää viestin
ilman sitä. Ja jos DKIM oli ainoa asia joka
suojasi tätä järjestelmää, se toimii. Eli
se ei välttämättä saisi vihreää merkkiä
tai jotain, mutta se menisi vastaanottajalle.
Ja toinen juttu on tämä
domain selektor. Miksi meidän pitää edes
asettaa se? Koska parhaissa käytännöissä,
tietenkin, on että kuoren lähettäjä on sama
kuin "from" header ja tämä DKIM domain
selektori. Just. Eli jos olet jos minä
lähetän Alicelta, niin kaikkien kolmen
pitäisi olla Alice.org tai jotain. Ongelma
on ettei sitä ole mainittu RFCssa että
näin pitäisi olla. Eli mitä tapahtuu jos
asia ei ole näin ?
Erimerkiksi, oikealla on joku oikea domain
joka käyttää Gmailia, Google Appsia
Google suitea ja siinä tapauksessa vakiona
vakiona Google suite allekirjoittaa kaikki
viestit. Mutta jos et tee omaa
konfiguraatiota, se allekirjoittaa ne
domainilla jota hallinnoi, joka on tämä
"gappssmtp". Ja se tarkoittaa, että vaikka
teknisesti jotain on allekirjoitettu DKIMlla
sitä ei ollut allekirjoitettu siten, että
voisit jäljittää sen takaisin sinun
organisaatioon. Se on jotain aivan
muuta. Mitä vastaanottajan pitäisi tehdä
siinä tapauksessa? Pitäisikö jättää väliin?
Pitäisikö hylätä viesti tai jotain? Eli oikea
tapa ei olisi hylätä sitä,
mutta vaan arvioida, ettei se ole oikea,
ainakaan oikea DKIM, mutta oikeasti
se riippuu. Osa tarkastajista näkevät vain
jonkin DKIMn, tarkastavat sen ja
savovat että cool, se täsmää RFChen.
Eli, mutta nyt kiinostava osa. DKIM
muokkaaminen, johon minulla ei ole aikaa.
Mutta ajatus on, että joissain tapauksissa
ei aina, mutta joskus voit oikeasti muokata.
Helpoin osa muokata viestissä
ovat headerit koska DKIM, koska se laitetaan
headereihin itse, se ei automaattisesti
allekirjoita vanhoja headereita. On
tavallaan kana ja muna ongelma. Vakiona
se allekirjoittaa vain yhden tai kaksi headeria
ja voit määrittää lisää headereita joita pitää
allekirjoittaa, mutta se ei tapahdu auto-
maatisesti. Eli helppo osa hyökkääjälle
on lisätä headeri. Jos se jotenkin
auttaa sinua suunnitelmassasi, se on
helppo tehdä. Sinä vain lisäät toisen
headerin. Kiinnostava osa on, että
vaikka RFC, kuten mainitsin aiemmin,
mainitsee, että jotkut headerit kuten
"subject" tai "from" pitäisi olla paikalla
vain yhtenä kopiona. Oikeasti voit lisätä
enemmänkin, esimerkiksi "from" headerin ja
mitä tapahtuu siinä tapauksessa on aika
kiinnostavaa. DKIM täsmää jos olet kertonut
DKIMlle että "from" headerin pitäisi olla
esimerkiksi, allekirjoitettu, sitten se täsmää
ja allekirjoittaa ensimmäisen "from" headerin
alhaalta. Mutta monet ohjelmat meidän software
email ohjelmista todellisuudessa ainoastaan
näyttävät käyttättäjälle ensimmäisen toiselta
puolelta, ylhäältä. Eli se tarkoittaa, että
hyökkääjä voi muokkailla tai ylikirjoittaa
headereita vain lisäämällä uusia headereita
päälle. Ja tämä oikea ongelma on
mainittu DKIM RFCssa ja suojaus
jota he ehdottavat on tämä code
Over-Signing tai voit mennä ja lukea RFCn.
Mutta kaikki eivät tee sitä oikeasti. Ja
kuitenkin, se toimii vain headereille.
Eli joskus se on hyvä. Joskus ei niin hyvä.
Viestin rungon
muokkaaminen on oikeasti vaikeampi toteuttaa.
Periaatteessa naivi tapa tehdä se kryptauksen
kautta, jota emme halua tehdä. Ja toinen
tapa on tämän yhden parametrin
kautta, joka on body lenght, ja se on aikaa
kyseenalainen toiminnallisuus
DKIMssa. Joskus voit määrittää
että tiiviste vaikka. Allekirjoittamiseen,
meidän ei pitäisi ajatella koko runkoa,
vaan ensimmäisiä joitain tavuja.
Eli se on oikeasti käytännöllistä joissain
tapauksissa postituslistoissa, mutta yleensä
se ei ole kovin käytännöllistä. Ja käytännössä
valtaosa email ohjelmista ei tee sitä.
Jos se tekee, se on altis mahdollisesti
tälle koko
rungon ylikirjoittamiselle. Voit lisätä
uuden mime tyypin ja sitten muokata
headereita näyttääksesi eri mime tyypin
ja se ohittaa DKIMn. Eli tässä tapauksessa
se näyttää, esimerkiksi, vihreän painikkeen
tai mitä vaan, koska DKIM, se on oikein.
Eli nyt on kolman teknologia, jota
kutsutaan DMARCiksi. Ja taas,
siinä on koko nimi, joka on pitkä. Mutta
tässä tapauksessa se tarkoittaa jotain.
Siinä on kaksi avainsanaa: Reporting and
Conformance. Reporting on se
jonka suurin osa admineista tuntee, koska
sillä DMARC, luulen, usein myydään
heille. Raportointi tarkoittaa, että
kun sinulla on jotain ongelmia tässä
tapauksessa, sinä voit päästä kertomaan
toiselle puolelle mitä tehdä siinä tapauksessa.
Eli voit käskeä niitä lähettämään sinulle
raportteja kerran päivässä, tai joka kerta
ja niin edelleen. Eli pentestaajalle se ei
ole niin hyödyllistä. Mahdollisesti voisimme
käyttää sitä ymmästääksemme minkälainen
konfiguraatio toimii toisella puolella.
Mutta nykyisin tämä toiminnallisuus ei ole
kovin laajasti implementoitu.
Kuitenkin toinen osa, Conformance, se on
oikeasti todella, todella voimakas.
Mitä se tekee, se korjaa nämä suuret viat
joista mainitsin, SPFssa ja DKIMssa.
Ensinnäkin, DKIMssa oli tämä valtava ongelma
että jos poistit headerin, vastaanottajalla
ei ollut mahdollista tietää mikäli sinä,
mikäli siinä oli, olisi
pitänyt olla DKIM alunperin. Jos käytät
DKIMaa yhdessä DMARCin kanssa, se
korjaa ongelman, koska DMARC määrittää
että sinulla on DMARC itsensä.
Se tarkoittaa, että sinulla automaattiesti
toinen, joko SPF tai DKIM pitäisi mennä läpi.
Eli automaattisesti DKIM mittaus ongelma
ratkaistu. Toinen asia, joka muuttuu on,
se muuttaa semantiikkaa SPFaan. Nyt SPF,
jos sinulla on sekä SPF, että
DMARC, se tarkoittaa, ettö SPF pitäisi
tarkastaa "from" headerista. Ja kuten mainitsin,
se oli suuri vika SPFssa, koska jos käytit
SPFaa itseään, vaikka, se on hard fail
tilassa ja niin edelleen, se tarkoittaa
että hyökkääjä voi muokata "from"
headereita ja vastaanottaja ei tiedä sitä.
Pienin esimerkki DMARCsta on hyvin,
hyvin pieni. Ja mielestäni se on helppo
ymmärtää. Sinulla on vain DMARC hylkää.
Sinun pitää tavallaan löytää oikea paikka
määrittää, mutta se on helppoa ja kaikki
mitä sinun pitää tehdä, on luoda tämä DNS
merkintä. Ja kaikki hyödyt tähän ovat,
vaikka sinulla ei olisi DKIM ja DMARCia, jos
olet luonut. Anteeksi, jos sinulle ei ole SPF
ja DKIM, mutta olet luonut DMARCin, oikeasti
se tarkoittaa että tämän domainin ei
pitäisi lähettää yhtään postia, koska vastaan-
ottajan pitäessä mailia oikeana, pitäisi
SPF tai DKIM olla oikein myös. Jos ne
eivät ole, se ei oi olla oikea.
Eli oikeasti se tarkoittaa, että suurin osa
domaineista tuolla pitäisi harkita DMARC
enablointia. Se on oikea asia tehdä. OK.
Eli on lisää tageja. Eli luonnossa,
nämä DMARC kirjoukset voivat olla paljon
pidempiä, mutta niistä ei ole paljon hyötyä
pentestaajille. Eli tärkeä osa tässä jälleen,
on tämä policy jossa voi olla
kolme arvoa "none", "quarantine" ja
"reject". Ja jos se on "quarantine", se
tarkoittaa, että jos, jos ei onnistu,
viestin pitäisi mennä spam kansioon.
Jos se on "reject" se pitäisi hylätä heti.
Ja jos se on "none", se tarkoittaa, että
se on tutkinta moodi. Ja tämä on kuva
jonka näytin aikaisemmin, joka näyttää
että vaikkakin DMARC on oikeasti paras
teknologia näistä kolmesta,
sitä ei oikeasti käytetä laajalti, ikävää
puolustajien kannalta. Aika kiva seikka
kaikille penetraatio testaajille siellä.
Tämä tarkoittaa, että voit oikeasti
väärentää suurimman osan sähköposteista.
Okei, kuinka kierrämme sen? Anteeksi. No.
Mitä tapahtuu jos joku on oikeasti
implementoinut DMARCin? Tarkoittaako se
että pentestaajat eivät voi tehdä mitään?
Sinun ei tarvitse edes tutkia mitään ?
Ei, se ei tarkoita. Eli käytännössä, jos joku
on implementoinut DKIM ja DMARCin, mutta
ei SPFaa, eli nyt heillä on kaksi niistä.
Se on kiva yhdistelmä. DKIM on melko
voimakas ja sen merkittävän vian joka oli,
DMARC ratkaisi. Eli tämä yhdistelmä on
tosi hyvä teoriassa. Käytännössä, ongelma
on, että suojataksesi omat sähköpostisi,
vastaanottajan pitäisi tarkastaa molemmat
DKIM ja DMARC ja valitettavasti,
melko monet ohjelmat eivät edelleen
tee sitä. Yksi niistä ohjelmista on
Microsoft Exchange. Ja mikäli et käytä
Microsoft Exchangea, on hyvä todennäköisyys
että joku kumppeneista jonka kanssa
kommunikoit käyttää Microsoft
Exchangea ja vakiona siinä ei ole mitään
toimintoa DKIM parsimiseen.
Eli oikeasti, valtaosan järjestelmistä pitää
enabloida SPF ihan käytännön syistä, mikä
on hyvä pentestaajille, koska mikäli
SPF ja DMARC on enabloitu vakiona
yhdessä, silloin se korjaa yhden suuren
ongelman SPFn kanssa, mutta ei
automaattisesti korjaa muita ongelmia,
koska ei ole riittävää hienojakoisuutta ja
virhe konfiguraation mahdollisuutta. Eli.
Ja mielenkiintoinen fakta on, että DMARC
vaatii vain yhden toisen teknologian
SPFn tai DKIMn läpäisyn
Tulkitakseen emailin oikeaksi. Ei ole muuta
tapaa DMARCssa, vaikka on monia muitakin
selektoreja. Ei ole mahdollista määrittää,
että molempien niistä pitäisi olla oikein
tai, että DKIM pitäisi olla edellä SPFaa.
Käytännössä, se tarkoittaa että useimmissa
järjestelmissä, joissa on päällä kaikki
kolme niistä, mikä on hyvä käytännöllinen
ratkaisu pentestaajan puolelta, voimme vain
unohtaa DKIM heti ja keskittyä SPFaan
koska SPF on heikoin lenkki tässä tilanteessa.
Okei, vain yksi minuutti kertaukseen.
En ole varma, onko minulla enää aikaa.
Minulla ei ole paljoa aikaa. Okei. Eli,
anteeksi. Yeah. Eli yksi tärkeä asia huomata
on, että testatessasi järjestelmää, harkitse
molempia skenaarioita. Eli älä keskity vain
lähettämiseen. Jos olet, esimerkiksi,
testaamassa Alicea. Alice on organisaatio,
joka on asiakkaasi. Älä keskity vain testaamaan
sähköpostien lähettämistä teeskennellen Alicea,
mutta myös toista puolta. Koska tässä voit
nähdä, että on helppo implementoida,
esimerkiksi SPF ja DMARC, koska
molempiin niistä, sinä tarvitset vain DNS
konfiguraation. Vain yksi merkintä kumpaankin.
Kuitenkin niiden testaaminen, siis
todentaminen kunnolla on vaikeampaa.
Ensinnäkinen tarvitset ohjelmistotuen ja
sinun pitää konfiguroida se oikein myös.
Eli käytännössä voi olla, että useat
organisaatiot, jotka ovat enabloineet
DMARCin tai SPFn DNS puolella lähteville
posteille, he eivät ole oikeasti kunnolla
tarkastaneet sitä. Yeah. Okei. Anteeksi.
Minulla ei ole aikaa siihen. Eli varmaankin.
Se on siinä, anteeksi. Ehkä pari kysymystä.
aplodeja
Herald: Kiitos, Andrew, tästä hyvästä
esityksestä. Toki. Meillä on aikaa parille
kysymykselle. Eli tuolla näen jo yhden
henkilön, mikrofoni numero kaksi.
M2: Hei, kiitos paljon. Tesdätkö jotain
hyvää työkalua valvomaan DMARC raportteja
joita minulle lähettävät vastaanottajani.
A: Yeah. Tämä on todella hyvä kysymys.
Me CERTna, me todella suositamme kaikille
tämän työkalun käyttöönottoa, mutta
valitettavasti, tietääkseni, kaikki
työkalut, jotka ovat suosittuja netissä,
ne keräävät jotain dataa sinusta. Eli
ne käyttävät sitä markkinointitarkoituksiin,
ne eivät ole hyviä yksityisyyden kannalta,
jos olet siitä huolissaan.
Eli sinun pitää implementoida jotain itse
tai sinun pitää katsoa jotain, aloita
joku open source projekti ehkä.
Herald: OK. Mikrofoni numero yksi, kiitos.
M1: Kiitos hyvästä esityksestä. Minä itse,
pidän itseäni email pääkäyttäjänä.
Minua joskus ohjeistetaan lyhentämään
meidän SPF listaa, koska jos se on liian
pitkä, se poistetaan kuitenkin. Siksi
minua joskus neuvotaan pudottamaan
PTR kirjaus. Mutta esityksessäsi, sanot,
että PTR merkintä on hyödyllinen reverse
DNS tarkastuksessa, jonka koen myös hyödyl-
lisenä. Miten ajattelet SPF listan lyhentämisestä
ja mitä ajattelet PTR merkinnöistä yleensä.
A: No, se oikeastaan riippuu juuri sinun
tapauksesta. Eli voi olla tilanne, että
jotkut organisaatiot todella tarvitsevat
tämän pitkän SPF listan ja sitä ei voi
kiertää sinun toimesta. Mitä voisit tehdä
on sisällyttää tämä, sisällytä käytä includea
koska ne eivät ole, ne eivät ole makroja,
eli ne eivät tule laajennetuiksi. Ne eivät
kuten, sinun lista ei tule pidemmäksi jos
sisällytät ja käytät useita includeja. Mutta
ongelma, jota suosittelisin sinulle on,
harkitse tarvitsetko todella, todellako
tarvitset niin monta merkintää jos se
on silti niin pitkä, koska ne ovat hyvin
yleinen ongelma, on että ellet ole Google
tai jotain sellaista, et oikeasti tarvitse
niin pitkää SPF listaa. Se on varmaan
ongelma jossain. Yeah. Eli se on varmaan
virhe useimmissa organisaatioissa.
Herald: OK. Sopii, kyllä. Vain lyhyesti.
Numero 1
M1: PTR record kirjauksesta. Kuulin, että
se pudotetaan. Ei pudoteta standardeista,
mutta sitä ei ole standardeissa.
A: Se on standardeissa. Ei. PRT kirjaus
itsenään, jos se on todella sinun tapaus.
En tiedä, En ole tietoinen että sitä
automaattisesti pudotetaan jonnekin.
Ei pitäisi olla ongelma.
Herald: Meillä on pari
kysymystä lisää täällä. Eli numero
kuusi, siellä ihan takana.
M6: Kiitos, kiitos esityksestä. Tämä ei
suoraan liity, mutta vaikka sen pitäisi
liittyä. Jos postipalvelin hyväksyy, koska
DKIM, DMARC ja SPF, kaikki on hyvin,
mutta erityisesti Google, useille organi-
saatioille, posti toimitetaan mutta
luokitellaan spamiksi. Se tarkoittaa, että
vastaanottajan inboxissa, sitä ei näytetä.
Onko sinulla ratkaisua jolla ratkaistaan
tämä ongelma Googlea vastaan.
A: Yeah. OK. Eli minulla on erilaisia
mielipiteitä siitä, koska yksi asia joka
oikeasti saa meidät tekemään, mitä meidän
pitäisi tehdä. Kiitos Google. On, että he
ovat niin tiukkoja, että koska se on ainoa
syy miksi meillä edes on näin korkea
prosentti edes huonosti konfiguroituja SPFia.
Ainoa syy miksi 70 prosenttia web-sivuista
käyttää SPFaa on, koska heidän pitää
kommunikoida Googlelle.
Ja Google ei hyväksy postiasi, jos sillä ei
ole edes SPF perusteita. Eli minä
oikeastaan pidän työstä jota teen. Minä.
Minä suosisin, että Google tekee mitä tekee.
Mutta ymmärrän oikeita admineja, joilla
on tämä ongelma. Googlella on työkalu.
Te varmaan tiedätte siitä. Missä voit
tarkastaa mitä se ajattelee sinun domainista.
Eli sinun pitää harkita tätä ongelmaa
tapaus tapaukselta. Aika usein
mitä tapahtuu on, että vaikka sinulla on
tämä DKIM, DMARC ja niin edelleen, sitä ei
ole konfiguroitu oikein. Eli mistä esitys
oli. Siinä se on. Sinä varmaankin
ajattelet konfiguroineesi sen oikein,
mutta siinä on virheitä.
Herald: Okei, annetaan etusija
Internetille.
Signal Angel: Meillä on kysymys Internetistä.
No, Yrittäessä varmistaa ja päättää
miten käsitellä "älä vastaa" email
osoitteita.
A: Ei vastausta, anteeksi. Voitko lukea sen
uudelleen.
Signal Angel: Kun yrittäessä varmistaa
osoitetta, kuinka käsitellä No Reply
email osoitteita.
A: Ehkä se oli noreply headereista kyse?
Tai olemattomista IP osoitteista?
Signal Angel: Kuinka käsitellä emailia
"No Reply" email osoitteesta.
A: Koitan vastata kuten kuinka käsitän sen.
Eli mitä usein tapahtuu on, mitä usein
tapahtuu on, että sähköposti
lähetetään olemattomasta osoitteesta. Eli
ehkä siitä oli kysymys. Esimerkiksi
siinä on "no reply" ja se ei ole ongelma
itsessään. No Reply. Ongelma on, ettei
se ole oikea osoite. Ei ole olemassa sitä
osoitetta. Just. Ja niin minulle ei ole
vastausta tähän, koska RFCn mukaan, sinun
pitäisi, pitäisi silti hyväksyä se.
Käytännössä. kuten sanoin, useat sähköposti
järjestelmät jo hylkäävät tämän osoitteen
jos lähetät olemattomasta, ellet ole
Google tai jotain
suurta, jolloin sinut on laitettu whitelistalle.
Et vain voi tehdä sitä.
Et voi lähettää sähköpostia olemattomasta
osoitteesta. Eli jos se on sinun tilanteesi,
luo se osoite, laita se vaikka poistamaan
kaikki email joka sinne tulee,
mutta luo oikea osoite, joka sinun on
hyväksyttävä. Jos olet toisella puolella.
Eli jos saat tämän emailin. Se riippuu
siitä tietystä tapauksesta.
Eli katso mitä on meneillään. Jos voit ottaa
heihin yhteyttä, ota yhteyttä. Jos et voi
ottaa yhteyttä, sitten sinun pitää päättää
mikä on riski, jos hylkäät nämä osoitteet,
ovatko ne tärkeitä sinulle? Eli RFCn
mukaan sinun pitää ottaa vastaan ja
prosessoida tämä osoite.
Herald. Okei, Mikrofoni numero neljä,
ole hyvä.
M4: Hei, kiitos esityksestäsi. Tiedätkö
yrityksistä ratkaista ongelma suurten email
lähettäjien osalta kuten online kirjakauppojen,
jotka ovat kivoja, koska niillä ei näytä
olevan omia SPF kirjauksia, esimerkiksi
omassa hallinnassaan.
A: Yeah. Eli monessa tapauksessa voit vain
ottaa heihin yhteyttä. Eli kyse on vain
siitä, että he eivät ajatelleet sitä.
Tai ehkä kukaan ei ole kertonut mitä tehdä,
tai ehkä he eivät kuinka tehdä paremmin. Just.
Eli se on yksi asioista, joita CERTna me
olemme tekemässä. Jos teillä joillain on
tämä ongelma suuren yrityksen kanssa
jossain tietyssä maassa, suosittelen puhumaan
CERTlle. Vaikka se ei olisi valtiollinen
organisaatio, esimerkiksi, Latviassa,
jos se olisi Latvialainen yritys.
Me teemme triagen. Me yrittäisimme
puhua heille, selittää miksi he tarvitsevat
muutosta ja niin edelleen.
Eli se on yksi vaihtoehto sinulle. Mutta
käytännössä jos joku näyttää sinusta
kolmantena osapuolena väärältä
konfiguraatiolta, en voinut sitä mainita
tässä esityksessä. Jos joku ei ole täysin
turvallinen, se ei tarkoita, että se olisi
väärin. Voi olla oikeasti liiketoiminta
vaatimus miksi sen pitää olla niin.
Just. Koska esimerkiksi, jos se on iso,
en tiedä, Amazon ja joku tai
jotain sellaista. Ja jos he ovat testanneet
ja tietävät, että jos he kytkevät todella tiukan
konfiguraation, tietty prosentti heidän
emaileista vain jää saapumatta. Ei heidän
ongelman takia, vaan jonkun toisen
ongelman. Just. Mutta sitten on
ihan oikea bsiness case, jota he
eivät ole. Olisi heidän kannalta typerää
laittaa se päälle, tiedäthän, tiukka
konfiguraatio, tietäen että se
vahingoittaa heidän liiketoimintaa.
Siinä on järkeä, eikö vain?
Herald: Okei, Meillä on valitettavasti aika
loppumassa niille, jotka ovat mikrofoneilla.
Olkaa hyvä ja tulkaa vain jonoon puhujalle
pöydän viereen. Hän puhuu
teille. Varmastikin. Ja.
aplodeja
36c3 esityksen jälkimusiikki
Translated by Esa Lammi
(KYBS2001 course assignment at JYU.FI)