Anzeige
Anzeige
UX & Design
Artikel merken

Neue Möglichkeiten der Interaktion benötigen einen verstärkten Schutz: Anwendungen im Web 2.0 absichern

Angriffe auf Webanwendungen mit Content Management Systemen oder Shops haben sich in den letzten Monaten zu einem Kernproblem entwickelt. Der Grund ist, dass je umfangreicher und sensibler die transportierten Daten sind, desto lukrativer wird auch der Versuch, sie auszuspionieren. Herkömmliche Sicherheitslösungen wie Firewalls oder IDS/IPS bieten dagegen nicht mehr in jedem Fall einen ausreichenden Schutz. Auch war das HTTP-Protokoll nie für komplexe Anwendungen konzipiert. Für Webentwickler heißt das: Augen auf und kreative Lösungen finden.

5 Min. Lesezeit
Anzeige
Anzeige

Zu den häufigsten Attacken auf Community-Sites gehört die „SQL-Injection“. Sie sieht auf den ersten Blick aus wie eine harmlose Anfrage. Wenn jedoch der Angreifer im Eingabefeld „Name“ statt des Nachnamens einen SQL-Befehl eintippt und der Befehl akzeptiert wird, kann er auf diesem Wege ohne Berechtigung sensible Informationen aus der Datenbank anfordern. Bösartige Requests in großer Menge können sogar ganze Webanwendungen lahmlegen. Ein Hacker könnte einen String übergeben, wie zum Beispiel „1 OR 1“:

SQL
$value = $_GET['value'];
$GLOBALS['TYPO3_DB']->exec_SELECTquery('*', $this->user_table, 'uid='.$value );

Listing 1

Anzeige
Anzeige

Die Abfrage endet dann folgendermaßen:

SQL
$GLOBALS['TYPO3_DB']->exec_SELECTquery('*', $this->user_table, 'uid=1 OR 1 );

Listing 2

Das liefert als Ergebnis alle rows von „$this->user_table“. Dagegen schützt nur die Validierung aller Eingaben, die bei der SQL-Abfrage genutzt werden.

Anzeige
Anzeige

Weitere Attacken

„Man-in-the-middle-Attacken“ sind sehr aufwändig und werden hauptsächlich gegen Banken verwendet. Dabei schaltet sich der Datendieb zwischen die beiden Kommunikationspartner – beispielsweise Verkäufer und Kunde. Da nach dem Janusprinzip beiden Teilnehmern der jeweils andere vorgespiegelt wird, gelingt es ihm, Datenströme an seine Adresse umzulenken.

Anzeige
Anzeige

Unter „Session Riding“ versteht man die unberechtigte Übernahme einer HTTP-Session. Kommandos werden in eine bestehende Session eines Benutzers eingeschmuggelt. Die Kommandos werden dann mit den Rechten des angegriffenen Benutzers ausgeführt. Beim „Session Hijacking“ übernimmt der Angreifer die gesamte Session des Benutzers und kann so mit den Rechten des Benutzers arbeiten. Beide Session Attacken werden vornehmlich bei Shops, Partnerportalen oder auch bei eBay verwendet.

„Cross Site Scripting“ (XSS) zielt vor allem auf Foren- und Portalsysteme sowie auf Web 2.0-Anwendungen und versucht, den Browser dazu zu bringen, bestimmte Aktionen im Namen des legitimen Benutzers durchzuführen. Besondere Vorsicht ist mit Ausgaben von unvalidierten Eingaben mittels „echo“ angebracht. Code wie „echo $_REQUEST[‚value‘];“ kann für Besucher einer Webanwendung gefährlich sein.

Anzeige
Anzeige

„Visual Spoofing“ bezeichnet einen Angriff, bei dem einem Anwender suggeriert wird, er befände sich in einer vertrauten, gesicherten Umgebung. Tatsächlich werden jedoch auf einer manipulierten Webseite Originalelemente des Browsers durch Plagiate ersetzt. Zum Beispiel wird ein Schloss-Symbol in der Statuszeile dargestellt, auch wenn keine gesicherte HTTPS-Verbindung besteht. Ein Doppelklick darauf öffnet ein gefälschtes Dialogfenster, das ein vermeintlich vertrauenswürdiges Zertifikat anzeigt. Das Vorgehen wird auch „Phishing“ genannt und ist hauptsächlich im Finanzbereich anzutreffen. Überprüfen Sie bei Bankbesuchen immer die URL. Bei „Brute-Force-Attacken“ werden alle möglichen Kombinationen einer Eingabe, zum Beispiel einer Session-ID, ausprobiert, um einen gültigen Wert zu ermitteln. Solche Attacken treffen in erster Linie die Server selbst. Deshalb gilt es, ein gutes Root-Password zu nutzen und es häufig zu wechseln. „Cookie Manipulation“ bezeichnet das Ändern der Werte von Cookies, die Web-Applikationen im Webbrowser des Benutzers hinterlegen, um einen Status zu speichern. Normalerweise gibt der Browser die Cookies unverändert an die Applikation zurück.

Serversicherheit

Es gibt keine 100-prozentige Sicherheit, deshalb sind regelmäßige Server-Updates ein Muss. In aktuellen PHP-Versionen sind Sicherheitseinstellungen bereits relativ gut definiert. Einstellungen wie „Register_Globals=On“ oder ähnliches gehören schon lange nicht mehr zur Standardeinstellung. Darüber hinaus sollten folgende Einstellungen in der „php.ini“ verändert werden:

PHP
allow_url_include = Off

Listing 3

Dadurch wird verboten, dass URLs (z. B. http:// oder ftp://) in Verbindung mit „include()“- oder „required()“-Anweisungen verwendet werden können.

Anzeige
Anzeige
PHP
allow_url_fopen = Off

Listing 4

Über die Direktive „allow_url_fopen“ kann PHP eine URL wie eine lokale Datei behandeln und URLs an jede PHP-Funktion, die einen Dateinamen erwartet, etwa „readfile()“ oder „fopen()“, übergeben. Wird das nicht ausgeschaltet, erhalten Angreifer die Möglichkeit, Remote-Code auf dem Server ausführen zu lassen.

Bei MySQL sollte jeder Account, der Rechte auf mehrere oder alle Datenbanken hat (Admin-Account), nur über den Localhost verwendet werden. Wenn kein externer Zugriff auf die Datenbank benötigt wird und die Datenbank über Sockets ansprechbar ist, lässt sich die komplette Netzwerkfunktionalität des MySQL-Daemon mit folgender Anweisung in der „my.cnf“-Datei abstellen:

PHP
skip-networking

Listing 5

Ein erlaubter externer Datenbankzugriff bedeutet immer ein gewisses Risiko, da der Server zum Beispiel über eine Brute-Force-Attacke angegriffen werden kann. Folgende Anweisung bindet den Server an eine feste IP- Adresse:

Anzeige
Anzeige
PHP
bind-address = 192.168.0.1

Listing 6

Bei der Nutzung von externen Datenbanken empfiehlt sich, eine SSL-Verbindung, VPN oder einen SSH-Tunnel zu verwenden, um die Daten verschlüsselt zu übertragen. Wenn als IP die 127.0.0.1 genutzt wird (also der Localhost), kann mit folgender Anweisung die Namensauflösung deaktiviert werden:

PHP
skip-name-resolve

Listing 7

Wie sicher ist TYPO3?

Neben Methoden zur Absicherung des Webservers muss auch die Webanwendung über ein ausgereiftes Sicherheitskonzept verfügen, um die Sicherheit des Gesamtsystems zu gewährleisten. Dabei geht von den Extensions die größte Gefahr für eine TYPO3-Installation aus. Damit die Sicherheit für einzelne Webseiten gewährleistet ist, sollte "AllowGlobalInstall" deaktiviert sein. Damit ist sichergestellt, dass kein gefährlicher Code in das „src-Verzeichnis“ kommt. Überhaupt sollte man versuchen, mit den Extensions auszukommen, die vom Sicherheitsteam (typo3.org) kontrolliert wurden. Sie bieten eine relativ hohe Sicherheit und sind am Vermerk „reviewed“ zu erkennen.

TYPO3 verfügt über eine ausgeklügelte Benutzerverwaltung, sowohl für Frontend- als auch für Backend-Benutzer. Durch das einfache Gruppieren von Benutzern und das Verwalten von Backend-Zugriffen mittels ACL (Access Control List) hat der Administrator tiefgehende Optionen, die manipulierbar sind. Einziger Nachteil ist, dass TYPO3 die Frontend-Benutzer mit dem Passwort in Klartext speichert. Das Problem kann aber mit einer Extension gelöst werden (kb_md5fepw) [1]. Viele weitere Hinweise zur Absicherung gibt es im TYPO3-Security-Cookbook [2].

Anzeige
Anzeige

Web-Application-Firewall (WAF)

Einen guten Schutz gegen eine Vielzahl von Angriffen auf Webanwendungsebene bietet die Open-Source-Lösung „ModSecurity“. Ohne Eingriffe in bestehende Netzwerkinfrastrukturen ermöglicht sie zudem "HTTP traffic monitoring" sowie Echtzeit-Analysen. Das benötigte Regelwerk muss dabei über die systemeigene „RuleLanguage“ in die config-Datei eingepflegt werden.

PHP
SecRule REQUEST_URI|ARGS|REQUEST_BODY "highlight=.*(\'|\%[a-f0-9]{4})(\.|\/|\|\%[a-f0-9]{4}).+?(\'|\%[a-f0-9]{4})"

Listing 8

Web-Applikationen mit Content Management Systemen oder Onlineshops schützt die professionelle Lösung „web of defence“ vor Angriffen. Auch vor solchen, die von keiner herkömmlichen Sicherheitslösung wie Firewall oder Antivirusprogramm erkannt und abgewehrt werden. Dazu zählen SQL-Injection, Web-Defacement, XSS oder Session-Manipulationen. Die Lösung identifiziert und klassifiziert Angriffe und verhindert unberechtigte Zugriffe auf die hinter der Webanwendung liegenden Datenbanken und operativen Systeme. So bleiben geschäftskritische oder sensible Informationen wie Kundendaten und Produktinformationen sicher – vor allem auch während laufender Transaktionen, wenn die Systeme offen und damit angreifbar sind.

Fazit

Durch die wachsende Interaktion zwischen Webseiten und Benutzern im Web
2.0 einerseits und die dafür eingesetzten Skripte (Ajax) andererseits
entstehen neben dem erhöhten Komfort auch viele neue Angriffsflächen für den Datenklau und anderen Missbrauch. Damit verändern sich
in puncto Sicherheit auch die Anforderungen an Entwickler. Letztlich werden der wirtschaftliche Erfolg und die Konkurrenzfähigkeit in Zukunft nicht nur von funktionierender IT bestimmt, sondern genauso von der gebotenen Sicherheit. Dem Faktor Kundenvertrauen kommt eine zentrale Bedeutung zu, die nicht unterschätzt werden sollte.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige