Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 16:55

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



PHP Webscript als "Ersatzfirewall"?

Discussion on PHP Webscript als "Ersatzfirewall"? within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1

 
Synatex's Avatar
 
elite*gold: 25
Join Date: Apr 2010
Posts: 1,009
Received Thanks: 316
PHP Webscript als "Ersatzfirewall"?

Hi Leute!

Also vorerst: Ich bitte darum das hier wirklich nur Leute posten die sich gegebenenfalls schon einmal mit dem ganzen Thema ausseinandergesetzt haben. Leute die auf Cloud-Lösungen schwören wie Hyperfilter und Co die das ganze "angeblich" schützen, können hier auch raus bleiben.

Ich hab mich in den letzten Monaten, teils privat teils beruflich, mit Sicherheiten rund um DoS und SYN-Flood attacken ausseinandergesetzt. Viele der privaten Serverbesitzer schwören ja auf Cloud-Lösungen wie Cloudfare und Hyperfilter die ja nur begrenzt was bringen.. Ist ja so als wenn ich mit nem Bodyguard rumlaufe, ein bisschen was hält der ab, erschossen werden kann ich trotzdem ohne Probleme.

Man hat ja im Grunde genommen 3 verschiedene "Stationen" in die man sich einhängen kann: Hardware, OS, Webserver.

Da zu 99% die Hardware nicht zugänglich ist, müssen wir ja auf das OS zurückgreifen um dort Abfragen "abzufangen". In dem Fall simulieren wir mal das ganze mit einem Linux Server welcher ja meist anzutreffen ist. Dort haben wir ja unsere IPTables.

Nun war meine Idee, während dieser "DDoS/DoS" Attacken eine Art Gateway dazwischen zu hängen, so wie es Cloudfare und co. tuen. Das Problem ist hier ja das der Angreifer bereits bis zum Webserver durchgedrungen ist und aus diesem Grund relativ schnell gehandelt werden muss wenn man seine Webseite noch erreichen möchte. Meine Idee(n) war(en):
  • Wenn ein Request kürzer als 2 Sekunden dauert, die Verbindung einfach per Header zu schließen.
  • Sobald mehrere IP's (kurzer zwischenspeicher in einem Textfile) aus der gleichen Range auf die Webseite zugreifen, die Range in den IPTables kurzweise sperren.
  • Durch netstats filtern, welche IP's dauerhafte Verbindungen aufbauen und wieviel Traffic sie verursachen (eine Art KI entwickeln, was wohl das schwerste ist, um positiven/negativen Traffic zu filtern)
  • Falls zuviel Traffic durchgekommen ist, temporär eine .htaccess Datei erstellen wo die Bots dann alle gegen eine Wand laufen.

Das wären primär die Ideen. Durch die .htaccess und IPTables Blockade sollten dann rund 80% der Requests optimalerweise gefiltert werden. Natürlich ist das kein Schutz gegen den ultimativen mega DDoS - den können ja selbst nicht mal die großen Portale aushalten, da müsste man aber auch Hardwaremäßig was dran machen.

Aber für das handelsübliche Kleinunternehmen oder die Privatperson sollte dieses Script doch eine recht kluge und ggf. günstige Alternative gegenüber anderen Cloud-Anbietern sein.

Kennt ihr sonst noch interessante Wege wie man den Traffic ausseinander halten könnte? Das Load Balancing muss dann jeder für sich selber machen, das ist ja wohl relativ klar.
Synatex is offline  
Old 01/01/2013, 02:49   #2
 
Hiris's Avatar
 
elite*gold: 99
Join Date: Apr 2011
Posts: 730
Received Thanks: 236
Absolut schmarn, man kann Ddos nicht mit script verhindern.

Die einzige sichere Möglichkeit ist mehr Bandbreite als der Angreifer aufzuweisen, punkt ende aus, jede andere Sicherheit kann umgangen werden wenn der Angriff nicht von einem Idioten ausgeführt wird. Oder man hat ein riesiges Rechenzentrum und ist in der Lage die Ips vernünftig zu bannen, aber das schafft man mit einem einzelnen Server oder sogar einem Server Netz selbst gegen einen 10€ Booter nicht.

Du KANNST keine Ip´s filtern weil der server selbst bei einem 5 € booter INSTANT down ist und garnicht dazu kommt etwas zu loggen geschweige denn zu filtern - Aber bei Interesse können wir gerne einen Test laufen, könnte dir 8 Gb/s + zum testen anbieten ob deine Methoden einen effekt zeigen, aber da selbst Games mit über 100k Spielern bei sowas down gehen wage ich das mal stark zu bezweifeln
Hiris is offline  
Thanks
2 Users
Old 01/01/2013, 10:28   #3

 
Synatex's Avatar
 
elite*gold: 25
Join Date: Apr 2010
Posts: 1,009
Received Thanks: 316
Hier geht es eben nicht nur darum das mithilfe eines Scripts zu verhindern sondern das ganze nur abzuschwächen. Wie schon bereits oben gesagt, bei den größeren Attacken sollte man auf die alternativen zur Hardwaresicherung zurückgreifen.. Ich stelle nur gerade den Vergleich an mich selber, in welchem Bezug man dies zu den Cloud-Lösungen stellen könnte. Wenn ein paar Leute an einer 100Mbit Leitung rumkratzen, dann kann das ja durchaus schon zu Lags führen - und um genau diese kleinen Attacken die ja meist von "Idioten" ausgeführt werden, wäre das doch sehr gut.

Warum sollte ich keine IP's filtern können? Das Problem ist doch, dass die Leitung beim DDoS belegt ist. Somit kann ich nichts gegen den Angreifer unternehmen, habe keine Möglichkeit zu schauen wie der Traffic läuft. Wenn der Webserver aber weiterhin läuft (was ein richtig konfigurierter Apache bzw. NGINX bei gut 1000 req/sek noch schafft) und dann die Scripts relativ schnell einspringen könnne ja ein paar IP's bereits gebannt werden.

Somit hätte man wenigstens einen kleinen Teil vom Server, der durch die IPTables wegfällt und die dann mit Ihrer Verbindung ins leere laufen.

Das mit der Bandbreite ist ja auch irgendwie mist. Wenn man die Requests über nen Switch auf 2-3 Server verteilt und den negativen Traffic bereits da filtert, warum sollte man dann nicht die Möglichkeit haben mit ner 1Gbit Leitung dem DDoS Stand zu halten?
Synatex is offline  
Old 01/01/2013, 15:00   #4
 
Hiris's Avatar
 
elite*gold: 99
Join Date: Apr 2011
Posts: 730
Received Thanks: 236
Weil es nicht geht, kleinere Angreifer gibt es kaum noch, wie gesagt ab 5€ kannst du schon Sachen kaufen die Browsergames wie O-Game down gehen lassen und die werden schon entsprechend versucht haben sich zu schützen^^

Cloud Lösungen bringen dir die Bandbreite die du brauchst um Angriffe abwehren zu können und zwar soviel das du NICHT geddost werden KANNST außer jemand steckt da 50 000 € rein dafür musst du dann auch 300€ im Monat bezahlen, die Alternative ist CLoudlare kostenlos und so konfigurieren das Cloudflare Resolver nichts ausgeben, dann kriegt er nie deine echte Ip raus und kann entsprechend auch nicht angreifen, außer er atackiert die Cloudflare Server was relativ hoffnungslos ist.

Das mit dem Verteilen der Anfragen wird zu 99% auch nicht funktionieren, aber wir können es wie gesagt gerne testen, wenn du eine Möglichkeit findest die selbst 100 Mann+ starke Entwicklerteams nicht gefunden haben dann ist das super und ich sage nichts dagegen, halte es wie gesagt halt nur für unwahrscheinlich^^

Edit: Ein normales Syn Angriffs Packet ist gefaked, d.h. es gibt sich nur als eins aus und kann nicht bearbeitet werden, das belastet den Server da er bis zum Timeout warten muss aber du kannst das Packet nicht irgendwie mit PhP in eine Richtung lenken, da es garnicht davon tangiert wird, ähnliches gilt für UDP , Slowlaris und DrDDos flood
Hiris is offline  
Thanks
1 User
Old 01/02/2013, 01:59   #5
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,876
Die einzige sinnvolle und auch gut Lösung ist, in meinen Augen, ein Rechennetz, in welchem die Last auf mehrere Server verteilt wird.
Am besten mit separaten Internet-Anbindungen.

Zusätzlich ein kleines IP-Bann-Skript einzubauen ist trotzdem besser als gar nichts.

Um gegen Syn-Flood-Angriffe anzugehen gibt es 2 Möglichkeiten.

Die Erste wäre per pattern matching die falschen Pakete zu finden und zu filtern, was jedoch nur möglich ist, wenn die Pakete nicht auf das Ziel zugeschnittene Pakete sind.

Die 2. Möglichkeit ist es jedes Syn-Paket vorerst als valide anzusehen und den Paketen direkt zu antworten. Das Problem hierbei ist jedoch, dass der Server einen hohe Leistung erzielen muss, da er bei einer 1 Gbit/s Leitung im schlechtesten Fall 1 Millionen Pakete pro Sekunde beantworten muss.
Die Pakete, die dann echt sind, werden an den zu schützenden Server weitergeleitet (wenn ich mich nicht irre machen das so auch alle großen DDoS-Schutz-Anbieter).

Die beste Methode ist aber immer noch ein Rechennetz aufzustellen mit separaten Internet-Anbindungen. Die Last muss dann auf die Server gleichmäßig verteilt werden und dann wird ein effektiver Angriff schwer.
Problem hierbei sind einfach die Kosten und das oft fehlende Know-How, mal eben so ein kleines Rechennetz aufzustellen ist alles andere als billig und einfach.

Wenn wir nicht von einem Webserver reden ist eine weitere Möglichkeit (wenn auch eher "witzige" Lösung), einfach jedes mal beim Angriff die Server-Ip zu wechseln. Diese Lösung ist aber eher als "Scherz" anzusehen als als eine effektive Lösung.

P.S.
Mit einem Server und irgendwelchen Skripten hast du jedoch nahezu keine Chance dich gegen einen DDoS-Angriff zu schützen.
Shadow992 is offline  
Thanks
1 User
Old 01/05/2013, 15:47   #6
 
elite*gold: 0
Join Date: Nov 2011
Posts: 69
Received Thanks: 14
Die meisten DoS Attacken sind auf TCP-IP-Basis. Denke mal 3 Wege-Handshake ist klar. Jetzt denk mal darüber nach wo dein PHP-Script erst ansetzen würde. Dann fällt dir auf, dass das nicht soviel bringt. Du willst ja "vorher" eingreifen. Also müsste dein Script schon vor dem eigentlichen Aufbau der Verbindung aktiv werden.
Quote:
Wenn wir nicht von einem Webserver reden ist eine weitere Möglichkeit (wenn auch eher "witzige" Lösung), einfach jedes mal beim Angriff die Server-Ip zu wechseln. Diese Lösung ist aber eher als "Scherz" anzusehen als als eine effektive Lösung.
Selbst wenn es kein Webserver ist macht das keinen Sinn. Beim Webserver bekommst du DoS-Angriffe über das DNS(Daher IP-Change sinnlos). In dem Zusammenhang sollte noch der immer mehr in Mode kommende DRDOS erwähnt werden.

Du hast halt nur 4 mögliche Optionen:

Die ersten beiden stehen oben. Wobei Variante zwei von Shadow992 denk ich mal für dich nicht in Frage kommt.

Variante 3 wäre halt eine sichere Verbindung bzw. über Verschlüsselung oder erweiterte TCP-IP Pakete. Aber das wird wohl eher auch nicht in Frage kommen.

Variante 4: Das ist die komplizierteste Methode, wäre Variante 3 mit erweiterter DMZ. Wo dein eigentlicher Server nicht drinn wäre. Aber das wird auch schwierig umzusetzen Zwecks der Kosten.

Du musst dir einfach mal vielleicht auch eine andere Frage stellen: Lohnt sich der Aufwand? Wie gut besucht ist die Webseite? Je unbekannter die Seite desto sicherer ist diese auch.
disortion is offline  
Old 01/07/2013, 06:28   #7
 
elite*gold: 0
Join Date: Jan 2013
Posts: 14
Received Thanks: 12
Sowas wäre kein Problem, dann läuft das Script jeden Zugriff durch, wie ein "Gateway".
DirtySchwarzbrot is offline  
Reply




All times are GMT +2. The time now is 16:55.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.