Kan Windows styre missiler? Certificering af software 2

Dette er anden del af to blogindlæg om certificering af software. Du kan læse første indlæg her.

Common Criteria
Efter nogle nationale tiltag til nye modeller tog International Organization for Standardization (ISO) i 1990 initiativ til at lave en international standard (Common Criteria), der var mere fleksibel end Orange Book, som jo definerede høj sikkerhed som overholdelse af Bell-LaPadula. Private virksomheder lægger jo oftest ikke nær så meget vægt på fortrolighed, som militæret gør. For private virksomheder er dataintegritet som regel mere væsentligt.

Common Criteria tager ikke udgangspunkt i en model, men evaluerer produkter ud fra en beskyttelsesprofil, der forsøger at tage højde for specifikke sikkerhedsrelaterede problemer.

Der laves altså en række beskyttelsesprofiler, der beskriver relevante trusler, og hvordan disse trusler kontrolleres. Beskyttelsesprofilerne bruges så af producenterne, når de udvikler produkterne, af Common Criteria-folkene ved evalueringen til at kontrollere, at produkterne lever op til profilerne, og af kunderne til at kontrollere, at produkterne løser netop deres sikkerhedsproblem. Common Criteria er altså et framework snarere end et tvunget valg, som Orange Book var.

Common Criteria evaluerer produkterne i syv niveauer (evaluation assurance level (EAL)), der så er et udtryk for, hvor gennemgribende en test et produkt har været igennem. For kommercielle produkter er EAL4 normalt grænsen, mens EAL5-7 typisk er til militære produkter. Det ville jo være ret kedeligt, hvis fx Barsebäck eller et krydsermissil ikke blev styret af software, der var gennemtestet på et niveau grænsende til det absurde sammenlignet med min kontor-PC.

Hvad med kendte sikkerhedshuller?
Det er en vigtig pointe, at en sikkerhedsevaluering kun gælder for en specifik version af et produkt. Hvis der efterfølgende er kommet en patch til et produkt, så har produktet ikke længere nogen sikkerhedsevaluering, hvis patchen bliver installeret. Dette gælder også, selv om der er tale om en sikkerhedspatch. Med en Common Criteria evaluering kommer man altså hurtigt i den for mange absurde situation, at der er kendte sikkerhedsproblemer med et certificeret produkt, men at sikkerhedspatchen ikke kan installeres, da produktet så ikke længere er certificeret.

Problemet opstår, fordi det er en omfattende proces, der er forbundet med betydelige omkostninger, at få et produkt certificeret efter fx Common Criteria. Derfor kan produktet ikke bare certificeres igen, hver gang der er frigivet en sikkerhedspatch. I praksis betyder det, at krav fra myndighedernes side om brug af certificeret software er ensbetydende med, at man er tvunget til at anvende produkter, der i praksis er usikre, hvilket er et klart problem ved certificering af software.

Det er jo tankevækkende, at MS Windows XP Professional SP2 er certificeret EAL4+, mens Windows Vista er certificeret EAL1. Til sammenligning er Solaris 10 Release 11/06 Trusted Extensions også certificeret EAL4+.

I modsætning til Orange Book angiver leverandørerne selv under Common Criteria, hvilket niveau de ønsker deres produkt certificeret på. Det bestemmer de ud fra den målgruppe, som de ønsker at sælge til. Der er ingen grund til at betale de ekstra omkostninger ved en højere certificering, hvis dine kunder ikke ønsker dette.

En certificering er altså ikke nødvendigvis udtryk for, at et produkt ikke er bedre værd. Selv om en certificering viser, at et produkt har klaret et bestemt evalueringsniveau, kan man ikke bare deraf slutte, at det objektivt set er mere sikkert end produkter med en lavere evaluering. Det kan også være et udtryk for, at en leverandør har investeret flere penge i certificeringen. Trusted Solaris er givetvis et mere sikkert system end Windows XP, selv om det ikke fremgår af en sammenligning af Common Criteria-certificeringen. OpenBSD er givetvis endnu mere sikkert, men det har slet ikke nogen certificering.

En statisk certificering
Mens sikkerhed i høj grad er en dynamisk proces, kan en certificering kun være statisk. Hvis en leverandør laver en patch, er produktet ændret, og en evt. certificering kan derfor naturligt nok ikke overføres til et produkt, som i teorien kunne være ændret fundamentalt.
En Common Criteria-certificering er derfor udtryk for, at et produkt har kunnet leve op til et givet sikkerhedsniveau, og at en leverandør har villet betale for at få et officielt stempel på et bestemt niveau.
Det er sådan set rimeligt nok, at myndighederne tvinger bestemte selskaber til kun at bruge certificeret software, hvis selskabet fx har en produktion, hvor sikkerhed er meget vigtig. Jeg ville fx ikke være tryg ved at tage en hovedpinepille, hvis produktionen af dem ikke var underlagt meget strenge regler. Det er selvfølgelig alvorligt, at det giver problemer med opdatering af software, men jeg ser hellere, at det løses ved at sikre disse maskiner yderligere (fx ved at fjerne diskettedrev, netværksadgang eller lignende) end ved at tillade, at ucertificeret software kan styre produktionen.

Dermed ikke sagt, at certificeringen er uproblematisk. The European Computer Manufacturers Association (ECMA) lavede på et tidspunkt en rapport, der hævdede, at det ikke er muligt at finde en fornuftig balance mellem sikkerhed, produktivitet og omkostninger. ECMA pegede på, at certificeringen af et produkt koster mellem 10 og 40 % af den faktiske udviklingsomkostning på et produkt, samt at det tager for lang tid at få et produkt certificeret.

Både ECMA og The International Computer Security Association (ICSA) har udarbejdet alternative certificeringer til alle os kommercielle brugere, der køber software ud fra princippet 'sikker nok', og hvor Common Criteria bliver lidt for voldsomt

Common Criteria Evaluation Assurance Levels

EAL1 - functionally tested
EAL2 - structurally tested
EAL3 - methodically tested and checked
EAL4 - methodically designed, tested, and reviewed
EAL5 - semiformally designed and tested
EAL6 - semiformally verified design and tested
EAL7 - formally verified design and tested

Første blogindlæg om certificering af software

Kommentarer (0)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Log ind eller Opret konto for at kommentere