Stort är osäkert
Under kalla kriget skrevs det spaltkilometer om robotar, antirobot-robotar och till och med antirobot-robot-robotar. Idag är det virusprogram och antivirusprogram som fyller spaltutrymme och nyhetsprogram. Precis som under kalla kriget kan bägge sidor alltid ta ett steg till och liksom då blir kostnaderna oerhörda.
De flesta är nog överens om grundproblemet. Våra datorsystem är i grunden osäkra och det finns ett nästan oändligt antal vägar för virus och annan skadlig kod att komma in och ställa till skada. För att skydda oss använder vi antivirusprogram som letar efter kodmönster i befintliga virus. Det förutsätter förstås att viruset upptäckts, att antivirusprogrammet kompletterats med det nya virusmönstret och att datorernas antivirusprogram uppdaterats. Även om datorerna uppdateras varje dag finns alltid risken att ett nytt virus hinner infektera datorn innan det finns ett fungerande försvar.
Ett problem är att allt fler virus sprids på nya sätt. Det räcker inte längre att hålla ordning på sina email för att slippa virusattacker, allt oftare kommer virusen in i datorn via webbläsaren från infekterade hemsidor. Det kräver mer avancerade antivirusprogram och en allt mera tidsödande övervakning. En allt större del av datorkapaciteten går åt till att leta efter virus.
Eftersom många illasinnade program drar nytta av felaktigheter eller svagheter i operativsystem, webbläsare eller applikationsprogram krävs ständiga uppdateringar. Program som Windows XP (eller Vista) uppdateras ofta automatiskt flera gånger om dagen. Det växande antalet patchar gör att operativsystem och webbläsare blir långsammare.
Hur kunde det bli på det här sättet?
I början av nittiotalet sågs knappast virus som något jätteproblem. Det var viktigare att bygga in flexibilitet och enkel användning. Microsoft gav Windows en mängd länkar rakt in i kärnan och de olika Office-programmen fick ett gemensamt makrospråk, med gott om operativsystemanrop som kunde anpassa och expandera funktionerna. Det här makrospråket blev sedan virusförfattarnas favorit, eftersom det blev möjligt att introducera virus via vanliga dokument, kalkyler eller email.
I slutet av nittiotalet hade säkerhets- och prestandaproblemen blivit akuta och Microsoft tog fram ett helt nytt operativsystem, Windows NT. Det hade en betydligt högre inbyggd säkerhet, men problem med bakåtkompatibilitet med äldre program. Företaget prioriterade i och med Windows 2000 bakåtkompatibiliteten och tappade på det sättet mycket av det som skulle kunnat vinnas i säkerhet. När man sedan för att konkurrera ut Netscape Navigator integrerade webbläsaren Explorer i operativsystemet öppnades "dammluckorna" för fullt.
Det stora problemet idag är att operativsystemen blivit så gigantiska och innehåller så mycket gammal kod att ingen egentligen har riktig kontroll på vad som händer. Operativsystemen har inte ett fåtal väl definierade gränssnitt ut mot applikationsprogrammen och ett fåtal väl definierade gränssnitt mellan de olika delarna. I stället vimlar det av gamla "legacy"-delar med fantastiska möjligheter för virusförfattare. Eftersom det hela är så omfattande och antalet beroenden är så stort är det knappast längre möjligt att komma till rätta med problemen. Det går alltid att hitta en bakväg.
Ett alternativ är att lägga till hårdvara för att hantera problemet. Intels har bland annat för det lagt in virtualiseringshårdvara och säkerhetshårdvara i de nya processorerna. Tyvärr visade det sig att en av de första applikationerna för hårdvaran var ett nytt virus, som lägger sig som ett virtualiseringslager och därför blir osynligt för operativsystemet.
Vad skall vi då göra för att komma till rätta med säkerhetsproblemen?
Till att börja med är det nog nödvändigt att backa tillbaka ett par steg och skriva om operativsystemen utifrån de nya förutsättningarna. Om valet står mellan flexibilitet och säkerhet kanske det är dags att välja säkerhet. Och om det nu har visat sig att små operativsystem är säkrare än stora kanske det är dags att dra konsekvenserna av det också.
Det finns förstås verkligt radikala sätt att hantera problemen. Man kan till exempel göra som i min gamla Atari-dator och lägga operativsystemet i EPROM. Med dagens stora flashminnen skulle det vara fullt möjligt att ha både operativsystem och grundprogram i minne som normalt sett inte går att skriva i.
För några år sedan gjorde en av mina söner en annan variant på samma tema. Han lade en komplett Linux-installation (Knoppix) på en CD, tillsammans med de grundläggande program som behövdes. Här arbetade visserligen datorn i RAM, men det enda som sparades på disk var användardata. Varje gång datorn startades om återställdes systemet till utgångsläget och eventuella virus gick upp i rök.
Här kanske det finns något att lära.
Filed under: MyBlog