Taggat med: maltrail

Test av Recorded Future Express

Svensk-grundade företaget Recorded Future har släppt ett browser-plugin som låter dig söka igenom IOC:er (Indicators of Compromise) på webbsidor.

Det kan först låta lite konstigt att man skulle vilja söka igenom webbsidor efter IOC:er men många SIEM-system i dagsläget såsom Moloch och Maltrail (som jag bloggat om tidigare) har webbgränssnitt.

Pluginet finns till Google Chrome, Edge samt Mozilla Firefox och för att använda det måste du registrera dig med en E-post och sedan erhålla en licensnyckel. Denna licensnyckel används sedan för att göra slagningar mot Recorded Futures databas över IOC:er såsom:

  • Checksummer över skadlig kod
  • Kolla upp CVE-nummer och prioritera sårbarheter
  • Domännamn som används för skadliga syften
  • Suspekta E-postadresser (kollar domänerna)

Pluginet är gratis att använda men viss data samlas in av Recorded Future (se nedan). Och har du en betalversion såsom Core eller Advanced så kan du länkas direkt vidare till din dashboard hos Recorded Future.

Nedan skärmdump visar på hur malware-kampanjen vid namn Gamaredon larmar på flertalet IOC:er:

Recorded Future Express
Källa: MalCrawler

Jag upplever det som om det mesta finns med hos Recorded Future och att täckningen är väl över 90% av alla kända IOC:er jag har kollat på.

Dock så finns ett antal URL:er inte med som IOC:er hos Recorded Future såsom denna:

  • message-office.ddns.net

Vilken uppenbarligen finns med på Maltrails IOC-lista över APT Gamaredon (pterodo, primitive bear). Tyvärr identifieras inte heller CVE 2017-0199 på sidan ovan hos MalCrawler. Men på en annan test-sida så identifieras CVE-2017-11882 korrekt (kanske har med bindestreck att göra?).

Här nedan är ett exempel där Checkpoint kollat på flertalet kampanjer och RF Express fångar upp alla IOC:er utmärkt. Du ser en röd eller gul prick till höger om checksumman som Chrome pluginet lägger till.

Här kan du testa Express:

Threat Hunting med Maltrail

Maltrail är en open-source mjukvara för att upptäcka skadlig kod, skriven i programspråket python. Mjukvaran består av en serverdel och en klientdel som kan köras fristående.

Maltrail kan titta på nätverkstrafik och larma om något av följande matchar någon av de medföljande listorna:

  • HTTP Host Headers
  • DNS-uppslag
  • IP-adresser
  • URL
  • User-agent

För att installera Maltrail så klonar du bara hem Git-repot och installerar beroenden såsom python-pcapy. Jag kör dessa tester på en Raspberry Pi och det fungerar fint.

Och när du startar upp Maltrail för första gången så laddas 68 stycken olika publika listor hem med IOCer:

Förutom att sniffa nätverkstrafik direkt mot ett interface så kan köra sensor.py mot en pcap-fil på följande sätt:

$ sudo python sensor.py -i /data/pcap/trace_2018-12-15_14.54.33.pcap

Och vill du se vad som larmar direkt till konsollen kan du starta Maltrail på följande sätt med –console:

sudo python sensor.py -i /data/pcap/trace_2018-12-15_14.54.33.pcap --console

En annan sak som jag noterar är att dessa 68 st listor som laddas hem innehåller hela 1 396 712 st IOC:er.

Det pcap-filter som används som standard är enligt följande:

udp or icmp or (tcp and (tcp[tcpflags] == tcp-syn or port 80 or port 1080 or port 3128 or port 8000 or port 8080 or port 8118))

Vilket den observanta läsaren kan se att HTTPS tcp port 443 exempelvis inte finns med, dock all ICMP och UDP. Som standard kontrollerar inte maltrail http-host headern men detta kan snabbt ändras i maltrail.conf som du bör ta en titt på. Du kan även ändra pcap-filtret i konfigurationsfilen, men då tar analysen givetvis längre tid.

Att analysera en 2.2GB pcap-fil med min Raspberry Pi 3 Model B+ tog cirka 3 minuter. Då hade jag satt USE_HEURISTICS till false samt CHECK_HOST_DOMAINS till true, främst för att USE_HEURISTICS gav så många false-positives.

För den som gillar trevliga webb-gränssnitt så finns det även ett till Maltrail och startas upp med server.py:

Sedan är det bara att surfa till IP-adressen där du har Maltrail installerat och port 8838. Du måste även logga in med användarnamn och lösenord som är satt till admin/changeme! som standard. Går givetvis att ändra i konfigg-filen, och server.py stödjer även SSL/TLS.

Följande bild är en skärmdump på en dag där det identifierats 145 st threats:

Maltrail larm
src_ip och dst_ip är maskerade på bilden ovan

Majoriteten av larmen som dykt upp under mina tester är klassificerade som medium eller low. Och precis som vid Threat Hunting så är det viktigt att följa upp varför just dessa larm uppstår, jag rekommenderar att använda Moloch eller Argus-data för vidare analys. Vid denna vidare analys kan det vara intressant att kolla källan som framgår samt om du har rådata i pcap:ar kvar så bidrar även detta till större framgång.

Ett annat tips är att kolla datakällor såsom Zoomeye, Censys.io och Shodan där dessa IP-nummer eller domäner kan identifieras.