Taggat med: Threat Hunting

Så upptäcker ni bakdörrar i IT-system

Så upptäcker ni bakdörrar i IT-system

Att upptäcka bakdörrar i IT-system är ingen lätt match och en mycket bra utvecklad bakdörr är mer eller mindre omöjlig att upptäcka. En bra utvecklad bakdörr har en mycket liten och snäv målgrupp och ligger vilande större delen av tiden. Men det finns givetvis olika metoder och sätt att upptäcka bakdörrar, för förr eller senare så kan misstag eller avvikande beteenden analyseras och påvisa en bakdörr.

Denna guide är främst skriven för att upptäcka bakdörrar som redan är in-planterade. Och hur bakdörrarna kommer in är utanför denna guide, men för att nämna några sätt:

  • Implanterade från start i servrar eller mjukvara/hårdvara
  • Via manuella eller automatiska uppdateringar av mjukvara, firmware osv
  • Man in the middle-attack eller MOTS mot nedladdad mjukvara
  • Via hackad server eller klient, bifogade filer i mail, sårbarhet i mjukvara
  • Fysiskt installerad via serverhall eller evil-maid attack
  • Infekterat PyPi, NPM, CPAN, RubyGem, NuGet-paket
  • Insider

Klienter och servrar

En vital funktion för att upptäcka bakdörrar på klienter och servrar är att samla in data, det kan röra sig om processer som startar och avslutas, drivrutiner som installeras/avinstalleras, telemetridata. Det är information där en enskild loggrad eller händelse kanske inte säger så mycket, men om den berikas och sätts i ett större sammanhang kan identifiera ett avvikande beteende.

Använder ni Windows-baserade system så är Sysmon ett givet verktyg att använda. För Linux-system så bör man använda verktyg såsom Sysdig Falco och auditd. Eller mer generiska verktyg såsom osquery.

Jag rekommenderar även att titta närmare på Velociraptor som jag bloggade tidigare om. Givetvis bör även binärer, konfigurationsfiler och dylikt hållas koll på med tripwire-liknande funktionalitet. Jobb som körs vid regelbundna intervall såsom cron, AT (Task Scheduler) osv. Eller vid uppstart av mjukvara, system (autoruns).

Nätverk

Jag har tidigare skrivit om RITA som kan underlätta analysen av nätverkstrafik för att hitta beacons som bakdörrar och implantat använder sig av för att kommunicera. Men en väl skriven bakdörr gör detta väldigt sällan och avviker minimalt från normal nätverkstrafik.

Att använda sig av TLSI (TLS Inspection) kan underlätta analysen av TLS/SSL-krypterad nätverkstrafik men det finns givetvis risker också, som bl.a. NSA varnat för. Rekommenderar att titta på PolarProxy som kan hjälpa till med TLSI.

Verktyg som kan hjälpa dig att analysera nätverkstrafik är exempelvis Zeek, JA3/S, Brim, Suricata, Arkime (fd Moloch) och SecurityOnion.

Passivt bör ni också undersöka om system anropar och kopplar upp sig mot kända C&C-servrar, därav viktigt att underhålla aktuella Threat Intelligence-listor med IP-adresser, domännamn etc.

Mängden av data som flödar ut ur era system kan också ge en fingervisning om exfiltration genomförs. Men detta är inte alltid helt enkelt att upptäcka, vid forensiska undersökningar där jag medverkat har jag sett att antagonister delar upp upp information i flertalet 500MB RAR-arkiv som exfiltreras över en längre tid för att undgå upptäckt.

bakdörr IT-system skadlig kod

Glöm inte heller att DNS kan användas för kommunikation, som bl.a. SolarWinds Orion SUNBURST-bakdörren gjorde. Även kan Twitter och andra sociala medier eller andra välkända tjänster användas för kommunikation med bakdörren. Steganografi kan också nyttjas för att försvåra upptäckt.

På internet eller fjärrsystem

Att aktivt undersöka vilka fjärrsystem på Internet som anropas kan hjälpa till att förstå om bakdörren pratar med en Command and Control-infrastruktur (C&C). Flertalet olika datakällor såsom Shodan kan användas för att förstå vilket eller vilka målsystem som kommunikationen sker mot.

Ett verktyg såsom JARM kan hjälpa till med detta och skapa unika signaturer. Observera att just aktivt undersöka system på internet kan vara en legal gråzon och undersök noga vad ni har möjlighet att göra.

Avslutande ord

Jag rekommenderar att bygga upp ett antal olika scenarion där ni undersöker vilka möjligheter ni har att upptäcka just dessa metoder. För att ge några exempel:

  • Log4j JNDI-sårbarheten utnyttjas på ett system mot Internet. Om en bakdörr sedan installeras på detta system, hur kan ni försvåra installation av bakdörren och hur ni upptäcka denna bakdörr?
  • En mjukvara som automatiskt uppdateras börjar att ”ringa hem” via dess normala kanaler för uppdateringar. Men innehåller nu krypterad data om erat interna nätverk såsom AD-namnet
  • DNS används för exfiltration
  • Switchen ni köpte innehåller en Rasperry Pi med WiFi eller 4G-mobildata för exfiltration av intern nätverkstrafik

Vad väntar ni på? Avsätt tid och resurser redan nu för att utveckla förmågan att upptäcka bakdörrar i IT-system. Och givetvis så bör ni också genomföra åtgärder för att försvåra för att bakdörren hamnar i IT-systemet i första taget, och även dess möjligheter att kommunicera ut på internet (eller på andra sätt ringa hem).

Desto mer bakdörren är integrerad i en befintlig komponent i era IT-system desto svårare är det att upptäcka den.

Tack till Erik Hjelmvik för genomläsning och synpunkter!

Identifiera beacons (bakdörrstrafik) med RITA

Identifiera beacons (bakdörrstrafik) med RITA

Det amerikanska cybersäkerhetsföretaget Active Countermeasures har en intressant open-source produkt som heter RITA. RITA står för Real Intelligence Threat Analytics är ett verktyg för dig som vill genomföra Cyber Threat Hunting.

RITA läser in data från Zeek (fd Bro) och kan genomföra följande:

  • Beacon-detektion – Sök efter tecken på beaconing-beteende in och ut ur ditt nätverk.
  • DNS-tunnelavkänning – Sök efter tecken på DNS-baserade bakdörrskanaler
  • Kontroll mot svartlisor – Sök mot ett antal olika svartlistor/blocklists

Jag intresserar mig dock mest för beacon-detektion då detta finns inbyggt i flertalet kommersiella produkter såsom Cisco Encrypted Traffic Analytics  men få open-source produkter kan söka efter denna typ av nätverkstrafik.

Beacons används av bakdörrs-ramverk (C2 frameworks) såsom Cobalt Strike, Metasploit, Empire, SharpC2 och PoshC2 för att nämna några.

RITA är utvecklat i programspråket Go och kan installeras i SecurityOnion, Ubuntu 16.04, Ubuntu 18.04 eller CentOS 7 om du vill köra med det medföljande scriptet install.sh. Du kan även installera RITA på egen hand eller köra RITA under Docker.

Stöd gärna mitt bloggande via Patreon >

De beroenden som RITA har är förutom Zeek är också databasen MongoDB. Jag installerar RITA utan Zeek och MongoDB och editerar sedan konfigg-filen /etc/rita/config.yaml så att den pekar mot min fristående mongodb.

Observera att du ej kan köra RITA med det paket som följer med Ubuntu 16.04 eftersom det är 2.6.10. RITA behöver mongodb-version som är mellan 3.2.0 och 3.7.0.

Jag fick det att fungera genom att installera mongodb version 3.6.18.

Analysera PCAP efter bakdörrar

Nu när RITA är installerat så måste jag först köra zeek på de pcap-filer jag har sparat ner. Bäst fungerar det om du har en pcap-fil för varje dag, detta kan vara problematiskt om du har många filer men går att lösa med verktyg såsom mergecap.

Första steget är att läsa in ett dygns pcap-fil med zeek och skriva ut loggfilerna. Detta exempel gäller dagen 2020-06-05 och pcap-filen var på 33GB:

$ cd /data/pcap
$ mkdir -p zeek/2020-06-05
$ cd zeek/2020-06-05
$ zeek -Cr ../../trace_2020-06-05.pcap local

Ovan kommando tar cirka 15 minuter på min Raspberry Pi och sedan att importera detta via RITA mot mongodb tar ca 3 minuter:

Nu när vi har importerat mappen 2020-06-05 mot RITA-databasen vid namn 2020-06-05 så kan vi titta på analysen när det gäller beacons på följande sätt:

Observera att ovan bild är censurerad av mig. Men när jag tittar på source/dst-IP så ser jag att två översta går till 8.8.8.8 respektive 8.8.4.4 vilket är Googles DNS och troligtvis false-positive. Det som är intressant här är första kolumnen vid namn score och en score på 0.9 och över är mycket intressant. Kör jag metasploit och meterpreter så hamnar score på 0.987.

Och tittar vi på beacon-trafik från Cobalt Strike så ligger standard på sleeptime 30000 millisekunder och 20% jitter. Vilket motsvarar följande kommando från agressor-klienten:

Vill du läsa mer om den underliggande algoritmen så hittar du koden här:

Och en analys av RITA på Cobalt Strike som legat och kommunicerat en hel dag så blir analysen enligt följande:

RITA beacon Cobalt Strike

Rad 17 som är rödmarkerad är den trafik som tillhör Cobalt Strike, och får enbart en score på 0.829 samt hamnar på 16:de plats på topplistan. Resten är enbart falska positiva, dvs videostreaming, DNS-uppslag osv. Så kontentan är att det inte är helt trivialt att detektera Cobalt Strikes standardkonfigurering.

Gillade du detta blogginlägg? Hjälp mig att blogga mer genom att stödja mig via Patreon >

Kom igång med DetectionLab

Om det finns något jag gillar så är det när det kommer verktyg som underlättar min vardag. Nuförtiden så kan jag inte leva utan Docker, Vagrant, Virtualbox och Burp Suite för att nämna några.

Detectionlab

Och jag gillar även att labba och testa och dagens tips som jag tänkte skriva om heter DetectionLab. Det är en miljö som är färdiguppsatt för dig som vill testa dina förmågor att upptäcka intrång eller utveckla olika Threat Hunting-koncept.

Miljön kommer installerad med följande mjukvaror:

Miljön kräver Virtualbox eller VMware Fusion/Workstation, Packer, Vagrant och minst 16GB ram samt minimum 55GB diskutrymme.

Observera att det kan ta lång tid att bygga miljön, åtskilliga timmar får du nog räkna med.

Här hittar du DetectionLab:

https://github.com/clong/DetectionLab

Du kan även bygga miljön hos Amazon med hjälp av Terraform, och då tar det runt 25 minuter. Se video:

Uppdatering 1:a Juni 2020 från DetectionLab på twitter:

Identifiera cyberintrång med Moloch

Identifiera cyberintrång med Moloch

Uppdatering 2020-11-20: Moloch har nu bytt namn till Arkime. Läs mer om bakgrunden till namnbytet här.

Jag har haft på min todo-lista ända sedan det första släppet av Moloch som var år 2012 att jag ska testa verktyget. Moloch utvecklades innan 2012 internt hos AOL men släppte det sedan fritt för allmänheten. Dock så dröjde ända tills November 2019 innan jag fick bekanta mig mer med verktyget.

Moloch är ett verktyg som låter dig göra indexerade sökningar i stora mängder data. Säg exempelvis att du lagrar många hundra terabyte av PCAP-data och vill hitta vilka datorer på ditt nätverk som pratat med en viss IP-adress. Att göra en sådan sökning i mängder med PCAP:s kan ta otroligt lång tid. Du kan så klart använda Argus-metadata för att snabba upp sökningen men Moloch är mer användarvänligt samt avkodar information om varje protokoll också, som så klart också är sökbart.

Som backend använder Moloch sökmotorn Elasticsearch som är skriven i Java. Även så tillför Moloch ett snyggt webbgränssnitt och ett REST-API.

Förutom själva webb-gränssnittet så finns även mjukvaran moloch-capture med som antingen kan importera PCAP-filer offline eller läsa av data direkt från ett interface.

Du kan även enkelt tagga upp information från andra system såsom Maltrail eller Suricata och sedan se dessa taggar eller söka på taggarna i Moloch via API:et eller verktyget som följer med:

capture/plugins/taggerUpload.pl localhost:9200 ip iptagdata tag tag .. tag
capture/plugins/taggerUpload.pl localhost:9200 host hosttagdata tag ..
capture/plugins/taggerUpload.pl localhost:9200 md5 md5tagdata tag
capture/plugins/taggerUpload.pl localhost:9200 email emailtagdata tag
capture/plugins/taggerUpload.pl localhost:9200 uri uritagdata tag

Det jag gillar mest med Moloch är att den kan avkoda ett antal olika protokoll såsom DNS, SSH, HTTPS, HTTP, DHCP, radius, socks osv.

För att ge ett exempel på en av många Threat Hunting teser du kan köra:

Vilka unika HASSH klient fingerprint SSH finns det och vart ansluter dom?

Så steg ett är att exportera dessa, exempelvis genom att gå på SPI-vyn och sedan Export unique HASSH. Då öppnas en ny länk med följande tre HASSH-fingerprints:

Tre unika HASSH (bilden är maskad)

Sedan klickar jag på Sessions-fliken och kan söka på sessioner med någon av dessa unika HASSH-fingerprints:

Sökning på en unik hassh i Moloch, bilden är maskad.

Om du är observant så ser du även att det finns en flik som heter Hunt. Den kan användas för att göra klartext-sökningar med intervaller, tyvärr inte så användbar om du inte kör TLSI (TLS Inspection).

Du kan även lägga upp något som heter Cron-queries som körs vid intervaller som sedan skickar notifieringar via Slack, E-post eller Twilio.

Sammanfattning Moloch

Verktyget är gratis att använda och stödjer Er verksamhet i att analysera nätverkstrafik. Det är ingen hög inlärningströskel och kan snabba upp arbete som i dagsläget kanske är mindre effektivt.

Moloch kompletterar andra open-source verktyg såsom Zeek och Suricata mycket bra.

Även har Moloch möjlighet att exportera data som PCAP från sessioner, vilket gör det enklare också om du vill analysera en händelse ytterligare med exempelvis Wireshark.

Cybersäkerhetstrender och hot inför 2020

Cybersäkerhetstrender och hot inför 2020

Nästan varje år har jag försökt att skriva om vilka trender inom cybersäkerhet som jag tror vi kommer att se framöver samt andra iakttagelser. Dessa spaningar är givetvis fria att använda inom Er egen organisation och sprida vidare eftersom allt innehåll på kryptera.se är licensierat med Creative Common Attribution 4.0 International (CC BY 4.0).

Password Spraying och Credential stuffing

En återkommande fråga jag får är: ”När tror du att lösenord försvinner?” och hur vi än gör så kommer vi att dras med lösenord och PIN-koder ett bra tag framöver. Detta är så klart något som antagonister också drar till nytta och hittar fler plattformar och protokoll att försöka gissa korrekta användarnamn och lösenord.

Min spaning är att ännu mer plattformar och protokoll kommer att utsättas för forceringsförsök gällande användarnamn och lösenord. Även spår jag att attacker som utnyttjar 2FA kommer att öka bla genom MITM (man-i-mitten).

Zero trust och Assume Breach 

Vi måste bygga våra nätverk och IT-arkitektur på ett sådant sätt så att även om angriparen kan ta sig in till en enskild klientdator så kan hen inte eskalera sina rättigheter eller ta sig vidare utan att detta snabbt upptäcks och utreds. Detta ställer också krav på att Threat Hunting ständigt pågår samt att det finns bra lösningar för Endpoint Detection and Response (EDR).

Det är viktigt att ha en baseline över hur Er miljö ser ut och vilken nätverkstrafik som flödar vart, vilka mjukvaror ska vara installerade osv. För det är då det också är enklare att identifiera avvisande mönster. Förutsätt att angriparen redan är inne i era nätverk och gör det svårare att komma åt affärskritisk information.

Bild över Googles Zero-trust initiativ BeyondCorp:

Zero Trust

Appliance hacking

Under året har vi sett flertalet stängda plattformar (On-Premise) såsom Citrix NetScaler, Pulse Secure, Fortigate (se blogginlägg här). Eftersom härdningen av dessa plattformar många gångar är eftersatt och loggningen är bristfällig så är det även svårt att utföra forensiska undersökningar eller upptäcka intrång.

Samt så står dessa enheter som oftast i en central punkt där många ansluter eller mycket trafik passerar vilket gör detta till en guldgruva för antagonister. Förutom att läsa av och modifiera trafik som går genom enheten så kan det även finnas möjlighet att angripa klienter som ansluter.

Inom detta område så räknar jag även in Supply Chain Cyber Security, för allt som ansluts och kopplas in i era system bör kontrolleras, avgränsas eller isoleras. Betänk även att firmware/mjukvaru-uppdateringar kan påverka Er miljö positivt eller negativt gällande säkerheten.

Threat sharing

Denna spaning är nog mer en förhoppning från min sida. Nämligen att fler organisationer blir bättre på att dela med sig av IOC:er och information om intrång. Mer transparens och system för att möjliggöra automatisk och snabb delning av hotinformation, såsom MISP eller TheHive.

Om du jobbar inom en specifik bransch så skulle jag påstå att det är av stor vikt att ni delar med Er av hotinformation inom just Er bransch.

Inom rubriken Threat Sharing så vore det även tjänstefel om jag inte nämnde MITRE:s ATT&CK-ramverk som löpande utvecklas och gör det lättare att dela med sig av sådant som inte är rent tekniska IOC:er såsom Tactics, Techniques and Procedures (TTPs). Vilket kan förevisas med David J Biancos Pyramid of Pain:

Ett medskick till Er organisation är att undersöka hur ATT&CK går att använda i Era säkerhetsprodukter såsom antivirus-mjukvara.

Övriga bubblare på listan

Ett ständigt återkommande problem är alla uppkopplade prylar (Internet of Things) där dagligen nya sårbarheter uppdagas. Detta kommer troligtvis inte att minska i takt med att fler saker blir uppkopplade, samt att fler fordon etc blir uppkopplade. Och kommer 2020 vara året då vi kommer att få se fler säkerhetsprodukter med Artificiell intelligens (AI)?

Några tidigare års trendspaningar inom cybersäkerhet och kryptering hittar du här:

Ny version av Windows Sysinternals Sysmon

Uppdatering: Nya versionen har nu släppts och event ID 22 representerar DNS-frågor:

Event ID 22: DNSEvent (DNS query)

This event generates when a process executes a DNS query, whether the result is successful or fails, cached or not.

is event generates when a process executes a DNS query, whether the result is successful or fails, cached or not.

Även så framgår följande uppdateringar i v10:

This release of Sysmon adds DNS query logging, reports OriginalFileName in process create and load image events, adds ImageName to named pipe events, logs pico process creates and terminates, and fixes several bugs.

Mark Russinovich som tillvardags är CTO på Microsoft Azure meddelade på Twitter att det kommer en ny version av System Monitor (Sysmon) idag Tisdag.

Denna nya version stödjer bl.a. DNS-loggning direkt till eventloggen i Windows. Både förfrågningar och svar loggas till eventloggen som DnsQuery.

När jag skriver detta under tisdagen har dock ännu inte den nya versionen av Sysmon släppts.

Skärmdump:

Ovan skärmdump visar att QueryResults returnerar 5 vilket är CNAME. Att logga svaren på detta sätt är bra vid SOC/SIEM och Threat Hunting eftersom svaren kan ändras med tiden och på detta sätt så får vi en ögonblicksbild hur frågan och svaret såg ut vid just detta tillfälle.

Här kan du ladda hem Sysmon: docs.microsoft.com/en-us/sysinternals/downloads/sysmon

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.

Threat Hunting med osquery

Osquery är ett open-source projekt från Facebook som släpptes under år 2014. Osquery är ett verktyg för att ställa SQL-liknande frågor mot servrar och klienter. Detta är bra för att hålla koll på vad som händer i infrastrukturen. Ett axplock med några av de frågeställningar som osquery kan svara på:

  • Vilka processer körs på våra klienter?
  • Vilka TCP och UDP-portar lyssnar våra servrar på?
  • Vilka USB-minnen har varit anslutna till våra system?
  • Finns filen med namn eller checksumman XX någonstans?
  • Vilka processer kommunicerar ut på nätverket?

Osquery stödjer Windows, Linux, FreeBSD samt macOS. Dock kan funktionaliteten skilja sig mellan olika operativsystem.

Exempel på SQL-fråga som ställs via osqueryui:

I sin grundinstallation är osquery relativt avskalat och saknar mycket av den funktionalitet som man kan få med ett kommersiellt verktyg som kommer färdigt med avancerade rapporteringsfunktioner och signaturer. Därför kan du bygga stödfunktioner själv till osquery eller använda något av det som finns tillgängligt såsom Kolide, Doorman eller Uptycs som ser till att SQL-frågor kan ställas över nätverket. Loggningen från osquery kan med fördel hällas in i ELK-stacken eller Splunk.

När det gäller mallar för osquery för att titta på avvikelser eller anomalier så kan jag rekommendera Palantirs osquery-configuration, så kallade query packs.

Här är en skärmdump som visar på att jag 5 st query packs installerade i Kolide Fleet med fokus på Windows:

Det query pack som heter windows-attacks har 15 st SQL-frågor som går var 60:de sekund på 3 st klienter. Rapporter på utfall hamnar hamnar i filen osquery_result centralt på servern som kör Kolide Fleet, och filen ser ut ungefär enligt följande:

Och vill vi titta på hur just den SQL-frågan som genererade ovan JSON-loggrad så tittar vi bara på windows-pack/os-version som ser ut enligt följande:

SELECT * FROM os_version;

Eftersom action är added så är det första gången denna SQL-fråga kördes. Men du behöver inte köra frågor regelbundet utan kan även ställa vissa typer av realtidsfrågor beroende på operativsystem, se stödet i denna tabell (längst uppe i högra hörnet ser du en OS-symbol för varje tabell).

Fördelar med osquery 👍

Osquery gör att du kan inventera hela din infrastruktur och söka rätt på hot, så kallad Threat Hunting. Nästan allt är öppen källkod med bra licenser och gör det enkelt för organisationer med resurser att anpassa osquery till sina behov. För realtidsövervakning skulle jag dock komplettera med sysdig eller sysmon.

Du har även full insyn i samtliga regler och varför dessa larmar , vilket kan vara ett problem med många antivirus-mjukvaror då dessa ofta är stängda.

Nackdelar med osquery 👎

Du måste göra mycket själv och bör ha en god kännedom gällande open-source utveckling. Majoriteten av alla frågor är så kallade poll-baserade och gör att en angripare kan flyga under radarn. Precis som många andra skyddsfunktioner så kan en angripare stänga ner eller modifiera osquery.

Sammanfattning

Jobbar du med cybersäkerhet och inte har tittat på osquery efter att ha läst detta gör du tjänstefel. Undersök och labba själv på egen kammare med exempelvis DetectionLab.

Jag är även rätt säker på att osquery är en av de få säkerhetsrelaterade mjukvaror som snurrar på Mark Zuckerbergs Macbook.

Även kan Wazuh v3.5.0, uppföljaren till OSSEC kan stödja osquery sedan fem dagar tillbaka.

Stöd gärna mitt bloggande via Patreon.

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.

Google startar cybersäkerhetsföretag: Chronicle

Nu startar Google upp ett nytt säkerhetsföretag vid namn Chronicle. Eller egentligen är det inte Google som startar upp företaget utan Googles moderbolag Alphabet. Chronicle är en avknoppning av Alphabets labbverksamhet som går under det mystiska namnet X.

Chronicle ska hjälpa till att stärka cybersäkerheten med bl.a. artificiell intelligens och smarta algoritmer. Även den populära tjänsten VirusTotal som Google köpte för några år sedan flyttas till Chronicle.

Stephen Gillett som är VD på Chronicle säger:

We want to 10x the speed and impact of security teams’ work by making it much easier, faster and more cost-effective for them to capture and analyze security signals that have previously been too difficult and expensive to find. We are building our intelligence and analytics platform to solve this problem.

Och en annan relaterad och intressant nyhet är att Amazon köper upp företaget Sqrrl som grundats av ett antal personer som tidigare jobbat på NSA. Sqrrl har byggt en intressant plattform för Threat Hunting.