Denne artikel stammer fra det trykte Computerworlds arkiv. Artiklen blev publiceret den Computerworld d. 29. august 2003.
Virus og bakterier: Der kommer næsten dagligt meldinger om nyfundne sårbarheder i it-systemerne, og de er efterhånden blevet en del af baggrundsstøjen. Men der er god grund til at tage dem alvorligt, for vi slipper ikke af med dem foreløbig.
Tidsrummet mellem, en sårbarhed bliver opdaget og offentliggjort, til det første "værktøj" eller virus er klar til at udnytte den, bliver stadig kortere. Tidligere har man kunnet slippe af sted med at opdatere sin pc en gang om ugen, men inden længe vil det ikke være nok.
For bare to år siden regnede man som tommelfingerregel med, at der gik i hvert fald tre måneder fra en sårbarhed blev kendt, til de første såkaldte script-kiddies fik fat i den. Tidligere tiders mest udbredte orme, der nærmest lammede internettet en dag eller to, var således ikke baseret på nye sårbarheder, de havde faktisk ofte været kendt af offentligheden i et halvt år eller mere. Men fordi alt for mange pc'er rundt om i verden ikke var blevet opdateret med de seneste fejlrettelser, fik ormene frit spil. Netop situationerne med orme som Code Red og Nimda har gjort, at rigtig mange er blevet opmærksomme på, at software jævnligt skal opdateres. Efterhånden som administratorer over hele verden er blevet bedre til netop det, tvinger det programmørerne bag ormene til at udnytte de senest opdagede sårbarheder, for at opnå den bedst mulige udbredelse.
En sårbarhed er naturligvis altid alvorlig, men for internettet samlet set er den først alvorlig i det øjeblik, der er kode tilgængelig, som gør det nemt at udnytte sårbarheden. Det kan enten være i form af værktøjer, der bruges af script-kiddies, eller som en slags orm eller vira. Det er nemlig på dette tidspunkt, udnyttelsen af sårbarheden ikke kun foregår blandt de forholdsvis få rigtige hackere men blandt alle med adgang til internettet. Så længe, udnyttelsen af sårbarheden er begrænset til forholdsvis få hackere, er det begrænset, hvor meget skade, der kan ske. De hackere, der selv udvikler koden, skyder sjældent med spredehagl og koncentrerer sig typisk om få servere. Derfor er den rent statistiske risiko for at blive udsat for en "rigtig" hacker ofte ret lille.
Mange af de såkaldte mass-defacements, som vi blandt andet har set i Danmark, har formentlig været udført af script-kiddies. Mass-defacement af 50 websteder på et enkelt webhotel er en ret simpel operation, hvis først man kan komme ind i systemet. Det kan være så let som at kopiere en fil ind i 50 mapper. En opdatering med de nyeste fejlrettelser ville kunne have stoppet mange mass-defacements, vi har set i den senere tid.
Usikre operativsystemer
Når debatterne om it-sikkerhed raser på internettet, bliver Mircrosofts Windows ofte betegnet som værende et langt mere "usikkert" operativsystem end Linux. Men der er også masser af sårbarheder i Linux.
For en hacker handler det om at få adgang til et system, og ikke mindst opnå de højst mulige brugerrettigheder, så hackeren kan opnå mest mulig kontrol med systemet. Hvis fejlen er alvorlig nok, vil hackeren kunne opnå fuld adgang til pc'en og fuld kontrol med systemet. På grund af den måde, som brugerrettighederne administreres på i Windows og Linux, er det langt nemmere at opnå fuld adgang på en Windows pc, end det er på en Linux-maskine. Men man skal ikke tro, at den hellige grav er velforvaret, fordi man kører Linux, for sårbarhederne er ikke til at slippe uden om.
Der er mange grunde til, at der hele tiden opdages nye sårbarheder. Graden af kompleksitet i moderne software er den væsentligste. En typisk Windows-installation kan nemt fylde en gigabyte, før man overhovedet er kommet i gang med at bruge den. Og selv om Microsoft har mange dygtige folk, er det utopi at forestille sig, at nogen bare tilnærmelsesvist har overblik over så stort et operativsystem. Når overblikket er væk, er det nemmere for fejl at slippe igennem nåleøjet. Med internettet får vi desuden flere og flere programmer installeret, der skal kunne kommunikere med andre pc'er hele tiden, og hver gang det sker, åbner vi døren en lille smule mere på klem.
Buffer-overløb
Ofte er de fejl, der udnyttes, en eller anden form for buffer-overløbsfejl. Ofte skyldes det, at inputtet ikke bliver valideret, men det hænder også, at der ikke sker en fyldestgørende validering. Det følgende er et eksempel på en typisk buffer-overløbsfejl.
Alle programmer har buffere, der bruges til at gemme data. Bufferne har en bestemt størrelse, og en hacker kan udnytte netop den detalje ved at sende for meget data til bufferen. Det resulterer i en buffer-overløbsfejl, hvis programmet ikke tjekker, om der er flere data, end bufferen kan klare. De ekstra data, der "overløber" bufferen, kan serveren eksekvere, som var det et almindeligt program, og derved kan hackeren opnå fuld kontrol med maskinen og stjæle passwords eller installere en såkaldt bagdør.
Det lyder måske en anelse indviklet, men hvis man kan programmere og kender sårbarheden, er det ikke sværere at skrive et program, der kan udnytte fejlen og "hacke" en pc, end det er at skrive et hvilket som helst andet program.
Man kan ikke skrive kode, som med garanti ikke kan hackes, men man kan sagtens minimere antallet at overløbsfejl.
I tilfældet Windows vil det dog formentlig kræve, at man smed al koden ud og begyndte helt forfra. Windows 2003, der blev lanceret i foråret, blev af Microsoft udpeget til at være det hidtil sikreste operativsystem fra Microsoft. Der gik dog kun få måneder, før der blev opdaget sårbarheder, og vi var tilbage i den gamle trædemølle med jævnlige opdateringer. For det var netop den gamle kode i Windows 2003, der var problemet med de første par fejl, der blev fundet.
I det hele taget er der er masser af kode, som de forskellige Windows operativsystemer alle sammen bruger, og meget af den kode er af ældre dato. Det betyder, at selv nye operativsystemer vil indeholde potentielle sårbarheder alene af den årsag, at de genbruger kode fra tidligere versioner af Windows. Derfor er det ikke nok at den nye kode er bedre og mere robust programmeret.
Har man adgang til programkode, der udnytter fejlen, kræver det ikke mere end en simpel kompilering, før man kan udnytte sårbarheden. Netop sådan en situation fik it-sikkerhedsbranchen op af stolen sidst i juli, da den kinesiske non-profit gruppe X Focus frigav kildekode til en sårbarhed mindre end to uger efter, sårbarheden var blevet offentligt kendt.
Den kinesiske kode virkede kun på tre versioner af Windows, men kort tid efter, koden var blevet gjort frit tilgængelig, blev den forbedret af en anden sikkerhedsekspert, så den kunne bruges på syv versioner af Windows. Med en fuld kildekode, der udnytter fejlen, er der ikke langt til at indarbejde den i en orm og slippe den løs på internettet. Og netop den situation er det næste mareridt for it-sikkerhedsfolk.
Hvis kildekoden til at udnytte sårbarheder bliver frigivet hurtigere, end producenten kan nå at skrive en fejlrettelse, risikerer vi at blive udsat for orme, der lægger hele internettet ned og får ormene Code Red og Nimda til at ligne rene sommerforkølelser.
Ekstra beskyttelse
De orme, der har størst "succes" med at sprede sig via internettet, har som oftest benyttet sig af flere forskellige metoder til at angribe et system. Hvis den ene metode ikke virker, så prøver den en anden, indtil den løber tør.
For fem år siden var der klare forskelle mellem et hackerangreb og et virusangreb. Det gælder ikke længere. Begreberne flyder sammen, og mange vira og orme, der flyder rundt i alverdens netværk, har hacker-elementer indbygget. De mest sofistikerede orme udnytter i dag op til fem-seks forskellige sårbarheder for at komme ind i et system, og det er også grunden til, at man ikke kan vide sig sikker, blot man har et anti-virussystem installeret. En firewall er også en nødvendighed i dag, hvis man vil være bedst muligt beskyttet. Selv om man måske ikke anser sin virksomhed for at være i fare for et hackerangreb, er en orm ligeglad med, hvordan eller hvor man er på nettet. Har man en pc, der kan inficeres, er der stor sandsynlighed for, at den også bliver det. Orme spreder sig med lynets hast på internettet og bliver stadig bedre til det.
Derfor er det ingen vej uden om en firewall, et antivirusprogram og opdatering af soft- og hardware. Det skal ske, om ikke dagligt, så minimum ugentligt hvis man vil færdes nogenlunde sikkert på internettet. På den anden side behøver det ikke være en stor opgave, da både antivirus-programmer og operativsystemerne vil kunne opdatere sig selv helt automatisk, så snart en fejlrettelse er klar.
Boks:
Ordforklaringer:
Script-kiddie: Populær betegnelse for hackere, der ikke selv kan skrive de programmer, der kan udnytte sårbarheder, men først begynder at hacke, når "værktøjerne" bliver frigivet af mere kompetente hackere.
Orm: Et ondsindet program, der kan sprede sig fra pc til pc uden menneskelig indgriben.
Virus: Et ondsindet program, der i en eller anden form skal bruge en menneskelig handling for at sprede sig, f.eks. et klik på en vedhæftet fil i en e-mail.
Mass-defacements: Betegnelsen for hacker-graffiti, hvor et websted bliver hacket og forsiden ændret, men som ikke vælter hele systemet bagved.