[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