image

Alleen hardwarematige DEP werkt tegen IE-exploit

dinsdag 19 januari 2010, 11:45 door Redactie, 13 reacties

Het nieuwe beveiligingslek in Internet Explorer is alleen door het gebruik van hardwarematige Data Execution Prevention (DEP) te voorkomen. "Software DEP is eigenlijk helemaal geen DEP", zegt Jonathan Ness van Microsoft Security Research & Defense. Software DEP is alleen een andere benaming voor '/SAFESEH' en geen effectieve maatregel om het tijdens de Googlehack gebruikte lek te verhelpen. Alleen hardwarematige DEP voorkomt misbruik, aldus Ness.

Alle computers van de afgelopen vijf jaar ondersteunen de technologie. Soms moet dit echter eerst via de BIOS worden ingesteld. Het voordeel van Data Execution Prevention is dat het zowel op software- als hardwarematig niveau exploits tegengaat. Standaard is DEP ingeschakeld voor IE8 op Windows XP SP3, Vista SP1, Server 2008 en Windows 7.

Omzeilen
Windows 2000 biedt geen ondersteuning van hardwarematige DEP. Windows XP SP2, Server 2003 SP1 en Vista doen dit wel, maar beschikken niet over de SetProcessDEPPolicy API, die IE8 gebruikt om DEP in te schakelen. Voor gebruikers van Windows XP SP2 en Vista heeft Microsoft een fix online gezet, die DEP voor Internet Explorer inschakelt. De softwaregigant verwijst gebruikers die willen weten of hun hardware DEP ondersteunt, naar dit artikel.

Ness merkt op dat er een bekende aanval is die DEP via .NET classes kan omzeilen. "IE8 staat het laden van deze .NET classes in de Internet Zone niet toe. In de Intranet zone zijn ze wel toegestaan. Daarom kan een aanvaller die content op je bedrijfsnetwerk host mogelijk DEP omzeilen en succesvol dit lek misbruiken."

Reacties (13)
19-01-2010, 12:02 door SirDice
Ness merkt op dat er een bekende aanval is die DEP via .NET classes kan omzeilen.
Er zijn ook nog andere manieren om een non-executable stack te omzeilen. Alleen maakt SSP en ASLR dat weer een stuk lastiger.

DEP, SSP en ASLR voorkomen overigens niet dat een bug een probleem oplevert. Ze maken het alleen verschrikkelijk lastig om een dergelijke bug succescvol te misbruiken.
19-01-2010, 12:14 door Skizmo
Firefox installeren helpt ook...

ff zonder gekheid... het is toch best wel zielig als je software alleen maar veilig is als de hardware bugs moet afvangen.
19-01-2010, 12:22 door Anoniem
Had de 8086 oorspronkelijk geen Harvard architectuur? Wie zou voorgesteld hebben om dat te verkrachten naar een Von Neumann??
19-01-2010, 12:33 door Anoniem
Zo leuk, dat Microsoft in alle internetdocumentatie ervan uitgaat dat je als administrator bent ingelogd. En ondertussen adviseren om met beperkte rechten te internetten.
19-01-2010, 12:51 door Anoniem
Door SirDice:
Ness merkt op dat er een bekende aanval is die DEP via .NET classes kan omzeilen.
Er zijn ook nog andere manieren om een non-executable stack te omzeilen. Alleen maakt SSP en ASLR dat weer een stuk lastiger.

DEP, SSP en ASLR voorkomen overigens niet dat een bug een probleem oplevert. Ze maken het alleen verschrikkelijk lastig om een dergelijke bug succescvol te misbruiken.

Misbruik van explorer lekken vind bijna altijd plaats via de heap en niet van de stack.
DEP zorgt er dan ook voor dat heap blokken voornamelijk R of RW poilicies krijgen (Read dan wel ReadWrite) en geen E(xecute) meer.
Als je de exploit snel bekijkt:
http://www.exploit-db.com/exploits/11167
Dan zie je dat het gebruik maakt van heapspraying om de shellcode te laden. Daartegen werkt inderdaad DEP. Voor IE7 kun je gebruik maken van de .NET classes techniek zoals uitgevonden door Sotirov & Dowd:
http://www.phreedom.org/research/bypassing-browser-memory-protections/bypassing-browser-memory-protections.pdf
Of waarschijnlijk ook nog door Java heap spraying (zou ik oeten testen)

Voor IE8 zijn er momenteel nog geen publiek bekende betrouwbare manieren om DEP te omzeilen, hoewel ze wel bestaan.
Voor IE8 op Vista of W7 zou je DEP & ASLR moeten omzeilen, en dat maakt het helemaal lastig, maar wel interresant :)


- Peter
19-01-2010, 13:03 door Anoniem
Mhhh, om een aantal applicaties lopend te krijgen moeten wij juist de hardwarematige DEP in het BIOS disablen (anders crashen die ordinair genoeg, en nee het is vers geschreven native software), dus voor ons en een aantal van onze klanten is DEP aan zetten helemaal geen oplossing.
19-01-2010, 13:20 door SirDice
Door Skizmo: Firefox installeren helpt ook...

ff zonder gekheid... het is toch best wel zielig als je software alleen maar veilig is als de hardware bugs moet afvangen.
Even zonder gekheid. DEP, SSP en ASLR voorkomen ook dat je eenvoudig een bug in Firefox zou kunnen misbruiken.
19-01-2010, 14:16 door Spiff has left the building
Mooi artikel, waar Microsoft naar verwijst voor instructie over hoe te checken of de hardware DEP ondersteunt.
http://support.microsoft.com/kb/912923

De methode beschreven onder "How to confirm that hardware DEP is working in Windows", "Method 1: Use the Wmic command-line tool", die werkt in ieder geval uitstekend.
Mooie check.
19-01-2010, 17:04 door [Account Verwijderd]
Door Anoniem: Mhhh, om een aantal applicaties lopend te krijgen moeten wij juist de hardwarematige DEP in het BIOS disablen (anders crashen die ordinair genoeg, en nee het is vers geschreven native software), dus voor ons en een aantal van onze klanten is DEP aan zetten helemaal geen oplossing.
Dan is er toch sprake van onveilig geproduceerde software en/of van een brakke compiler. Ik zou maar eens met de producent gaan praten.
20-01-2010, 12:53 door Anoniem
Door Spiff: Mooi artikel, waar Microsoft naar verwijst voor instructie over hoe te checken of de hardware DEP ondersteunt.
http://support.microsoft.com/kb/912923

De methode beschreven onder "How to confirm that hardware DEP is working in Windows", "Method 1: Use the Wmic command-line tool", die werkt in ieder geval uitstekend.
Mooie check.


Die method 1 werkt dus alleen als je onder admin bent ingelogd. Als gewone gebruiker werkt method 2 wel. Die is dus beter, maar misschien wel iets ingewikkelder.
Ze zeggen het er overigens niet bij, ik heb dat proefondervindelijk gemerkt, aangezien ik niet als admin browse en dus method 1 als gewone gebruiker uitprobeerde.
20-01-2010, 14:35 door Spiff has left the building
Door Anoniem:
Door Spiff: Mooi artikel, waar Microsoft naar verwijst voor instructie over hoe te checken of de hardware DEP ondersteunt.
http://support.microsoft.com/kb/912923

De methode beschreven onder "How to confirm that hardware DEP is working in Windows", "Method 1: Use the Wmic command-line tool", die werkt in ieder geval uitstekend.
Mooie check.
Die method 1 werkt dus alleen als je onder admin bent ingelogd. Als gewone gebruiker werkt method 2 wel. Die is dus beter, maar misschien wel iets ingewikkelder.
Ze zeggen het er overigens niet bij, ik heb dat proefondervindelijk gemerkt, aangezien ik niet als admin browse en dus method 1 als gewone gebruiker uitprobeerde.

Dankjewel voor de aanvulling.

Ikzelf werk normaal gesproken ook als standaard-gebruiker, maar gezien het feit dat het beheer van DEP per definitie een administrator-taak is, nam ik aan dat dat ook voor die methode om te checken of de hardware DEP ondersteunt zou gelden.
Ik voerde die check dus als vanzelfsprekend uit met administrator-rechten.

Goed dat die Method 2 wel werkt zonder administrator-rechten.
Alhoewel de betreffende check me eigenlijk vooral een administrator-taak lijkt, kan het ook voor een alleen-standaardgebruiker wellicht nuttig zijn om te kunnen checken of de hardware DEP ondersteunt en hoe DEP is geconfigureerd.
20-01-2010, 15:53 door SirDice
Door Insider:
Door Anoniem: Mhhh, om een aantal applicaties lopend te krijgen moeten wij juist de hardwarematige DEP in het BIOS disablen (anders crashen die ordinair genoeg, en nee het is vers geschreven native software), dus voor ons en een aantal van onze klanten is DEP aan zetten helemaal geen oplossing.
Dan is er toch sprake van onveilig geproduceerde software en/of van een brakke compiler. Ik zou maar eens met de producent gaan praten.
Volledig mee eens.
21-01-2010, 14:17 door Anoniem
Door Insider:
Door Anoniem: Mhhh, om een aantal applicaties lopend te krijgen moeten wij juist de hardwarematige DEP in het BIOS disablen (anders crashen die ordinair genoeg, en nee het is vers geschreven native software), dus voor ons en een aantal van onze klanten is DEP aan zetten helemaal geen oplossing.
Dan is er toch sprake van onveilig geproduceerde software en/of van een brakke compiler. Ik zou maar eens met de producent gaan praten.

Standaard firebird en delphi applicaties...
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.