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
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