Hopp til innhold
NorscodeNorscode

Trygg som standard, ikke som ettertanke

ArtikkelAv Norscode-prosjektet

De fleste programmer får langt mer tilgang enn de trenger. Norscode snur standardinnstillingen.

Ingen tilgang før du gir den programmet starter tomt disk.read gitt net.tcp stengt env stengt

De fleste programmer får langt mer tilgang enn de trenger. Et lite skript som skal lese én fil, kan i praksis lese hele hjemmekatalogen din, åpne nettverksforbindelser og sende data ut i verden — fordi det arver alt operativsystemet gir brukeren som startet det.

Snu standardinnstillingen

Norscode gjør det motsatte. Et program starter uten tilgang til noe som helst. Vil du at det skal lese filer, gir du det disk.read. Skal det på nett, gir du det net.tcp. Alt annet er stengt, og programmet kan ikke be om mer underveis — grensen settes av den som starter det, ikke av koden selv.

Det betyr at du kan kjøre kode du ikke har lest hver linje av, og likevel vite hva den maksimalt kan gjøre. En avhengighet dypt nede i biblioteket ditt kan ikke stjele nøkler den aldri fikk tilgang til.

Hvorfor det er verdt de ekstra linjene

Modellen koster noe. Du må tenke gjennom hva tjenesten din faktisk trenger, og skrive det ned når du starter den. Til gjengjeld har du en kortfattet, ærlig liste over programmets fullmakter — lesbar for et menneske, ikke gjemt i tusen linjer kode.

I en tid der de fleste sikkerhetshull handler om at noe fikk gjøre mer enn det skulle, mener vi at trygghet må være utgangspunktet, ikke noe du husker å skru på til slutt.

Kapabiliteter er ikke en ekstrafunksjon i Norscode. De er en del av hvordan språket ser på verden.

En holdning, ikke bare en funksjon

Det som skiller Norscode her, er ikke at det er mulig å begrense et program — det kan man i mange systemer. Forskjellen er at det er utgangspunktet. De fleste språk starter med full tillit og lar deg stramme inn hvis du gidder; Norscode starter med null tillit og lar deg åpne akkurat det som trengs. Den rekkefølgen forandrer alt, fordi den trygge tilstanden er den du får gratis, ikke den du må huske å velge.

Hvorfor standardinnstillingen avgjør

Sikkerhet som krever ekstra arbeid, blir ofte ikke gjort — ikke av vond vilje, men fordi det haster, og det som virker, virker. Når det trygge er standard, snur det: nå må man aktivt gjøre noe utrygt for at det skal bli utrygt, og da blir det synlig. De aller fleste sikkerhetshendelser i moderne programvare handler om at noe fikk gjøre mer enn det trengte. En modell der ingenting får gjøre noe som helst uten at du sa det, angriper nettopp den roten.

Verdt de ekstra linjene

Å oppgi hva et program får lov til, koster noen linjer når du starter tjenesten. Til gjengjeld har du en kort, ærlig liste over programmets fullmakter — lesbar for et menneske, ikke gjemt i tusen linjer kode. Trygghet er ikke en ettertanke du legger til når noe har gått galt. I Norscode er den der fra første stund.

Les også

Tilbake til oversikten