2018-08-16

En försvarare av IT-säkerhet måste lyckas avvärja varje attackförsök, varenda gång, för att vara säker. Angriparen behöver bara lyckas en enda gång för att få ett första fotfäste.

De som jobbar för att säkra företagets nätverk har alltid varit i underläge. En angripare kan på enkla sätt genomföra oräkneliga attacker mot företagets IT-system, exempelvis genom att skicka mail med skadlig kod till alla anställda om och om igen, skanna av nya sårbarheter kring de servrar som är exponerade mot internet eller bara gissa anställdas lösenord för att logga in i moln-lösningar.

När antivirusprogrammet larmar om att den identifierat och stoppat skadlig kod tar många det som ett kvitto på att det fungerar och att man stoppat ett intrång. Och när antivirusprogrammet inte larmar, men brandväggen gör det, tar man det som att brandväggen stoppat intrånget och många lutar sig lugnt tillbaka – försvaret fungerar. Eller ännu bättre; inga larm någonstans, allt är lugnt och vi är inte ens en måltavla. Eller?

Problemet är att det finns inget sätt att veta hur många försök en angripare gör, om de har lyckats ta sig in eller om försvararna lyckats hålla dem stången.

De klassiska lösningarna för att försvara ett nätverk bygger på idén: allt som kommer in kontrolleras mot en lista med ”dåliga saker”. Det kan vara IP-adresser, domännamn och fil-signaturer. Nyare produkter försöker ofta identifiera skadliga beteenden genom att köra en fil i en säker miljö och ser hur filen beter sig, men även detta matchas mot vad som tidigare är känt. Datorer och mjukvara är experter på att kontrollera stora mängder data mot varandra utan att göra fel. Problemet är att människor har en egenskap som datorer och mjukvara fortfarande kämpar med: kreativitet.

När antivirus larmar så är det troligt att angriparen redan tagit sig in. Antingen är ett av verktygen man använder redan kända och angriparen testar bara vad man kan använda. Eller så är det redan försent, nätverket är komprometterat och antiviruset fick en ny signatur som man hittade på datorn. Troligen är du offer nummer två för angriparen. Att brandväggen slutar larma betyder bara att angriparen hittat en väg in och datorerna har än en gång förlorat mot mänsklig kreativitet.

Att ta sig runt antivirus, brandväggar och alla andra lösningar som använder listor med kända indikatorer är inte särskilt svårt. Att ändra filsignaturen på ett skadligt program kräver bara ett extra blanksteg. Att byta IP-adresser och domäner är nästan lika lätt, det räcker med ett webbformulär och ett stulet kreditkortsnummer. Även de program som tittar på beteende står sig ofta slätt mot en angripare, det kan räcka att obfuskera* text någonstans, kombinera två ofarliga filer eller lura användaren att stänga av ett skydd.

Situationen som vi har hamnat i är att vi låter datorer kämpa mot mänskliga motståndare i en kamp där kostnaden för angriparen att utföra ett angrepp är väldigt låg, medan kostnaden att inte avvärja är hög för försvaren.

När vi identifierar ett angrepp så är indikatorerna som vi använder lätta för angriparen att förändra. Samtidigt är vi ofta reaktiva och väntar på nästa larm innan vi gör något.

En liknelse för detta är flygplatssäkerhet dvs. säkerhetskontroller som finns på plats för att förhindra terrordåd och flygkapningar. Dessa består i huvudsak av en säkerhetskontroll som kontrollerar alla som går in på en flygplats. Exakt hur kontrollerna utförs varierar något från land till land men principen är att man kontrollerar allt som en person bär med sig ombord på ett plan. Utgångspunkten är att upptäcka personer som vill angripa ett flygplan genom att ha med sig vapen eller sprängmedel ombord. Säkerhetskontrollen blir här liknelsen till klassiska IT-säkerhetslösningar.

Tre misslyckade terrorattacker och hur flygplatssäkerheten påverkades:

  • 22 december 2001 försökte en man ombord på en flight till USA detonera en sprängladdning gömd i skon. Försöket stoppades tack vare att passagerare och flygpersonal var uppmärksamma och upptäckte mannen när han försökte antända stubinen som var gömd i skon. Som svar på detta började flera flygplatser kräva att man tog av sig skorna vid säkerhetskontrollen.
  • 2006 planerade en grupp terrorister att spränga ett flertal flygplan genom att använda flytande sprängmedel. Brittisk polis lyckades stoppa planerna tack vare omfattande spaningsarbete. Som svar på detta begränsade flygplatser vilken mängd vätska man får ha med sig i handbagaget.
  • 25 december 2009 försökte en man spränga ett flygplan med hjälp av högexplosivt sprängmedel gömt i underkläderna. Försöket stoppas återigen tack vare uppmärksamma passagerare. Som svar på detta uppgav flera flygplatser att de skulle skärpa säkerhetsrutinerna utan att nämna något specifikt. Huruvida rutinerna skärptes har debatterats.

I de två första fallen blir svaret att förstärka säkerheten genom att i säkerhetskontrollerna försöka identifiera exakt den typen av metod som används vid senaste attacken. Samtidigt så kommer det inga specifika svar på den tredje, att detektera vissa typer av sprängmedel är svårt och att tvinga passagerare att ta av sig underkläderna är troligen inget alternativ. Detta är analogt med hur signaturbaserat skydd fungerar.

De första två situationerna är relativt enkla att öka säkerheten kring, vilket skulle kunna vara detsamma som att titta närmare på särskilda filtyper där en skadlig fil antagligen har en tydlig markör. Det tredje exemplet, sprängmedel i underkläderna är svårare och det finns liknande händelser inom IT-säkerhet där det kan vara komplicerat att identifiera vissa hot. Det bästa liknelsen är krypterad trafik till och från internet. Man kan dekryptera trafiken men det kräver speciella lösningar, riskerar att skapa andra säkerhetsproblem (försämrad kryptering) och anses kränka personlig integritet.

Notera också att varje attack byter metod. Om skor kollas extra efter sprängmedel så använder man vätskor, om vätskor förbjuds använder man fasta sprängmedel gömda på något nytt ställe. Samtidigt är det värt att påpeka att det inte är de tilltänkta säkerhetsfunktionerna på flygplatsen som identifierar och stoppar hotet. Det är istället vaksamma passagerare och underrättelse som förhindra dessa katastrofer och även detta påminner mycket om angrepp mot IT-system. Allteftersom ett verktyg blir känt så tar angriparna fram nya. Det är också vanligt att angrepp upptäcks av tredje part eller en vaken användare och inte av interna säkerhetsteamet. Skillnaden är att det oftast redan är försent då.

Problemet jag beskriver är alltså en kombination av olika metoder och verktyg som gör att det oftast är lättare att angripa ett företagsnätverk än man tror.

I simulerade angrepp mot riktiga företag har jag själv sett hur angripare kunnat ta sig in och röra sig obehindrat runt i nätverk utan ens ett pip från larmsystemet. Det är inte alls osannolikt att det tar mer än 100 dagar att identifiera ett intrång.

Det leder till följande:

  • En övertro/man förlitar sig för mycket på att automatiska system ska identifiera och stoppa intrång – man låter datorer kämpa mot människor, räknekapacitet mot kreativitet.
  • Man väljer att invänta larm om problem och sedan agera på det, åtgärderna är oftast reaktiva istället för proaktiva.
  • Fokus blir på att identifiera intrång och angripare med hjälp av statiska indikatorer som lätt kan ändras.

Den metod som vi på Vesper använder oss av är så kallad ”Threat Hunting”- alltså jakt på hot. Det är i sig inget nytt, många inom IT har säkert gjort det ad-hoc. Vi arbetar systematiskt med att hjälpa våra kunder att arbeta underrättelsestyrt i sitt eget nätverk. Det betyder att ge kunden en bild av vad det är som faktiskt händer, att kunna ge råd och förutsäga vad som kommer att hända. Genom att samla in stora mängder data från nätverket, med hjälp av matematiska modeller, maskinlärande och AI kunna bearbeta den data och sedan presentera för erfarna mänskliga analytiker kan vi identifiera vad som händer på nätverket, ge råd för att åtgärda potentiella säkerhetsproblem eller stoppa begynnande angrepp och med hjälp av underrättelser förutsäga nya risker och hot.

Threat Hunting kräver i grunden ingen särskild utrustning. Allt som behövs är inhämtning av händelser, loggar, från de olika enheter som finns installerade. Genom att hämta loggar från användares datorer, brandväggar och DNS-servrar kan man få en grundläggande bild av vad som händer.

Man springer dock snabbt in i det problem som ledde till att stor del av säkerhetsindustrin jobbar hårt på att automatisera saker; bristen på människor. Det kan vara svårt att få fram personer med rätt kompetens som kan genomföra Threat Hunting.

Det är inte heller skalbart att behöva komma upp med nya hypoteser att testa. Här kommer datorernas styrka in i bilden. Genom att samla in så mycket information man bara kan, låta en dator bearbeta informationen och leta efter mönster eller statistik som sedan sätts i kontext av en person som förstår data. På så sätt kan man få det bästa av två världar.

Författare: Sam, cybersäkerhetsoperatör på Vesper Group

*) Obfuskera = att avsiktligt tillkrångla.