SZENARIO Folgenden grundlegende Gefahren ist ein Webauftritt ständig ausgesetzt: • SQL Injection: fremde SQL Statements werden in die Opferapplikation eingeschleust und von dieser ausgeführt • Command Injection: Einschleusen (Injizieren) bösartiger Befehle zur Kompromittierung der Funktionsschicht • Cross-Site Scripting: Einschleusen (Injizieren) von bösartigen Programmcode • Directory Traversal: Technik um an nicht öffentliche, aber zugängliche Daten zu kommen • Header Injection: Manipulation von dynamisch generierten Header • Session Hijacking: Technik zur Übernahme einer fremden Session • Session Fixation: Technik zur Session-Manipulation um Session des Angreifers zu privilegieren • Cookie Poisoning: Manipulation von Cookies Bei eine Intrusion Detection System für PHP handelt es sich um ein Skript, das mittels regulären Ausdrücken und einem generischen Ansatz (Zentrifuge-Ansatz) die übergebenen Parameter (GET, POST, COOKIE, REQUEST) überprüft und mögliche Angriffe erkennt. Ein erkannter Angriff wird mit einem “Impact” Wert gekennzeichnet, der angibt, wie schwerwiegend der Angriff ist. Ein Impactwert von 2-5 ist unbedenklich, wobei ein Impact 15 schon sehr hoch ist und eine Reaktion erfordert. Ein sehr hoher Wert (25-50) macht eine Reaktion unbedingt erforderlich. Dabei kommt PHPIDS auch mit exotischen Zeichensätze (UTF-7), JavaScript Unicode, dezimal und hexcode usw. zurecht und erkennt alle gängigen Angriffsmuster wie SQL Injection, Cross-Site Scripting Attacken oder Directory Traversal Zugriffe. Für TYPO3-Auftritte bietet unsere neu entwickelte Erweiterung PHPIDS nextGen nun einen erhöhten Schutz vor Angriffen. Bergisch Gladbach, den 13.03.2014 Ihr Kennziffer-Team Seite 3 von 6 PHPIDS NEXTGEN Die Erweiterung "PHPIDS nextGen" (phpidsng) basiert auf Extbase und Fluid. Sie kann somit in allen TYPO3 CMS Versionen von 4.5.x bis 6.1.x eingesetzt werden. Für den Einsatz auf Systemen mit TYPO3 CMS 6.2 liegt bereits eine gesonderte Erweiterungsversion mit identischen Features vor. Beide Extensions implementieren die aktuellste Version des Intrusion Detection Systems "PHPIDS" – derzeit in Version 0.7. Diese Version ist derzeit nicht als sicherheitskritisch eingestuft. Bei der Implementierung wurde Wert darauf gelegt, dass auch zukünftige Versionen von PHPIDS zeitnah in die TYPO3 CMS - Extension "phpidsng" integriert werden können. Neben den bereits bekannten Features wie • Blocken des Seitenzugriffs • Logging von Angriffsversuchen in Datenbank und Logdatei • Benachrichtigung über Angriffsversuche per E-Mail, jeweils ab dem Erreichen eines IDS-intern berechneten Schwellenwerts, der individuell angepasst werden kann sind folgende neue Funktionalitäten hinzugekommen: • Loggen von Angriffs-IP-Adressen, so dass diese ab einer bestimmten Anzahl von Angriffen automatisch geblockt werden können • Konfigurierbare Zeitspanne, in der Angriffs-IPs geblockt werden sollen • Cronjob zur Freigabe von Angriffs-IPs nach Ablauf der Blocking-Zeitspanne • Weiterleitung bei erkanntem Angriff auf separate Subdomain oder URL • Lauffähig auf jeder TYPO3 CMS Version, die "Extbase" und "Fluid" mitliefert • Erweiterter Debugmodus: Prüfen auf Konfigurationsfehler, Whitelisting von Seiten • Optimierte Default-Schwellenwerte für Logging und E-Mail Benachrichtigungen, so dass Angriffe frühzeitig erkannt werden können • E-Mail-Absendername, -Absenderadresse und -betreff konfigurierbar • Caching von Angriffsvektorendatei in der Datenbank und somit schnellerer Zugriff auf Vektoren bei Angriff als bei Zugriff über die Dateiebene Seite 4 von 6 • Integration von zukünftigen PHPIDS-Versionen möglich, so lange kein komplettes Rewrite von dessen Codebasis erfolgt Warum ist ein IDS notwendig und was macht unsere Erweiterung? PHPIDS dient zur Erkennung von Angriffen auf die Webseite. Dabei werden Zugriffe auf bekannte Angriffsvektoren überwacht und ein numerischer Wert zur Beurteilung der Gefährlichkeit des Angriffs erstellt. Auf Basis dieses Wertes wird gegen verschiedene Schwellenwerte geprüft: Soll der Angriff "nur" protokolliert werden (und wie), muss die weitere Ausführung sofort beendet und/oder eine E-Mail Benachrichtigung an den Administrator generiert werden? Ohne den Einsatz eines solchen "Intrusion Detection Systems" (IDS) ist der Webseitenbetreiber "blind" für Angriffe. Eventueller Datendiebstahl oder die Manipulation von Daten bzw. des Servers etc. bleiben verborgen. Erst Kunden oder Fehlfunktionen führen zur Entdeckung eines Einbruchs. Potentieller Datendiebstahl lässt sich ohne dieses Monitoring nur schwerlich entdecken. Warum brauchen wir ein neues IDS? Mit dem letzten Security-Bulletin des TYPO3 Security Teams verschwand unsere alte Monitoring-Erweiterung aus dem TER, da sie Sicherheitslücken aufwies. Es wurde keine aktualisierte Version mehr zur Verfügung gestellt und die sicherheitskritische Extension musste von allen Kundenauftritten entfernt werden. Um weiterhin Angriffe auf Kundenauftritte entdecken und auswerten zu können, haben wir eine eigene Erweiterung implementiert, die eine aktuelle Version von PHPIDS verwendet und auf allen TYPO3 CMS Versionen ab 4.5.x einsatzbereit ist. Außerdem wurden weitere Sicherheitsmechanismen integriert, die unserer Erfahrung nach einen erheblichen Mehrwert bieten. Worin liegen die Vorteile? Gegenüber unserer alten Monitoring-Erweiterung kann in die neu entwickelte IDS-Erweiterung eine aktualisierte Version des PHPIDS-Frameworks jederzeit integriert werden, ohne größeren Aufwand zu verursachen. Außerdem wird bereits der Einsatz auf der neuen LTS-Version 6.2 sicher gestellt, so dass eine lückenlose Abdeckung aller TYPO3 CMS Versionen seit 4.5.x möglich ist. Zusätzlich kann nun auf massive Angriffe auf Webauftritte effektiver reagiert werden: Seite 5 von 6 • durch Umleitung auf eine Subdomain oder eine andere Domain • durch das Blocken von einer konfigurierbaren Schwelle von Angriffen der gleichen IP-Adresse • generelles Blocken von IPs für eine vordefinierte Zeitspanne Seite 6 von 6