Taggat med: OPSEC

20 års erfarenhet inom itsäk-granskningar

20 års erfarenhet inom säk-granskningar

Jag tänkte försöka sammanställa några kloksaker om sådant som jag lärt mig efter nästan 20 års erfarenhet av tekniska cybersäkerhetsgranskningar från min tid inom bl.a. FRA, Försvarsmakten och nu som egenföretagare.

Desto äldre jag blir desto mer tid lägger jag på att reflektera och dra slutsatser på ett övergripande och bredare plan.

Det låter eventuellt inte som viktigt men att försöka uppskatta och prioritera den tid du fått avsatt för uppdraget är viktigt. Att inte lägga för mycket tid på sådant som kan leda in i en återvändsgränd.

Beräkna tid

Låt verktygen arbeta för dig och automatisera så mycket du bara kan och på så sätt kan du lägga fokus på sådant som kräver manuellt arbete, såsom att förstå en bakomliggande logik i ett system eller mjukvara.

Lita dock inte enbart på automatiserade verktyg utan verifiera och dubbelkolla alltid resultatet.

Kommunikation

Att upprätta en bra leverabel såsom dokumentation (rapport) och ha förmåga att kommunicera denna leverabel till din uppdragsvidare är av stor vikt för framgång. Du kanske är jätteduktig teknisk men när uppdragsgivaren väl får din leverabel två veckor för sent så minskar värdet av din leverabel.

Vet du att du är mindre bra på att kommunicera och dokumentera men duktig på teknik se då till att ditt team innehåller en eller flera personer som kan kommunicera eller dokumentera.

Stödfunktioner och processer

Att ha bra processer och rutiner samt stödfunktioner som hjälper dig och höjer dig i ditt arbete så du kan leverera enligt din optimala förmåga är viktigt. Det kan röra sig om att du slipper gå på tråkiga möten där du kanske inte har något att göra eller minimera tidsrapportering. Eller att själv slippa installera om operativsystem, drivrutiner eller liknande.

Du kan i ditt arbete luta dig tillbaka till en bra grund när det gäller hur uppdrag kommer in, fördelas, prioriteras och sedan levereras. Samt efter avslutat uppdrag hur avdukning går till.

Tillgång till Internet kanske inte finns eller bör användas, därför måste du eller dina kollegor redan innan tänka till vad som kan behövas för offline-bruk. Jag brukar se till att ha många opensource-repon, indexerade digitala böcker (många förlag kan du köpa bulk billigt) samt deb-paket tillgängliga snabbt.

Här hittar du bristerna

Min erfarenhet säger mig att säkerhetsbristerna hittar du oftast på de ställen som:

  • Odokumenterade funktioner/gränssnitt/API:er
  • Ny eller gammal kod. Sök efter kod som hanterar gamla filformat eller protokoll exempelvis
  • Kod som parsar text eller andra komplexa funktioner
  • Funktioner som kan användas på andra sätt än vad utvecklaren hade tänkt på
  • Felaktig eller bristfällig separation mellan behörigheter eller användare
  • Ändringar mot grundsystemet. De flesta operativsystem nuförtiden är relativt säkra i sitt grundutförande, sök efter ändringar som genomförts.
  • Ställen där du kan nå långt in i systemet eller koden med extern indata

Finns givetvis en uppsjö till med saker där jag tittar, kanske kommer eventuellt i en bok framöver.

Spårbarhet

Att dokumentera dina findings under ditt uppdrag är av stor vikt. Speciellt eftersom att du troligtvis kan hitta ett eller annat guldkorn när du granskar exempelvis alla http-svar från webbservern eller all nätverkstrafik som du sparat undan i pcap-format.

Den efterföljande dokumentationen blir också otroligt mycket lättare om du sparat undan så mycket som möjligt. Även kan skärmdumpar eller liknande också vara bra som ett komplement till din löpande textdokumentation (krigsdagbok) eller rådata.

Glöm inte heller att du måste ha en process för att på ett säkert sätt radera all information efter avslutat uppdrag om så behövs, en del av Er OPSEC.

Tänk alltid ett steg längre

Du kanske är snabb på att skjuta iväg en ny exploit från Metasploit mot en sårbar server eller klient. Men tänk efter innan vad detta kan få för konsekvenser i ett andra eller tredje steg och ni behöver göra ett omfall.

Det kan vara så att säkerhetsövervakningen (SOC) upptäcker att ni håller på att genomföra en Red Teaming operation och då kanske ni behöver byta ip-adress, mac-adress eller liknande. Och då är det viktigt att redan innan veta hur detta går till.

Övrigt

Jag försöker även alltid ha möjlighet att göra saker på minst två olika sätt, det gör att jag kan verifiera och dubbelkolla vissa saker samt om ett verktyg eller metod skulle misslyckas kan jag alltid göra på något annat sätt. Öva är även viktigt så du och ditt team eller dina verktyg och metoder fungerar när det väl är skarp verksamhet eller ett uppdrag.

Se även till att du snabbt och enkelt kan sätta upp en miljö som efterliknar målsystemet eller den mjukvara som du granskar. Det gör att du kan hitta mer brister och inte behöver skicka alla dina tester över nätverket eller liknande.

Avslutande ord

Hoppas att detta kan leda till att du, din verksamhet eller ditt team kan bli bättre på just det ni gör inom cybersäkerhet. För jag tycker det är viktigt att vi delar med oss av våra lärdomar och kloksaker till varandra och på så sätt bygger vi säkrare infrastruktur, system och mjukvaror.

Se även till att utbilda din uppdragsgivare så denne blir en bra beställare, och hjälp till med krav och förväntningar samt förutsättningar.

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:

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

Blackhat Europe 2016 rapport dag 2

Blackhat Europe 2016

Detta är en sammanfattning av ett antal föreläsningar under Blackhat Europe 2016 som gick av staplen i London. En sammanfattning från dag 1 kan du läsa här.

Identifiera nya sårbarheter i webbapplikationer med hjälp av backslash

portswigger

Föreläsare: James Kettle från PortSwigger

Problemet med många av dagens automatiska sårbarhetsskanners är att de bara identifierar lågt hängande frukter. Att skicka många webbförfrågningar automatiskt för att täcka samtliga buggar är helt enkelt omöjligt. Därför har James valt att försöka bygga en ny extension till Burp där målet är att identifiera bugg-klasser istället för enskilda sårbarheter.

Detta gör han genom att skicka tester för buggklasser istället för enskilda sårbarheter. Exempelvis så testas escape-hanteringen av input-data och observerar output.

Som test så listade han samtliga Bug Bounty-program som tillåter automatiska skanningar. Även så skrev han ytterligare en extension till Burp Suite som begränsar antalet förfrågningar per domän till 3 st.

Burp Extension finns att ladda hem här: https://github.com/PortSwigger/backslash-powered-scanner

Så förhindrar du att Big Data används för att analysera ditt liv

 

breaking-big-data

Föreläsare: David Venable från Masergy Communications

David Venable har en bakgrund från att arbetat på amerikanska myndigheter såsom NSA. Han berättar att mer och mer metadata och data samlas in av myndigheter och företag. Föreläsaren är dock inte oroad för att myndigheter missbrukar data utan mer de företag som sparar på sig metadata och inte har samma rutiner för att förhindra missbruk.

David rekommenderar boken Weapons of math destruction.

Att dra slutsatser med algoritmer och felaktig data kan få ödesdigra konsekvenser. Exempelvis att du är uppkopplad mot samma mobilmast som en terrorist, dvs du råkar bara befinna dig på fel ställa vid fel tidpunkt.

Intressant att Uber för några år sedan gick ut med ett blogginlägg som nu är raderat hur de kan spåra dina engångsligg, läs mer här: http://boingboing.net/2014/11/19/uber-can-track-your-one-night.html

Det kommer troligtvis mycket snart att finnas försäkringsbolag som börjar att använda GPS-data, inköposdata och annan data.

Även går han igenom alla olika metoder som kan användas för att spåra en person. Såsom vilken handstil du använder, skrivbeteende eller vilka tider du är aktiv.

Med hjälp av olika metadata såsom dina vänner, beteenden, känslor, rörelser blir en persona av dig. Även rekommenderar han The Grugq’s OPSEC: Because jail is for wuftpd.

Intressant också är att om du har för lite information på nätet så blir du automatiskt misstänkt. Exempelvis gör kinser och ryssar detta så fort det kommer en ny diplomat. Om det finns för lite information så klassas personen automatiskt som CIA undercover-agent.

Injektion av felaktigheter i säkra bootprocesser

secureboot

Föreläsning av Niek Timmers & Albert Spruyt från Risecure

Genom att påverka strömstyrkan vid rätt tillfälle och inte för mycket och inte för lite så kan fel introduceras i hårdvara. Det är dock svårt att exakt påverka vad som kommer att hända när fel introduceras.

Forskarna som presenterar har tagit fram en ny metod vid namn instruction corruption. Denna metod kan användas för att angripa SecureBoot-processer. Desto tidigare in i uppstarts-processen desto högre behörigheter har koden som körs, men dock så är det mindre kod i början och mer i slutet av uppstartsprocessen. Dvs mindre attackyta i början av uppstartsprocessen.

För den som vill testa hemma så finns det en hårdvara vid namn ChipWhisperer Lite som underlättar fault-injection attacker.

Observera att du kan bricka enheten om du glitchar för hårt. Olika värden att kontrollera vid attacken:

  • Väntan innan injektion
  • Voltstyrka
  • Tiden för injektion

För att ta sig förbi SecureBoot så måste en if-funktion påverkas så att en RSA-verifiering lyckas istället för misslyckas. Och tittar man på assembler-koden så finns det minst fyra ställen som opkoden kan påverkas för att starta upp på en annan mjukvara.

Men hur förhindrar tillverkarna denna typ av attack? Jo det måste göras genom flertalet olika metoder. Bl.a. genom att införa multipla kontroller på olika ställen. Men även om tillverkaren lägger in exempelvis dubbla memcmp:s så optimerar kompilatorn bort den ena av denna.

Det forskarna har gjort nu som är nytt är dom bygger nya attacker genom att introducera logiska sårbarheter, exempelvis storleken vid en memcpy.

Vad händer med krypton efter kvantdatorernas intåg?

post-quantumFöreläsning av Jennifer Fernick från University of Waterloo

Detta är den första kvinnliga föreläsaren som jag lyssnar på under konferensen, vore så klart trevligt med en ännu mer diversering av talare. Hur kommer ett kryptoarmageddon att se ut? Troligtvis kommer det inte att vara som när en ny iPhone-modell som står överallt i nyheterna.

Med tanke på problemen att gå från 3DES till AES så kommer post-quantum crypto att vara ett stort problem.

Quantum-safe security beror på: Kryptografisk forskning, standarder, system/integration och leverantörer/tillverkare (även open source).

Även om exempelvis TLS stödjer post-quantum algoritmer så dyker andra problem upp exempelvis att stödja längre nycklar.

Just nu finns följande post-quantum krypton ute i stora drag:

  • TLS med post-quantum algoritmer
  • Tor circuts med algoritmer
  • Hash-baserade signaturer
  • Off-the-Record Messaging (OTR) är ett område där föreläsaren har fokuserat på.

Signal-protokollet baseras på många delar av OTR. Diffie-Hellman är exempelvis inte säkert för beräkningar utförda av kvantdatorer. AES försvagas från 256-bitar till 128 bitar exempelvis.

Projektet Open Quantum Safe (OQS) har implementerat många av post-quantum algoritmer:

https://github.com/open-quantum-safe/liboqs

Blackhat Europe 2016 rapport dag 1

Blackhat Europe 2016

Denna vecka befinner jag mig i London på cybersäkerhetskonferensen Blackhat. Konferensen går i USA, Asien samt Europa årligen. Tidigare har konferensen varit i Amsterdam, Barcelona och denna gång var det Londons tur. Priset för konferensen ligger på runt 1000€ och den som vill kan även gå utbildning två dagar innan konferensen (briefings) börjar.

På konferensen finns det fyra olika spår med olika inriktning. Jag har blandat mellan dessa olika spår och skrivit sammanfattningar nedan från den första dagen. Presentationen som PDF finnes även efter varje sammanfattning.

Du kan läsa min rapport från dag två här.

blackhat-pass

Automatiserad incidenthantering

Föreläsare: Elvis Hovor och Mohamed El-Sharkawi från Accenture

Förr eller senare blir alla organisationer drabbade av intrång, och det första vi gör är att använda våra verktyg och metoder för att undersöka intrånget. Även så kräver undersökningar efter ett intrång mycket resurser framförallt i form av tid.

Föredraget och forskningen bakom handlar om att förkorta tiden att från ett larm eller befarat intrång till att det går att bekräfta intrånget. Det kan röra sig om veckor eller månader i dagsläget. Frågor som incidentutredningen måste besvara är såsom vem låg bakom, vilken information har vi blivit av med, hur tog dom sig in, varför gjorde de intrånget.

Målet är att på ett formaliserat och återupprepat sätt fokusera på:

  • Snabbare utredningar
  • Enklare utredningar
  • Ta bort tråkiga och autonoma delar
  • En oerfaren forensiker kan göra avancerade utredningar
  • Minska risken inom organisationen genom att förkorta tiden

Hur kan vi analysera manuella moment och kompetenser hos en individ som genomför en forensisk utredning och automatisera detta och bygga ett verktyg för att göra detta.

Fyra huvudkategorier som forskningen fokuserar på:

  • Omfattande cyberontolog: Unified Cyber Ontology (UCO), ICAS och CMU Insider Threat Ontology
  • System som kan dela information och prata med varandra: STIX CybOX CVE
  • Maskininlärning och kognitivitet: DFAX, CRE
  • Globalt incidenthanteringskorpus

Kognitiva modeller som använder Binary Tree Traversal med en egenutvecklad poängtabell. Genom att analysera flertalet olika vägar i trädet som ger olika poäng så kan bästa metoden att genomföra en incidentutredning identifieras, “workflow paths”.

Efter ett tag kunde forskarna förbättra utredningarna och även förbättra den kognitiva modellen med en Markov-kedja. Bygga incidenthanteringsrobotar med hjälp av SPARQL.

Presentation: AUTOMATING INCIDENT RESPONSE: SIT BACK AND RELAX BOTS ARE TAKING OVER…

Effektiv fuzzning av filformat

Förläsare: Mateusz Jurczyk från Google Project Zero

Att fuzza handlar om kort och gott om att automatiskt generera mängder med indata till mjukvara och förstå hur mjukvaran hantera dessa olika inputs. Arbetet börjar med att identifiera olika typer av indata exempelvis i form av olika filformat. Dessa filformat kan sedan innehålla mycket komplexa strukturer. Att crawla internet efter exempelfiler är också en metod att hitta nya testfiler.

Genom att analysera mjukvaran som ska fuzzas och hur denna laddar in filer så är det även möjligt att se vilka filformat som supportas. Detta är viktigt för att försöka ladda in så många olika filtyper som möjligt och fuzza dessa. Det är även bra om så få ändringar som möjligt nå så många funktioner inom programmet som möjligt “byte to function ratio”.

Att se code coverage genom att räkna hur många basic blocks som träffas är en grov men ändå bra metod att se hur mycket av koden som träffas i fuzzningen. Dock kan vissa vägar inom samma block missas om det finns if-sats eller liknande. AFL av lcamtuf har tänkt på vissa av dessa problem i AFL technical whitepaper.

SanitizerCoverage är ett verktyg som lätt och enkelt kan mäta code-coveredge.

Nytt förslag från Mateusz är att generera trace-filer efter varje fuzzning som beskriver hur en viss input uppnår en viss sökväg inom programmet.

I Wireshark har han hittat 35 st olika sårbarheter som åtgärdats. Han kompilerade Wireshark med ASAN och AsanCoveredge, och Wireshark var ett bra mål för att majoriteten av alla dissectors är skrivna i programspråket C.

Det andra programmet han har lagt mycket tid på att fuzza är Adobe Flash, där identifierade han bl.a. två nya filformat som Adobe Flash accepterade som inte var dokumenterade. Han hittade 7 nya sårbarheter genom att fuzza dessa odokumenterade format.

Presentation: EFFECTIVE FILE FORMAT FUZZING – THOUGHTS TECHNIQUES AND RESULTS

Profilera individers aktiviteter i hackerforum över tid

Föreläsare: Christopher Ahlberg från Recorded Future

Föredraget handlar om att cyberskurkar blir bättre på OPSEC och lämnar mindre och mindre spår efter sig. Han ska försöka sig på att spåra skurkarna även om de byter smeknamn på internetforum.

Rekommenderar boken Activity based intelligence. Recorded Future har sparat på sig data under 4 år och crawlar många forum och darkweb-sidor. Stödjer 7 olika språk. De har nu identifierat 1,4 miljoner olika smeknamn på forum där 96.6% enbart är använda en gång.

Bygga kluster av aktivitet över längre tid på profiler som återfinnes på forum. Detta blir sedan heatmaps/swimlanes som kan jämföras mellan forumprofiler.

Det är möjligt att identifiera när en person på ett forum byter smeknamn genom att analysera aktivitet. Även går detta att analysera på Tor HiddenServices-forum. Detta är bara indikationer på att det kan vara samma person som är bakom ett smeknamn och bör kompletteras med mer information.

TheRealDeal Market är en marknadsplats för diverse illegala prylar såsom 0-days, droger och RAT:s.

Presentation: CHASING FOXES BY THE NUMBERS: PATTERNS OF LIFE AND ACTIVITY IN HACKER FORUMS

Att ta sig förbi webb-brandväggar med hjälp av maskininlärning

Föreläsare: George Argyros och Ioannis Stais

En webbapplikationsbrandvägg fungerar genom att normalisera indata för att sedan matcha detta mot ett regelverk i korta drag. Regelverket kan vara i form av signaturer eller regular expressions. Om någon matchar så migreras sedan attacken på olika sätt genom att exempelvis helt enkelt blockera http-förfrågan.

Sedan går föreläsarna igenom några vanliga problem med denna typ av webb-brandväggar. Dessa problem kan vara felaktig normalisering av indata eller stöd för vissa protokoll som angriparen använder sig av. Ett enkelt sätt att ta sig förbi en webb-brandvägg kan vara att enbart använda single vs dubbel-quotes.

Genom att använda Angluins algoritm så kan en aktiv inlärningsalgoritm utvecklas. Denna algoritm kan sedan lära sig om eventuella problem som uppstår i WAF:en (web application firewall).

Denna metod kan även användas för att göra fingerprinting och således lista ut vilken typ av waf som används.

Källkoden går att ladda hem här: https://github.com/lightbulb-framework

 

Cyber judo: offensivt cyberförsvar

Föreläsare: Tal Be’ery och Itai Grady från Microsoft Research

Detta var helt klart dagens mest intressanta föredrag. Främst eftersom det först fokuserade på hur Microsoft lär sig av angriparen och sedan kan använda denna information till att detektera attacker samt bygga in skydd i Windows mot dessa. Även ett aktuellt ämne.

Angripare och försvarare har mycket gemensamt. Försöka ta sig in och sedan eskalera sina behörigheter genom att söka igenom nätverk och klienter. Från exempelvis att gå på ett phishing-mail till Microsoft domän-admin och exfiltration av känslig information.

När ett konto har identifierats så används någon av följande kommandon för att köra kod fjärrmässigt:

  • PsExec
  • Remote PowerShell WinRM
  • WMIexec

Följande bild illustrerar attack kill chain:

attack-kill-chain-small

Vi behöver lära oss TTPs om våra angripare

  • Tools
  • Techniques
  • Procedures

Antagonisten är intresserad av användare som är domän-administratörer. Detta kan kontrolleras med SAMR över nätverket mot en domänkontrollant (DC).

För automatisera detta kan PowerSploit användas som ett PowerShell-script. Även kan verktyget BloodHound hjälpa till med att leta upp administratörer på nätverket. Nåväl, Microsoft Research har nu själva utvecklat ett nytt verktyg vid namn GoFetch som bygger en attackplan samt har inbyggt stöd för mimikatz.

Eftersom detta är ett problem för Microsoft så har de nu implementerat begränsningar i Windows 10. RestrictRemoteSAM är en ny registernyckel som kan sättas. Windows Server 2016 har också denna registernyckel.

Demovideo för GoFetch av Microsoft Research:

Så blir du en ninja på nätverksforensik

Nätverksforensik

Artikel uppdaterad: 2016-10-20

För att bli en ninjamästare på nätverksforensik så gäller det först och främst att du är bekväm och känner till din uppsättning med verktyg. Jag rekommenderar att du börjar med att testa Linux-disten Security Onion som är har en stor mängd olika verktyg förinstallerade såsom NetworkMiner, Argus, Snort och Bro.

Sen gäller det också att ha tillgång till någon data att experimentera med, och desto råare format desto bättre. Därför gillar vi som jobbar med nätverksforensik formatet pcap (och numera även vidareutvecklingen pcap-ng).

Har du inga egna pcap-filer så kan du alltid skapa upp dessa genom att spara ner nätverkstrafik till/från din egen dator eller hämta hem från Wireshark eller Netresec.

Hitta rätt i nätverkstrafiken

När du väl har tillgång till råmaterial i form av pcap-filer så måste du lista ut hur du ska angripa problemet. Oftast så finns det inte enbart en lösning på problemet utan som forensiker får du prova flera olika innan du eventuellt hittar en lösning.

Mer åren får du troligtvis även mer erfarenhet och kan lösa problem snabbare och navigera rätt snabbare bland nätverkstrafiken.

Frågan vi måste ställa oss är: Vad är syftet? Vad är det vi är ute efter. Är det potentiellt skadlig kod som har passerat eller söker vi efter något annat. Och innan vi börjar så bör vi även veta hur nätverkstopologin ser ut:

  • Är trafikinspelningen innanför eller utanför brandväggen?
  • Är det bakom NAT?
  • Är det egress/ingress eller dubbelriktad trafik
  • capinfos-kommandot som följer med Wireshark ger bra info

Sedan bör ni ha en Standing Operating Procedures (SOP) för hur trafiken ska hanteras. Jag rekommenderar exempelvis att alltid använda Snort och ett relativt uppdaterat regelverk som en av de första kontrollerna.

Lär dig med hjälp av CTF

CTF står för Capture The Flag och är en typ av övning som du själv kan utföra för att lära dig mer samt testa dina färdigheter. Det finns ett antal olika CTF:er som är inriktade på nätverksforensik och du börjar som oftast med att ladda hem en pcap-fil som ska analyseras.

Här har jag listat ett antal CTF:er med inriktning på nätverksforensik:

Om du kör fast med någon av ovan så testa att söka efter CTF:ens namn samt write-up så hittar du troligtvis lösningar.

NinjaUtmaningar inom nätverksforensik

Att titta på nätverket ger oftast enbart en bild som många gånger bör kompletteras med övriga forensiska utredningar av datorer exempelvis. Även kan loggfiler från olika system också komplettera den nätverkforensiska undersökningen.

Jag ser även att mer och mer trafik blir också krypterad och använder sig av TLS (https) vilket gör det svårare att titta vad som går i sessionerna. False-flag är också något som förekommer mer och mer där metoden går ut på att förvilla och lämna falska spår.

Behöver Er organisation hjälp med nätverksforensik? Kontakta Triop AB 

En annan metod att kringgå och försvåra nätverksforensik är domain-fronting. Med denna metod så döljs skadlig trafik i kommunikation mot tjänster såsom CDN (se mitt föredrag från Internetdagarna 2014).

Verktygen du ska lära dig

Wireshark och tshark

Först och främst är Wireshark och dess CLI-version tshark något som jag anser att alla bör behärska. Och hanterar du stora mängder data så är det otroligt viktigt att känna till alla kommandoargument som tshark kan ta.

Exempel på kommando: Följande kommando kan användas för att titta på information om TLS/SSL-certifikatet vid en handskakning:

tshark -r snort.log.1425565272 -R ssl.handshake.certificate -V | grep dNSName:

Även så kan vi titta på SNI-värdet (server name indication) om detta finnes:

tshark -r test.pcap -T fields -e ssl.handshake.extensions_server_name

tcpdump

tcpdump är också ett sådant självklart kommando som följer med nästan alla Linux-distar och kan användas till det mesta. Om inte annat så har verktyget bra prestanda när det gäller att filtrera trafik när du skriver pcap-filter för att förfina sökningen, exempelvis:

tcpdump -r gigantisk-fil.pcap -w mindre-fil.pcap "dst port 31337"

Och behöver du snabbt och enkelt spara ner data så brukar jag köra kommandot nedan. Observera att snaplen -s inte behövs om du har en relativt ny tcpdump-version eftersom nya går standard till 65535 bytes (tidigare 96).

tcpdump -i en2 -s0 -w test.pcap

ngrep

ngrep används precis som det klassiska kommandot grep, dvs att vi söker efter något. Gör ingen direkt tolkning av protokoll såsom tshark/wireshark vilket gör att kommandot kan vara snabbare att arbeta med.

Följande kommando kan användas för att identifiera namn på HTTP-förfrågningar

ngrep -q -W byline -I snort.log.1425565276 Host:|grep -i ^Host

Network Miner

Erik Hjelmvik som utvecklat Network Miner har även utvecklat CapLoader och andra bra verktyg. Följer med Security Onion men en gratisversion kan även laddas hem från Netresec. Lätt och enkelt att arbeta med och är det bästa verktyget för att identifiera filer som går över nätverket.

För cirka 7400kr så får du en bättre version som har ytterligare en mängd funktioner såsom protokollidentifiering med hjälp av statistik, GeoIP, CLI-version.

NetworkMiner

Om du använder dig av Security Onion kan du starta NetworkMiner med kommandot /opt/networkminer/networkminer

tcpflow

NinjaDetta verktyg parar ihop TCP:s fem-tupel och skriver ner dessa strömmar till disk, en ström per fil. Otroligt värdefullt om du vill analysera stora mängder data närmare.

Varje fil får ett namn som relaterar till sessionen i form av IP-adress src/dst samt käll och destinations-porten. Med nollor som prefix, exempelvis:

185.003.051.013.00080-010.101.001.143.63092

Sedan kan vi hantera filen med vanliga verktyg såsom grep, head osv:

$ head -3 185.003.051.013.00080-010.101.001.143.63092
HTTP/1.0 304 Not Modified
Server: Apache-Coyote/1.1
P3P: policyref="/w3c/p3p.xml", CP="NON DSP COR NID CUR ADMa DEVa PSAa PSDa TAIa OUR IND COM CNT DEM INT LOC NAV PRE UNI"

Även så genomförs ingen vidare avkodning, så vi får själv ta hand om gzippat innehåll osv. Men har vi en nyare version och lägger på argumentet -e http (eller -a). Då får vi en till fil men med suffixet -HTTPBODY-002 exempelvis:

185.003.051.013.00080-010.101.001.143.63092-HTTPBODY-002

snort

Snort är en mjukvara för att upptäcka intrång i nätverkstrafik (IDS) men kan även läsa PCAP-filer i efterhand. Och som anti-virus motorer så fungerar en IDS bäst då regelverket är uppdaterat.

När det gäller Snort så finns det tre huvudspår när det gäller regelverk:

  • Emerging Threats
  • Snort – Cisco Talos
  • Snort Community

Jag rekommenderar att använda Snort Cisco Talos, kostar enbart 29$ per år för personligt bruk. Annars testa även Emerging Threats regler som också uppdateras och innehåller 47k regler. Kör kommandot rule-update på Security Onion om du vill uppdatera regelverket med PulledPork:

PulledPork

För att läsa in en pcap-fil och sedan skriva ut larm till mappen ./log/ kör du:

snort -r snort.log.1425565276 -c /etc/nsm/templates/snort/snort.conf --daq pcap --daq-mode read-file -l ./log/

Och om du som jag får många regler som larmar false-positive så kan du alltid lägga till dem i filen /etc/nsm/pulledpork/disablesid.conf

Även så kan Snort logga direkt till console med -A console argumentet.

Givetvis är även Suricata ett alternativ till Snort, och finnes så klart redan installerat i Security Onion.

Snort

argus

Argus (audit record generation and utilization system) är uppdelat i en mängd olika verktyg såsom ra, rasort och racluster. Argus gör det lätt att arbeta med flöden samt övergripande analyser. Och precis som många andra verktyg som jag gått igenom här så kan Argus fungera offline eller direkt online mot nätverkstrafik.

Även så kan argus-filer vara bra vid långtidslagring där bara meta-data behöver sparas från trafiken.

argus -r snort.log.1425565276 -w snort.log.1425565276.argus

Vår pcap-fil är på 153 MB och argus metadata-fil är på 241K.

Sedan kan vidare använda argus verktyg såsom racluster och rasort för att koppla ihop TCP-sessioner och sedan sortera samtliga sessioner i filen för att försöka upptäcka exfiltration:

racluster -r snort.log.1425565276.argus -w -|rasort -r - -m sbytes|head -30

Och vill vi enkelt filtrera ut samtliga tcp-sessioner, slå ihop dessa samt se vilka som varit mest långvariga kan vi köra följande kommando:

racluster -r snort.log.1425565276.argus -w - -- tcp|rasort -r - -m dur -s stime saddr daddr sport dport dur proto |tail

OPSEC

SchhyyyNär du utför dina analyser så bör du upprätthålla god sekretess. Trafiken du analyserar kan innehåll diverse kod som gör att sårbarheter utnyttjas i exempelvis Wireshark. Se därför till att köra så mycket som möjligt med låg behörighet och helt avskilt från andra nätverk och system såsom Internet.

Och fundera igenom allt du gör mot Internet: Vad lämnar detta för spår? Om du exempelvis analyserar kommunikation som en trojan utnyttjar (C&C) och det helt plötsligt dyker upp ett curl-anrop från din analys-klient så kan detta förstöra framtida mtrl.

Antagonisten kan nämligen bevaka kontrollkanalerna och då snabbt radera samtliga bevis, nycklar osv om hen märker att du utför analys.

Skärmdump

Denna skärmdump är från webbgränssnittet i Security Onion:

securityonion-web

Så blir du anonym med hjälp av OPSEC

OPSEC

För att hålla sig anonym på internet så finns det olika nivåer. Först och främst så avgörs dina tekniska metoder för att bibehålla anonymitet utifrån den aktör som du vill hålla dig anonym för: Är det din fru, underrättelsetjänst eller din internetleverantör?

Alla olika nivåer av anonymitet kräver åtgärder av olika slag. För att ge ett exempel: Att använda sig av PGP skyddar exempelvis inte vem som kommunicerar med vem eller hur mycket ni kommunicerar.

OPSEC är förkortningen för operationssekretess och används främst inom militära sammanhang men förekommer nu även civilt. Generellt gäller att du funderar igenom samtliga steg och eventuella spår du kan lämna efter dig i förhand. Bygg upp en plan och tänk igenom samtliga moment.

Burner-phones eller mobiltelefoner som enbart används en eller två gånger för ett specifik syfte är också något som ökar i populäritet. Även att tänka på är att inte sticka ut i mängden: För några år sedan så bombhotade en elev i USA sin skola via Tor. Det visade sig dock att eleven den enda på skolan som använde sig av Tor när loggar analyserades i efterhand.

Så tänk igenom följande:

  • Vem kommunicerar du med
  • Hur ofta kommunicerar ni
  • Vad kommunicerar ni
  • Vad lämnar ni för spår
  • Vem kan vara intresserad av ovan

morris worm

Personas eller fiktiva identiteter

Att skapa en ny temporär identitet som enbart används för operationen eller det enskilda syftet kan vara av god sed. Undvik dock för unika namn eller annat som kan kopplas till dig personligen såsom lösenord, adress, väder, företag eller liknande. Ett namn eller E-post som inte sticker ut i mängden kan vara att föredra om kommunikationen kräver E-post.

Vanor är också av ondo, använd exempelvis inte in på ditt egna Facebook-konto under tiden då du använder en persona eller var vaksam på vad du använder Google eller andra tjänster till. Vanliga slarvfel i skrift eller unika slangord kan stärka kopplingar mellan dig och din persona.

Tails

Det vore tjänstefel att inte omnämna operativsystemet Tails i en sådan här guide. Tails laddar du ner gratis och bränner ut till CD-skiva som du sedan startar upp din dator på. Tails är ett uppsäkrat och anonymt operativsystem som innehåller en mängd verktyg såsom ordbehandlare, chatt, webbläsare och E-postprogram.

Tails och Tor går också hand i hand då detta finns förinstallerat. Se dock till att du har en ny och fräsch version av Tails eftersom det släpps nya säkerhetsuppdateringar nästan varje månad.

TorTor och VPN

Att använda Tor för att anonymisera sin kommunikation är så klart bra men tänk även på att detta sticker ut, precis som VPN. Båda Tor och VPN:er har sina för och nackdelar, när det gäller VPN så har du troligtvis ett utbyte av pengar. Försök att alltid använda End-to-end kryptering över VPN och Tor.

För att undvika att gå ut via en Tor exit-nod så kan du exempelvis surfa direkt till https://facebookcorewwwi.onion/ när du surfar via Tor Browser.

Vissa ”anonyma” VPN-leverantörer är mer eller mindre kända för att läcka information. Och ska du betala för din VPN-tjänst så föredra att använda Bitcoin som betalningsmedel som exempelvis OVPN-stödjer.

Radera information

Att slutligen radera information efter uppdraget är slutfört (eller löpande) är inte alltid lätt, för information kan automatiskt säkerhetskopieras eller lagras på externa medier. Meta-data kan läcka ut (tidsstämplar, GPS-information etc) och säker överskrivning tar lång tid. Överväg att använda en digital sprängkista som går snabbare men är inte lika säkert.

Läs på om ämnet

Det är så klart viktigt att läsa på innan, men tänk också på att det i sig lämnar spår. IIS har en mängd bra guider såsom Digitalt självförsvar – en introduktion.

Video från Hack in the Box 2012: OPSEC: Because Jail is for wuftpd

Att vara anonym kan ta otroliga resurser i form av tid och pengar och du kommer att göra misstag förr eller senare.

Schhyyy

Försvarsmakten: Cyberkriget är här

Försvarsmakten släppte nyligen sitt dokument med underlag till försvarspolitisk inriktningsproposition 2015 där man anger att förutom sjö, luft, mark och rymd så bör även cyber införas som den femte operativa miljön.

Även anges i dokumentet att stora mängder information snabbt kan inhämtas dolt, sid 11:

Underrättelseverksamhet i cybermiljön ger möjligheter till snabb och dold inhämtning av stora mängder information, som kan vara tillgänglig i realtid. Mjuk- och hårdvara som levereras till svenska system kan, redan innan de tas i bruk, vara förberedda för att samla underrättelser eller ta emot och öka effekten av- eller initiera attacker med svåra konsekvenser som följd. Underrättelseverksamhet i cybermiljö är en förutsättning för att kunna genomföra cyberattacker.

Så därför dras slutsatsen mycket logiskt att Försvarsmaktens förmåga inom cyber måste öka och vara juridisk kontrollerad precis som inom andra militära förmågor. Samt så bör det finnas en god samverkan med andra berörda myndigheter.

Redan idag kan militära effekter uppnås inom cybermiljön framgår men oklart dock om hela spektrat inom informationsoperationer såsom PSYOPS inkluderas inom detta begrepp.

Under punkt 2.2 så framgår även att Ryssland bedriver hybridkrigföring där också cyberoperationer ingår.

Bilden nedan förevisar operationer inom cyberarenan. Hämtad från Försvarsmaktens Handbok Informationsoperationer:

FM Handbok infoops

CNO = Datornätverksoperationer eller computer network operations som det heter på engelska. OPSEC handlar om sekretess runt operationer.

Cyberattacker genomförs förutom i underrättelsesyfte med kinetiskt angrepp där operativa förmågor inom cyber koordineras med traditionella militära förmågor.

Här kan du ladda hem dokumentet som PDF:

Screen Shot 2014-12-17 at 14.37.01