Taggat med: steganografi

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!

Så utvecklas ett cybervapen

Cybervapen i ett cyberkrig

Vad är det som skiljer vanlig skadlig kod mot ett avancerat cybervapen och hur utvecklas ett cybervapen?

🚀 Stöd mitt bloggande via Patreon: https://www.patreon.com/kryptera

Enligt många säkerhetsforskare var Stuxnet ett av de första och mest uppmärksammade cybervapnet. Resurserna som behövdes för att utveckla Stuxnet och dess olika delar är troligtvis något som enbart en nation har: Flertalet programspråk, mängder av moduler, flertalet zero-days, kunskap om urananrikningsanläggningen Natanz centrifuger och stulna certifikat för att nämna några delar som gör att det troligtvis ligger en stat bakom.

Leveransdelen

Denna del av cybervapenet gör att den träffar sitt mål. Eller når rätt klient, hårdvara eller nätverk. Leveransen kan ske via E-post, USB-minne, CD-skiva eller fysiskt ansluta mot den server, klient, TV eller liknande. Vilket bl.a Vault7 läckorna från CIA visade på. Inte helt ovanligt att HUMINT- och SIGINT -resurser nyttjas.

Leveransdelen kan också ske i form av ett implantat som installeras när utrustningen skickas ut till kund. För att nå sitt slutgiltiga mål som kanske är längre in i nätverket kan även zero-days användas eller kod för att detektera och ta sig förbi airgaps eller luftgap som det också kallas. Nätverk som är känsliga och inte anslutna till internet exempelvis.

Verkansdelen

Verkansdelen tillgodoser att målet med cybervapnet uppnås. Det kan vara att påverka en process i ett SCADA-system eller förstöra vitala delar i samhällskritiska system. Även kan detta vara att exfiltrera känslig information från målsystemet.

cybervapen

Kommunikationsdelen

Denna del är inte alltid nödvändig men gör det möjligt att via ett unikt ID ringa hem och meddela att cybervapnet har nått sitt mål eller utfört ett delmål. Kommunikationsdelen är också viktig om cybervapnet ligger dolt under en längre tid och ska aktivera verkansdelen på ett givet kommando.

För att försvåra upptäckt via nätverksforensik och IDS:er (intrångsdetekteringssystem) kan populära sajter såsom Dropbox, Twitter.com eller Instagram användas, givetvis krypterad med TLS.

Steganografi där meddelanden exfiltreras med hjälpa av bilder har även observerats samt kommunikation mot IP-adresser där satellitlänk används och antagonisten haft möjlighet att läsa av kommunikationen med hjälp av SIGINT (signalspaning) eller annan utrustning.

Om kommunikationsdelen använder redan befintlig infrastruktur för att uppdatera mjukvara eller kontrollera om nya versioner finns tillgängliga så är detta också svårt att detektera (se källa 4 nedan).

Kommunikationsdelen kan också användas för att ladda hem och aktivera nya moduler, droppers etc.

Stealth-mode

Det finns många sätt att försöka undgå upptäckt. Jag har tagit upp några sätt här på bloggen tidigare såsom ”Living-off-the-land” där komponenter som redan finnes i systemet återanvänds för andra syften.

En av de äldsta och vanligaste förekommande metoderna är obfuskering eller kryptering. Även kan relativt enkla saker såsom modularitet göra att det är svårt att se helheten i cybervapnet, exempelvis kan sniff-funktioner ligga i en modul, keylogger i en modul osv.

Även så finns det något som heter environmental keyed payloads där en modul kan vara krypterad med en nyckel som bara återfinnes i målnätverket eller systemet.

En annan viktig aspekt är OPSEC för de som utvecklar cybervapen. För allt lämnar spår och något som blir vanligare och vanligare är falskflaggning eller ”false flag”. Spåren kanske ser ut att peka mot ett land men kan i själva verket vara utvecklat av ett helt annat: Språk, tidzoner osv som kan ändras.

Persistens

Ibland så ligger verkansdelen enbart i enhetens RAM-minne och försvinner således om enheten krashar eller startar om. Men som vanligast så vill den som skapat cybervapnet att det ska ligga kvar under en längre tid och då finns det otroligt många sätt att gömma sig.

Jag gjorde denna video för ett tag sedan då jag går igenom 10 olika sätt att lägga in bakdörrar:

https://www.youtube.com/watch?v=zcovxq2nWec

Propagering

En skillnad mellan exempelvis WannaCry och ett cybervapen är att cybervapnets målsättning enbart är att propagera inom ett mindre område. Det kan röra sig om en enskild organisation eller nätverk. Med en mindre spridning blir också en eventuell detektion svårare.

Propagering kan dock vara ett måste som jag skrev under leveransdelen så kanske det finns luftgap mellan processnätverket/hemliga nätverket och internet.

Upprensning

Den eller de aktörer som lägger resurser på att utveckla ett cybervapen vill gärna inte bli upptäckt. När uppdraget är slutfört ska vapnet radera sig själv, även kan det finnas en inbyggd räknare som automatiskt ser till att radering genomförs efter exempelvis 12 månader.

Ett cybervapen kan även innehålla zero-days som utnyttjar sårbarheter och dessa vill även antagonisten radera alla bevis om, för då kan de använda sårbarheten mot fler mål.

Gillar du detta blogginlägg? Bli gärna månadsgivare via Patreon:

Källor

  1. Turla malware
  2. Gauss payload
  3. Falskflaggning med CIA Marble framework
  4. M.E.Doc och C&C via uppdateringsservrar, NotPetya

Steganografi

Steganografi är begreppet på en eller flera metoder att dölja meddelanden eller annan information på ett sådant sätt att enbart mottagaren har kännedom om dess existens. Steganografi och kryptografi kan kombineras för att öka skyddet för det hemliga meddelande som göms.

Steganografi användes redan av de antika grekerna redan 400 f.Kr. då en träskiva används för att sedan täcka skivan med vax. I dagens IT och mediasamhälle finns det många ställen att dölja hemliga meddelanden såsom i musik-, bild- och filmfiler som är ofta stora och ger många möjligheter till att dölja meddelanden.