05.02.2013 Aufrufe

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5. Wenn Dateien zum Schreiben eröffnet werden:<br />

1. wenn der Dateiname in Abhängigkeit von Angaben eines Angreifers<br />

gewählt wird,<br />

2. die zu kreierende Datei in einem vom Angreifer beeinflußbaren<br />

Verzeichnis liegt, oder<br />

3. wenn der Dateiinhalt beeinflußt werden kann.<br />

6. Eine typische Falle kann hier die Mächtigkeit von open() darstellen. Während<br />

open(OUT, $filename) recht harmlos aussieht, wird dies zum idealen<br />

Angriffspunkt, wenn beispielsweise $filename am Ende ein Pipeline-Zeichen<br />

erhalten kann oder wichtige Systemdateien (wie z.B. /etc/passwd) bedroht<br />

werden können.<br />

7. Selbst wenn auf $filename kein Einfluß ausgeübt werden kann, kann das<br />

Anlegen temporärer Dateien in öffentlichen Verzeichnissen (z.B. /tmp) zur<br />

tödlichen Falle werden, wenn dort der Angreifer zuvor einen symbolischen<br />

Verweis auf /etc/passwd <strong>für</strong> den zu erwartenden Dateinamen hinterließ.<br />

8. Natürlich sind auch viele weitere Systemaufrufe gefährlich wie z.B. mkdir,<br />

chmod, chown usw.<br />

9. Perl selbst ist zwar immun gegen den Hauptangriffspunkt bei in C<br />

geschriebenen Programmen auf Basis von Puffer-Überläufen, jedoch sind<br />

möglicherweise in C geschriebene Programme oder hinzugeladene<br />

Bibliotheken bedroht.<br />

10. Typische Fallen sind hier Umgebungsvariablen (z.B. HOME), die auf extrem<br />

lange Werte gesetzt werden <strong>und</strong> damit aufgerufene Shells zur Ausführung mit<br />

übergebenen Codes des Angreifers bringen können (diese Technik ist als<br />

stack smashing bekannt). Weitere Kandidaten sind die Umgebungsvariablen<br />

USER oder LOGIN, bei denen häufig naive Annahmen über deren maximale<br />

Länge gemacht wird.<br />

11. Weitere Probleme kann es mit (ansonsten überprüften)<br />

Kommandozeilenargumente geben, die zu lang sind.<br />

12. Auch Eingaben, die über eine Pipeline an ein fremdes Programm erfolgen,<br />

können einen Angriffspunkt darstellen, wenn z.B. gets statt fgets auf der<br />

einlesenden Seite verwendet wird.<br />

13. Häufig werden solche Sicherheitsaspekte bei Hilfsprogrammen nicht<br />

beachtet, da sie alleine genommen kein Sicherheitsrisiko darstellen.<br />

30.3 Lösungsmöglichkeiten<br />

1. Bei Skripten mit s-bit sind gr<strong>und</strong>sätzlich alle Umgebungsvariablen mit<br />

äußerster Vorsicht zu behandeln, wenn irgendwelche Kommandos oder<br />

Pipelines gestartet werden. Insbesondere sind PATH <strong>und</strong> IFS neu zu setzen<br />

<strong>und</strong> alle anderen Umgebungsvariablen sollten in ihrer Länge begrenzt<br />

werden.<br />

2. Jeder Systemaufruf open() <strong>und</strong> jeder Aufruf von system() sollten ganz genau<br />

daraufhin untersucht werden, inwieweit hier Abhängigkeiten von den<br />

Eingaben eines Angreifers vorliegen.<br />

3. Temporäre Dateien sollten in privaten Verzeichnissen angelegt werden, die<br />

<strong>für</strong> niemanden sonst zugänglich sind oder es sollte mit O_EXCL <strong>und</strong><br />

O_CREAT gearbeitet werden (dies empfiehlt sich übrigens generell!).<br />

4. Generell sollte überprüft werden, welche Privilegien tatsächlich wie lange<br />

notwendig sind:<br />

1. Es ist möglicherweise sinnvoll, den Prozeß (ggf. ab einem<br />

bestimmten Zeitpunkt) oder einen Kindprozeß unter einer chroot-<br />

Umgebung oder unter einer Benutzerberechtigung laufen zu lassen,<br />

die nur sehr wenig Rechte gibt.<br />

2. Ein Prozeß, der mit der Außenwelt in Verbindung steht, kann unter<br />

sehr restriktiven Bedingungen laufen <strong>und</strong> alle gefährlichen<br />

Operationen an einen weiteren Prozeß mit normalen Privilegien<br />

Erstellt von Doc Gonzo - http://kickme.to/plugins

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!