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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

einen geeigneten Filter schreiben. PERL eignet sich hervorragend zur Erstellung von<br />

Filtern, sofern es im »tainted mode« gestartet wird. In diesem Modus werden alle<br />

Variablen, die Daten von »außen« übergeben bekommen, als »verdorben« markiert.<br />

Übergibt man Parameter von »verdorbenen« Variablen an Programme oder<br />

Betriebssystemroutinen, so werden diese nicht ausgeführt. Ein sinnvoller Schutz. Daüber<br />

hinaus ist PERL eine interpretierte Sprache, die selber keine »buffer overflows« kennt, da<br />

es keine Längenbegrenzung bei Variablen gibt. Alle Speicheranforderungen <strong>für</strong> Variablen<br />

erfolgen dynamisch. JAVA ist ebenfalls eine Interpreter-Programmiersprache, die so<br />

designt wurde, daß alle Operationen völlig vom Betriebssystem abgeschirmt werden<br />

können.(SANDBOX) Versuche mit C, C++ oder Visual Basic sind mit Vorsicht zu<br />

betrachten, schließlich kann der Filter auch Angriffsziel sein, wenn auch nicht <strong>für</strong> einen<br />

funktionierenden »exploit«, aber in den meisten Fällen reicht es dann <strong>für</strong> einen DoS<br />

Angriff aus. Es ist also erhöhte Vorsicht beim Programmieren eines solchen Filters<br />

geboten. Überlegenswert ist es, ob man dedizierte Hardware hier<strong>für</strong> einsetzt <strong>und</strong> diese mit<br />

<strong>Firewall</strong>s noch einmal sichert. Alternativ kann man auch einen Dämon/Dienst einsetzen,<br />

dessen Fehler stets veröffentlicht werden, sodaß man präventiv stets die neuesten<br />

Patches einspielen kann. Eine Garantie kann prinzipiell nur bei Software gegeben werden,<br />

die auch im Quellcode verfügbar <strong>und</strong> somit überprüfbar ist. Einige Hersteller haben die<br />

Neigung, nur dann Fehler zu korrigieren oder zuzugeben, wenn sie massiv damit<br />

konfrontiert werden. Hierzu gehört insbesondere Microsoft. Auch dann ist es noch eine<br />

Frage, wann die Fehler korrigiert werden. Eine Konsequenz daraus hat IBM gezogen. IBM<br />

supportet nun offiziell z.B. den Apache WWW-Server, der u.a. auch in <strong>LINUX</strong> <strong>und</strong> BSD-<br />

UNIX eingesetzt wird. Die Netfinity-Serie wird im Prinzip mit vielen <strong>LINUX</strong><br />

Softwarekomponenten ausgeliefert (GNU Software). Hersteller, wie HP, DEC u.s.w.<br />

setzen diese Software auch ein. Software, die Datenströme filtern kann, gibt es in großer<br />

Zahl. Sie unterscheiden sich erheblich in Qualität <strong>und</strong> Funktionalität. Sie sind zumeist in<br />

PERL oder in JAVA geschrieben. Fast alle sind im Quellcode verfügbar, aus<br />

nachvollziehbaren Gründen. Einige <strong>Firewall</strong>s haben Filtersprachen eingebaut, es muß<br />

aber vorher abgeklärt werden, ob diese <strong>für</strong> alle Dienste anwendbar sind. Application level<br />

Gateways (PROXY´s) besitzen manchmal nur minimale Filtermöglichkeiten, die nur<br />

einzelne Befehle einiger Dienste (www,ftp..) filtern können. Es sollte unbedingt darauf<br />

geachtet werden, daß diese Filter sowohl die Befehlssyntax, als auch die Länge der<br />

übergebenen Parameter filtern können. Nur beide Eigenschaften zusammen können<br />

ausreichend Schutz gegen »buffer overflows« bieten. SUN geht andere Wege <strong>und</strong> ersetzt<br />

successive alle Dämonen unter UNIX durch deren JAVA Pendants. Diese Konzeption ist<br />

so vielversprechend, daß es auch eine größere Zahl von freien JAVA Dämonen gibt, die<br />

teilweise Filtermöglichkeiten direkt eingebaut haben, <strong>und</strong> so in der Lage sind, auch SQL-<br />

Server zu sichern. (Jigsaw)<br />

Die CPU <strong>und</strong> »buffer overflows«<br />

Völlig neu mag der Hinweis erscheinen, bei Servern, die sensible Daten hosten, eine nicht<br />

übliche CPU einzusetzen. Viele Angriffe könne sogar von Laien mittels fertiger<br />

Angriffswerkzeuge aus dem Internet ausgeführt werden. Diese finden sich zumeist in<br />

Form von "buffer/heap overflows" schon fertig kompiliert <strong>für</strong> INTEL/ ALPHA/ SPARC-<br />

Prozessoren auf einschlägig bekannten Servern. Nur wenige Personen jedoch verfügen<br />

über die nötigen Kenntnisse, einen "buffer overflow" derjenigen Art, wie sie monatlich zu<br />

dutzenden verbreitet werden, auf andere Prozessoren, z.B. ARM, MIPS o.ä. zu portieren.<br />

Hierzu sind weitreichende Assemblerkenntnisse <strong>und</strong> Praxis im Umgang mit Debuggern<br />

notwendig. Kommt z.B. NetBSD oder <strong>LINUX</strong> auf ARM-Prozessoren zum Einsatz, so ist<br />

das Risiko, daß ein Angriff direkt beim ersten Versuch zum Erfolg führt, äußerst gering.<br />

Der Angreifer benötigt dann mehrere Versuche, um erfolgreich zu sein, was das Risiko der<br />

Entdeckung stark erhöht. Auch sollten in einer Kaskade von <strong>Firewall</strong>s niemals dieselben<br />

Prozessoren zum Einsatz kommen. Dasselbe trifft auch auf die (fast noch wichtigeren)<br />

Log-Server zu, da ohne diese "Dokumente" ein Einbruch nicht bemerkt werden kann.<br />

Helfen »wrapper« <strong>und</strong> »chroot()«?<br />

Wrapper, wie sie unter UNIX häufig eingesetzt werden, installieren sich zwischen Kernel<br />

<strong>und</strong> Dämonen. Hauptgr<strong>und</strong> ist, daß unter BSD-UNIX Ports unterhalb von 1024 als<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!