Taggat med: Cyber Threat Intelligence

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!

Test av MISP, threat sharing

MISP är ett projekt som startades av den belgiska försvarsmakten runt 2011 för att sedan fångas upp och vidareutvecklas av NATO. Projektet är i dagsläget oberoende men finansieras helt eller delvis av CIRCL – Computer Incident Response Center Luxembourg samt EU. Förkortningen MISP stod från början för Malware Information Sharing Project men numera heter projektet enbart: MISP, threat sharing.

Men vad är då MISP kanske du undrar? Jo det är ett verktyg för att underlätta lagring, sökning och kategorisering av cyberunderrättelser, främst olika former av IOC:Er (Indicators of Compromise). Men du kan skriva hela rapporter i MISP:en och länka direkt till IOC:er inom MISP.

När du arbetar mot MISP:en manuellt så kan man säga att du genomför tre steg för att lägga in information om en händelse, eller Event som det heter på MISP-språk. Dessa tre steg är:

  • Skapa Event
  • Lägg till attribut och attachment
  • Publicera eventet

Video som förevisar dessa steg:

Attributen som du kopplar till händelser kan vara checksummor till skadliga filer, textsträngar som återfinnes i exploits, skadlig kod, IP-adresser, domännamn och mycket mer. Här kan du se en lista med samtliga attribut.

Relativt nytt är också att du kan skriva rapporter under event, dessa rapporter kan sedan länka vidare till olika typer av attribut. Rapporterna skrivs i märkspråket markdown.

Exempel på en rapport för Winnti Group:

Och styrkan i MISP är att att dela med sig av denna information. Därav finns det ett avancerat system för vilken information du kan dela med dig av till vem. Det går även att koppla ihop flertalet MISP:ar så dessa synkroniserar information löpande. Även kan MISP:en hämta in olika former av former av feeds i format såsom csv, misp och fritext. Standard så följer 63 olika externa feeds med i MISP som du kan slå på.

Du kan sedan konfigurera dina säkerhetssystem att hämta IOC:er från din lokala MISP, det finns exempelvis stöd i Zeek (fd Bro). Även kan du koppla MISP mot andra system såsom OpenCTI, TheHIVE och MITRE ATT&CK.

När jag testade att starta upp en instans av MISP så var detta mycket enkelt med hjälp av Docker. Men tänk på hur du publicerar din MISP-instans mot internet, för sårbarheter finns det gott om i MISP. Bara detta året har 15 st CVE:er publicerats, men om detta är ett bra mätetal för säkerhet är en helt annan diskussion.

Om Er organisation verkar inom en viss bransch så rekommenderar jag att ni sätter upp en gemensam MISP inom just Er bransch. Men tänk också på att ni måste ha kompetens och en förmåga att underhålla och lägga in information i MISP:en. Här i Sverige har exempelvis Sunet en MISP-installation som Sunet-anslutna lärosäten kan använda sig av.

Är ni en stor organisation med egen ThreatHunting-kapacitet eller en CERT så kan det också vara läge att sätta upp en egen MISP där ni kan lägga in IOC:er och bygga upp er CTI, Cyber threat intelligence.

För API kan man använda PyMISP eller REST-gränssnittet, här testar jag en sökning med hjälp av curl och söker efter 89.203.249.203:

Svaret returnerar ett event info som säger Benkow.cc RAT feed.

Under huven så drivs MISP av en PHP-baserad applikation som använder sig av Apache, MySQL och Redis. MISP:en stödjer även ZeroMQ, Yara och kan exportera/importera STIX 1+2.

Hotlandskapet 2020

Den europeiska säkerhetsmyndigheten ENISA har precis släppt rapporten över cyberhotlandskapet 2020, detta är den åttonde gången de släpper Threat Landscape Report (ETL).

Följande infografik tycker jag bra representerar den statistik som är underlag för ENISA:s bedömning av Threat Landscape 2019-2020:

Rapporten pekar på att COVID-19 gjorde att många organisationer snabbt var tvungen att skynda på sin digitala transformering och därmed så förändrades också hotbilden och de utmaningar som många som jobbar med cybersäkerhet ställs inför.

Den största motiveringen bakom cyberattacker är finansiella motiv samt så är det ransomware som kostar organisationer mest pengar. Fler och fler organisationer genomför förebyggande arbete i form av Cyber Threat Intelligence (CTI).

Egentligen så är det inte en enda rapport som ENISA släpper utan sju stycken olika som riktar sig mot olika målgrupper:

  • THE YEAR IN REVIEW
  • CYBER THREAT INTELLIGENCE OVERVIEW
  • SECTORAL AND THEMATIC THREAT ANALYSIS
  • MAIN INCIDENTS IN THE EU AND WORLDWIDE
  • RESEARCH TOPICS
  • EMERGING TRENDS
  • LIST OF TOP 15 THREATS

Här kan du läsa respektive rapport från ENISA: