Websikkerhet: Dette bør du vite om sikkerhet på web

- 20. august, 2009

Webløsninger er dessverre lett å angripe siden de ligger tilgjengelige for alle på internett. I tillegg er det en del svakheter i måten en webside kommuniserer med brukeren, derfor må man ta en del hensyn til sikkerheten når man planlegger en webapplikasjon. For å oppnå en trygg webløsning må man ha en solid og godt vedlikeholdt serverløsning, brukere med kompetanse på sikkerhet, og en webapplikasjon som er utviklet med sikkerhet i fokus. 

Webløsninger er dessverre lett å angripe siden de ligger tilgjengelige for alle på internett. I tillegg er det en del svakheter i måten en webside kommuniserer med brukeren, derfor må man ta en del hensyn til sikkerheten når man planlegger en webapplikasjon. For å oppnå en trygg webløsning må man ha en solid og godt vedlikeholdt serverløsning, brukere med kompetanse på sikkerhet, og en webapplikasjon som er utviklet med sikkerhet i fokus.


Personvern og trygghet på internett
Du visste kanskje at en hvilken som helst nettsted kan logge nøyaktig hvilken nettside du kom fra, og til hvilken nettside du klikker deg videre ut til. Men visste du at et nettsted også kan følge dine nøyaktige bevegelser med musepekeren innad på siden? Eller mer alvorlig, sjekke akkurat hvilke nettsteder på det store internettet du har besøkt før?

Folk flest har blitt mye mer bevisst på personvern på nett. For eksempel vil foreldre la være å legge ut bilder av barn, og nekter ungdommen å legge ut bilder med ansikt og navn på nett. Via Facebook har mange også tatt konkrete valg om hvor mye av sin profil de ønsker å legge tilgjengelig for alle, for nærmeste venner, venners venner etc.

Samtidig har tilliten til webtjenester økt, folk legger faktisk ellers hemmelig informasjon på nett via sikre webløsninger som for eksempel Hotmail, Gmail eller Facebook. Dette stiller krav til webløsningene, en moderne webløsning må være sikker!


Webløsninger er sårbare av natur
Dessverre er det slik at en webløsning er veldig tilgjengelig for angrep siden den ligger på internett, sammenlignet med et lokalnettverk eller en applikasjon på en arbeidsstasjon. Webløsninger baserer seg på utveksling av data mellom en webløsningen og en brukers klient (Internet Explorer er mest vanlig).  Problemet er at webløsningen ikke kan stole på det klienten sier i denne kommunikajsonen. Klienten er nemlig i stand til manipulere denne kommunikasjonen på mange måter.

Kommunikasjon via internett går i de fleste tilfeller usikret over nettet. Om du sitter på et usikret trådløst nettverk og logger inn på en usikret webside, er det mulig for alle innen rekkevidde av nettverket å avlytte alt du sender og mottar, for eksempel passord og personopplysninger. Dette løser man ved å bruke HTTPS for å beskytte kommunikasjonen.


Eksempler på hvordan nettleseren Internet Explorer 8 viser adresselinjen til tre websider med forskjellig grad av sikring av kommunikasjonen. Den grønne linjen øverst bruker Extended Validation, den midterste bruker et normalt SSL-sertifikat, og den nederste kjører uten sikring av kommunikasjonen.

Du har sikkert hørt om informasjonskapsler (cookies), som nettsteder ofte bruker for å kjenne deg igjen. Disse ligger også fritt tilgjengelig for redigering på din datamaskin. Muligheten for å angripe nettsteder og brukerne av dem er enorme, og et stadig voksende problem. Identitetstyveri, økosvindel og innbrudd har blitt vanlig kriminalitet på nett.

Det finnes mange fremgangsmåter for å angripe et nettsted. Når et angrep lykkes er det sannsynlig at det eksisterer et sikkerhetshull i webløsningen eller i miljøet rundt den. Hver enkelt programvare på serveren som drifter nettstedet, og all kode og teknologi som nettstedet består av er potensielle kilder til sikkerhetshull.


3 eksempler på angrep mot webløsninger

  1. Et enkelt eksempel på svakheter i applikasjonskode kalles ”CGI parameters attack”. Dette går ut på at en bruker skaffer seg urettmessig tilgang til informasjon i en webløsning. Hvis han etter et kjøp får en link til ordrebekreftelsen, og den ser slik ut:
    www.nettbutikk.no/ordre.aspx?id=1401
    så er det enkelt å gjette seg til at han vil finne en annen ordre i systemet på den lignende adressen:
    www.nettbutikk.no/ordre.aspx?id=1402
    .
    Ved å utnytte en slik svakhet kunne angriperen ha hentet en komplett ordrehistorikk for hele nettbutikken, inkludert kontaktinformasjon etc.
  2. En ondsinnet bruker har full mulighet til å forandre på hele websiden og sende tilbake akkurat hva han vil. Eksempelvis, så kan en fattig student forandre prisene i handlekurven på en nettbutikk, og sende den oppdaterte handlekurven tilbake til nettstedet. Dersom nettbutikken ikke er laget på en sikker måte, vil den ta i mot den oppdaterte handlekurven, og studenten kan fullføre kjøpet med prisene han selv bestemte. Et nettsted kan aldri stole på data som blir sendt tilbake fra klienten, og systemene bak nettstedet må lages med dette i tankene.
  3. På grunn av at mange av systemene tilknyttet internett blir for dårlig vedlikeholdt, har det vokst fram en kultur av dataormer på nettet, som forsøker å utnytte kjente svakheter i programvare og på den måten spre seg over internett. En av de mest kjente er Code Red fra 2001, som angrep websider, og erstattet forsiden med teksten: "HELLO! Welcome to http://www.worm.com! Hacked By Chinese!". Code Red tok ned 360 000 websider over hele verden på grunn av dårlig vedlikeholdte servere.


    Skjermbilde av webside infisert av dataormen Code Red


Tjenestenekt
Men selv om hele nettstedet og miljøet rundt er helt sikkert, så kan vellykkede angrep ennå utføres. Nettsteder kan gjøres utilgjengelige ved å påføre nettstedet så stor trafikk at det ikke finnes kapasitet til å svare alle. Dette blir kalt tjenestenekt (Denial of Service) angrep, og blir ofte utført mot større nettsteder. Slike angrep er spesielt alvorlige for nettbasert bedrifter som ene og alene er avhengig av salg via deres nettsted. En dag med nedetid kan få betydelige økonomiske konsekvenser.

Tjenestenekt har skjedd i stor skala i nyere tid, et eksempel er "July 2009 cyber attacks" - internettangrepene mot statlige organer, finansinstitusjoner og media i Sør-korea og USA. Angrepene startet 4. juli 2009, på USAs nasjonaldag. Noe tilsvarende skjedde med Estland i 2007, men Estland ble da mye hardere rammet. 

Nylig ble også flere større webtjenester rammet av et tjenestenektangrep, Twitter fikk store problemer, og Facebook, Livejournal, Youtube og Blogger ble også rammet idet russiske hackere forsøkte å angripe kontoene til bloggeren "Cyxymu", en 34 år gammel økonomiprofessor og politisk flyktning i Georgia.


Passord og ID-fisking (phishing)
En av de vanligste årsakene til at vanlige brukere blir angrepet på nettet er valg av dårlige passord. Vanlige ord man kan finne i en ordbok blir ofte valgt som passord, fordi de er lette å huske og fordi det virker usannsynlig at noen klarer å gjette akkurat hvilket ord man har brukt. Men hvorfor gjette når man kan prøve absolutt alle mulige kombinasjoner? Det er akkurat dette mange angripere gjør, automatisert selvsagt. For å beskytte seg best mulig mot dette, så bør passordene konstrueres ved bruk av tilfeldig sammensatte bokstaver, tall og tegn.

Men det hjelper lite om man har et avansert passord om man gir det fra seg til angriperne. En lite teknisk og veldig effektiv måte å lure til seg brukernavn og passord på er ved hjelp av ID fisking (phishing). Dette gjøres ved å sende uskyldige nettbrukere til et nettsted som utgir seg for å være en annen. Det er for eksempel veldig lett å gjenskape en nøyaktig kopi av innloggingsprosedyren til BankID som mange nettbanker bruker i dag. En uoppmerksom person kan da bli lurt til å åpne den falske nettsiden med BankID innlogging, istedenfor den ekte siden.


Skjermbilde av innloggingsbildet til Bank-ID. Innloggingsbildet er ganske enkelt å etterligne, og en uoppmerksom bruker kan bli lurt til å oppgi sin informasjon i dette grensesnittet.

De siste ukene har mange nettbrukere blitt lurt til å gi fra seg brukernavn og passord til IKEA og Finn.no ved å ha mottatt falske e-poster fra disse der de blir bedt om å logge inn for å re-bekrefte kontoinformasjon. En måte en vanlig nettbruker kan beskytte seg mot slike angrep på er ved å sjekke den eneste sikre synlige forskjellen mellom en reell og en falsk side, nemlig adressen i adressefeltet. Denne kan vanskelig tukles med, i motsetting til e-post adresser – der man kan konstruere og sende e-post fra en hvilken som helst adresse.


Serverløsningen skal være solid, og vedlikeholdes kontinuerlig
Webløsninger ligger alltid på en serverløsning ute på nettet. Det er viktig at denne serverløsningen er konstruert på en sikker måte, slik at inntrengere holdes ute. I tillegg må programvaren på denne serveren holdes ved like, og nye sikkerhetsoppdateringer installeres så snart de publiseres. Når sikkerhetshull oppdages i programvare, vil hackere på internett utvikle roboter og virus som utnytter disse hullene, og slippe disse ut på nettet. Da gjelder det å ha et oppdatert forsvar, slik at disse ikke kommer seg inn på serverløsningen.

Serverløsningen er også ansvarlig for å ta backup av løsningen. Dersom et angrep lykkes, skal man kunne legge tilbake en "frisk" versjon av løsningen. Serveren må også kunne skalere slik at den håndterer plutselige trafikkmengder, enten det er spesielt mange legitime brukere som følge av en kampanje, eller et faktisk angrep. Brannmuren på serverløsningen skal også være i stand til å identifisere angrep og automatisk sperre ute uønsket trafikk. Både brannmurer og servere bør beskyttes av sikkerhetsprogramvare som automatisk oppdateres via internett, slik at nye trusler effektivt sperres ute. 

Dersom man skal ha en sikrest mulig serverløsning, bør man bruke en såkalt dedikert server. Denne løsningen gir en webserver og databaseserver som en kunde bruker alene, i stedet for de delte serverløsningene man får ved et vanlig webhotell. Løsningen får mye bedre sikkerhet fordi ingen andre har tilgang til den samme serveren, og ved å være mindre avhengig av felles ressurser på nettverket oppnår man bedre oppetid og ytelse.


Webapplikasjoner må programmeres på en sikker måte
Webapplikasjonen må også ha innebygd sikkerhet. Web-applikasjoner består av en plattform (ASP.Net, PHP, Ruby on Rails etc.), en rekke standardprogrammer, og selve applikasjonskoden som syr alt sammen. Plattformen og standardprogrammene kan vedlikeholdes på samme måte som programvaren i serverløsningen, den bør oppgraderes hver gang det kommer en ny versjon.

Men selve applikasjonskoden er vanligvis unik for hver løsning, så her finnes det ingen slike oppgraderings-muligheter. Det finnes utrolig mange angrep som går mot forskjellige vanlige svakheter i koden, for mange og for tekniske til at vi skal nevne dem her. Her en liste med Top 10 Web application vulnerabilities med tekniske forklaringer for hvert punkt, og her er en liste med Top 10 Secure Coding Practices. Utviklere bør følge disse for å unngå svakheter i løsningen.

For å oppnå en sikker applikasjonskode er egentlig den eneste løsningen å benytte programmerere som har nok kompetanse om sikkerhet i webapplikasjoner. Det lønner seg derfor å bruke utviklere som har programmering som fagfelt, for eksempel en dataingeniør, og unngå utviklere som bare har programmering som en hobby. Samtidig er websikkerhet et eget område innen datasikkerhet, og en programmerer med erfaring fra skrivebordsapplikasjoner vil ikke alltid kjenne til truslene på web. Derfor er det også bedre å bruke en programmerer som er spesialisert innen webprogrammering, framfor en som bare har jobbet med tradisjonelle programmer.

Men uansett hvor efaren utviklerne er, finnes det alltid en sjanse for sikkerhetshull i webløsningen. Derfor er det viktig at man tar rapporter om sikkerhetsproblemer på alvor, og følger disse opp så snart man blir klar over dem. En utvikler må settes til å utbedre svakheten så snart som mulig, før den blir utnyttet.


Oppnå en sikker webløsning
For å ivareta sikkerheten på en webløsning, er det tre områder vi jobber med: Serverløsningen, applikasjonen og brukerne. Kombinasjonen av et sikkert servermiljø, webapplikasjoner som er bygget på en skikkelig måte, og fornuftige holdninger hos brukerne, vil gi en veldig sikker webløsning. Det blir vanskelig for inntrengere å skaffe seg tilgang eller å hente ut hemmelig informasjon fra løsningen. Samtidig vil løsningen være motstandsdyktig mot angrep som forsøker å gjøre websiden utilgjengelig.

Vil du vite mer?




Tlf: