2011-09-27: Anne-Marie Eklund Löwinder
FÖRSVARARENS DILEMMA Attacker mot informationssäkerheten kommer idag från alla håll. Och det blir allt svårare att försvara sig. En angripare bara behöver hitta en enda liten lucka i försvaret. Vad kan vi göra? Börja med en tio år gammal kravlista.
Efter bombningen i Brighton 1984 lämnade IRA en kommentar som bland annat innehöll orden ”Kom ihåg, vi behöver bara lyckas en gång. Ni måste lyckas varje gång”. När det gäller informationssäkerhet har vi samma utmaning.
Angriparna kommer från många olika håll, med riktade attacker, automatiserade botnät och massiva spamutskick som skickligt invaggar mottagaren i övertygelsen om att de måste agera som en god användare och lämna ifrån sig vad det nu är man förväntas lämna ifrån sig av känslig information som kreditkortsnummer eller inloggningsuppgifter.
Det finns också en rad olika motiv bakom varje angrepp med allt från spionage och ekonomisk eller politisk vinning till aktivister som vill ge uttryck för någon specifik åsikt. Medan det finns en politisk process som bringar ordning och samordning kring händelser som IRA-bombningar eller det nyligen inträffade attentatet i Norge, så finns det ingen att förhandla med på nätet.
Kan vi hoppas att vinna kriget eller förmår vi bara minimera skadorna? Låt oss kalla detta fenomen för försvararens dilemma. Försvar är alltid mycket svårare eftersom det måste vara vattentätt, medan en angripare bara behöver hitta en enda liten lucka i försvaret. Det är därför som vissa tycker det är så mycket roligare att angripa olika leverantörer och deras produkter än att jobba för dem. Windows XP är utan jämförelse angriparnas favorit enligt en undersökning från F-Secure.
Det kommer alltid att finnas sårbarheter och det kommer alltid att finnas människor med den sortens låga moral som tillåter dem att utnyttja sårbarheterna. Som slutanvändare finns det nästan ingenting du kan göra, du är tvungen att lita på säkerheten i den programvara och utrustning du använder trots att du inte har någon som helst kontroll över hur säker den är.
Det går inte att eliminera risken för attacker. Vad vi kan göra är att försöka göra det så svårt och dyrt som det bara går att dra igång en attack så att det i princip blir ekonomiskt oförsvarligt att genomföra för de allra flesta angripare.
För den angripare som likväl har den expertis och de resurser som krävs för att dra igång en attack så innebär strategin att det i alla fall minskar det möjliga antalet attacker som kan genomföras.
Sättet på vilket vi försöker göra det svårare och dyrare är att reducera antalet sårbarheter och förvissa oss om att användarnas programvara är uppdaterad och säker som ”default”. Det innebär att göra operativsystemet motståndskraftigt mot attacker på ett sätt som gör att det krävs fler angreppspunkter (exploits) som agerar parallellt för att genomföra en attack.
Förutom det behöver vi också ha bättre kontroller av den programvara som laddas upp till våra datorer, plattor och mobiler.
Inom flygindustrin använder man metoder som matematiskt bevisar att programvara är korrekt och gör det den ska göra föra att möta designkrav.
Går det att göra detsamma med programvara inom andra områden? Går det att matematiskt bevisa att någonting är säkert, eller åtminstone okänsligt för specifika angreppsmönster som SQL-injektioner eller fuzzing där oväntad, felaktig eller skadlig data används för inmatning i syfte att få programmen att krascha? Kanske, men det görs inte.
I det hänseendet befinner vi oss fortfarande på stenåldern när det gäller säkerhet. För ögonblicket är det enda vi i praktiken kan göra testa, granska, utvärdera och analysera så mycket det bara går innan program släpps. Att försöka hitta alla, eller ens de allra flesta sårbarheterna i programvara är tyvärr också jobbigt, tidskrävande och dyrt.
Den programtillverkare finns knappt som inte hellre snabbt vill få ut programvaran på marknaden och tjäna pengar och därför kan tänka sig att leva med några sårbarheter än att leverera säker kod.
Även attacker mot hårdvara börjar bli vanligare. All elektronik innehåller mängder av olika chip som man inte tänker på. Det värsta med hårdvara är dessutom att det är både svårt och dyrt att analysera. Det är mycket enklare att ladda ner en webbläsare och försöka knäcka den, än att göra samma sak på hårdvara. Det kräver både särskild utrustning och specifika kunskaper.
Säkerhet i molnet är en tuff fråga just därför att det inte enkelt kan genomgå en oberoende validering. Vem som helst kan bryta sönder ett program i sina beståndsdelar för att se vad det gör med informationen, men när du skickar all information till molnet så finns det inget enkelt sätt för en oberoende granskare att försöka hitta buggar och fel. Tvärtom, det kan till och med vara brottsligt att försöka.
Att använda program som inte är installerade i dina egna system, och därmed inte heller kan plockas sönder och granskas innebär att du tvingas lägga mycket stor tilltro på vem det än är som har skrivit programvaran. Huruvida molnföretagen har bättre säkerhet än en genomsnittlig användare eller ett genomsnittligt företag låter jag vara osagt. Däremot är väl incidenten med Sony ett talande exempel på motsatsen.
Sony-incidenten till trots så är förmodligen Microsoft eller Google bättre på säkerhet än den genomsnittliga användaren. Se bara Googles motattack mot de kinesiska hackarna eller Microsoft med Waledac där tekniska åtgärder kombinerades med rättsliga och politiska åtgärder.
Konsumentrådgivning med S- eller EU-märkning och oberoende rankning av företag och deras säkerhet kan vara en framkomlig väg. Kanske vi behöver någon typ av granskningsfunktion som ändå indikerar att även om det inte är perfekt så har programmet genomgått någon typ av hygienkontroll och passerat någon basal nivå av säkerhet?
Certifiering av produkter har funnits länge, men det är oftast för dyrt och för komplicerat att genomföra det framför allt som många produkter lever under kort tid.
Anta att vi har säker hårdvara och säker mjukvara, hur skyddar vi oss från social ingenjörskonst? Människor är oftast den svagaste länken i säkerhetskedjan.
Nästan alla attackprogram som skrivs kräver åtminstone att en användare går in på en webbsida med skadligt innehåll. Det innebär att de måste klicka på en länk som de fått via e-post, när de surfar eller via något publikt trådlöst nätverk. Datorer är designade att göra vad man ber dem om.
Det spelar ingen roll hur mycket säkerhet du bygger in i ett system, om en användare verkligen vill köra skadlig kod som de tror kommer att visa lite nakenbilder så kommer de att hitta på något sätt att göra det.
Det finns en klar risk för att skadlig kod ska leta sig in och köras på de interna systemen, och risken blir allt större ju fler typer av utrustningar vi tar in som till exempel smarta telefoner, Ipad med flera. Det är lätt att bli paranoid kring säkerhetsriskerna.
Vi vet exempelvis att fler än 114.000 e-postadresser från de allra första Ipad-ägarna stals från den amerikanske operatören AT&T. Dessa tidiga användare omfattade chefer i höga positioner på ledande teknik- och finansföretag såväl som på statliga myndigheter. Detta skedde genom en pdf-baserad attack. Givet att det är trivialt att exekvera kod via en pdf-motor vore det naivt att tro att ingen har försökt komma åt känslig information via riktade attacker på Ipad.
Den största risken är emellertid att du tappar den rent fysiskt och förlorar information den vägen. Så även om det finns en viss risk för att din utrustning ska attackeras så är den relativt sett liten. Vad vi behöver fokusera på är att begränsa åtkomsten till information vid varje givet tillfälle, upptäcka attacker tidigt, etc.
Det finns också de som argumenterar för att man ska ha en homogen IT-miljö. Det som talar för det är att det innebär att man bara har en plattform att underhålla och att man kan fokusera säkerhetsåtgärderna på att göra den så säker som möjligt. Det underlättar också för den egna IT-driften att hålla jämn takt med alla uppdateringar.
Om jag måste jobba med flera olika plattformar så kommer det att urvattna mina försök att säkra systemen och attackmöjligheterna blir dubbelt värre med fler potentiella hål och sårbarheter.
Å andra sidan är argumentet för en heterogen miljö att om vi förlorar mot angriparna och en av plattformarna är utsatt kan vi snabbt rulla över allt till den andra plattformen och se till att de får jobba dubbelt så hårt för att komma åt oss. Heterogen miljö är kanske på sikt det bästa försvaret.
Varje nätverk måste designas med vetskapen om att maskinerna på det kan komma att angripas. Persondatorer får skadlig kod, vårt CMS blir utsatt för SQL-injektion etc. På samma sätt som du aldrig ska använda samma lösenord på flera platser så borde du kanske inte använda samma operativsystem eller enheter för flera ändamål.
På det sättet blir det mycket svårare för en angripare och de har sannolikt inte ens den kunskap som behövs för att attackera två eller tre olika uppdaterade system.
Du vill helt enkelt inte att varenda dator i nätverket ska bli utsatt på grund av en enda svaghet.
Det första är att överge det traditionella tänkandet om att vänta med att uppdatera programvaran när en ny version släpps. Det är alltid det bästa att vara uppdaterad och hantera eventuella kompatibilitetsproblem när de uppstår. Men idag är en slutanvändare förhållandevis maktlös och spelar en allt mindre roll.
Inte ens den slutanvändare som har den allra senaste uppdateringen och inte heller faller för det här med social ingenjörskonst kan skydda sig mot hackare som stjäl kreditkortsnummer från en tredjepart som Sony eller någon annan. Från de kriminellas perspektiv är det betydligt mer effektivt att attackera stora databaser än individuella system.
Vad vi verkligen behöver göra är att tvinga fram ett större ansvar från leverantörerna och att de gör ett bättre jobb med att skriva säker programvara. Kanske ska de hållas ansvariga när buggar och sårbarheter leder till stora ekonomiska förluster?
Som konsument kan man också rösta med plånboken. Låt bli att köpa och använda program som har problem, kräv att programvaran ska vara granskad av en oberoende organisation. Innan dess kan vi bara vänta på det oundvikliga och försöka minimera skadorna när något inträffar.
Sådana krav framfördes av IT-kommissionen 2001, tio år senare har fortfarande ingenting hänt.
Anne-Marie Eklund Löwinder är kvalitets- och säkerhetschef på .SE. Anne-Marie har rankats som en av Sveriges främsta IT-säkerhetsexperter av CS och har även mottagit Kjell Hultman-stipendiet av Dataföreningen för sina insatser inom området. Hon har många uppdrag inom området och är bland annat ledamot i MSB:s Informationssäkerhetsråd, utvald av ICANN/IANA att vara Trusted Community Representative och Crypto Officer för hantering av DNSSEC i rotzonen samt ledamot i styrelsen för SNUS, Swedish Network Users' Society.
Ann-Marie satt också med i de första arbets- och referensgrupperna för informations- säkerhetsstandarden LIS inom standardisteringsorganen SIS och myndigheten Swedac. Hon läser och besvarar flitigt remisser på statens offentliga utredningar inom allt som berör Internet och säkerhet. Bland tidigare arbetsgivare finns Statskontoret och IT-kommissionen. Ann-Marie har en systemvetenskaplig utbildning från Stockholms universitet.
Ser du någon kommentar som du tycker är kränkande eller olaglig? Då kan du anmäla den här >>
Skriv en kommentar...