Bis vor einiger Zeit hatte ich immer gedacht, wenn ich ein DSO mod_php ohne PIC übersetze, wäre es fast genau so schnell wie ein statisch kompiliertes Modul (also bis zu 30% schneller):
http://ilia.ws/archives/28-PHPApache-Static-vs-DSO.html
http://talks.php.net/show/perf-oscom4/6
...
Ein entsprechendes Patch von Rasmus gab es irgendwo bei bugs.php.net.
Kürzlich hatte ich hier aber eine kleine Diskussion mit Joe User bzgl. PHP & Apache2 Worker MPM ;-) (evtl. interessiert folgende kürzlich erschienen Zusammenfassung der Diskussion auf php.internals bzgl. dieser Thematik: http://www.zend.com/zend/week/week216.php#Heading1). In diesem Zusammenhang machte mich Joe auf mögliche Sicherheitsprobleme durch Verwendung von mod_php ohne PIC-Unterstützung aufmerksam: http://www.rootforum.org/forum/viewtopi ... 411#208411
Allerdings fällt es mir schwer, dies nachzuvollziehen, da mir da auch noch einiges an Wissen fehlt.
Es ging vor allem um den folgenden Abschnitt:
Quelle: http://www.gentoo.org/proj/en/hardened/hardenedfaq.xmlIf you are using the gentoo hardened toolchain, typically compiling your programs will create PIC ELF libraries that do not contain text relocations. However, certain libraries still contain text relocations for various reasons (often ones that contain assembly that is handled incorrectly). This can be a security vulnerability as an attacker can use non-PIC libraries to execute his shellcode. Non-PIC libraries are also bad for memory consumption as they defeat the code sharing purpose of shared libraries.
Welche Gefahr bedeutet das konkret für mod_php unter Linux? Wenn ich jetzt non-PIC nutze - wer oder was kann mir dann wie Schaden zufügen? Doch nur mit einem lokalen Account, oder? PIC hatte doch was damit zu tun, dass Libraries oder irgendwelcher Code geteilt wird, oder?
Jedenfalls ist jetzt ein entsprechendes Patch im CVS, wodurch mod_php ab der nächsten Version per default auf Linux-Systemen ohne PIC übersetzt werden wird:
Quelle: http://www.zend.com/zend/week/week219.php#Heading7On Linux and FreeBSD systems where non-PIC is known to be safe, the default build is now non-PIC
Was ich jetzt gerne wissen würde - haben die Jungs da jetzt alle irgendwas übersehen, oder hat dieses prinzipielle Angriffsmöglichkeit keine konkreten Auswirkungen auf mod_php?
Viele Grüße
Andreas

