Frage zur Sicherung von Uploads

Rund um die Sicherheit des Systems und die Applikationen
Post Reply
manarak
Posts: 86
Joined: 2004-04-04 17:23
 

Frage zur Sicherung von Uploads

Post by manarak »

Ich möchte Bilderupload anbieten. Wie mache ich das am sichersten, angenommen ich verwende php als modul und apache als user?

Ich habe /tmp auf einer eigenen Partition als noexec nosuid gemountet (owner ist root).

Sollte ich darauf eine /tmp/phptmp anlegen mit owner apache?

Validierung der Bilder mittels exif-Funktion check imagetype oder ähnliches ist klar.

Bringt es etwas wenn move_uploaded_file ein Verzeichnis "über" dem httpddocs als Ziel hat? (d.h. es kann nicht durch URL erreicht werden)?

Den Safe Mode müsste ich mit den richtigen Dateieigenschaften auch noch einschalten können.

Was kann ich noch machen, um den Upload möglichst sicher zu machen?

Gibt es irgendwelche parser die prüfen können, ob es sich bei dem hochgeladenen File um ein Script/Programm handelt?
bungeebug
Posts: 187
Joined: 2004-04-14 10:08
 

Re: Frage zur Sicherung von Uploads

Post by bungeebug »

Naja dein Plan ist schon ganz gut.

/tmp ist relativ sicher gemountet. Wenn du nu die Files movest sollte das in eine ähnlich Umgebung sein ( nosuid noexec ). Du kannst natürlich den Header jeder Datei checken nur weiß ich nicht ob das sonderlich performant ist. Erstes Auswahlkriterium sollte schonmal die Endung sein. Wenn du richtig Resoucren über hast kannste die Datein ja noch mit clamav oder so scannen.
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

Re: Frage zur Sicherung von Uploads

Post by flo »

Das mit der Endung kann man sich unter Linux doch eigentlich sparen ...

Eventuell könntest Du noch die Ausführung von Scripten außerhalb cgi-bin verbieten (wenn Du damit Deinem php-cgi nciht das Wasser abgräbst), Punkte und Pfadtrenner aus den Dateinamen filtern, aber letztendlich 100%ig sicher ist nichts, siehe die letzten Sicherheitslücken innerhalb JPEG- und anderen Bilderroutinen.

flo.
legato
Posts: 115
Joined: 2004-06-03 12:40
 

Re: Frage zur Sicherung von Uploads

Post by legato »

es gibt über die GD lib bei PHP noch die möglichkeit, eine grafik komplett zu resamplen.
Dann sind AFAIK ziemlich sicher keine scripte drin versteckt.
Wie das genau geht kann ich dir grad nicht sagen... sorry, ist lang her und ich hab das script auch nimmer :(
manarak
Posts: 86
Joined: 2004-04-04 17:23
 

Re: Frage zur Sicherung von Uploads

Post by manarak »

hmmm...

ok - mein script verwendet netpbm - ich könnte natürlich jedes Bild von netpbm resamplen lassen. Genügend Rechenleistung hätte ich ja.

Weiss jemand, wie man mod_security so einstellt, dass es alle perl, php und andere programme/binaries herausfiltert?
legato
Posts: 115
Joined: 2004-06-03 12:40
 

Re: Frage zur Sicherung von Uploads

Post by legato »

Da kann ich schon wieder nichts konkretes sagen, allerdings einen Link mit einigen mod_security Regeln.
Da kannst du dir vielleicht ein paar Dinge abschauen...
lufthansen
Posts: 390
Joined: 2002-09-24 17:31
Location: NRW
 

Re: Frage zur Sicherung von Uploads

Post by lufthansen »

flo wrote:Das mit der Endung kann man sich unter Linux doch eigentlich sparen ...
warum den das ?
wenn jemand *.php hochladen kann ist das schon böse ....
bungeebug
Posts: 187
Joined: 2004-04-14 10:08
 

Re: Frage zur Sicherung von Uploads

Post by bungeebug »

Ein php Script kann aber durchaus die Endung *.exe oder *.jpg haben. So gesehen ist die Endung kein wirklicher Schutz sonder nur eine Hürde für Spielkinder.
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

Re: Frage zur Sicherung von Uploads

Post by flo »

LuftHansen wrote:
flo wrote:Das mit der Endung kann man sich unter Linux doch eigentlich sparen ...
warum den das ?
wenn jemand *.php hochladen kann ist das schon böse ....
Ja, stimmt schon, das ist ne Bremse, aber bei einem wirklich geplanten Hack doch eher irrelevant.

Frage in die Runde?
Würde es etwas bringen, bei den hochgelandenen Pfade eine Auslieferung bei leerem Referrer zu blockieren?

flo.
bungeebug
Posts: 187
Joined: 2004-04-14 10:08
 

Re: Frage zur Sicherung von Uploads

Post by bungeebug »

Wahrscheinlich ne Menge unzufriedener Kunden. Die meisten Browser machen das zu "anonymitäts" Zwelcken genau wie viele "Sicherheitspakete".
manarak
Posts: 86
Joined: 2004-04-04 17:23
 

Re: Frage zur Sicherung von Uploads

Post by manarak »

Die Endung muss m.E. nicht geprüft werden.
Das mit dem Referer finde ich auch keine gute Idee, aus denselben Gründen wie bereits erwähnt.

File Validierung scheint mir da viel Sinnvoller.

Wenn es wirklich nur um Bilder geht, kann man die auch einfach alle ausnahmslos resamplen, wie bereits gesagt. Das macht garantiert jeden enthaltenen code unbrauchbar.

mod_security kann man auch einstellen, um zu erkennen, ob eine Datei ein Script enthält.
Für Binaries bin ich mir nicht sicher.
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: Frage zur Sicherung von Uploads

Post by Roger Wilco »

Manarak wrote:Wenn es wirklich nur um Bilder geht, kann man die auch einfach alle ausnahmslos resamplen, wie bereits gesagt.
Wieso? Eine simple Ã?berprüfung mit `file` sollte es in diesem Fall auch tun. Durch das "resamplen" verliert das Bild doch an Qualität und es wird (unverhältnismäßig viel) Rechenleistung benötigt. Oder verwechsele ich hier etwas?
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: Frage zur Sicherung von Uploads

Post by alexander newald »

Upload in ein Verzeichnis, dem ein VHost ohne php und cgi zugeortnet wird.

z.B.

/home/web/ für die normale Webseite z.B. http://www.upload.de
/home/web/images für die Bilder z.B. images.upload.de

Für /home/web/images per .htaccess in /home/web (http://www.upload.de) jeglichen Zugriff sperren

images.upload.de kann dann nur normale Daten liefern, ist also egal, was hochgeladen wurde, da nichts ausgeführt wird.
Post Reply