|
|
set noexec_user_stack=1 set noexec_user_stack_log=1 |
Fast alle Buffer-Overruns legen den auszuführenden
Code in den Buffer auf den Stack.
| |
Da normalerweise der Stack-Bereich keinen ausführbaren
Code enthält, ist es sinnvoll, hier die Ausführungsrechte
wegzunehmen. Dies ist bei allen modernen Prozessoren möglich.
| |
Unter Solaris läßt sich das mit Kernel-Parametern
einrichten, die leider so nicht voreingestellt sind.
| |
Wenn es dann trotzdem probiert wird, gibt es einen
schönen Eintrag im Log:
|
|
Jun 26 03:31:40 turing genunix: [ID 533030 kern.notice] NOTICE: buggyd[8971] attempt to execute code on stack by uid 120 |
Man hüte sich jedoch davor anzunehmen, dies reiche aus.
Für Solaris 7 und 8 gibt es einen Remote-Root-Exploit für
snmpxdmid, dem es gelingt, den auszuführenden Code
im Heap unterzubringen, wo diese Restriktion nicht greift.
|
Copyright © 2002,2003 Andreas F. Borchert, in HTML konvertiert am 11.02.2003 |