NX aka W^X - was bringt's, was kostet es

squeaker

Erfahrenes Mitglied
Hi

ich wollte mal wissen was ihr davon haltet. Klar ist, NX verhindert - sofern konsequent angewandt - Bufferoverflowangriffe effektiv. Des weiteren werden es "normale" Viren (die Executables befallen) schwerer haben, da sie a) nicht mehr polymorph sein können, b) 2 Segmente in die exe einfügen müssen bzw. sich in 2 Segmente einfügen müssen statt nur 1, c) die Version sich einfach reinschreiben und danach den orginal PE-Header wiederherzustellen dürfte nicht funktionieren - kurz - für Viren wird alles komplizierter.
Würmer werden kaum betroffen sein, sofern sie sich er Mithilfe von Usern bedienen (->Email).

Nachteil dürfte sein:
a) Viele aktuelle Shareware-Programme und quasi kein Computerspiel wird auf einem NX-System laufen (Stichwort Copyprotection, UPX, Armadillo, SafeDisc).
b) Viel JIT-Technologien werden unmöglich bzw. schwieriger zu realisieren.

Ein Misch-Masch (Teils NX, teils kein NX) wird meiner Meinung nach nicht viel bringen.

Was denkt ihr dazu?
 
NX steht glaube ich für No Execute und W^X steht für Write XOR eXecute. Beides sind nur Namen für ein und das selbe Konzept. Dabei werden Speicherseiten entweder ausführbar oder beschreibbar. Datenseiten werden als beschreibbar/änderbar markiert, Codeseiten als ausführbar. Ein Buffer-overflow, welcher ja den Stack überschreibt und sich dann auf dem Stack ausführt ist damit nicht mehr möglich, da der Stack ja in einem W-Bereich ist und somit nicht X (ausführbar).
 

Neue Beiträge

Zurück