Wer bloggt hier?

Foto Bettina Ramm

Bettina Ramm, Die WEB-Architektin, programmiert Websites und Webanwendungen. Ihr besonderes Interesse gilt Webstandards, sicheren Websites und der Web-Performance.

Kontakt

Xing Button

Twitter

Tel. +49 (0)3338 759775

Impressum

Newsletter abonnieren

WEB-Häppchen

Achtung!

Mein neues Blog finden Sie unter www.web-häppchen.de

 

Jochen Weiland hat im T3N-Magazin 15 eine Checkliste für sichere Typo3-Anwendungen veröffentlicht. Davon habe ich mich zu einer allgemeinen Checkliste für sichere Websites inspirieren lassen (und dabei ist es egal, ob und welches CMS-, Blog- oder sonstiges System Sie verwenden).

Sichere Anwendungen im Web fangen in erster Linie bei der Programmierung an. Das SANS Institut hat eine Liste der 25 populärsten Programmierfehler erstellt und Jan Walther hat sie grob ins Deutsche übersetzt.

Als Anwender oder Eigentümer einer Website werden Sie in aller Regel nicht allzu viel Einfluss auf die Qualität des Quellcodes haben (außer indem Sie Ihren Programmierer sorgfältig auswählen). Aber darüber hinaus gibt es Einiges, mit dem Sie doch die Sicherheit Ihres Webauftritts oder Ihrer Webanwendung erhöhen können.

1. Sichere Kennwörter

Dazu habe ich vor einiger Zeit schon einmal etwas geschrieben. Sichere Kennwörter sind möglichst Wörter, die nicht im Wörterbuch zu finden sind und die aus einer Kombination von Buchstaben, Zahlen und Zeichen bestehen. Wenn es Ihnen geht wie mir: Kopf wie Sieb - sollten Sie eine sichere Passwort-Aufbewahrungs-Software ins Vertrauen ziehen.

Sichere Kennwörter meint auch Vorsicht bei der Weitergabe. Sollte ein fremder Nutzer ebenfalls an Ihrer Website, an Ihrem Webserver, an Ihrer Datenbank arbeiten müssen, richten Sie ihm lieber einen eigenen Account ein als dass Sie ihm Ihre Zugangsdaten geben. Oft können auch die Zugriffsrechte eingeschränkt und so (unbeabsichtigte) Fehler schon zum Großteil vermieden werden. Außerdem verlieren Sie so nicht den Überblick, wer alles Zugriff auf Ihr System hat, und können später den Account einfach löschen, wenn kein Zugriff mehr nötig ist.

Und versenden Sie keine Passwörter unverschlüsselt (siehe Punkt 5).

2. Regelmäßige Backups

Datensicherungen sind das A und O, nicht nur im Web, sondern für die gesamte EDV. Es geht so schnell - ein falscher Knopfdruck (oder Mausklick) und viele Arbeitsstunden und Mühen sind dahin. Während die Website oder das CMS nach einem Crash meist schnell wieder hergestellt sind, sind die über die Weboberfläche eingepflegten Daten oft unwiederbringlich verloren. Überlegen Sie, welche Daten sich häufig ändern und erstellen Sie dafür automatische Backup-Jobs. Viele Webhoster bieten diese Option an, aber es gibt auch verschiedene Tools, die diese Arbeit übernehmen. In Webanwendungen wie Blogs, Foren oder Online-Shops sollte z. B. die komplette Datenbank regelmäßig gesichert werden, wenn Sie einen Upload-Bereich betreiben, auch das Upload-Verzeichnis.

3. Regelmäßige Updates

Es gibt dieses geflügelte Wort, dass in einer Software immer nur der vorletzte Fehler gefunden wird. Fehlerfreie Software (also auch Blog-, Content-Management- oder Online-Shop-Systeme) gibt es nicht. Gerade Open-Source-Software ist besonders häufig Ziel verschiedener Hacker-Angriffe, da sie weit verbreitet ist und der Quellcode (und damit auch vermeintliche Schwachstellen) offen liegt. Daher ist es wichtig, stets über Updates auf dem Laufenden zu bleiben und sie auch zügig zu installieren.

Informieren Sie sich auf der Website Ihrer Webanwendung oder der zugehörigen Community. Oft gibt es ein Blog, das auch über neue Releases (Versionen) informiert. Abonnieren Sie das RSS-Feed oder den Newsletter, so müssen Sie das Blog nicht ständig besuchen, um von Updates zu erfahren. Und keine Angst - die Installation von Updates ist oft ganz einfach und läuft fast vollautomatisch.

Ein paar Links:

Deutsches Blog zu Wordpress

Serendipity Blog

Joomla! Blog

Drupal Blog

Magento Blog

4. Verwendete Anwendung verschleiern

Aus dem gleichen Grund, aus dem Sie häufig Updates vornehmen sollten, ist es auch empfehlenswert, zu verschleiern, mit welchem System (und vor allem welcher Version, da jede andere Schwachstellen hat!) Sie arbeiten. Löschen Sie möglichst alles von der Website und aus dem Quellcode, was die verwendete Software verrät (es sei denn, Sie wollen gezielt damit Werbung machen ;-)).

5. Verschlüsselte Datentransfers

Alles, was Sie über's Internet versenden, kann abgefangen und gelesen werden, wenn Sie es nicht verschlüsseln. Besondere Schwachpunkte sind FTP-Zugänge, bei denen die Zugangsdaten unverschlüsselt übertragen werden, sowie E-Mails, mit denen Sie Ihre Zugangsdaten an Dienstleister, Mitarbeiter etc. weitergeben. Auch das Einloggen in Webseiten, die nicht SSL-verschlüsselt sind (sichere Seiten sind erkennbar an vorangestelltem https: und aktiviertem/geschlossenem Schloss-Symbol in der Statusleiste vieler Browser), ist ein Sicherheitsrisiko, da die Zugangsdaten im Klartext übertragen werden.

Die Verschlüsselung funktioniert meist so: Es gibt einen öffentlichen und einen privaten Schlüssel. Der öffentliche (für alle zugängliche) dient dem Verschlüsseln der Daten, die dann nur noch mit dem privaten (hoffentlich gut aufbewahrten) Schlüssel gelesen werden können.

Populäres Verschlüsselungstool für E-Mails ist GnuPG (OpenPGP).

6. Captcha-Funktion für Formulare

Formulare (sehr gerne Kommentar-Formulare in Blogs) sind häufiger Angriffspunkt von Spamrobots. Das sind Maschinen, die automatisch das Formular ausfüllen und abschicken. Im harmlosesten Falle wird die Website oder der Webmaster dabei gespamt, also mit unerwünschten Nachrichten erfreut. Es kann aber auch gefährlichere Folgen haben, da die Maschinen sehr viele Anfragen in sehr kurzer Zeit schicken können. Daher sollten alle öffentlich zugänglichen Formulare Ihrer Website (Kontakt, Umfrage, Terminreservierung und was auch immer) per Captcha geschützt werden.

Captchas sind kleine Fragen oder Aufgaben, die nicht automatisch von Maschinen beantwortet werden können. Das können Fragen im Klartext sein ('Welche Farbe hat Gras?' oder 'Wie schreibt man Heilbutt?') oder Mathematikaufgaben ('3 + 5'), meist sind es Grafiken mit eingebetteten Buchstaben, die abgetippt werden müssen.

7. Display Errors abschalten

Wenn in Ihrer Webanwendung, in Ihrem Blog oder auf Ihrer Website ein Fehler auftritt, ist es sicherer, dass der normale Website-Besucher die Fehlermeldung nicht zu Gesicht bekommt. Egal, ob die Datenbank nicht erreichbar oder ein Programmierfehler aufgetreten ist, anhand der Fehlermeldung kann der Besucher Informationen erhalten (z. B. welche Datenbank genutzt wird, mit welchem CMS Sie arbeiten), die ihm einen Angriff erleichtern. Nebenbei gesagt, können Fehler auch durch gezielte Fehleingaben des Besuchers herbeigeführt worden sein.

Display Errors ist eine Webserver-Einstellung, die Ihr Webhoster - oder manchmal Sie selbst in Ihrem Kundenaccount - abstellen kann. Lassen Sie stattdessen Fehler loggen oder/und per E-Mail versenden.

8. Verzeichnisse sichern

Wenn auf einem Webserver ein Verzeichnis aufgerufen wird (ohne Dateinamen), schaut dieser in der Regel, ob sich dort eine index.html, index.htm oder index.php befindet und öffnet diese. Anderenfalls listet er alle im Verzeichnis befindlichen Dateien auf, auf die dann gezielt zugegriffen werden kann.

Meist sorgt der Webhoster dafür, dass diese Auflistung deaktiviert wird. Sie sollten aber sicherheitshalber prüfen, ob dies wirklich der Fall ist. Testen Sie es, indem Sie z. B. den Pfad zu Ihrem images-Verzeichnis im Browser eingeben: www.meine-domain.de/images/. Erscheint jetzt ein Fehler (404 oder Forbidden), ist alles in Ordnung. Auch wenn Ihre Startseite erscheint, ist alles ok. Was Sie auf keinen Fall sehen dürfen, ist jetzt Ihr images-Verzeichnis mit allen darin enthaltenen Bild-Dateien.

9. Software zur Erkennung von Angriffen installieren

Es gibt Software, die gezielte Angriffe anhand verschiedener Muster erkennt und meldet. Gute Webhoster haben solche Software bereits vorinstalliert. Fragen Sie im Zweifel nach.

Für PHP-Anwendungen gibt es z. B. PHPIDS, das in die bestehende Anwendung integriert wird, und sie so vor verschiedenen Attacken schützt. PHPIDS arbeitet mit verschiedenen Sicherheitsleveln, die vom Loggen verdächtiger Eingaben über das Informieren des Webmasters per E-Mail bis hin zum vorübergehenden Sperren der Website für den Besucher reichen.

Achtung, liebe PHP-Programmierer - das entbindet euch nicht von eurer Sorgfaltspflicht und davon, Request-Daten sorgfältig zu prüfen und zu filtern!

10. Regelmäßig aufräumen

Nicht verwendete Plugins oder Extensions, nicht mehr benötigte Bilder, alte Datensätze (und lange nicht optimierte Tabellen) - das alles kostet nicht nur Webspace, der in den meisten Fällen begrenzt sein dürfte, sondern macht den Webaccount auch unübersichtlich. Und wo Sie keinen Überblick haben, können Sie schwer Sicherheitsmaßnahmen ergreifen. Außerdem kann es die Anwendung träge machen.

 

Wie halten Sie es mit der Sicherheit? Nehmen Sie das selbst in die Hand oder geben Sie es ab? Für wie dringend halten Sie das Thema? Und haben Sie vielleicht weitere Hinweise oder Tipps?


Kommentare
Von: Peter am 30.10.2009 (Antwort)
Ein paar Tipps die ich von Programmierern aufgeschnappt habe :-)

"6. Captcha-Funktion für Formulare" - wenn man keine sehr große Seite hat reicht auch in der Regel eine Lösung mit versteckten Felder aus a la http://www.svenkubiak.de/nospamnx/ (Wordpress Plugin). Sowas ist für die Besucher angenehmer und Spam kommt auch nicht durch. Das Plugin läuft bei uns auf einem Blog das >5000 Besucher pro Tag hat und seit aktivierung gibt's wirklich 0 Spambeiträge.

Man sollte auch unbedingt testen dass die Seite keine XSS Lücken hat, zum Beispiel durch die Verwendung von schlammpig programmierten Themes. Dafür gibt's ein fantastisches Firefox Plugin: https://addons.mozilla.org/en-US/firefox/addon/7598

Außerdem gibt es für eigentlich alle CMS Systeme Plugins die die Security verbessern. Also etwa die Anzahl der Login-Versuche limitieren usw.

Neben Passwörtern sollte man auch die Anmeldenamen komplizierter machen. Also den User "admin" löschen und statt dessen etwas anderes verwenden.
Von: Bettina am 30.10.2009 (Antwort)
Hallo Peter,

vielen Dank für die Tipps. Ja, Captchas sind schon häufig in die Kritik geraten, weil sie oft Usability und Accessibility eines Formulares verschlechtern. Die alternative Lösung kannte ich noch nicht, macht aber Sinn.

Vor allem das Addon für Firefox finde ich sehr interessant. Vielen Dank für den Hinweis.

Viele Grüße
Bettina

Kommentare in diesem Blog wurden deaktiviert.