Beveiligingsbedrijf Cybellum heeft een ongedocumenteerde Windows-functie ontdekt die onder meer gebruikt kan worden om antivirusproducten van verschillende fabrikanten over te nemen. Het bedrijf heeft de methode de naam 'DoubleAgent' gegeven.
Volgens de Cybellum-onderzoekers maakt DoubleAgent het mogelijk om elke dll in elk willekeurig Windows-proces te injecteren. Deze code injection-methode zou momenteel nog niet door antivirusproducten herkend worden. De dll-injectie is zeer vasthoudend, zodat ook na een herstart of een herinstallatie van software de dll met het proces blijft verbonden. Een van de mogelijke toepassingen van de methode is het overnemen van antivirusproducten, maar DoubleAgent zou bijvoorbeeld ook gebruikt kunnen worden om blijvend malware te installeren, procespermissies aan te passen en code in andere gebruikerssessies te injecteren.
Omdat het gaat om een legitieme maar ongedocumenteerde Windows-functie, is er volgens Cybellum geen patch mogelijk en moeten beveiligingsbedrijven zelf voor patches van hun producten zorgen. Doordat het om een 15 jaar oude functie gaat, zijn alle versies van Windows kwetsbaar. De functie in kwestie is aanwezig in de 'Microsoft Application Verifier', die ontwikkelaars fouten in code moet helpen opsporen. Dit werkt door een dll in de te controleren applicatie te laden.
De Cybellum-onderzoekers ontdekten dat het mogelijk is om de legitieme dll te vervangen door een kwaadaardige variant. Doordat een dergelijke Application Verifier Provider-dll met de naam van een uitvoerbaar bestand verbonden is, wordt deze elke keer geïnjecteerd als een proces met die naam wordt opgestart. De koppeling wordt vastgelegd in het Windows-register. Doordat de dll op een zeer vroeg moment wordt ingeladen, is volledige controle over het doelproces mogelijk, aldus de onderzoekers. Voorbeelden van toepassing van DoubleAgent zijn het inzetten van antivirussoftware om kwaadaardige acties uit te voeren, of de werking van het programma aan te passen om bijvoorbeeld geblokkeerde bestanden alsnog uit te voeren.
Verschillende fabrikanten zouden volgens Cybellum kwetsbaar zijn, namelijk Comodo, ESET, F-Secure, Kaspersky, McAfee, Panda, Quick Heal, Norton, Avast, Avira, Bitdefender, Malwarebytes, Trend Micro en AVG. De laatste drie hebben inmiddels patches uitgebracht. Volgens Cybellum is het mogelijk antivirusproducten tegen DoubleAgent te beschermen door ze gebruik te laten maken van de Windows-functie Protected Processes, die werd geïntroduceerd in Windows 8.1. Volgens de onderzoekers laat deze maatregel alleen het uitvoeren van ondertekende code toe, maar wordt hij tot nu toe alleen gebruikt in Windows Defender.
Cybellum heeft een proof of concept op GitHub gepubliceerd en toont in een video een demonstratie van DoubleAgent in combinatie met Norton Antivirus.