Hackers vinden steeds meer manieren om gebruik te maken van lekken in websites. Programmeurs doen vaak hun uiterste best om alle gaten in de software op te sporen, maar kunnen altijd iets over het hoofd zien. Wanneer een programma honderd patches krijgt toegebracht en er wordt toch iets minuscuuls vergeten, dan blijft de software onveilig.

Een mogelijk oplossing wordt volgende week op het ACM Symposium on Operating System Principles volgende week in Big Sky (Montana, VS) gepresenteerd. Onderzoekers van het Massachusetts Institute of Technology (MIT) presenteren een nieuwe techniek onder de noemer Resin. Deze techniek voert automatisch veiligheidscontroles uit wanneer dat nodig is. Zelfs in onvoorziene omstandigheden, zo melden de onderzoekers.

Voor elk stuk code een eigen check

Normaal gesproken verbinden webontwikkelaars hun veiligheidschecks met programmafuncties. Zo kun je op een sociale netwerksite met vrienden e-mailen, commentaren achterlaten en foto’s taggen. Elke functie is verbonden met een eigen stuk code, waarbij de ontwikkelaar apart veiligheidschecks inbouwt om zeker te zijn dat de gebruiken geautoriseerd is om ermee te werken. Van de meeste checks merkt de gebruiker niets, omdat ze in de achtergrond van de applicatie draaien.

“We hebben naar veel webapplicaties gekeken en er zijn honderden plekken waarop checks uitgevoerd worden”, vertelt Nickolai Zeldovich, assistent-professor bij het lab Computerkunde en Artificiële Intelligentie van het MIT. Zeldovich en zijn collega’s vonden bij een enkele webapplicatie meer dan 1400 plekken in de code waarop data geverifieerd werd. Toch zaten er nog ongeveer 60 veiligheidslekken in.

Bij het nagaan welke securitychecks een webapplicatie uitvoert, kwamen de onderzoekers erachter steeds dezelfde data telkens gecheckt wordt. Dus ontwikkelden de onderzoekers een techniek die datastromen onder de loep neemt in plaats van stukken code. Een aanvraag om de data te benaderen, op welke manier dan ook, vereist een check.

Platform-onafhankelijk

De onderzoekers pasten twaalf bestaande Python- en PHP-applicaties aan voor gebruik met Resin. In de tests konden de aangepaste applicaties aanvallen via bekende lekken weerstaan. Ook lieten de onderzoekers eigen code los op de software, die opnieuw geen vat kreeg op Resin. De techniek is zo ontwikkeld, dat het niet uitmaakt op welke programmeertaal het wordt toegepast.

Voor programmeurs moet het nieuwe systeem gemakkelijk te implementeren zijn, denkt het MIT. Code voor veiligheidschecks en zogenaamde sanitization schrijven ze sowieso; nu hoeven ze maar één keer een Resin-code te maken, in plaats van honderden keren de securitychecks te copy-pasten in de honderden plekken van hun applicaties.

Volgens UCLA-collega Eddie Kohler is het Resin-systeem veelbelovend. “Je kunt het gebruiken zonder veel prestatieverlies.” Kohler verwacht dat Resin populair kan worden als het zich bewijst in de echte wereld. “Een plek als Facebook draait code van derden op de eigen servers en is veel meer bevreesd voor dataverlies dan mogelijk twee procent prestatieverlies.”

Bron: Techworld