Windows-brugere har det ikke nemt på Internet. En sand bølge af scriptbaserede computervira har i de seneste måneder gjort livet surt for indehavere af Internet-opkoblede pc'er med Windows, Internet Explorer og Outlook. Kendte sårbarheder i Windows misbruges til at sprede orme som LoveLetter og Anna Kournikova, der udnytter at Windows er mildere stemt overfor scripts end programmer fra Internet.
Scripts i sprog som Visual Basic eller JScript kan være mindst ligeså skadelige som programmer, der kan kendes på filendelser som .exe og .dll. Windows mangler en mekanisme, som gør det muligt at signere scripts. En sådan digital underskrift garanterer, at programmørens identitet ikke er forfalsket og at scriptet ikke er ændret undervejs fra afsender til modtager.
Heldigvis har Microsoft reageret på kritikken af Windows Scripting Host (WSH) - den indbyggede scriptmotor i Windows, der indtil nu ganske ukritisk afvikler alle scripts fra Internet. Med den nye Windows Scripting Host 5.6, som i øjeblikket kan hentes som beta-version, bliver det for første gang muligt at signere scripts.
Regler
Windows Scripting Host er en meget kritiseret komponent i det ulyksagelige partnerskab mellem Windows og Internet Explorer. De fleste meldinger om nye vira og sikkerhedshuller slutter med at anbefale, at systemet kan sikres ved at slukke for WSH. Men dermed udelukker man samtidig muligheden for at køre de mange scripts, som er ganske harmløse.
Scriptmotoren kan ikke skelne mellem fredelige og ondskabsfulde scripts. Når det gælder programfiler med filendelser som .ocx, .dll, .exe, .cab, .cat og .ctl kan problemet løses ved at tilføje en digital signatur. Naturligvis kan signaturen ikke garantere, at programmet ikke er skadeligt, men signaturen gør det muligt at opstille regler for, hvilke programmer der må hentes og køres fra Internet.
Firmaets systemansvarlige kan oprette en positiv-liste over godkendte programmører og softwarefirmaer, hvorefter programmer, der er signeret af dem, kan installeres uden begrænsninger. Programmer, der er signeret af ukendte programmører eller slet ikke indeholder en signatur, kan samtidig afvises automatisk.
WSH 5.6 udvider denne beskyttelse til at gælde Win32 scriptfiler med endelser som .vbs, .js, .jse, .vbe og .wsf. For første gang bliver det muligt at tilføje digitale signaturer til scripts, og ikke kun programfiler. Dermed erkender Microsoft, at scripts i dagens Internet-verden er mindst ligeså farlige som programmer.
I modsætning til WSH 5.5, hvor man enten kan tillade eller blokere alle scripts, kan systemansvarlige med den nye version udarbejde et sæt regler, der begrænser afviklingen af signerede scripts, og helt forhindrer udførelse af scripts, som ikke indeholder en troværdig signatur.
Store virksomheder eller organisationer kan etablere deres egen certificeringscentral, og udstede deres egne certifikater, hvorefter alle scripts fra eksterne kilder automatisk kan afvises. Microsoft tilbyder en gratis Certificate Server til Windows NT 4.0 og Windows 2000, der kan anvendes til dette formål.
Authenticode
Endnu befinder WSH 5.6 sig i betafasen, men den aktuelle testversion 5.6b1 kan hentes hos Microsoft under navnet "Windows Script 5.6". Programmet kører under Windows 95, 98, ME, NT 4.0 og 2000 - den aktuelle betaudgave understøtter dog ikke Windows 95 og ME. Microsofts installationspakke indeholder også den nyeste version af scriptsprogene VBScript 5.6 og JScript 5.6, men den mest interessante komponent er Windows Script Host 5.6.
Det nye signatursystem til scripts kræver yderligere udvidelsen "Authenticode for Internet Explorer", der kan hentes som separat download, hvis den ikke allerede er installeret. Authenticode indeholder en række værktøjer, bl.a. signcode.exe, der bruges til at signere filer, og chktrust.exe, der undersøger om signaturen er gyldig.
Signcode.exe tilbyder både en nem grafisk brugerflade og et kommandolinie-interface, hvor scripts kan signeres med en kommando som nedenstående:
signcode -cn "Test Software" -n "Eksempel Script" -t "http://timestamp.verisign.com/scripts/timstamp.dll" -i "http://www.test.dk/certifikater" Eksempel.vbs
Modtageren kan undersøge, om scriptet indeholder en gyldig signatur, ved at indtaste:
chktrust Eksempel.vbs
Den elektroniske underskrift er baseret på en hash-værdi, som beregnes ud fra scriptets kildetekst. Hash-værdien signeres med programmørens private nøgle, og den tilhørende offentlige nøgle inkluderes i et certifikat, der igen er underskrevet af en certificeringsinstans. Modtageren kan selv beregne scriptets hash-værdi og sammenligne med den overførte værdi; hvis begge er ens, kan man være sikker på, at scriptet ikke er ændret undervejs.
Hash-værdien er kodet med programmørens private nøgle og kan kun afkodes med den offentlige nøgle. Denne nøgle ligger i det medsendte, signerede certifikat, som kan indeholde navn, adresse og andre oplysninger om programmøren. Troværdigheden afhænger af den certificeringsmyndighed, som har underskrevet certifikatet - eller den samling af instanser, som sammen danner certificeringskæden.
Tricks
I den aktuelle betaversion af WSH 5.6 er beskyttelsen ikke bedre end i den gamle udgave; alle scripts bliver automatisk udført, hvad enten de indeholder en signatur eller ej. Signatur-godkendelsen skal først aktiveres manuelt i registreringsdatabasen, Registry. Den relevante sektion er:
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows Script HostSettings.
Herunder findes nøglen "TrustPolicy", som kan være sat til 0, 1 eller 2.
Standardindstillingen er 0 og betyder, at alle scripts bliver afviklet. Hvis man ændrer værdien til 1, bliver brugeren spurgt, om ikke-signerede scripts skal afvikles. Den bedste beskyttelse giver værdien 2, som automatisk forhindrer at scripts uden signatur køres i systemet.
Med denne beskyttelse aktiveret har man et effektivt forsvarsværn mod de mange scriptbaserede orme, der udnytter WSH i Windows-operativsystemet.