[linux-l] Sicherheitsluecke durch Filedescriptors?
Benjamin Schieder
blindcoder at scavenger.homeip.net
Mi Jan 30 14:21:04 CET 2013
Hallo Liste.
Ich habe vor Kurzem etwas beobachtet, was mir erst nachtraeglich
richtig bewusst wurde.
Folgendes Szenario:
Apache mit php als cgi unter suexec auf einem Ubuntu System.
Der Apache laesst die PHP Skripte unter dem mit SuExec konfigurierten
User laufen.
BEVOR das Skript laeuft, oeffnet Apache einen Filedeskriptor auf
/var/log/apache2/access.log
blindcoder at pallas:~$ ls -l /var/log/apache2/error.log
ls: cannot access /var/log/apache2/error.log: Permission denied
blindcoder at pallas:~$ head /var/log/apache2/error.log
head: cannot open `/var/log/apache2/error.log' for reading: Permission
denied
blindcoder at pallas:~$ sudo !!
sudo head /var/log/apache2/error.log
[Sun Jan 27 06:25:22 2013] [notice] Digest: generating secret for
digest authentication ...
[Sun Jan 27 06:25:22 2013] [notice] Digest: done
[Sun Jan 27 06:25:23 2013] [warn] RSA server certificate CommonName
(CN) `anderdonau.de' does NOT match server name!?
[Sun Jan 27 06:25:23 2013] [warn] Init: Name-based SSL virtual hosts
only work for clients with TLS server name indication support (RFC 4366)
[Sun Jan 27 06:25:23 2013] [notice] Apache/2.2.16 (Ubuntu) DAV/2
SVN/1.6.12 mod_fcgid/2.3.5 mod_ssl/2.2.16 OpenSSL/0.9.8o configured --
resuming normal operations
[Sun Jan 27 07:08:32 2013] [error] [client 208.115.113.83] File does
not exist: /var/www/robots.txt
[Sun Jan 27 07:29:38 2013] [error] [client 5.9.7.208] File does not
exist: /var/www/robots.txt
[Sun Jan 27 07:36:21 2013] [error] [client 89.107.127.37] File does not
exist: /var/www/blog
Wenn ich jetzt folgenden Befehl ausfuehre, erhalte ich allerdings doch
den Inhalt des error.log, obwohl ich eigentlich keine Zugriffsrechte
darauf habe:
blindcoder at pallas:~$ ps aux | grep php
1000 1331 0.0 0.0 159948 3560 ? S Jan28 0:00
/usr/bin/php5-cgi
blindcoder at pallas:~$ ls -l /proc/1331/exe
lrwxrwxrwx 1 blindcoder blindcoder 0 2013-01-30 04:23 /proc/1331/exe ->
/usr/bin/php5-cgi
blindcoder at pallas:~$ ls -l /proc/1331/fd
total 0
lrwx------ 1 blindcoder blindcoder 64 2013-01-30 04:23 0 ->
socket:[640686562]
l-wx------ 1 blindcoder blindcoder 64 2013-01-30 04:23 1 ->
/var/log/apache2/error.log
blindcoder at pallas:~$ head /proc/1331/fd/1
[Sun Jan 27 06:25:22 2013] [notice] Digest: generating secret for
digest authentication ...
[Sun Jan 27 06:25:22 2013] [notice] Digest: done
[Sun Jan 27 06:25:23 2013] [warn] RSA server certificate CommonName
(CN) `anderdonau.de' does NOT match server name!?
[Sun Jan 27 06:25:23 2013] [warn] Init: Name-based SSL virtual hosts
only work for clients with TLS server name indication support (RFC 4366)
[Sun Jan 27 06:25:23 2013] [notice] Apache/2.2.16 (Ubuntu) DAV/2
SVN/1.6.12 mod_fcgid/2.3.5 mod_ssl/2.2.16 OpenSSL/0.9.8o configured --
resuming normal operations
[Sun Jan 27 07:08:32 2013] [error] [client 208.115.113.83] File does
not exist: /var/www/robots.txt
[Sun Jan 27 07:29:38 2013] [error] [client 5.9.7.208] File does not
exist: /var/www/robots.txt
[Sun Jan 27 07:36:21 2013] [error] [client 89.107.127.37] File does not
exist: /var/www/blog
Ist das eine Sicherheitsluecke? Muss das so sein? KANN das vielleicht
gar nicht anders sein? Sehe ich Gespenster?
Schoene Gruesse,
Benjamin
Mehr Informationen über die Mailingliste linux-l