TechNet - Experternas arena

Hur skyddar man en internettjänst som SapNet?

Jag följer rättegången i den så kallade "spionskandalen" som handlar om dataintrång mot Socialdemokraternas internetjänst SapNet. Min fråga är hur det egentligen ligger till med säkerheten på SapNet och hur man borde skydda en sådan internettjänst.

/Johan, Webbutvecklare


Marcus Murray

Marcus Murray

Marcus Murray jobbar på TrueSec AB och är som Sveriges enda Security MVP en av landets främsta experter på IT-säkerhet.

Du som är IT-proffs kan skicka dina frågor om IT-säkerhet till adressen fraganu@microsoft.com och få din fråga besvarad av Marcus här i frågespalten.

Vi kan tyvärr inte garantera att alla frågor hinner besvaras.


Svar:

Om vi tittar på själva SapNet så finns det ett antal problemområden som potentiellt kan utgöra hot mot tjänsten. Jag ska försöka lista de mest uppenbara, och sedan lista exempel på hur man bör tänka för att få en god säkerhet.

1. Autentisering
SapNet använde sig endast av traditionella lösenord. Dessutom hade man svaga krav på lösenordens kvalitet vid tiden för intrånget. En användare vid namn "sigge" kunde också ha lösenordet "sigge". Man tillät inte användar-id eller lösenord som innehöll å, ä, ö eller fler än 15 tecken. Det försvårar för användare som vill skapa riktigt starka lösenord.

2. Transport
När man loggar in på SapNet så kan man göra det direkt över HTTP-protokollet. Detta innebär i praktiken att trafiken går i klartext. Det gäller även användarnamn och lösenord där man på sin höjd använder Base64-encoding vilket går att översätta till klartext. Om en angripare befinner sig på samma nätsegment som den som loggar in, eller någonstans på segmenten mellan klienten och servern, så kan han med enkla verktyg komma över såväl inloggningsuppgifterna som känsliga data. Ett skräckexempel är att en användare loggar in från ett öppet trådlöst nät - då är det bara att avlyssna direkt ur luften.

3. Server-säkerhet
Utan större ansträngning kan man se vilken applikation SapNet bygger på, och att den körs i en version med kända sårbarheter. Genom en snabb sökning på internet hittar man säkerhetsbulletiner som beskriver hur dessa sårbarheter kan nyttjas. Sårbarheter av alla typer bör patchas bort eller elimineras på andra sätt.

4. Klientsäkerhet
Det här är en utmaning för de flesta webbtjänster idag och däribland SapNet. Man vill ju erbjuda användarena flexibiliteten att kunna logga in från vilken dator som helst av rena tillgänglighetsskäl. Ur ett säkerhetsperspektiv så är dock klientsäkerheten avgörande. Vill man vara säker på att inloggningsuppgifter och känsliga data inte kommer i orätta händer så måste man använda en egen dator som dessutom har ett fullgott skydd. Sitter man på ett internetcafé och loggar in mot en tjänst som SapNet så finns det en uppenbar risk att data kommer i orätta händer. Tangentbordsinspelare, trojaner och annan skadlig kod är mycket vanlig och används i allt större utsträckning för att samla in lösenord.

Om du ska sätta en säker webbtjänst så bör du tänka på hela kedjan.

1. Autentisering
Använd stark autentisering i form av exempelvis PKI-baserade certifikat i kombination med lösenord / pinkod, engångslösenord eller andra bra lösningar. Om du endast har möjlighet att använda traditionella lösenord så bör du införa en stark lösenordspolicy som tvingar fram kvalitativa lösenord som är mycket svåra att lista och som byts ut regelbundet. Utöver användaren kan man ställa krav på autentisering av själva datorn med hjälp av datorcertifikat, vilket ger ett starkt skydd oavsett var man befinner sig. Har man inte den möjligheten kan man begränsa vilka ip-adresser som får ansluta till tjänsten. Det är en statisk lösning som inte fungerar för den som reser, men det minskar attackytan avsevärt.

2. Transport
All autentiserings- och datatrafik bör ske med en bra kryptering så att den som av någon anledning avlyssnar nätverkstrafiken inte kan utvinna information. Det kan ske med exempelvis SSL-baserad kryptering (HTTPS). Det finns också möjlighet att nyttja exempelvis IPSEC-baserat VPN eller det framtida protokollet SSTP (kommer med Windows Server Longhorn) om man vill ha ytterligare säkerhet och koll på trafiken.

3. Server-säkerhet
En härdad tjänst som körs på en härdad server och dessutom patchas och övervakas borde vara en självklarhet. Här gäller det att tänka på både det underliggande operativsystemet, webbservertjänsten, portalapplikationen och eventuella anpassningar.

4. Klientsäkerhet
Som jag tagit upp tidigare är detta ett dilemma, men om möjligt bör man utrusta datorerna med certifikat och allra helst endast tillåta vissa datorer att ansluta. Är det inte möjligt så kommer åtminstone de andra delarna, som exempelvis stark autentisering, minska attackytan trots att man inte kan garantera en säker klient.

Hoppas att detta var nyttigt eller intressant.

MVH/Marcus


De åsikter och idéer som uttrycks i texten är skribentens egna, och delas inte nödvändigtvis av Microsoft AB eller dess representanter.


Alla frågor och svar