torsdag 25. juni 2009

Automatisk oppdatering - en hodepine mindre

Magnus Solberg, Security Engineer, Watchcom

Undersøkelser viser at det finnes mellom 5 til 20 skrivefeil eller logiske brister per 1000 linjer kode (sjekk ut http://panko.shidler.hawaii.edu/HumanErr/ for flere fun facts om menneskelig feilaktighet). Flesteparten av disse har lav eller ingen innvirkning på programmets funksjonalitet – mens andre feil er av mer alvorlig karakter og kan føre til minnelekkasjer, programkrasj, eller utgjør i verste fall alvorlige sikkerhetshull.

Ifølge NIST inneholdt Windows 3.1 rundt 3 millioner linjer kode, mens de i ”gode gamle” Windows 2000 allerede var oppe i 35 millioner linjer – og dette er altså bare OS’ene, uten en eneste ekstraapplikasjon installert! Et raskt regnestykke viser altså at antallet bugs øker enormt for hvert år som går. Noen som fremdeles lurer på hvorfor det stadig kommer patcher fra Windows Update? Patcher er definitivt ikke et fenomen som begrenser seg til Windows eller Adobe.

Hva med alle de forskjellige sikkerhetsboksene stående rundt omkring i nettverket? Brannmurer, IDS’er, IPS’er, krypto, antispam, et cetera ad infinitum – alle disse har som oftest til felles at:

1) De kjører proprietære operativsystemer
2) At automatiserte oppdateringer verken er mulig eller ønskelig (random downtime anyone?)
3) Holdningen til dem stort sett begrenser seg til ”If it ain’t broken, don’t fix it”.

En av hovedutfordringene vi ser er at det – uansett – alltid er ett hode for lite på IT-avdelingen. Man har rett og slett ikke tid til å sette seg ned og lese bombardementet av mailer som kommer fra produsentene av alle de forskjellige innretningene. Så lenge det putrer og går, hvorfor ta sjansen på å ødelegge den skjøre balansen? Det er tross alt tusen andre ting som skal tas tak i.

En oppdatering er ikke alltid like viktig, eller for den saks skyld riktig. Noen sub-versjoner og patcher blir sluppet for å adressere spesifikke problemer, andre inneholder en lang rekke bugfixer eller legger til nye funksjoner. Det er alltid viktig å finlese release notes’ene for å se om den nye versjonen er viktig for ens eget nettverk – kanskje det ikke er noen grunn til å kjøre ned autentiseringstjenesten sin en hel dag bare for å få installert koreanske hjelpefiler på boksen? På den annen side – kanskje nettopp denne brannmurpatchen vil hjelpe på det merkelige bermudatriangelet av pakketap du ikke har klart å pinpointe enda? Noen ganger er også oppdateringen rett og slett feil. Husk at patcher og oppdateringer bare er linjer med kode som alt annet – det er ikke sjelden at bugs introduseres eller reintroduseres. Det kreves tid og interesse for å forvisse seg om hvorvidt en oppdatering er viktig og riktig for ens nettverk. Lesing av release notes, forum-browsing, og utveksling av tips og triks med andre som har like systemer.

Nye funksjoner er – nesten – like viktige som bugfixes. Produsentene av de ulike sikkerhetsanretningene forsøker å holde tritt med nye trusler, og introduserer regelmessig ny funksjonalitet. Et godt eksempel i dette henseende er IronPort – nye versjoner av AsyncOS (IronPort’s proprietære operativsystem, bygget på en sterkt modifisert FreeBSD-kjerne) har introdusert on-box kryptering av mail, autentiserings- og sikringsmetoder som DKIM og SPF, avansert bildegjenkjennelsesteknologi, og masse annet. Å ikke holde boksen sin oppdatert selv om den (tilsynelatende) fungerer fint innebærer altså at man sakker bakut i forhold til å holde sin organisasjons sikkerhet på et optimalt nivå.

Så var altså tiden kommet. Release notes’ene indikerer at dette er noe du har behov for, summingen på forumet er enige om at dette var en fin og stabil release, og den tre år gamle antispamburken skal endelig få sin første oppdatering. Hvordan var det nå man gjorde dette igjen? Vil det føre til nedetid? Bør dette tas etter at brukerne har gått hjem for dagen, blir det nok en dag med overtidspizza til middag? Kan du garantere at du kjenner oppdateringsrutinen godt nok til å stole på at det ikke i stedet blir en natt på serverrommet, febrilsk letende etter knappen for å sette boksen tilbake til factory reset? Og så er det jo papirarbeidet, da. Allokering av tidspunkt, varsling av konsulenter og brukere, dokumentere i for- og etterkant... Vel, du kan jo alltids ta oppdateringen ved neste release i stedet..
Alt dette ovenstående er utfordringer vi i Watchcom har stått ovenfor gang på gang.

Vi drifter jo selvsagt vårt eget nettverk (sannsynligvis med en del flere ”interessante” applikasjoner og bokser enn hos de fleste), og kjører i tillegg rutinemessig oppdateringer på systemene til våre kunder. Som foretrukket sikkerhetspartner til en stadig økende mengde små og store norske organisasjoner er vi godt over gjennomsnittet interessert i å lese alt av informasjon vi kan komme over som er relatert til løsningene vi leverer and beyond. Det er rett og slett jobben vår å vite hva slags bugs som eksisterer i en gitt løsning, hvilke som fikses, og hva slags spennende nye funksjoner som blir utformet for å beskytte nettverket mot stadig mer avanserte trusler. Som sertifiserte installatører og administratorer av systemene vi setter opp hos kundene våre er vi også godt vant med å gjøre oppdateringen ”by the book” for å minske risikoen for menneskelig feil, eller å implementere oppdateringer som er ustabile eller ubrukelige. Prosessen blir selvsagt dokumentert nitidig, etter samme faste formular.

Så derfor tenkte vi – hvorfor ikke rett og slett tilby dette som en tjeneste? I første rekke kommer vi til å kunne tilby et ”oppdateringsabonnement” til nye og eksisterende IronPort-kunder. Som en av de bedriftene i Norge med flest IronPort-installasjoner, og kompetente medarbeidere med sertifiseringer og erfaring virket dette som et naturlig startsted for noe som kan hjelpe oss å holde våre kunders sikkerhet på et så høyt nivå som mulig. Vi utelukker selvsagt ikke at tilbudet kan bli utvidet til andre produkter – for mer info og detaljer, hør med din kundekontakt! ;)

Dette kan kanskje sørge for én hodepine mindre for en allerede overarbeidet IT-avdeling?

0 Kommentarer: