Hva er en sandkasse, og hvorfor skal du spille i en
Ta en titt på programmene du bruker mest på datamaskinen din. Mer enn sannsynlig, tilbyr et stort antall av dem svært tilkoblet funksjonalitet, spesielt nettleseren din. Disse svært bindende programmene kan gjøre mye, men de er også en åpen invitasjon for dårlige hackere å slå.
For å hindre streik fra å bli vellykket, må en utvikler spotere og lukke hvert eneste hull i koden, noe som ganske enkelt ikke er mulig. I stedet må utviklere ta det faktum og planlegge sin kode med det i tankene. Den vanligste og mest effektive løsningen: en sandkasse.
Sand i en boks?
Nei, det er ikke den lokale park sandkassen jeg foretrekker, men programvare sandkasser. Disse sandkassene har et sentralt formål: å forhindre spredning av et angrep. Som jeg nevnte ovenfor, vet smarte utviklere at koden ikke er perfekt, og at deres produkt etter hvert vil bli hacket inn eller på annen måte penetrert. For å beskytte brukeren implementerer de en sandkasse som isolerer deler av deres program. I hovedsak er alt som skjer i en sandkasse, i sanden.
Sandkasser i aksjon
For å forklare sandkasser i aksjon, bruker jeg Google Chrome som det primære eksemplet. Chrome er et av de mest kjente produktene for å implementere sandboxing, noe som Google stolt bruker som en unik sikkerhetsfunksjon blant nettlesere. Google tok Chrome og splittet det i tre forskjellige kategorier: Hovedprosessen som knytter alt sammen, tabbeprosessen (er) som holder sidene og inkluderer renderer, og pluginprosessen (e). Alle disse kategoriene har forskjellige tillatelsesnivåer slik at de kan kjøre, men de tillatelsene er de minste minimumene slik at alle er ganske begrenset. I tillegg kan de forskjellige prosessene egentlig ikke snakke med hverandre, men bare eksistere sammen. For eksempel, selv om Flash-innhold fra Flash-pluginet kan være til stede på en side, er prosessene fortsatt adskilte og snakker ikke med hverandre. Gjenføreren forlater bare en plass på siden for at prosessen skal vises. Denne manglende evne til å kommunisere er viktig fordi hvis en fane krasjer eller er kapret, kan den ikke påvirke de andre fanene eller selve systemet.
Firefox har det for, sort av
Firefox har også en sandboxing-funksjon, selv om den er begrenset, og skiller den fra tredjeparts plugins som Flash. Mens nettleseren og alle dens faner er kombinert til en enkelt prosess, er det en egen prosess for alle plugins. I Firefox-tilnærming legger det mer tillit til sin egen kode enn Googles gjør med Chrome, og gir skylden for eventuelle nettlesingsproblemer på plugins. Derfor, hvis pluginene krasjer uansett, påvirkes ikke nettleseren og fanene.
Tenke utenfor boksen
Selv om det er en god strategi å ha sandboksteknikker implementert i et programs kode selv, er det nok av andre programmer som ikke har noen sandboxing overhodet. I stedet vil du kjøre en virtuell sandkasse der du kan kjøre programmer som bare kan ødelegge så mye kaos som de kan inne i sandkassen, og lar systemet være i takt. Selv om dette ofte er ment for testing av programvare, er det også et godt valg å kjøre en nettleser eller virkelig annen programvare der inne hvis du er ganske paranoid (eller sett inn ditt andre favorittord her). Et veldig populært valg for dette er Sandboxie. Slik isolerer og tester usikre applikasjoner på din PC. Slik isolerer og tester usikre programmer på din PC Les mer, men det finnes andre produkter, både gratis og betalte, som kan oppnå det samme.
Konklusjon
Sandboxing er for tiden et av de heteste temaene når det gjelder sikkerhet, og det er definitivt å gjøre jobben ganske bra. Selvfølgelig bør utviklere alltid konsentrere seg om å lage sin kode så godt som mulig, men det hjelper definitivt ikke å ha noen handlingsplaner for når et problem oppstår. Vær oppmerksom på at sandkasser fortsatt ikke er perfekte, da Chrome's sandkasse ble beseiret i Pwn2Own 2012 etter noen ekstremt vanskelige hack, men de er definitivt et mye bedre valg enn ingen i det hele tatt.
Hva er din mening om sandboxing-applikasjonene? Hvilke forbedringer vil du se i weblesere med sandboxing, eller hvilke applikasjoner tror du trenger sandboxing? Gi oss beskjed i kommentarene!
Bildekreditter: Katie Gregory, Ernst Vikne
Utforsk mer om: Apputvikling, programmering, virtualisering.