Digi har bedt forsker Gisle Hannemyr gjennomgå et skript som inntil torsdag kveld 10. april var fritt tilgjengelig på denne adressen:
http://www.doktoronline.no/ta_i_mot_best.pl
Dette er et annet skript – og et annet sikkerhetshull – enn det systemutvikler Espen Vestre i Telenor mener var brukt av mannen som er siktet for filslettingen i Telenor natt til søndag 6. april.
Hannemyr forklarer at i skriptet han er forelagt, finnes ingen "skjulte" parametre, og heller ingen kommandoer for å opprette filer.
Han gir denne kjappe gjennomgangen av hva skriptet gjør og hvordan det åpner for sletting av filer (og mye annen "moro"):
___
Skriptet får overlevert et sett med navngitte parametre som en del av URL-strengen. Denne vil ved normal bruk bli generert av den HTML-form som spør en bruker om navn, adresse og annet.
Den som har laget skriptet har ønsket at det skal gjøre følgende:
- De data som brukeren oppgir blir splittet opp i navn/ verdi-par
- "+"-tegn blir oversatt til blanke og eventuelle hex-koder oversatt til ASCII
- E-post-adressen, som blir overført som en parameter med navnet "7", blir tilordnet variabelen $adresse, og det åpnes en såkalt "pipe" til shell for å sende e-post til denne adressen
- De andre parametrene blir samlet sammen i en variabel ($brev) og blir innholdet i det brev som sendes
- Når brevet er sendt vises det en kvittering: "Din bestilling er mottatt." for brukeren.
Problemet med skriptet er at en kommando som inneholder e-post-adressen $adresse pipes til shellet uten at det er gjort noe forsøk på å sjekke at det faktisk er en gyldig e-post-adresse.
Setningen:
open (MAIL,"|mail $adresse");
legger, slik Telenors server var konfigurert, adgangen til systemet temmelig åpent for den person som bestemmer hva som står i feltet $adresse.
Vedkommende kan slette de filer han vil (slik det skjedde her), men hullet kunne like gjerne vært brukt til å bryte seg helt inn på serveren (Telenor har nok rett når de sier at dette ikke skjedde i den aktuelle situasjon – men det skyldes i så fall at vedkommende inntrenger ikke hadde noen interesse av å gjøre det).
Hvordan kan man så bestemme hva som skal stå i feltet $adresse?
Vel, ganske enkelt ved selv å bygge parametrene til den URL man bruker for å aktivisere skriptet. Her er hvordan man sletter filer – i tre enkle steg:
2. I feltet "Location" (Netscape) eller "Adresse" (Microsoft IE) skriver du følgende URL: http://www.doktoronline.no/ta_i_mot_best.pl?7=a%3b+rm+-Rf+%2f
3. Trykk på Enter-tasten.
Dette er definitivt ikke rakettvitenskap.
Den aktuelle kommando i programmet ser nå slik ut:
open (MAIL,"|mail a;rm -Rf /");
som betyr følgende: Utfør først kommandoen "mail a" (send e-post til "a") – utfør deretter kommandoen "rm -Rf /" (slett alle filer).
Et par andre observasjoner:
- All den tid dette sikkerhetshullet lot seg aktivisere via en URL, ville det vært uproblematisk utføre hærverk anonymt – eller å rigge en "booby-trap" hvor man fikk en uvitende og utenforstående tredjepart til å detonere bomben.
- Å slette en masse filer vekker en del oppsikt, men all den tid det finnes backup så er skaden minimal. Dette sikkerhetshullet var av en slik karakter at det i realiteten ga full bruker-adgang til den aktuelle server. Dersom en slik "bakdør" hadde blitt utnyttet i all stillhet kunne en forbrytersk sinnet person gjort langt større skade enn det Telenor opplevde her.
– Gisle Hannemyr