webstandarder
Iboende nettlesersvakhet åpner for angrep mot brukernes lokalnett
Spesielt bredbåndsrutere kan være utsatt.
Alle vanlige nettlesere har implementert det som kalles for Same-Origin Policy (SOP), som innebærer at skript som er inkludert i én webside kun kan få tilgang i en annen webside, når begge er åpnet i den samme nettleseren, og dersom begge websider har samme opprinnelse. Dette betyr at begge må være levert via samme protokoll, vert og nettverksport.
Med protokoll menes vanligvis HTTP eller HTTPS, mens med vert menes for eksempel www.digi.no. Nettadresser (URL-er) kan også inkludere et portnummer, for eksempel https://www.digi.no:442, hvor 442 er porten. Men det er sjelden dette benyttes i adresser beregnet for offentlig bruk.
HTTP-forbindelser bruker vanligvis port 80, mens HTTPS-forbindelser bruker port 443 som standard.
Blokkerer lesing, ikke skriving
SOP gjør vanligvis god nytte for seg, men ifølge IT-sikkerhetsselskapet Forcepoint har den visse iboende svakheter som blant annet kan utnyttes til å utføre angrep mot brukerens interne nettverk. Disse mulighetene skal være velkjent i sikkerhetskretser, men ikke i like stor grad blant alle andre. Derfor har selskapet denne uken kommet med en rapport om hvordan slike angrep kan foregå.
Det som kanskje ikke er så kjent med SOP, er at den i nettlesere vanligvis er konfigurert slik at den ikke hindrer nettleseren i å sende forespørsler til websider med en annen opprinnelse. Det eneste den forhindrer, er muligheten til å lese responsen på slike forespørsler.
Blinde forespørsler eller kommandoer
Dette betyr at eksterne, ondsinnede nettsteder kan sende forespørsler i blinde til enheter i brukerens lokalnett, i håp om å treffe noe av betydning.
For å gjøre dette litt mindre arbeidskrevende, er det en stor fordel for angriperen å vite hvilke IP-adresseområder det benyttes i lokalnettet til brukeren. Et godt utgangspunkt for dette er å funne ut hvilken intern IP-adresse som benyttes av enheten som den aktuelle nettleseren kjøres på.
Dette er mulig å finne ved å bruke WebRTC-API-et. Et konseptbevis for dette finnes på denne siden. Det fungerer riktignok ikke i alle kombinasjoner av nettlesere og operativsystemer, men Chrome og Firefox ser ut til å være nokså sikre kort på de fleste plattformer.
Det å sende ut forespørsler i blinde til ukjente enheter i et lokalnett, kan høres ut som noe som har liten sannsynlighet for å lykkes.
Portskanning
Men i rapporten beskrives en metode som gjør det mulig å utføre en fungerende, men begrenset form for portskanning mot alle aktuelle IP-adresser. I særlig grad vil dette gjelde nettverksporter som er vanlige å bruke av webbaserte tjenester, inkludert de som er nevnt i begynnelsen av artikkelen.
Selv om nettleseren på grunn av SOP hindrer JavaScript å lese dataene i responsen på forespørselen, så kan skriptet registrere hva slags event dette utløser. Dersom det er onload eller onerror som utløses, så er det et tegn på at nettverksporten er åpen. Ender forespørselen med et tidsavbrudd, så er porten trolig ikke åpen.
Underliggende tjenester
Når man først har funnet de åpne portene, kan angriperen starte kartleggingen av hva slags tjenester som faktisk befinner seg bak portene. Dette gjør på en tilsvarende måte som under portskanningen, men nå ved å forsøke å finne for eksempel bildefiler som ulike tjenester alltid inkluderer, og som er unike for den enkelte tjenesten.
Dersom en forespørsel etter en slik fil utløser en onload-event, kan dette være en bekreftelse på at filen er tilgjengelig og at det er en kjent tjeneste som befinner seg bak nettverksporten. I motsatt fall utløses en onerror-event.
Hvordan dette kan utnyttes i praksis til å manipulere tjenesten, er for omfattende til at vi kan komme inn på det her. Interesserte kan finnes eksempler på dette i rapporten fra Forcepoint. I mange tilfeller vil det være en forutsetning at tjenesten har CSRF-sårbarheter (Cross-Site Request Forgery), noe som handler om å narre brukeren til utilsiktet å utføre handlinger på vegne av angriperen.
Potensielle mål
Mer interessant er det kanskje å få vite hva slags tjenester som kan angripes.
De kanskje mest selvfølgelige tjenestene er webgrensesnittene til bredbåndsrutere og skrivere. For eksempel kan brannmuren i ruteren konfigureres om, eller det kan åpnes for ekstern SSH-tilgang med et passord som angriperen setter. En forutsetning for at dette skal lykkes, er at nettleseren allerede er pålogget webgrensesnittet til ruteren gjennom et CSRF-angrep.
Ifølge Forcepoint er mange eldre rutere med gammel fastvare spesielt sårbare for slike angrep.
Dersom det finnes en epostserver i lokalnettet med SMTP-tjeneportene åpen, kan denne potensielt brukes av angriperen til å sende epost. Det er selvfølgelig vanskeligere dersom slik utsending krever autentisering. I tillegg er SMTP-portene vanligvis svartelistet i nettlesere, så angriperen avhenger av å lokke brukeren til å installere en nettleserutvidelse som deaktiverer denne svartelisten.
Det nevnes også muligheter for å deanonymisere TOR-brukere og å utføre SQL-injiseringsangrep i blinde. Dette krever at visse forutsetninger er tilfredsstilt.
Mottiltak
I rapporten presenterer Forcepoint en rekke tiltak som folk med ulike roller kan utføre. For privatpersoner og andre som administrerer relativt enkle nettverksrutere, er rådet å jevnlig installere de nyeste fastvareoppdateringene og å endre det som er standard, privat IP-adresseområde for denne enheten til noe annet.
Alle tjenester som er tilgjengelige over det lokale nettverket, må kreve autentisering, fortrinnsvis med flere autentiseringsfaktorer og selvfølgelig med et sterkt passord. Det anbefales at man logger ut fra tjenester straks man er ferdig med å bruke dem.
Utviklere av ulike tjenester kan forhindre CSRF-angrep på ulike måter. Flere alternative metoder er beskrevet av Open Web Application Security Project (OWASP) på denne siden.
Les også: Stilsett (CSS) kan brukes til å stjele personopplysninger på weben