Sicherheitsmaßnahmen für TYPO3-Administratoren: TYPO3, aber sicher!
Datensicherheit ist ein wichtiges Thema für jedes Content Management System, so auch für TYPO3. Wie sicher ist also TYPO3, insbesondere im Umgang mit sensiblen Dateien, die zur Ansicht oder zum Download bereitgestellt werden? Was kann man tun, um die Sicherheit zu erhöhen? Stellen Sie sich eine Intranetlösung für ein Unternehmen vor. Es soll eine Kommunikationsplattform für die Mitarbeiter entstehen. Hier sollen unter anderem Personendaten hinterlegt werden können und verschiedenste Informationen abrufbar sein, wie zum Beispiel die aktuellen Verkaufszahlen für die Geschäftsführer. Es wird also mit geschäftskritischen Daten gearbeitet. Ein sehr kritischer Punkt ist, dass ausgewählten Kunden Zugriff auf die unternehmenseigene Wissensdatenbank gewährt werden soll. Da dies nicht über einen komplexen VPN-Zugriff erfolgen soll, wird die Unternehmensplattform an das Internet angeschlossen. Damit ist die Plattform für jedermann zugänglich und hohen potentiellen Gefahren ausgesetzt.
Drei grundlegende Überlegungen zur Sicherheit
Aus dem Netzwerk werden verschiedenste Anfragen in Richtung Server gesendet – welche letztlich dort ankommen, entscheidet die Konfiguration der Firewall. Für den reinen Webserver-Betrieb sind lediglich der HTTP Port 80 und HTTPS Port 443 zu öffnen. Auf dem Server sollte nur die für den Betrieb unbedingt notwendige Software installiert werden. Die eingesetzte Software muss auf dem aktuellen Stand gehalten werden, da immer wieder Schwachstellen entdeckt werden, über die sich zum Beispiel fremder Code einschleusen lässt. Die Konfiguration des Webservers richtet sich nach dem Grundsatz: „Je weniger ein Angreifer erfährt, desto schlechter seine Chancen“. Informationen über die Version des Webservers und die Verzeichnisstruktur sollten nicht abrufbar sein. Zusätzlich empfiehlt sich der Einsatz von TYPO3’s simulateStaticDocuments oder der Extension RealURL, da sich mit diesen die eingesetzte Technologie verstecken lässt.
Selbstverteidigungskurs für Indianer
Der häufig verwendete Webserver Apache kann auch im Bereich Selbstverteidigung „trainiert“ werden. Über mod_evasive [1] kann er vor allem DoS- und BruteForce-Attacken den Wind aus den Segeln nehmen. Mod_evasive ist sehr kommunikativ und kann bei IPchains, Firewalls oder Routern noch rechtzeitig Abwehraktionen auslösen. Ein lohnender Schritt ist auch der Einsatz der Application Firewall mod_security [2]. Mit dieser lassen sich unter anderem GET- und POST-Parameter filtern und die über HTTP hochgeladenen Dateien vor dem Abspeichern auf Viren überprüfen.
Einige wichtige Punkte sind angeführt, mit denen sich jeder TYPO3-Administrator beschäftigt haben sollte. Im Rahmen dieses Artikels kann aber unmöglich auf alle Einzelheiten der allgemeinen Absicherung einer TYPO3-Installation eingegangen werden. Zurzeit entsteht unter [3] ein TYPO3-Sicherheitsportal.
Checkliste zur Konfiguration | |
Die eingesetzte Datenbank ist nur lokal erreichbar. | |
Für Front- und Backend werden unterschiedliche Datenbank-Benutzer verwendet. | |
Bei der Konfiguration von PHP wurden die Einstellungen „display_errors=Off“, „log_errors = On“ und „register_globals=Off“ überprüft. |
|
Durch „open_basedir“ wurde der Verzeichniszugriff mit PHP sinnvoll limitiert. | |
In PHP ist „safe_mode=On“ gesetzt. | |
Eingesetzte Drittsoftware ist im safe_mode-Verzeichnis verlinkt. | |
Die TYPO3-Konfigurationsdatei localconf.php ist aus dem Webroot entfernt und verlinkt. | |
Die Verzeichnisrechte wurden auf das Notwendigste reduziert. | |
Das TYPO3-InstallTool ist entfernt oder per die()-Funktion unbrauchbar gemacht. | |
Backend-Benutzer arbeiten in den von TYPO3 verwalteten User- und Group-Verzeichnissen. | |
User- und Group-Verzeichnisse befinden sich außerhalb des Webroots. | |
Der Zugriff auf Backend sowie auf die geschützten Frontend-Seiten erfolgt per HTTPS. |
Dateisicherheit – (k)ein Problem?
Ein häufig vernachlässigter Aspekt bei der Nutzung von TYPO3 ist die Absicherung von geschützten Dateien. Auf den öffentlichen Seiten dürfen von unangemeldeten Besuchern alle verlinkten Bilder und Dateien angezeigt oder heruntergeladen werden. Diese Dateien werden von TYPO3 im Dateisystem abgelegt und mit direkten Links eingebunden. Daher ist das generelle Sperren der entsprechenden Ordner per .htaccess oder die Ablage außerhalb des Webroots nicht ohne weiteres möglich.
Für die öffentlichen Seiten spielt das ohnehin keine Rolle. Hat man es allerdings mit geschützten Seiten zu tun, sollte es den unangemeldeten Besuchern nicht möglich sein, auf die eingebundenen Dateien zuzugreifen. Doch genau das ist möglich, da TYPO3 diese Dateien ebenfalls in denselben Ordnern ablegt. Ein unangemeldeter Besucher benötigt lediglich den genauen Link zu einer Datei – damit kann er diese problemlos herunterladen. Die Ermittlung valider Links ist nicht nur für Hacker lediglich eine Frage der Zeit. Je nachdem, welche Dateien abgelegt wurden, kann dadurch ein erheblicher Schaden entstehen – man denke nur an die Ablage einer Mitarbeiterdatenliste oder die aktuellen Verkaufszahlen eines Unternehmens im PDF-Format. Gefährdet sind alle Dateien, die auf geschützten Seiten eingebunden/verlinkt wurden. Sie befinden sich im Fileadmin-, TYPO3temp- oder Uploadordner. Da das generelle Sperren dieser Ordner nicht ohne weiteres möglich ist, folgen nun einige Lösungen.
Sichere Dateilinks in Texten
Einen möglichen Ansatz zur Sicherung zeigen die Extension „Authorized file links“ [4] und „Authorized file links for TYPO3 4.0“ [5]. Diese FrontEnd-Extension leitet in typischen Inhaltselementen (text, …) alle Dateilinks, die auf den Fileadmin-Ordner verweisen, auf ein PHP-Skript um. Dieses Skript überprüft bei jedem Aufruf, ob der Besucher die nötigen Rechte für die Seite mit dem entsprechenden Dateilink besitzt. Ist das der Fall, wird die Datei aus dem geschützten Fileadmin-Ordner per PHP ausgelesen und an den Besucher gesendet. Dass man bei Verwendung der Extension den Fileadmin-Ordner per .htaccess schützen sollte, liegt auf der Hand. Ansonsten läuft diese Extension auf Anhieb und ohne aufwändige Konfiguration. Möchte man den Autoren nur über die typischen Inhaltselemente – also nicht über das Inhaltselement Dateiliste – die Erstellung von Dateilinks erlauben, kann diese Extension effektiv eingesetzt werden.
Sichere Dateilisten direkt aus der Datenbank
Eine weitere Extension namens „File list“ [6] erlaubt es, sichere Dateilisten zu erstellen. Sie arbeitet als FrontEnd-Plugin und erhält die Datensätze üblicherweise aus einem Systemordner. Wenn man über den Modus „Liste“ einen neuen Datensatz einfügt, hat man die Möglichkeit, den Titel, eine Beschreibung, Start und Stopdatum sowie die Berechtigung anzugeben. Beim Erstellen des Datensatzes wird die angegebene Datei direkt in die Datenbank geladen und nicht lokal auf dem Dateisystem gespeichert. Dadurch kann nur noch von berechtigten Besuchern auf die Dateien zugegriffen werden. Die Extension ist sehr dynamisch gehalten und das Aussehen der verschiedenen Ansichten lässt sich gut über Templates anpassen.
Allgemeinere Dateisicherheit
Die letzte Extension, die Ihnen hier vorgestellt wird, heißt „Secure Downloads“ [7]. Diese Extension arbeitet nach demselben Prinzip wie die Extension „Authorized file links“. Nach der Installation werden in allen Inhaltselementen Links zu bestimmten Dateien über ein Skript umgeleitet. Auch Verweise innerhalb von IMG-Tags werden durch die Extension ersetzt. So werden auch direkt eingebundene Bilder abgesichert.
Das Besondere an dieser Extension ist ihre Flexibilität. Im Extension-Manager können durch reguläre Ausdrücke die Dateiendungen, Ordner und Domains bestimmt werden, die gesichert werden sollen. Der Extension liegt eine Dokumentation bei, die alle notwendigen Schritte zur Konfiguration genauer beschreibt. Sie müssen natürlich auch hier Hand anlegen und die entsprechenden Ordner schützen.
Fazit
Dieser Artikel sollte Ihnen einen kleinen Überblick über mögliche Sicherheitslücken geben sowie mit den vorgestellten Extensions Lösungsansätze aufzeigen. Wer eine schlanke Lösung sucht, ist mit den beiden ersten Extensions gut beraten. Wer allerdings hohen Wert auf die allgemeine Dateisicherheit legt, sollte auf die dritte Extension zurückgreifen. Wenn Sie über den Einsatz solcher Erweiterungen nachdenken, sollten Sie sich also über Ihre Anforderungen an die Extension bewusst sein. Welche Extension Sie letztlich einsetzen, hängt natürlich vor allem auch von dem Projekt und den Umständen ab.
Auf dem Gebiet der Sicherheit mit TYPO3 wird zurzeit an vielen Ecken entwickelt. Auch deswegen wollen wir mit dem Security Portal [3] eine Plattform schaffen, auf der wir über aktuelle Entwicklungen berichten und die Entwicklergemeinde etwas mehr zusammenführen. Wir möchten Sie ganz herzlich einladen, daran mitzuwirken.