De meeste bugs worden namelijk gevonden door beveiligingsonderzoekers; white hat hackers die in vaste dienst zijn voor bedrijven, of als een soort premiejagers hun bevindingen verkopen aan applicatiebeveiligers.

Peter Vreugdenhil is zo iemand. Hij is een in Nijmegen gebaseerde freelance beveiligingsonderzoeker die zijn resultaten doorgeeft aan onder andere iDefense en het Zero Day Initiative van Tipping Point. Hij is voornamelijk gespecialiseerd in browsers en applicaties die de browsers aanspreken. "Zo ben ik onder andere ook bezig met Media Player en Java."

Vreugdenhil heeft bijna drie jaar geleden een parttime baan gemaakt van het bugjagen. Van huis uit is hij programmeur, en voordat hij met 'het zware werk' bezig ging, concentreerde hij zich vooral op het blootleggen van gaten in php-applicaties, "voor de lol".

"Op dit moment spendeer ik drie dagen per week fulltime aan het opsporen van bugs in applicaties", zegt Vreugdenhil. "De overige twee werk ik als programmeur voor een bedrijf dat webwinkels in elkaar zet. Die twee probeer ik strikt gescheiden te houden." Om van het bugjagen te kunnen leven, probeert Vreugdenhil ongeveer één groot gat per maand te vinden. Dat lukt vaak wel. "Nu ben ik bijvoorbeeld een beetje met Java aan het klooien, en daar vond ik twee relatief grote gaten binnen twee weken", zegt Vreugdenhil. Nu haalt hij gemiddeld een groot gat per twee a drie weken.

Patch Tuesday

Deze week nog stond Vreugdenhil bij de credits van Microsofts Patch Tuesday, waarbij hij (mede)verantwoordelijk was voor het rapporteren van twee van de lekken die afgelopen dinsdag zijn gedicht in de Webcomponenten voor Microsoft Office. Office Web Components (OWC) is een set ActiveX-controls waarmee gebruikers Officedocumenten online kunnen publiceren, en/of aan kunnen roepen met de browser.

Deze blijken al erg lang open te staan; Vreugdenhil had een van de lekken al meer dan twee jaar geleden ontdekt. "Die had ik gevonden met een van de fuzzers (programma's die lekken in applicaties proberen bloot te leggen door deze brute-force te voeden met aangepaste bestanden –red.) die ik geschreven had voor ActiveX-objects. Ik had al gezien dat dit object mee werd geïnstalleerd met Office 2003 en 2008, maar ik zag in de advisory van Microsoft dat er ook nog wat andere applicaties met dit ActiveX-object worden geleverd" , zegt Vreugdenhil.

"De fuzzer deed er redelijk lang over, al met al zo'n drie dagen, maar het leverde wel leuke resultaten op." Na verdere tests heeft hij een exploit geschreven als proof-of-concept (poc), en die aangeboden aan het Zero Day Initiative. Die heeft de poc uiteindelijk van hem gekocht en de gegevens doorgestuurd naar Microsoft. "Dat zet ik standaard in mijn contracten: alle lekken moeten worden doorgegeven aan de leverancier", zegt Vreugdenhil.

Wel is hij verbaasd dat Microsoft zo lang heeft met het dichten van het lek. "Ik heb het ze gevraagd, ik heb ook de juiste persoon gesproken, maar die kon het mij niet vertellen", zegt Vreugdenhil. "Hij kon alleen zeggen dat er twee mogelijkheden zijn. Of het is er doorheen geglipt, iemand had het opgepakt maar niet afgemaakt of zoiets, of het is een gat dat meer raakt dan alleen Office. Maar als ik naar de patches kijk, dan viel dat ook wel mee. Ik denk dus dat ze slordig zijn geweest." Twee weken terug is een exploit van de bug opgedoken op het Milw0rm-forum, en pas nu heeft Microsoft het gat gedicht. "Het is een beetje raar dat Microsoft pas een patch uitbrengt als er een exploit is opgedoken. Milw0rm is meestal niet de eerste, maar we kunnen niet echt zeggen of het lek ook actief werd uitgebuit."

Vreugdenhil heeft wel contact met ZDI gehad over deze bug en via die groep zijn de vragen naar Microsoft gegaan, maar die reageerde er niet op. Vreugdenhil kan na twee en een half jaar ook maar beperkt begrip opbrengen. "Als je door de code van Microsoft wroet, dan zie je ook wel dat het heel complex is. Maar zelf zeggen ze dat ze het binnen honderd dagen willen doen, en dan is die bijna 860 dagen van nu een behoorlijke uitschieter."

Niet direct

Dat Vreugdenhil zijn bugs via tussenpersonen meldt, heeft een hele eenvoudige reden: geld. Microsoft betaalt niet voor bugreports. "Hun instelling is gewoon: daar kunnen we niet aan beginnen. Ze kunnen geen model opstellen van 'dit is zoveel waard en dit is zoveel waard.'" IDefense en ZDI doen dat wel, en betalen hem voor zijn bevindingen.

"Ik stuur ze de poc op, en als ze geïnteresseerd zijn komen ze met een bod. De hoogste bieder mag de poc gebruiken voor beveiligingsdoeleinden", zegt Vreugdenhil. Hij weet ongeveer wat voor wie interessant is, en stemt zijn aanbod daar ook op af. Als hij een bod afslaat, dan mag de betreffende partij niets met de bug doen. Als het bod aanvaard wordt, geeft hijzelf ook de rechten van de bug uit handen en mag hij contractueel ook niet publiceren totdat de boel gefixt is. "Sommigen zouden vals kunnen spelen door anoniem te publiceren, maar daar begin ik niet aan."

"Strikt theoretisch kan ik een bug aan beide partijen verkopen, maar dat vind ik geen manier van zakendoen. Ik denk ook niet dat ze daar heel blij van worden als ze daarachter komen." Dat zij er wel voor betalen, heeft te maken met het businessmodel van de bedrijven: zij beveiligen klanten tegen aanvallen zelfs als leveranciers nog geen patch ter beschikking hebben gesteld. "Ze zijn dan eigenlijk altijd de eersten", zegt Vreugdenhil.

ActiveX

Hoewel ActiveX nog steeds een belangrijke bron van bugs is, ziet Vreugdenhil met elke versie van Internet Explorer wel een verbetering. "Sinds IE8 is het misbruiken van ActiveX-objecten minder interessant. In IE6 konden dat soort objecten nog altijd dingen vrij aanroepen. Met IE8 krijg je tenminste een waarschuwing."

Het was volgens hem vooral een probleem dat COM-objecten en ActiveX-objecten door elkaar werden gebruikt. De eersten kun je aanroepen om delen in een applicatie te hergebruiken, maar als je ze op de verkeerde manier registreert dan zijn ze aan te roepen vanuit de browser waar dat niet de bedoeling was, legt Vreugdenhil uit. Zelfs virusscanners konden zo via een COM-object worden uitgeschakeld met de browser. Nu zijn ze niet zomaar aan te roepen. Helemaal mooi zou het volgens Vreugdenhil zijn als Microsoft ActiveX in een sandbox zou draaien. Eventuele problemen zijn dan al een stuk moeilijker te misbruiken. "Google Chrome doet iets dergelijks."

Veel collega's binnen de landsgrenzen heeft Vreugdenhil niet. "Ik word wel eens uitgenodigd op trips met mensen die een bepaalde status hebben opgebouwd als submitter. Daar spreek ik veel Duitsers, Amerikanen, Brazilianen, Spanjaarden, maar geen Nederlanders", zegt Vreugdenhil. "Nu moet ik ook zeggen dat veel bugs door 'anonymous' worden gerapporteerd, dus wellicht zitten daar een paar tussen. Maar ik kom ze verder dus niet tegen. Het is dan ook een rare business." Bron: Techworld