FireEye som är ett av världens största säkerhetsföretag gick i förrgår ut med information om att dom blivit hackade. Enligt dem så har ingen information om kunduppgifter komprometterats vad de identifierat ännu men om så skulle vara fallet så har dessa kunder kontaktas direkt.
Att ge sig på och hacka säkerhetsföretag är ingen direkt nyhet och har hänt flertalet gånger tidigare. Bl.a. Kaspersky identifierade ett intrång 2015.
Det som däremot FireEye har gått ut och bekräftat som stulet (exfiltrerat) är deras verktyg som används vid penetrationstester och Red-Teaming. Inga zero-days har används eller blivit stulna, vilket är bra. Jag förvånas också över mängden verktyg, över 200 st som de blivit av med.
De som ligger bakom attacken är en avancerad angripare som kan mätas eller är en statlig aktör uppger företaget. FireEye som själva jobbar med att utreda intrång skriver att de aldrig sett denna typ av avancerade angreppsvektorer tidigare. Även FBI bekräftar denna bild som förmedlas. Följande kommentar var rätt intressant också:
Consistent with a nation-state cyber-espionage effort, the attacker primarily sought information related to certain government customers
Tyvärr verkar inte FireEye släppa några IOC:Er som hjälper att identifiera angriparna. Enligt bl.a Dave Kennedy så pekar på att det är Ryssland som ligger bakom attacken, bl.a baserat på att FireEye tidigare avslöjat ryska cyberoperationer. Utredningen pågår fortfarande och mer information kommer förhoppningsvis längre fram.
Kevin Mandia som är VD på FireEye kommenterar följande i press-releasen:
På GitHub har man lagt upp signaturer i form av IOC:er för att känna igen de verktyg som stulits och jag har kollat på verktygen och det ser ut att vara branschpraxis-verktyg såsom BloodHound (CoreHound), SafetyKatz (Mimikatz) och egna såsom Sharpersist och Sharpivot. Mycket är baserat på .Net men även så finns det Python, Rust och programspråket D.
Intressant också att det finns kod som heter matryoshka.rs (Rust) och just matryoshka kan ju vara rätt allmänt använt eftersom matryoshka är en rysk trädocka i flertalet dockor inuti. Men också namnet på en iransk hackinggrupps RAT, CopyKittens.
Här kan du ladda hem en sammanställning med verktygen i Yara-format:
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 ”down the rabbit hole”.
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.