Advertentie
Bekijk de toepassingen die u het meest op uw computer gebruikt. Meer dan waarschijnlijk bieden een groot aantal van hen zeer connectieve functionaliteit, met name uw webbrowser. Deze zeer verbindende programma's kunnen veel doen, maar ze zijn ook een open uitnodiging voor slechte hackers om toe te slaan.
Om te voorkomen dat stakingen succesvol worden, zou een ontwikkelaar elk gat in zijn code moeten herkennen en sluiten, wat gewoon niet mogelijk is. In plaats daarvan moeten ontwikkelaars dat feit nemen en hun code plannen met dat in gedachten. De meest voorkomende en effectieve oplossing: een sandbox.
Zand in een doos?
Nee, ik geef niet de voorkeur aan de sandbox van het lokale park, maar aan software-sandboxen. Deze sandboxen hebben één belangrijk doel: het voorkomen van de verspreiding van een aanval. Zoals ik hierboven al zei, weten slimme ontwikkelaars dat code niet perfect is en dat hun product uiteindelijk zal worden gehackt of anderszins zal worden gepenetreerd. Om de gebruiker te beschermen, implementeren ze een sandbox die delen van hun programma isoleert. In wezen blijft alles wat er in een zandbak gebeurt in die zandbak.
Sandboxen in actie
Om sandboxen in actie uit te leggen, gebruik ik Google Chrome als het belangrijkste voorbeeld. Chrome is een van de meest bekende producten om sandboxing te implementeren, wat Google met trots aanprijst als een unieke beveiligingsfunctie onder browsers. Google nam Chrome en verdeelde het in wezen in drie verschillende categorieën: het belangrijkste proces dat verband houdt alles samen, het tabbladproces (sen) die de pagina's bevatten en de renderer bevatten, en het plug-inproces (es). Al deze categorieën hebben verschillende toestemmingsniveaus zodat ze kunnen worden uitgevoerd, maar die toestemmingen zijn het absolute minimum, zodat ze allemaal behoorlijk beperkt zijn. Bovendien kunnen de verschillende processen niet echt met elkaar praten, maar naast elkaar bestaan. Hoewel Flash-inhoud van de Flash-plug-in bijvoorbeeld op een pagina aanwezig kan zijn, zijn de processen nog steeds gescheiden en praten ze niet met elkaar. De renderer laat alleen een spatie op de pagina over om dat proces weer te geven. Dit onvermogen om te communiceren is belangrijk, want als een tabblad crasht of wordt gehackt, heeft dit geen invloed op de andere tabbladen en het systeem zelf.
Firefox heeft het ook, soort van
Firefox heeft ook een sandbox-functie, hoewel beperkt, waardoor deze wordt gescheiden van plug-ins van derden, zoals Flash. Hoewel de browser en alle tabbladen in één proces zijn gecombineerd, is er een apart proces voor alle plug-ins. In de benadering van Firefox vertrouwt het meer op zijn eigen code dan Googles doet met Chrome, en legt het de schuld van eventuele browse-problemen met plug-ins. Als de plug-ins op welke manier dan ook crashen, worden de browser en de tabbladen daarom niet beïnvloed.
Outside-the-box denken
Hoewel het een goede strategie is om sandboxtechnieken in de programmacode zelf te laten implementeren, zijn er tal van andere programma's die helemaal geen sandboxing hebben. In plaats daarvan wilt u een virtuele sandbox uitvoeren waarin u programma's kunt uitvoeren die in de sandbox slechts zoveel schade kunnen aanrichten als mogelijk is, waardoor uw systeem intact blijft. Hoewel dit vaak bedoeld is om software te testen, is het ook een goede keuze om een webbrowser of echt andere software te gebruiken als je nogal paranoïde bent (of hier je andere favoriete woord invoegt). Een zeer populaire keuze hiervoor is Sandboxie Hoe u onveilige toepassingen op uw pc kunt isoleren en testen Lees verder , maar er zijn andere producten, zowel gratis als betaald, die hetzelfde kunnen bereiken.
Gevolgtrekking
Sandboxing is momenteel een van de populairste onderwerpen als het gaat om beveiliging, en het doet het werk behoorlijk goed. Natuurlijk moeten ontwikkelaars zich altijd concentreren op het zo goed mogelijk maken van hun code, maar het helpt zeker niet om een aantal actieplannen te hebben voor als er zich een probleem voordoet. Houd er rekening mee dat sandboxen nog steeds niet perfect zijn, omdat de sandbox van Chrome in Pwn2Own 2012 werd verslagen na een aantal extreem moeilijke hacks, maar ze zijn absoluut een veel betere keuze dan helemaal geen.
Wat is jouw mening over de sandboxtoepassingen? Welke verbeteringen zou je willen zien in sandboxing-webbrowsers, of welke applicaties denk je dat sandboxing nodig heeft? Laat het ons weten in de comments!
Afbeeldingscredits: Katie Gregory, Ernst Vikne
Danny is senior aan de Universiteit van Noord-Texas en geniet van alle aspecten van open source-software en Linux.