211service.com
Zwakke plekken in geharde software
In de afgelopen tien jaar heeft Microsoft, het favoriete doelwit van veel online aanvallers, zijn besturingssysteem gehard door technologieën toe te passen die zijn ontworpen om het voor aanvallers moeilijker te maken om kwetsbaarheden te vinden en te misbruiken. Apple en vele andere softwaremakers hebben dit voorbeeld gevolgd en hebben soortgelijke aanvullende beveiligingsmaatregelen voor hun besturingssystemen geïntroduceerd.
Maar vorige week, tijdens de Pwn2Own-wedstrijd op CanSecWest , een beveiligingsconferentie in Vancouver, Canada, hebben beveiligingsonderzoekers aangetoond dat softwaremakers meer moeten doen om hun programma's te beschermen. Met behulp van voorheen onbekende kwetsbaarheden konden de onderzoekers Apple's Safari, Microsoft's Internet Explorer 8 en Mozilla's Firefox-webbrowsers compromitteren door de nieuwste beveiligingstechnologieën in het onderliggende besturingssysteem te omzeilen.
Deze dingen maken het moeilijk - ze doen het echt, zegt Charles Miller, een hoofdanalist bij... Onafhankelijke beveiligingsbeoordelaars en de onderzoeker die de beveiliging van Apple's Safari-browser en het Mac OS X Snow Leopard-besturingssysteem eronder omzeilde. Maar hoe dan ook, een vastberaden aanvaller kan een weg naar binnen vinden.
De resultaten van de Pwn2Own-wedstrijd onderstrepen een gemeenplaats in beveiliging: verdedigers moeten altijd gelijk hebben, maar aanvallers hoeven maar één keer gelijk te hebben. De exploits zijn echt creatief; daarom zijn ze lastig, Aaron Portnoy, hoofd van het veiligheidsonderzoeksteam voor TippingPoint , het beveiligingsbedrijf dat de Pwn2Own-competitie sponsort.
Beginnend met het Trustworthy Computing Initiative in 2002, begon Microsoft met het implementeren van een reeks beveiligingstechnologieën in Windows. Ten eerste beschermde het bedrijf de stapel, de logische geheugenruimte die door programma's wordt gebruikt om gegevens tijdelijk op te slaan. Een technologie die de /GS-vlag wordt genoemd (na de software-switch die in de compiler van het bedrijf werd gebruikt), verhinderde aanvallers om hun eigen code naar de stapel te pushen. Maar in 2003 toonde David Litchfield, een onafhankelijke onderzoeker, een manier om de bescherming te omzeilen. Microsoft reageerde door nog twee technologieën uit te rollen: SafeSEH om de aanval aan te pakken met behulp van gestructureerde uitzonderingshandlers (SEH) en adresruimtelay-out randomisatie (ASLR), om soortgelijke kwetsbaarheden in de toekomst moeilijker te exploiteren. Onderzoekers hebben echter manieren gevonden om beide beschermingen te omzeilen.
Recentelijk heeft Microsoft een andere technologie uitgebracht, de bescherming van gegevensuitvoering (DEP), die aanvallen voorkomt die het geheugen met code overschrijven en vervolgens die code proberen uit te voeren. Maar eerder dit jaar toonde een onafhankelijke onderzoeker, Dion Blazakis, een aanval, bekend als JIT-spraying, die gebruikmaakt van kwetsbaarheden in andere programma's, met name Adobe Flash en Sun's Java, om die beveiligingen te omzeilen.
Deze exploitatietechnieken zijn momenteel een hot item, zegt Portnoy. Als je een manier hebt om de beveiliging van het (besturingssysteem) te omzeilen, dan ben je een stap boven de meeste mensen hier.
Apple is ook niet immuun geweest. Het bedrijf is doorgegaan met het uitbrengen van meer beveiligingstechnologieën in zijn eigen besturingssysteem, en Snow Leopard omvat zowel ASLR als DEP, aldus Miller.
Microsoft erkent dat softwarefouten altijd zullen bestaan en zegt dat het doel is om het misbruiken van dergelijke kwetsbaarheden minder schadelijk te maken. Tegenwoordig maken andere maatregelen, waaronder verdere stackbeveiliging, ASLR en DEP het moeilijker om kwetsbaarheden te vinden en te exploiteren.
Als die technieken er niet waren, zou je veel meer exploits zien dan wat we nu zien, zegt HD Moore, chief security officer van Rapid7 en de directeur van de Metasploit-project , dat exploitatietechnieken verpakt in een gebruiksvriendelijk kader voor beveiligingsonderzoekers.
Er wordt onderzoek gedaan naar aanvullende beveiligingen, en een van de belangrijkste kandidaten is sandboxing, een techniek waarbij niet-vertrouwde code wordt uitgevoerd in beveiligde geheugen- en verwerkingsruimte en geen invloed mag hebben op andere delen van de computer of het apparaat. De programmeertaal Java en de runtime-omgeving maakten sandboxen populair, maar pas sinds kort gebruiken programma's meer sandboxen. Browsermakers proberen hun code in een sandbox uit te voeren, en Chrome van Google, dat de Pwn2Own-wedstrijd heeft overleefd zonder te worden gehackt, voert code uit in een sandbox.
Moore zegt dat sandboxen hun beperkingen hebben. Sandboxen zijn erg goed in het beschermen tegen een kwetsbaarheid in een applicatie die een exploit wordt van het besturingssysteem, zegt hij, maar het is alleen nuttig als de gegevens die je probeert te beschermen niet toegankelijk zijn. In veel gevallen heeft het programma mogelijk toegang nodig tot gevoelige of systeemgegevens, en dan helpt sandboxen niet meer, zegt hij.
Uiteindelijk hebben softwaremakers hun programma's moeilijker te exploiteren gemaakt, zegt Miller. Hoewel hij bijna twintig kwetsbaarheden vond in populaire software, zoals programma's gemaakt door Adobe, Apple en Microsoft, zou minder dan een handvol kwetsbaarheden kunnen worden misbruikt op een up-to-date systeem, zegt hij. Het is een afweging, geeft Miller toe. Elke keer dat u een van deze (beveiligingen) toevoegt, vertraagt het het systeem of bemoeilijkt het de ontwikkeling. Het doel is om software moeilijk te exploiteren te maken, en dat hebben ze gedaan.