Uønsket besøk på Diskusjon.no

Alternativ tekst mangler

Hardware-nettverkets felles forumportal Diskusjon.no ble i går ettermiddag cracket. Inntrengeren har benyttet et sikkerhetshull i Invision Power Board for å gi seg selv administratortilgang, og fikk endret en håndfull forumdesign før innbruddet ble oppdaget.

Takket være gode logger har vi et detaljert hendelsesforløp knyttet til innbruddet. Det hele startet i går kl. 17:52:13. Inntrengeren hadde tatt for seg en bruker som var admin, og endret passordet til denne kontoen ved å benytte seg en såkalt SQL-injection. Deretter hadde brukeren logget inn i administrasjonspanelet og endret flere av HTML-malene slik at forumbrukerne ble sendt direkte til BelgianHost.com.

Før innbruddet ble oppdaget og forumet stengt, hadde inntrengeren også satt opp masseutseendelse av epost til våre forumbrukere. Eposten som også inneholdt reklame for BelgianHost.com ble sendt ut til en del av forumbrukerne. Hvor mange er vi ikke helt sikre på ettersom de ble liggende i kø, og vi fikk tømt køen før samtlige epost ble sendt ut.

Hvordan foregikk innbruddet?

Invision Power Board er fritt tilgjengelig kildekode som ligger ute på nettet. Det betyr at hvem som helst kan finkjemme koden for å finne potensielle sikkerhetshull, og det er dette som har skjedd i vårt tilfelle. Det vil si at vi vet ikke om inntrengeren selv har funnet sikkerhetshullet, eller om han har fått tak i en ferdig oppskrift på hvordan et innbrudd kan gjøres. Fremgangsmåten som er benyttet i gårsdagens angrep fungerer kun på enkelte versjoner av Invision Power Board under spesielle omstendigheter.

I Apache-loggene kunne vi se at inntrengeren ankom vårt forum direkte fra Big-Boards.com. Det er derfor naturlig å anta at vedkommende hadde brukt denne tjenesten for å lokalisere store diskusjonsforum som innbruddet kunne testes mot.

Apaches hendelseslogg viser at inntrengeren kommer direkte fra Big-Boards.com:

[01/Nov/2006:17:52:13 +0100] "GET /index.php?s=hardware.no HTTP/1.1" 200 17059 "http://rankings.big-boards.com/?filter=Invision,all" "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1) Gecko/20061010 Firefox/2.0"

[01/Nov/2006:17:52:50 +0100] "GET /index.php?s=9ef43307bee3c3de332604c728f33022&act=Stats&CODE=leaders HTTP/1.1" 200 5690 "http://www.diskusjon.no/index.php?s=hardware.no" "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1) Gecko/20061010 Firefox/2.0"

Etter at innbruddet ble oppdaget og forumet var stengt ned, finkjemmet vi nettet for kjente sikkerhetshull i Invision Power Board. Det viste seg at det var publisert et PHP-skript på Internett for å bryte seg inn i vår versjon Invision Power Board tidligere samme dag, og vi konstaterte raskt at dette skriptet var benyttet.

I Apaches hendelseslogg fant vi en IP-adresse som hadde kjørt nøyaktig de samme nettsidene, med nøyaktig samme parametre som det var angitt i PHP-skriptet publisert tidligere på dagen. 30 minutter etter at Diskusjon.no ble angrepet ble det lagt ut pressemelding på Invision sitt forum som bekreftet sikkerhetshullet.

SQL-injection

Innbruddsskriptet benytter en såkalt SQL-injection for å endre passord til en bruker. En SQL-injection er en teknikk for å sende en database-spørring som en variabel til forumsidene hvor brukeren selv har definert innholdet i SQL-spørringen. I dette tilfellet er SQL-spørringen skrevet slik at den endrer passordet til en gitt bruker i forumets brukerdatabase.

Slike SQL-injections er et av de vanligste sikkerhetshullene i webapplikasjoner, og er et resultat av at variabler som sendes til webapplikasjonen ikke sjekkes nøye nok før de sendes videre til databasen.


Alternativ tekst mangler
Del av cracken som ble brukt til angrepet
(klikk for å se hele cracken)

Ved et slikt angrep er det viktig å forstå hva inntrengeren har klart å skaffe seg tilgang til, og hva som ikke er påvirket av innbruddet. Når inntrengeren har endret passordet til noe vedkommende selv kjenner, er det fritt frem for å logge inn som administrator i forumet. Det betyr at inntrengeren kan gjøre alt det som en forum-administrator har tilgang til å gjøre gjennom Invision Power Board. I vårt tilfelle har altså ikke brukeren tilgang til å logge på våre servere, eller kommunisere direkte med MySQL.

Hva betyr et slikt innbrudd for brukerne?

Før forumet ble åpnet igjen i går kveld valgte vi å tilbakestille passord til samtlige moderatorer og administratorer i forumet. Grunnen til at vi anbefaler alle våre brukere til å endre passord i forumprofilen er at vi ikke kan være 100% sikre på at inntrengeren ikke har fått tak i brukernes passord hash-er. I Invision Power Board sitt administrasjonspanel er det et verktøy for å ta ut kopi av forumdatabasen som teoretisk sett kan ha blitt benyttet. Databasen er imidlertid så stor at det vil ta lang tid å hente ut en kopi - noe som er praktisk umulig på de minuttene inntrengeren hadde tilgang til systemet.

En passordhash er en oversatt passordstreng. Når en bruker registrerer seg på forumet, og legger seg inn med passord blir passordet automatisk oversatt til en tekststreng som ikke enkelt kan oversettes tilbake. Det vil si at man kan aldri være helt sikker på at det ikke er mulig å finne det opprinnelige passordet, men dersom man har valgt et godt passord er dette meget tidkrevende jobb. Ved å la et dataprogram prøve seg frem med alle mulighet kombinasjoner av tall og tegn vil man kunne finne passordstrengen før eller siden. Denne metoden er også kjent som "brute-force".

Alternativ tekst mangler

Bytt passord!

Vi oppfordrer alle våre brukere til å endre passord i sin forumprofil etter innbruddet i går. Sannsynligheten for at noen har fått tak i passord hash-ene, og deretter at de forsøker seg på å finne frem til de opprinnelige passordene er svært liten. Likevel er det lurt å bytte passord regelmessig, og selvsagt enda mer aktuelt rett etter et innbrudd.

Hva er et godt passord?

Det er en del enkle kjøreregler for passord som gjør det vanskelig for uvedkommende å finne opprinnelig passord ut ifra en passordhash. De viktigste tipsene er:


  • Et passord bør minimum bestå av 6 tegn, og gjerne 8-10.
  • Passordet bør bestå av tall, og både store og små bokstaver.
  • Passordet bør ikke bare være et navn eller et ord som står i en ordbok, oppslagsverk, telefonkatalog, e.l.

Hvor lang tid det vil ta å gjette seg frem til et passord er gitt ut ifra hvor mange tegn passordet består av, og hvor flink man er til å bruke tall og store og små bokstaver. I det norske alfabetet har vi 29 bokstaver. Dersom man bruker både store og små bokstaver blir det dobbelt så mange, altså 58. I tillegg kan man bruke tallene 0-9, slik at man ender opp med totalt 68 ulike tegn (hvis man ser vekk fra spesialtegn). Ved å lage et passord på 10 tegn har man 68^10 mulige kombinasjoner. Utregnet blir dette 2 113 922 820 milliarder kombinasjoner (2,1*10^18). Hvis man går ut ifra at man klarer å teste et passord pr. klokkesyklus (i virkeligheten vil det ta mye lenger tid) vil det på et moderne system ta mer enn 15 år å teste alle kombinasjoner.

Grunnen til at man ikke skal bruke passord som består av hele navn eller ord er fordi dette vet inntrengere å benytte seg av. Derfor benytter de databaser som består av millioner av ord som de sjekker før de begynner med den svært tidkrevende prosessen å sjekke alle mulige kombinasjoner.

Hva har man lært?

Vi har lært at man aldri er sikret på noen måte mot sikkerhetshull, selv i programvare som har vært i bruk i lengre tid. I dette tilfellet ble vi offer for sikkerhetshullet før Invision Power Board selv var kjent med hullet, og inntrengeren har brukt Big-Boards.com til å finne potensielle ofre for den fremgangsmåten som ble publisert på nettet tidligere på dagen onsdag.

Diskusjon.no ble stengt ned ca. 18.15, og ble satt i drift igjen ca. kl 20.45, etter at sikkerhetshullet var tettet og alle moderatorers passord var endret. Ti minutter etter at forumet åpnet var det over 800 aktive forumbrukere, og én time senere passerte Diskusjon.no 1800 aktive brukere.

Kommentarer (94)

Norges beste mobilabonnement

Desember 2016

Kåret av Tek-redaksjonen

Jeg bruker lite data:

ICE Mobil 1GB


Jeg bruker middels mye data:

Hello 5GB


Jeg bruker mye data:

Hello 10 GB


Jeg er superbruker:

Telia Smart Total


Finn billigste abonnement i vår mobilkalkulator

Forsiden akkurat nå

Til toppen