Taggat med: Cyber Threat Hunting

Threat Hunting med Bro, Critical Stack och AlienVault OTX

Threat Hunting eller Cyber Threat Hunting som det också kallas har varit ett modeord inom cybersäkerhetsbranschen sedan några år. Och förra året så skrev jag på LinkedIn om vad det är för något. Kort och gått så jobbar du efter en eller flera teser och försöker identifiera antagonister i dina IT-system.

I denna guide tänkte jag gå igenom hur du med hjälp av Bro samt threat-feeds från Critical Stack samt AlienVaults OTX.

AlienVault OTX

Open Threat Exchange (OTX) är en tjänst där du kan dela med dig av Indicators of Compromise (IOC). Jag har exempelvis lagt upp IOC:er för domännamn som anropas från en bakdörr som återfinnes i ett Chrome Extension. Tjänsten är gratis att använda och har ett API där du kan med hjälp av en API-nyckel ladda hem IOC:er som andra eller du själv har lagt upp.

Critical Stack

Intel Feed från företaget Critical Stack är också en gratis tjänst där du kan ladda hem en aggregerad lista med IOC:er. Denna lista som du ladda hem innehåller flertalet andra listor som du själv väljer. Och upp till 160 olika listor finns att välja på hos Critical Stack. Jag har valt 155 st där jag aktivt har valt bort fem stycken listor som ger false-positive larm:

  • hosts-file.net Ad/Tracking Domains
  • sysctl.org Domain Blocklist (Ads)
  • Known Tor Exit Nodes
  • hosts-file.net Misleading Marketing Domains
  • torproject.org Official Exit Node List

Installation

Denna guide förutsätter att du redan har open-source IDS:en Bro installerat. Du kan exempelvis använda min favorit, Linux-disten Security Onion där Bro finns färdiginstallerat.

Jag har inför denna guide sparat ner PCAP-filer för ungefär ett års datatrafik där jag kommer att gå igenom samtliga filer efter indikatorer från listorna ovan. Men du behöver inte köra mot nersparade pcap-filer, för listorna går även att köra direkt mot realtidstrafik i Bro.

Installation Critial Stack

Du kan antingen köra den mer osäkra vägen via Packagecloud eller installera deb-paktet:

curl https://packagecloud.io/install/repositories/criticalstack/critical-stack-intel/script.deb.sh | sudo bash

Eller:

wget https://intel.criticalstack.com/client/critical-stack-intel-arm.deb
sudo dpkg -i critical-stack-intel-arm.deb

Sedan måste du skapa ett konto på Criticalstack för i nästa steg ska du skriva in din API-nyckel (key)

sudo -u critical-stack critical-stack-intel api abc-123API-nyckel

Nedan skärmdump påvisar förfarandet då jag laddar hem den aggregerade listan och skriver samtliga IOC:er till filen master-public.bro.dat

För att sedan uppdatera löpande så kan du lägga ett cron-jobb för att uppdatera eller manuellt köra:

sudo -u critical-stack critical-stack-intel pull

Vi kan sedan verifiera hur många IOC:er vi fick hem genom att kontrollera antalet rader i

$ wc -l /opt/critical-stack/frameworks/intel/master-public.bro.dat
81442 /opt/critical-stack/frameworks/intel/master-public.bro.dat

Och indikatorerna är uppdelade på följande typer:

  • 42815 st Intel::DOMAIN
  • 37097 st Intel::ADDR
  • 1043 st Intel::FILE_HASH
  • 477 st Intel::URL
  • 4 st Intel::FILE_NAME
  • 1 st Intel::EMAIL

För mer information om Bro:s Intelligence Framework kan du läsa här.

Installation Alienvault OTX

Först registrerar du dig för ett gratis-konto och får sedan tillgång till en API-nyckel. Sedan klonar vi ner ett projekt från Github som heter Alienvault OTX Bro IDS Connector. Viktigt här är att vi klonar ner projektet till rätt katalog.

Eller så kör vi detta script som automatiserar förfarandet:

wget https://raw.githubusercontent.com/weslambert/securityonion-otx/master/securityonion-otx

sudo bash securityonion-otx

Om allt går vägen så laddas IOC:erna hem till filen otx.dat och vi kan kontrollera antalet rader:

securityonion$ wc -l /opt/bro/share/bro/policy/bro-otx/otx.dat
 39015 /opt/bro/share/bro/policy/bro-otx/otx.dat

Och kollar vi på uppdelningen gällande vilka typer så skiljer det sig något mot Critical Stacks indikatorer:

  • 17354 st Intel::DOMAIN
  • 15018 st Intel::FILE_HASH
  • 5969 st Intel::URL
  • 594 st Intel::ADDR
  • 75 st Intel::EMAIL

Analysera PCAP-filerna

Nu är det bara sista steget kvar och det är att köra bro direkt mot pcap-filerna. Jag brukar göra ett enkelt shellscript på 4-5 rader som loopar igenom alla sparade pcap-filer och skapar en ny katalog för varje dag (om du lagrar en fil per dag).

En av fördelarna med att köra Bro istället för att enbart titta på käll- och destinations- IP-nummer är att Bro avkodar och tittar i protokoll. Såsom om certifikatet i en TLS-förbindelse har ett CN (CommonName) som matchar en IOC.

Jag kör Bro med följande argument:

time bro -r filnamn.pcap local "Site::local_nets += {10.0.0.0/8}"

Jag hoppas att denna guide kan hjälpa dig att identifiera intrång. Du kommer troligtvis även att behöva filtrera bort en hel del falska positiva larm.

Framtiden inom nätverksforensik

nätverksforensik

Jag var intresserad av hur framtiden inom nätverksforensik ser ut nu när allt mer av vår vardagliga kommunikation på internet är krypterad. Så därför kontaktade jag Erik Hjelmvik som driver företaget Netresec samt utvecklar den populära mjukvaran Network Miner. Erik är en av Sveriges främsta specialister inom nätverksforensik och en av de som jag känner som troligtvis kan besvara frågan bäst.

Så här skriver Erik om framtiden gällande nätverksforensik och de utmaningar som området står inför:

Erik Hjelmvik”Användningen av HTTPS har ökat dramatiskt under de senaste fyra åren. En orsak till den ökade SSL-användningen är att man nu kan få gratis SSL-certifikat genom initiativ som t.ex. Let’s Encrypt, men jag tror även att Snowdens avslöjanden har gjort att intresset för krypterad  kommunikation har ökat märkbart. Den ökade användningen av SSL gör dock att det blir allt svårare att genomföra nätverksforensik eftersom innehållet i kommunikationen nu ofta är krypterad.

Som forensiker är det därför viktigt att ta vara på den information som går, även när trafiken är krypterad. Jag har exempelvis byggt in stöd i NetworkMiner för att extrahera X.509-certifikat från nätverkstrafik, vilket gör det lättare att hitta felaktiga och ogiltiga certifikat som används av botnät och annan skadlig kod för att kryptera sin kommunikation. Ett annat exempel på trafik som använder sig av ogiltiga certifikat är Tor, vilket använder sig av en SSL-handskakning för att sätta upp sin krypterade förbindelse.

Fingeravtryck i nätverkstrafik

En annan utmaning är att den tillgängliga bandbredden ökar, och därmed även datamängden som en forensiker behöver analysera. Utmaningen blir med andra ord en variant av att hitta nålen i höstacken, där höstacken utgörs av inspelad nätverkstrafik. Som forensiker kan man använda sig av exempelvis ”Rinse-Repeat Threat Hunting” för att minimera höstacken. Det kan också vara bra att ta ett steg tillbaka och börja analysen med att titta på flow-data, som vilka IP-adresser som pratar med vilka, innan man börjar analysera innehållet i trafiken.

För att kunna göra det effektivt krävs det dock att flow-vyn är berikad med information om exempelvis domännamn och WHOIS-information om IP-adresser, vilket jag tagit fasta på i verktyget CapLoader. Styrkan med CapLoader ligger dock framför allt i att kunna gå från flow-analys till att analysera trafiken på paketnivå med bara ett klick. De flesta flow-verktygen saknar dock denna förmåga, vilket gör att forensiker ofta tittar på antingen flow-data eller på paketdata istället för att kombinera båda teknikerna till ett mer effektivt arbetsflöde”