Analys av krypterad datatrafik
I takt med att allt mer datatrafik på våra nätverk blir krypterad så ställs större krav på möjlighet att inspektera den krypterade nätverkstrafiken antingen via TLS-inspektion (TLSI) eller på ändpunkterna. Men det går fortfarande att utläsa en hel del från att granska krypterad nätverkstrafik.
Google uppger att 93% av all inkommande E-post är krypterad med STARTTLS för att ge en siffra på hur mycket som är krypterad E-post. Hittar tyvärr ingen statistik hur förhållandet mellan https och http ser ut.
👉Stöd mitt bloggande via Patreon!
När det gäller analys av krypterad datatrafik så finns det flertalet saker man kan titta på, främst följande punkter:
Protokollinformation – Varje krypterat protokoll har som oftast någon form av handskakning som avslöjar information om både klient och server. Det kan röra sig om vilka algoritmer som supportas eller publika nycklar.
Om du inte vet vilket protokoll det rör sig om kan du även titta på sekvenser som förekommer i den session du kollar på och sedan jämföra den med andra (om du har tillgång till andra).
Informationsmängd – Hur mycket datatrafik skickas och åt vilket håll skickas detta. Kan det röra sig om en större filöverföring, och hur stor är dessa filer? Kan det röra sig om överföring av tangentbordsinmatningar, tal eller skärmuppdateringar? Entropi kan också avslöja information om innehållet.
Tidpunkt – Kommunicerar detta krypterade protokoll enbart vissa tider eller veckodagar. Eller är det vid speciella händelser som inträffar som data skickas.
Ändpunkter – Vem kommunicerar med vem? Vilka är källorna och vilka är destinationerna. Om det är en publik VPN-tjänst så kanske det räcker med enkel OSINT för att identifiera vilken typ av VPN-tjänst det är. Det kan även vara så att DNS har nyttjats för att göra en uppslagning innan sessionen etableras.
Omförhandlingar – Sker det någon form av byte av nycklar eller liknande efter en viss tidpunkt eller informationsmängd? Hur långa är sessionerna?
TCP/UDP och portnummer – Har ett nytt portnummer slumpats fram eller är det en välkänd port med tillhörande protokoll, används TCP eller UDP.
Fel(injektioner) – Hur reagerar anslutningen om olika typer av fel introduceras. Passiva eller aktiva där data skickas direkt till ändpunkterna eller om paket tappas.
Övrig kommunikation – Går det kommunikation till och från enheten som kan avslöja information om vilken typ av krypterad anslutning som förekommer. Det kanske är så att vissa anrop går över http och vissa över https. Då kan exempelvis en User-Agent http-header avslöja något om källan.
Antalet paket och paketstorlekar kan också vara relevant att titta på.
Verktyg för analys av krypterad kommunikation
Det viktiga här är att poängtera att det inte finns ett verktyg som löser alla frågor som jag listat ovan. Oftast får du kombinera flertalet verktyg för att ta reda på svaret. Men följande produkter/verktyg hjälper dig en lång väg på traven:
Zeek (bro) – Har ett stort ekosystem samt inbyggt stöd för flertalet intressanta analyser. Kan exempelvis kontrollera revokering av certifikat, algoritmer och mycket mer.
Wireshark/tshark – Förstår flertalet protokoll och underlättar analyser av specifik metadata. Men tyvärr så fort ett standardprotokoll går på en avvikande port så blir det problem för Wireshark. Men detta är något som bl.a. Network Miners Port Independent Protocol Identification (PIPI) fixar.
Tcpdump – Snabbt verktyg och gör mycket av grovjobbet. Gör att du enklare kan göra en första filtrering på källa/destination eller port.
Viktigt också och nämna följande verktyg:
- HASSH – Gör fingerprints på ssh-klienter och servrar
- JA3/JA3S och JA3ER – Gör fingerprints på SSL/TLS klienter och servrar. Och JA3ER är en databas för dessa fingeravtryck
- Argus – För att identifiera långa sessioner etc
- packetStrider – Analyserar SSH-trafik för att dra slutsatser
Tips på fler verktyg mottages gärna, kommentera gärna nedan.