Belgisch bedrijf ontdekt 20-jaar oud securityprobleem in alle versies van Windows
Frank Lycops en Raf Cox van The Security Factory hebben een meer dan 20 jaar oud securityprobleem ontdekt in Windows. De bug maakt het mogelijk om file-servers te hacken en introduceert daarbij wellicht een nieuwe categorie van kwetsbaarheden.
Het securityprobleem is opmerkelijk omdat het geen geavanceerde kennis vereist van een hacker. Eenvoudigweg een nieuwe folder aanmaken op een file-server met een specifieke structuur in de naam volstaat om kwaadaardige programma’s te kunnen installeren op die server, en zo de volledige controle over het systeem over te nemen.
“Enige voorwaarde is dat systeembeheerders scripts gebruiken (bijvoorbeeld voor onderhoudstaken) die een tot nu toe onbekende maar vaak voorkomende kwetsbaarheid bevatten”, legt Raf Cox van The Security Factory uit.
“De kwetsbaarheid vertoont overeenkomsten met de welbekende ‘SQL injection’-bug, maar kan uitgebuit worden op fileservers waarvan men niet verwacht dat er kwaadaardige code op kan worden geïnstalleerd.”
Microsoft
The Security Factory heeft naar eigen zeggen al samengezeten met Microsoft over het probleem en voor de communicatie er rond. De troepen van Satya Nadella zouden de bug onderkend hebben, maar gaan geen security-update uitbrengen.
“Microsoft oppert dat de security-bug gerelateerd is aan de manier waarop een script wordt geschreven, en bijgevolg geen probleem is in het besturingssysteem zelf”, zegt Cox.
“Tegelijk laat het bedrijf na om zijn gebruikers te waarschuwen, met als gevolg dat heel wat scripts kwetsbaar zijn en dus alle file-servers waarop dit type van scripts worden uitgevoerd in gevaar brengen. Ook een antivirusprogramma zal geen oplossing bieden, omdat het geen scriptfouten detecteert.”
Ampersand
De kwetsbaarheid is gerelateerd aan de manier waarop de Windows Command Shell (ook bekend als de DOS-prompt) het teken ‘&’ (ampersand) interpreteert in scripts waarbij er gewerkt wordt met environment-variabelen.
Het ‘&’ teken dient als afscheiding tussen 2 opeenvolgende commando’s op 1 lijn. Wanneer een environment-variabele dit teken bevat en toont of toekent aan een andere variabele, wordt het gedeelte van de waarde achter het ‘&’ teken echter geïnterpreteerd als een nieuw Windows-commando (of programma), dat meteen wordt uitgevoerd.
“Veronderstel dat een environment-variabele A de waarde T&Calc heeft”, geeft Frank Lycops een voorbeeld. “Wanneer je deze variabele toont (‘echo %A%’) of toekent aan een andere variabele (‘SET B=%A%’), dan zal de command-shell (dos-prompt) het bekende programma ‘calc’ (rekenmachine) opstarten.”
“Tot zover is er nog geen kwaad geschied. Maar het probleem wordt acuter wanneer een environment-variabele op die manier verwijst naar een kwaadaardig programma dat op een computer is geplaatst door een gebruiker.”
“Indien een gebruiker een folder aanmaakt op een bestandsserver met een naam ‘T&Program’ en een bestand ‘program.exe’ in de folder plaatst (of nog eenvoudiger: een script zoals program.cmd), dan wordt dit programma opgestart met vaak volledige toegangsrechten tot alle bestanden en het systeem zelf.”
Fout opgemerkt of meer nieuws? Meld het hier