Skydd från människan i mitten. Allt om attacken Man in the Middle (MitM).

10/18/2016 | Vladimir Khazov

Planerna från FSB, ministeriet för telekom och masskommunikation och ministeriet för industri och handel för att genomföra bestämmelserna i Yarovaya-lagen om avlyssning och dekryptering av korrespondens från ryssar är inte längre bara planer, utan börjar redan läggas fram. till handling genom en order om utarbetande av ett expertutlåtande om möjligheten att avlyssna WhatsApp, Viber, Facebook Messenger, Telegram, Skype-meddelanden med hjälp av MITM-attacker och demonstration av en prototyp av ett sådant verktyg.

Vi skrev om schemat för att organisera en "legitim" MITM-attack i en tidigare artikel. Idag kommer vi att uppehålla oss mer i detalj vid själva principen för en sådan attack och metoderna för dess genomförande.

Vad är en MITM-attack

Man In The Middle (MITM) översätts som "man i mitten". Denna term hänvisar till en nätverksattack där en angripare befinner sig mellan internetanvändaren och applikationen som han använder. Inte fysiskt förstås utan med hjälp av speciell programvara. Den presenterar sig för användaren som den begärda applikationen (detta kan vara en webbplats eller en internettjänst), simulerar att arbeta med den och gör detta på ett sådant sätt att det ger intryck av normal drift och utbyte av information.

Målet för attacken är användarens personliga data, såsom inloggningsuppgifter olika system, bankuppgifter och kortnummer, personlig korrespondens och annan konfidentiell information. I de flesta fall attackeras finansiella applikationer (bankklienter, onlinebanker, betalnings- och pengaöverföringstjänster), företags SaaS-tjänster, webbplatser e-handel(nätbutiker) och andra sajter där behörighet krävs för att logga in.

Informationen som en angripare får kan användas för en mängd olika syften, inklusive illegala pengaöverföringar, byte av konton, avlyssning av personlig korrespondens, göra köp på någon annans bekostnad, kompromisser och utpressning.

Dessutom, efter att ha stulit referenser och hackat systemet, kan brottslingar installera skadlig programvara på företagets nätverk. programvara att organisera stöld av immateriell egendom (patent, projekt, databaser) och orsaka ekonomisk skada genom att radera viktiga data.

En MITM-attack kan jämföras med en brevbärare som, medan han levererar din korrespondens, öppnar ett brev, skriver om dess innehåll för personligt bruk, eller till och med förfalskar handstilen, lägger till något eget och sedan förseglar kuvertet och levererar det till adressaten som om ingenting hade hänt.. Dessutom, om du har krypterat brevets text och vill kommunicera dekrypteringskoden personligen till adressaten, kommer brevbäraren att presentera sig själv som adressaten på ett sådant sätt att du inte ens kommer att märka ersättningen.

Hur en MITM-attack utförs

Att utföra en MITM-attack består av två faser: avlyssning och dekryptering.

  • Uppsnappande

Det första steget i attacken är att fånga upp trafik från användaren till det avsedda målet och dirigera den in i angriparens nätverk.

Det vanligaste och enklaste sättet att avlyssna är en passiv attack, när en angripare skapar Wi-Fi-punkter med fri tillgång (utan lösenord eller auktorisation). I samma ögonblick som en användare ansluter till en sådan punkt får angriparen tillgång till all trafik som passerar genom den och kan extrahera all data från den för avlyssning.

Den andra metoden är aktiv avlyssning, som kan utföras på något av följande sätt:

IP-spoofing– ersätter målets IP-adress i pakethuvudet med angriparens adress. Som ett resultat hamnar användare, istället för att besöka den begärda webbadressen, på angriparens webbplats.

ARP-spoofing– byte av värdens riktiga MAC-adress mot angriparens adress i offrets ARP-tabell. Som ett resultat hamnar data som skickas av användaren till IP-adressen för den önskade noden på angriparens adress.

DNS-spoofing DNS-cacheinfektion, penetration in i DNS-server och byte av en matchningspost för webbplatsadresser. Som ett resultat försöker användaren komma åt den begärda platsen, men får adressen till angriparens webbplats från DNS-servern.

  • Dekryptering

När den väl avlyssnas måste tvåvägs SSL-trafik dekrypteras på ett sådant sätt att användaren och den resurs han efterfrågar inte märker störningen.

Det finns flera metoder för detta:

HTTPS-spoofing– ett falskt certifikat skickas till offrets webbläsare när en anslutning till webbplatsen upprättas via HTTPS-protokollet. Det här certifikatet innehåller en digital signatur för det komprometterade programmet, vilket gör att webbläsaren accepterar anslutningen med angriparen som tillförlitlig. När en sådan anslutning har upprättats får angriparen tillgång till all data som offret har angett innan den överförs till applikationen.

SSL BEAST(webbläsarexploatering mot SSL/TLS) – attacken utnyttjar SSL-sårbarheten i TLS version 1.0 och 1.2. Offrets dator är infekterad med skadlig JavaScript, som fångar upp krypterade cookies som skickas till webbapplikationen. Detta äventyrar krypteringsläget för "chiffertextblockkedja" så att angriparen får de dekrypterade cookies och autentiseringsnycklar.

SSL-kapning– överföring av falska autentiseringsnycklar till användaren och applikationen i början av en TCP-session. Detta skapar intrycket av en säker anslutning när sessionen i själva verket kontrolleras av en "man i mitten."

SSL-strippning– Nedgraderar anslutningen från säker HTTPS till vanlig HTTP genom att fånga upp TLS-autentiseringen som skickas av applikationen till användaren. Angriparen ger användaren okrypterad åtkomst till webbplatsen, samtidigt som han upprätthåller en säker session med applikationen och får möjlighet att se offrets överförda data.\

Skydd mot MITM-attacker

Tillförlitligt skydd mot MITM-attacker är möjligt om användaren vidtar flera förebyggande åtgärder och använder en kombination av kryptering och autentiseringsmetoder av webbapplikationsutvecklare.

Användaråtgärder:

  • Undvik att ansluta till Wi-Fi-punkter som inte har lösenordsskydd. Inaktivera funktionen att automatiskt ansluta till kända åtkomstpunkter - en angripare kan dölja sitt Wi-Fi som legitimt.
  • Var uppmärksam på webbläsarens meddelande om att gå till en osäkrad webbplats. Ett sådant meddelande kan indikera en övergång till en falsk webbplats för en angripare eller problem med skyddet av en legitim webbplats.
  • Avsluta sessionen med applikationen (logga ut) om den inte används.
  • Använd inte offentliga nätverk (kaféer, parker, hotell, etc.) för att utföra konfidentiella transaktioner ( affärskorrespondens, finansiella transaktioner, köp i nätbutiker etc.).
  • Använd ett antivirusprogram med uppdaterade databaser på din dator eller bärbara dator; det hjälper till att skydda mot attacker med skadlig programvara.

Utvecklare av webbapplikationer och webbplatser måste använda säker TLS-protokoll och HTTPS, som i hög grad komplicerar spoofingattacker genom att kryptera överförd data. Deras användning förhindrar också trafikavlyssning för att erhålla behörighetsparametrar och åtkomstnycklar.

Det anses vara god praxis att skydda TLS och HTTPS inte bara för auktoriseringssidor, utan även för alla andra delar av webbplatsen. Detta minskar risken för att en angripare ska stjäla användarens cookies i det ögonblick han navigerar genom oskyddade sidor efter auktorisation.

Skydd mot MITM-attacker är användarens och teleoperatörens ansvar. Det viktigaste för användaren är att inte tappa vaksamheten, använda endast beprövade metoder för att komma åt Internet och välja webbplatser med HTTPS-kryptering vid överföring av personuppgifter. Telekomoperatörer kan rekommenderas att använda DPI-system (Deep Packet Inspection) för att upptäcka anomalier i datanätverk och förhindra spoofingattacker.

Statliga myndigheter planerar att använda MITM-attacken för att skydda medborgare, inte för att orsaka skada, till skillnad från angripare. Avlyssning av personliga meddelanden och annan användartrafik sker inom ramen för gällande lagstiftning, utförd genom beslut av rättsliga myndigheter för att bekämpa terrorism, narkotikahandel och annan förbjuden verksamhet. Regelbundna användare"legitima" MITM-attacker är inte farliga.

Uppnå önskat resultat Det finns nästan alltid flera sätt. Detta gäller även informationssäkerhetsområdet. Ibland, för att uppnå ett mål, kan du använda brute force, leta efter hål och utveckla bedrifter själv, eller lyssna på vad som sänds över nätverket. Dessutom är det sista alternativet ofta optimalt. Det är därför vi idag kommer att prata om verktyg som hjälper oss att fånga värdefull information från nätverkstrafik, locka MITM-attacker för detta.

MITMf

Låt oss börja med en av de mest intressanta kandidaterna. Detta är ett helt ramverk för att utföra man-in-the-middle-attacker, byggt på basis av sergio-proxy. Nyligen inkluderad i Kali Linux. För att installera det själv, klona bara förvaret och kör ett par kommandon:

# setup.sh # pip installation -r requirements.txt

# pip installation -r requirements.txt

Den har en arkitektur som är utbyggbar genom plugins. Bland de viktigaste är följande:

  • Spoof - låter dig omdirigera trafik med ARP/DHCP-spoofing, ICMP-omdirigeringar och modifiera DNS-förfrågningar;
  • Sniffer - denna plugin spårar inloggningsförsök för olika protokoll;
  • BeEFAutorun - låter dig starta BeEF-moduler automatiskt baserat på typen av operativsystem och klientwebbläsare;
  • AppCachePoison - utför en cacheförgiftningsattack;
  • SessionHijacking - kapar sessioner och lagrar de resulterande cookies i Firefly-profilen;
  • BrowserProfiler - försöker få en lista över plugins som används av webbläsaren;
  • FilePwn - låter dig ersätta meddelanden som skickas via HTTP-filer använder Backdoor Factory och BDFProxy;
  • Injicera - injicerar godtyckligt innehåll i en HTML-sida;
  • jskeylogger - bäddar in en JavaScript-keylogger på klientsidor.

Om denna funktionalitet verkar otillräcklig för dig kan du alltid lägga till din egen genom att implementera lämplig tillägg.

PuttyRider

Ett annat verktyg som är värt att uppmärksamma. Det är sant, till skillnad från alla andra verktyg som betraktas idag, är det mycket snävt specialiserat. Som författaren till projektet själv säger inspirerades han till att skapa ett sådant verktyg av att den viktigaste datan under penetrationstester fanns på Linux/UNIX-servrar, som administratörer kopplade till via SSH/Telnet/rlogin. Dessutom var det i de flesta fall mycket lättare att få åtkomst till administratörens dator än till målservern. Efter att ha penetrerat systemadministratörens maskin återstår bara att se till att PuTTY körs och, med hjälp av detta verktyg, bygga en backbro till angriparen.

Verktyget låter dig inte bara fånga "kommunikation" mellan administratören och fjärrservern (inklusive lösenord), utan också att utföra godtyckliga skalkommandon inom en given session. Dessutom kommer allt detta att ske helt öppet för användaren (administratören). Om du är intresserad av tekniska detaljer, till exempel hur PuTTY implementeras i processen, rekommenderar jag att du läser författarens presentation.

Ett ganska gammalt bruk, född för mer än åtta år sedan. Avsedd för kloningssessioner genom att stjäla cookies. För sessionskapning har den grundläggande värddetekteringsfärdigheter (vid anslutning till en öppen trådlöst nätverk eller nav) och utför ARP-förgiftning. Problemet är bara att i dag, till skillnad från för åtta år sedan, använder nästan alla stora företag som Yahoo eller Facebook SSL-kryptering, vilket gör detta verktyg helt värdelöst. Trots detta finns det fortfarande tillräckligt med resurser på Internet som inte använder SSL, så det är för tidigt att skriva av verktyget. Dess fördelar inkluderar det faktum att den automatiskt integreras i Firefox och skapar en separat profil för varje avlyssnad session. Källaär tillgängligt i förvaret, och du kan bygga det själv med följande kommandosekvens:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip sessionstjuv

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev

# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp

# setcap cap_net_raw,cap_net_admin=eip sessionthief

ProxyFuzz

ProzyFuzz har inget direkt att göra med att utföra MITM-attacker. Som du kan gissa från namnet är verktyget designat för fuzzing. Detta är en liten icke-deterministisk nätverksfuzzer, implementerad i Python, som slumpmässigt ändrar innehållet i nätverkstrafikpaket. Stöder TCP- och UDP-protokoll. Du kan konfigurera den så att den bara fuzzar en sida. Användbart när du snabbt behöver kontrollera något nätverksapplikation(eller protokoll) och utveckla en PoC. Användningsexempel:

Python proxyfuzz -l -r -s

python proxyfuzz -l -r -s

Listan med alternativ inkluderar:

  • w - anger antalet förfrågningar som skickas innan fuzzing börjar;
  • c - fuzz bara klienten (annars båda sidor);
  • s - fuzz bara servern (annars båda sidor);
  • u - UDP-protokoll (annars används TCP).

Mellanmannen

Ett verktyg för att utföra MITM-attacker på olika protokoll som presenterades på DEF CON-konferensen. Alfaversionen stödde HTTP-protokollet och hade tre coola plugins i sin arsenal:

  • plugin-beef.py - injicerar Browser Exploitation Framework (BeEF) i alla HTTP-förfrågningar som kommer från det lokala nätverket;
  • plugin-metasploit.py - bäddar in en IFRAME i okrypterade (HTTP)-förfrågningar, vilket laddar webbläsarexploater från Metasploit;
  • plugin-keylogger.py - bäddar in en JavaScript onKeyPress-händelsehanterare för alla textfält som kommer att skickas över HTTPS, vilket gör att webbläsaren skickar det användarinmatade lösenordet tecken för tecken till angriparens server innan hela formuläret skickas.

Middler analyserar inte bara automatiskt nätverkstrafik och hittar cookies i den, utan begär dem också självständigt från klienten, det vill säga processen automatiseras maximalt. Programmet garanterar insamling av alla oskyddade konton på ett datornätverk (eller offentlig hotspot) till vars trafik det har åtkomst. För att programmet ska fungera korrekt måste följande paket vara installerade på systemet: Scapy, libpcap, readline, libdnet, python-netfilter. Tyvärr har förvaret inte uppdaterats på länge, så du måste lägga till ny funktionalitet själv.

Ett konsolverktyg som låter dig interaktivt undersöka och ändra HTTP-trafik. Tack vare sådana färdigheter används verktyget inte bara av pentestare/hackers, utan också av vanliga utvecklare som använder det till exempel för att felsöka webbapplikationer. Med dess hjälp kan du få detaljerad information om vilka förfrågningar applikationen gör och vilka svar den får. Mitmproxy kan också hjälpa till att studera särdragen i funktionen hos vissa REST API: er, särskilt de som är dåligt dokumenterade.

Installationen är extremt enkel:

$ sudo aptitude installera mitmproxy

Det är värt att notera att mitmproxy också låter dig fånga upp HTTPS-trafik genom att utfärda ett självsignerat certifikat till klienten. Bra exempel Du kan lära dig hur du konfigurerar avlyssning och modifiering av trafik.

Dsniff

Tja, det här verktyget är i allmänhet en av de första sakerna som du bör tänka på så fort du hör
"MITM attack". Verktyget är ganska gammalt, men fortsätter att uppdateras aktivt, vilket är goda nyheter. Det är ingen mening att prata i detalj om dess kapacitet, under de fjorton åren av dess existens har den täckts på Internet mer än en gång. Till exempel i en guide som denna:

eller instruktioner från vår hemsida:

Slutligen..

Som vanligt har vi inte tittat på alla verktyg, utan bara de mest populära; det finns också många föga kända projekt som vi kanske pratar om någon gång. Som du kan se finns det ingen brist på verktyg för att utföra MITM-attacker, och, vilket inte händer särskilt ofta, är ett av de coola verktygen implementerat för Windows. Det finns inget att säga om nix-system - en hel sort. Så jag tror att du alltid kan hitta rätt verktyg för stöld
andras meriter. Oj, det vill säga för att testa.

Man in the middle attack (MitM attack) är en term inom kryptografi som hänvisar till en situation där en angripare kan läsa och modifiera meddelanden som utbyts mellan korrespondenter och ingen av de senare kan gissa sin identitet. närvaro i kanalen .

En metod för att äventyra en kommunikationskanal, där en angripare, som har anslutit sig till en kanal mellan motparter, aktivt stör överföringsprotokollet, raderar, förvränger information eller lägger fram falsk information.

Attackprincip:

Antag att objekt "A" planerar att överföra viss information till objekt "B". Objekt "C" har kunskap om strukturen och egenskaperna hos den dataöverföringsmetod som används, samt faktumet om den planerade överföringen av den faktiska information som "C" planerar att avlyssna.

För att göra en attack verkar "C" vara objektet "A" som "B" och objektet "B" som "A". Objekt "A", som felaktigt tror att det skickar information till "B", skickar det till objekt "C".

Objekt "C", som har tagit emot information och har utfört några åtgärder med den (till exempel kopiering eller modifiering av den för sina egna ändamål), skickar data till mottagaren själv - "B"; objekt "B" menar i sin tur att informationen kommit direkt från "A".

Exempel på en MitM-attack:

Låt oss säga att Alice har ekonomiska problem och, med hjälp av ett program för snabbmeddelanden, bestämmer sig för att be John om en summa pengar genom att skicka meddelandet:
Alice: John, hej!
Alice: Skicka mig krypteringsnyckeln, jag har en liten förfrågan!
John: Hallå! Vänta en sekund!

Men vid denna tidpunkt lade Mr. X, som, medan han analyserade trafiken med en sniffer, märke till detta meddelande, och orden "krypteringsnyckel" väckte nyfikenhet. Det var därför han bestämde sig för att avlyssna följande meddelanden och ersätta dem med den data han behövde, och när han fick följande meddelande:
John: Här är min nyckel: 1111_D

Han ändrade Johns nyckel till sin egen och skickade ett meddelande till Alice:
John: Här är min nyckel: 6666_M

Alice, omedveten och tror att det är Johns nyckel, med den privata nyckeln 6666_M, skickar krypterade meddelanden till John:
Alice: John, jag har problem och jag behöver pengar snabbt, överför 300 USD till mitt konto: Z12345. Tack. p.s. Min nyckel: 2222_A

Efter att ha tagit emot meddelandet dekrypterar Mr. X det med sin nyckel, läser det och ändrar med glädje Alices kontonummer och krypteringsnyckel till sitt eget, krypterar meddelandet med nyckeln 1111_D, och skickar ett meddelande till John:
Alice: John, jag har problem och jag behöver pengar snabbt, överför 300 USD till mitt konto: Z67890. Tack. p.s. Min nyckel: 6666_A

Efter att ha tagit emot meddelandet dekrypterar John det med nyckeln 1111_D, och utan att ens tveka, kommer att överföra pengar till kontot Z67890...

Och därmed tjänade Mr. X, som använde man-i-mitt-attacken, $300, men Alice måste nu förklara att hon inte fick pengarna... Och John? John måste bevisa för Alice att han skickade dem...

Genomförande:

Denna typ av attack används i vissa mjukvaruprodukter för nätverksavlyssning, till exempel:
NetStumbler- ett program med vilket du kan samla in mycket användbar data om ett trådlöst nätverk och lösa några problem i samband med dess drift. NetStumbler låter dig bestämma räckvidden för ditt nätverk och hjälper dig att exakt rikta din antenn för långdistanskommunikation. För varje hittad åtkomstpunkt kan du ta reda på MAC-adressen, signal-brusförhållandet, tjänstens namn och graden av dess säkerhet. Om trafiken inte är krypterad kommer programmets förmåga att upptäcka obehöriga anslutningar att vara användbar.

dsniff- är en uppsättning program för nätverksrevision och penetrationstestning, som tillhandahåller passiv nätverksövervakning för att söka efter data av intresse (lösenord, adresser E-post, filer, etc.), avlyssning av nätverkstrafik som normalt skulle vara otillgänglig för analys (till exempel i ett switchat nätverk), samt möjligheten att organisera MITM-attacker för att avlyssna SSH- och HTTPS-sessioner genom att utnyttja PKI-brister.

Kain och Abel - gratis program, som låter dig återställa förlorade lösenord för operativsystem Windows familj. Flera återställningslägen stöds: brute force hacking, val av ordbok, visning av lösenord dolda av asterisker, etc. Det finns också alternativ för att identifiera ett lösenord genom att fånga upp informationspaket och deras efterföljande analys, spela in nätverkskonversationer, cacheanalys och annat.

Ettercap- är en sniffer, paketinterceptor och inspelare för lokala Ethernet-nätverk, som stöder aktiv och passiv analys av flera protokoll, och det är också möjligt att "kasta" din egen data i en befintlig anslutning och filtrera "i farten" utan att störa anslutningen synkronisering. Programmet låter dig avlyssna SSH1, HTTPS och andra säkra protokoll och ger möjlighet att dekryptera lösenord för följande protokoll: TELNET, ftp, POP, RLOGIN, SSH1, icq, SMB, Mysql, HTTP, NNTP, X11, NAPSTER, IRC , RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG.

KARMA– en uppsättning verktyg för att bedöma säkerheten för trådlösa klienter, är en trådlös sniffer som, genom att passivt lyssna på 802.11 Probe Request-ramar, låter dig upptäcka klienter och deras föredragna/betrodda nätverk. En falsk accesspunkt kan sedan skapas för ett av de efterfrågade nätverken, till vilken den automatiskt kan anslutas. Falska tjänster på hög nivå kan användas för att stjäla personuppgifter eller utnyttja klientsårbarheter på värden.

AirJack- en uppsättning program som, enligt experter inom området WiFi-hackning, är det bästa verktyget för att generera olika 802.11-ramar. AirJack innehåller ett antal verktyg utformade för att upptäcka dolda ESSID: er, skicka sessionsavslutningsramar med en falsk MAC, utföra MitM-attacker och modifiera den.

Motaktion:

För att undvika attacker av denna typ behöver abonnenter "A" och "B" bara överföra digitala signaturer av offentliga krypteringsnycklar till varandra med hjälp av en pålitlig kanal. Sedan, när man jämför nyckelsignaturer i krypteringssessioner, kommer det att vara möjligt att avgöra vilken nyckel som användes för att kryptera data och om nycklarna har ersatts.

I den här artikeln kommer vi att försöka förstå teorin om man-in-the-middle-attacker och några praktiska punkter som hjälper till att förhindra dessa typer av attacker. Detta kommer att hjälpa oss att förstå risken som sådana intrång utgör för vår integritet, eftersom MitM-attacker tillåter oss att inkräkta på kommunikation och avlyssna våra konversationer.

Förstå hur internet fungerar

För att förstå principen för en man-i-mitten-attack är det värt att först förstå hur själva Internet fungerar. Huvudpunkter för interaktion: klienter, routrar, servrar. Det vanligaste kommunikationsprotokollet mellan klient och server är Hypertext Transfer Protocol (HTTP). Surfa på Internet med en webbläsare, e-post, snabbmeddelanden - allt detta görs via HTTP.

När du skriver i webbläsarens adressfält skickar klienten (du) en begäran till servern om att visa en webbsida. Paketet (HTTP GET-begäran) överförs via flera routrar till servern. Servern svarar sedan med en webbsida, som skickas till klienten och visas på dess bildskärm. HTTP-meddelanden måste skickas till säkert läge för att säkerställa sekretess och anonymitet.

Figur 1. Klient-server-interaktion

Säkra kommunikationsprotokollet

Ett säkert kommunikationsprotokoll måste ha var och en av följande egenskaper:

  1. Integritet- endast den avsedda mottagaren kan läsa meddelandet.
  2. Äkthet- identiteten för de interagerande parterna har bevisats.
  3. Integritet- Bekräftelse på att meddelandet inte ändrades under transporten.

Om någon av dessa regler inte följs, äventyras hela protokollet.

Man-in-the-middle-attack via HTTP-protokoll

En angripare kan enkelt utföra en man-in-the-middle-attack med en teknik som kallas ARP-spoofing. Vem som helst i din Wi-Fi-nätverk kan skicka dig ett falskt ARP-paket, vilket får dig att omedvetet skicka all din trafik genom angriparen istället för din router.

Efter detta har angriparen full kontroll över trafiken och kan övervaka förfrågningar som skickas i båda riktningarna.

Figur 2. Man-in-the-middle-attackmönster


För att förhindra sådana attacker skapades en säker version av HTTP-protokollet. Transport Layer Security (TLS) och dess föregångare, Secure Socket Layer (SSL), är kryptografiska protokoll som ger säkerhet för dataöverföring över ett nätverk. Därför kommer det säkra protokollet att kallas HTTPS. Du kan se hur det säkra protokollet fungerar genom att skriva i webbläsarens adressfält (notera S i https).

Man-in-the-Middle-attack på dåligt implementerad SSL

Modern SSL använder en bra krypteringsalgoritm, men det spelar ingen roll om det inte är korrekt implementerat. Om en hackare kan fånga upp begäran kan de modifiera den genom att ta bort "S" från den begärda URL:en och därigenom kringgå SSL.

Sådan avlyssning och modifiering av begäran kan noteras. Om du till exempel begär https://login.yahoo.com/ och svaret är http://login.yahoo.com/ bör detta väcka misstankar. I skrivande stund fungerar denna attack faktiskt på Yahoos e-posttjänst.

Figur 3. Begär avlyssning och modifiering


För att förhindra en sådan attack kan servrar implementera HTTP Strict Transport Security (HSTS), en mekanism som möjliggör en påtvingad säker anslutning över HTTPS-protokollet. I det här fallet, om en angripare ändrar begäran genom att ta bort "S" från URL:en, kommer servern fortfarande att omdirigera användaren med en 302-omdirigering till en sida med ett säkert protokoll.

Figur 4. HSTS driftdiagram


Detta sätt att implementera SSL är sårbart för en annan typ av attack – angriparen skapar en SSL-anslutning till servern, men använder olika knep för att tvinga användaren att använda HTTP.

Figur 5. HSTS-attackmönster


För att förhindra sådana attacker övervakar moderna webbläsare som Chrome, Firefox och Tor webbplatser med HSTS och tvingar fram en klientanslutning till dem via SSL. I det här fallet måste angriparen som utför en man-i-mitten-attack skapa en SSL-anslutning med offret.

Figur 6. Attackmönster där angriparen upprättar en SSL-förbindelse med offret


För att kunna tillhandahålla en SLL-anslutning till en användare måste en angripare veta hur han ska agera som server. Låt oss förstå de tekniska aspekterna av SSL.

Förstå SSL

Ur en hackers synvinkel handlar det om att kompromissa med alla kommunikationsprotokoll att hitta den svaga länken bland komponenterna som listas ovan (sekretess, äkthet och integritet).

SSL använder en asymmetrisk krypteringsalgoritm. Problemet med symmetrisk kryptering är att samma nyckel används för att kryptera och dekryptera data, detta tillvägagångssätt är inte giltigt för Internetprotokoll eftersom en angripare kan spåra denna nyckel.

Asymmetrisk kryptering inkluderar 2 nycklar för varje sida: offentlig nyckel, används för kryptering, och en privat nyckel, som används för att dekryptera data.

Figur 7. Offentliga och privata nycklar fungerar

Hur tillhandahåller SSL de tre egenskaperna som behövs för säker kommunikation?

  1. Eftersom asymmetrisk kryptografi används för att kryptera data ger SSL en privat anslutning. Denna kryptering är inte så lätt att bryta och förbli oupptäckt.
  2. Servern bekräftar sin legitimitet genom att skicka till klienten ett SSL-certifikat utfärdat av en certifikatutfärdare - en betrodd tredje part.

Om en angripare på något sätt lyckas få certifikatet kan de öppna dörren till en man-i-mitten-attack. Således kommer det att skapa 2 anslutningar - med servern och med offret. Servern i det här fallet tror att angriparen är en vanlig klient, och offret har inget sätt att identifiera angriparen, eftersom han tillhandahållit ett certifikat som bevisar att han är servern.

Dina meddelanden anländer och anländer i krypterad form, men de följer en kedja genom cyberbrottslingens dator, där han har fullständig kontroll.

Figur 8. Attackmönster om angriparen har ett certifikat


Certifikatet behöver inte vara förfalskat om en angripare har möjlighet att äventyra offrets webbläsare. I det här fallet kan han infoga ett självsignerat certifikat, som kommer att vara betrodd som standard. Det är så de flesta man-in-the-middle-attacker utförs. I mer komplexa fall måste hackaren ta en annan väg - förfalska certifikatet.

Problem med certifikatutfärdare

Certifikatet som skickades av servern utfärdades och undertecknades av en certifieringsmyndighet. Varje webbläsare har en lista över betrodda certifikatutfärdare och du kan lägga till eller ta bort dem. Problemet här är att om du bestämmer dig för att ta bort stora myndigheter kommer du inte att kunna besöka webbplatser som använder certifikat som är signerade av dessa myndigheter.

Certifikat och certifikatutfärdare har alltid varit den svagaste länken i en HTTPS-anslutning. Även om allt implementerades korrekt och varje certifikatutfärdare har en gedigen auktoritet är det fortfarande svårt att komma överens med att man måste lita på många tredje parter.

Idag finns det mer än 650 organisationer som kan utfärda certifikat. Om en angripare skulle hacka någon av dem skulle han få vilka certifikat han ville ha.

Även när det bara fanns en certifikatutfärdare, VeriSign, fanns det ett problem - personer som skulle förhindra man-in-the-middle-attacker sålde avlyssningstjänster.

Dessutom skapades många certifikat på grund av hackning av certifikatmyndigheter. Olika tekniker och knep har använts för att lura den riktade användaren att lita på bedrägliga certifikat.

Forensics

Eftersom angriparen skickar falska ARP-paket kan angriparens IP-adress inte ses. Istället måste du vara uppmärksam på MAC-adressen, som är specifik för varje enhet i nätverket. Om du känner till din routers MAC-adress kan du jämföra den med standardgatewayens MAC-adress för att ta reda på om det verkligen är din router eller en angripare.

Till exempel, på Windows OS kan du använda kommandot ipconfig i kommandorad(CMD) för att se din standardgateway-IP-adress (sista raden):

Figur 9. Använda kommandot ipconfig


Använd sedan kommandot arp –a för att ta reda på MAC-adressen för denna gateway:

Figur 10. Använda kommandot arp –a


Men det finns ett annat sätt att lägga märke till attacken - om du övervakade nätverksaktiviteten när den startade och tittade på ARP-paketen. Du kan till exempel använda Wireshark för detta ändamål, det här programmet kommer att meddela dig om MAC-adressen för standardgatewayen har ändrats.

Obs: Om angriparen förfalskar MAC-adresser på rätt sätt kommer det att bli ett stort problem att spåra honom.

Slutsats

SSL är ett protokoll som tvingar en angripare att göra mycket arbete för att utföra en attack. Men det kommer inte att skydda dig från statligt sponsrade attacker eller från skickliga hackningsorganisationer.

Användarens uppgift är att skydda sin webbläsare och dator för att förhindra att ett falskt certifikat infogas (en mycket vanlig teknik). Det är också värt att uppmärksamma listan över betrodda certifikat och ta bort de som du inte litar på.

Publikationer om ämnet