Anzeige
Anzeige
Software & Entwicklung
Artikel merken

Sicherheitscheckliste für TYPO3-Installationen: Schotten dicht

Im Vergleich zu anderen Open-Source-Anwendungen und Content Management Systemen gilt der TYPO3-Kern als ziemlich sicher. Allerdings ist dies kein Grund, die Hände in den Schoß zu legen. Damit eine TYPO3-Installation wirklich sicher ist und bleibt, gilt es einige Regeln zu beachten, die in diesem Artikel vorgestellt werden.

7 Min. Lesezeit
Anzeige
Anzeige

Web-Dienste wie md5.rednoize.com ermöglichen es, einen md5-Hash-Wert in ein Klartextpasswort zurückzuwandeln.

Web-Dienste wie md5.rednoize.com ermöglichen es, einen md5-Hash-Wert in ein Klartextpasswort zurückzuwandeln.

Für viele Softwareanwendungen kursieren im Internet Anleitungen, die beschreiben, wie man Sicherheitslücken ausnutzt, sogenannte Exploits. Auf entsprechenden Websites [1] kann man nach dem Namen einer Applikation suchen und erhält eine Liste mit Beispielcode für einen möglichen Angriff.

Anzeige
Anzeige

Während dort für eine bekannte CMS-Anwendung allein im ersten Monat dieses Jahres 21 Exploits veröffentlich wurden, findet sich für TYPO3 kein einziger Eintrag. Dies bedeutet allerdings nicht, dass TYPO3 vollkommen sicher ist. Der Quellcode des Basissystems wird zwar sorgfältig geprüft, sowohl von dem Entwicklungsteam selbst als auch durch externe Audits von Anwenderseite, aber dennoch lassen sich Fehler nicht vollständig ausschließen.

Ein möglicher Schwachpunkt sind vor allem die über 3.600 derzeit verfügbaren TYPO3-Erweiterungen, die von vielen unterschiedlichen Entwicklern bereitgestellt werden. Je nach Erfahrung, Sicherheitsbewusstsein und Disziplin der Programmierer kommt es immer wieder vor, dass in Extensions Sicherheitslücken durch Cross-Site-Scripting (XSS) oder SQL-Injection entdeckt werden.

Anzeige
Anzeige

Die bekannt gewordenen Schwachstellen werden vom TYPO3-Security-Team veröffentlicht [2], hier ist der Anwender bzw. Administrator gefordert, entsprechende Updates zeitnah einzuspielen. Das Abonnement der TYPO3-Announce-Liste [3] ist unbedingt empfehlenswert, um über sicherheitsrelevante Ereignisse informiert zu werden.

Anzeige
Anzeige

Das TYPO3-Security-Cookbook [4] liefert zudem wichtige Hinweise zur sicheren Konfiguration. Darüber hinaus sollten ein paar wichtige Grundregeln beachtet werden, um einen langfristig stabilen und sichern Betrieb der Website zu gewährleisten.

Sichere Kennwörter

Obwohl jeder Anwender weiß, dass man sichere Passwörter verwenden sollte, zeigt die Praxis, dass diese Regel in vielen Fällen nicht umgesetzt wird. Zu trivial gewählte Kennwörter ermöglichen es einem Angreifer, sich unbemerkt in Systeme einzuloggen. Mit Hilfe sogenannter Wörterbuch-Attacken ist es möglich, Hunderttausende Kennwörter mit automatisierten Skripten in kurzer Zeit durchzuprobieren. Beliebte Kombinationen wie der Name des Partners oder der Kinder zusammen mit Ziffern wie 123 oder dem Geburtsjahr sind auch mit Verfahren des Social-Engineering [5] einfach zu knacken.

Anzeige
Anzeige

Ein sicheres Kennwort besteht aus einer Kombination von Buchstaben in Groß-/Kleinschreibung, Ziffern sowie Sonderzeichen und sollte mindestens neun Zeichen lang sein. Alle kürzeren Passwörter, auch in beliebig kryptischer Schreibweise, sind unsicher. Applikationen speichern die Kennwörter in der Regel als Hash-Wert. Dies ist eine mathematische Einweg-Funktion, die eine Berechnung des ursprünglichen Werts im Klartext nicht zulässt. Komplette Datenbanken mit allen möglichen Passwörtern bis zu acht Zeichen und dem dazugehörigen Hash-Werten gibt es jedoch im Internet zu kaufen – die Lieferung erfolgt in der Regel auf Festplatten, da die Datenbanken zu groß für Speichermedien wie DVDs sind.

Auch eine Online-Suche [6] nach passenden Passwörtern zu Hash-Werten ist möglich, auch wenn in diesem Fall „nur“ 50 Millionen Einträge abrufbar sind. Einen Anhaltspunkt für ein halbwegs sicheres Passwort kann eine
einfache Suchabfrage danach liefern: Findet Google ein Ergebnis, sollte
man ein besseres Kennwort wählen.

Unbedingt befolgt werden sollte die Regel, nicht das gleiche Kennwort für die Anmeldung bei verschiedenen Programmen oder Websites zu verwenden. Um eine Vielzahl unterschiedlicher Passwörter sicher zu verwalten, gibt es praktische Softwarelösungen [7]
[8].

Anzeige
Anzeige

Regelmäßige Backups

Eine sorgfältig durchdachte Backup-Strategie ist Bestandteil jedes Sicherheitskonzepts. Für das Backup einer TYPO3-Installation ist die Sicherung der drei Verzeichnisse „fileadmin“, „typo3conf“ und „uploads“ sowie der Datenbank erforderlich. Um den Inhalt einer MySQL-Datenbank in einer Datei zu speichern, verwendet man den folgenden Befehl:

SQL
mysqldump –opt -u username -pkennwort datenbankname > backup.sql

Listing 1

Die Datensicherung sollte regelmäßig und automatisiert erfolgen. Wichtig dabei ist, nicht nur ein Backup des letzten Tages zu erstellen, da manche Fehler erst nach einiger Zeit entdeckt werden. Sinnvoll ist es auch, ein zusätzliches Backup in regelmäßigen Abständen auf einem externen Medium zu speichern, etwa einer DVD.

Anzeige
Anzeige

Erfolgt eine Datensicherung auf der gleichen Festplatte wie die zu sichernden Daten, so muss darauf geachtet werden, dass die Speicherung außerhalb des „Document Root“ erfolgt, damit kein Zugriff auf die gesicherten Daten über einen Browser erfolgen kann. Dies gilt insbesondere auch für den Datenbank-Dump.

Damit notfalls eine Wiederherstellung der Daten aus einem Backup reibungslos funktioniert, sollte der Vorgang getestet und dokumentiert werden. Einerseits kann damit überprüft werden, ob die Datensicherung ordnungsgemäß erstellt wurde, andererseits ist der Zeitpunkt, an dem man ein Backup einspielen muss, denkbar schlecht geeignet, um erst nach einer Anleitung zu suchen.

Konfiguration von FTP-Zugängen

Nach Möglichkeit sollte man auf die Verwendung von FTP als Übertragungsprotokoll komplett verzichten, denn die Übertragung der Logindaten sowie der anschließende Datentransfer erfolgen unverschlüsselt. Abhilfe schaffen hier nur Übertragungen über SFTP (Secure File Transfer), SCP (Secure Copy) oder FTPS (FTP über SSL). Beim Einsatz aller genannten Protokolle muss darauf geachtet werden, dass der Anwender nur Zugriff auf ein für ihn bestimmtes Verzeichnis wie „fileadmin/user_upload/user123“ erhält.

Anzeige
Anzeige

Übernimmt man dagegen die Standardeinstellungen bei der Einrichtung des Zugangs (meist „/“), so erhält der Anwender Zugriff auf das gesamte TYPO3-Projektverzeichnis. Damit kann er dann auch die Datei „localconf.php“ im Verzeichnis „typo3conf“ herunterladen, bearbeiten und wieder hochladen und sich damit einen Admin-Zugang zum Installtool und dem TYPO3-Backend verschaffen.

Verzeichnis-Index ausschalten

In der Standardkonfiguration von Apache ist die Anzeige des Inhalts eines Verzeichnisses standardmäßig aktiviert. Wird eine in der URL angegebene Datei nicht gefunden, wird an Stelle eines 404-Fehlers der Inhalt des gesamten Verzeichnisses im Browser angezeigt. Um dies zu verhindern, muss in der Datei „httpd.conf“ eine Zeile geändert werden:

APACHE-CONFIG
# vorher
Options All Indexes FollowSymLinks

# nachher
Options All FollowSymLinks

Listing 2

Eine einfache Abfrage bei Suchmaschinen kann ansonsten sensitive Informationen liefern, die einen Angriff auf die Website ermöglichen. Dazu gehören im einfachsten Fall Informationen über die eingesetzten Extensions und deren Datum. Ein einfacher Abgleich mit den Security-Bulletins liefert den Hinweis, ob hier ein verwundbares System vorliegt.

Anzeige
Anzeige
Ist der Apache-Webserver nicht richtig konfiguriert, gibt er Informationen zu verwendeten Extensions und deren Aktualität preis.

Ist der Apache-Webserver nicht richtig konfiguriert, gibt er Informationen zu verwendeten Extensions und deren Aktualität preis.

Gravierender wird das Problem, wenn vertrauliche Daten direkt angezeigt werden. Hierzu gehören Import-/Export-Dateien im t3d-Format, die im fileadmin-Verzeichnis abgelegt sind. Oder aber ein Dump der Datenbank, denn hier hat ein Angreifer direkten Zugriff auf die Namen der Backend-Benutzer inklusive md5-Hash des Kennworts. Ein einfacher Klick auf den Dateinamen liefert die Informationen:

SQL-DUMP
-- Dumping data for table `be_users`
INSERT INTO be_users VALUES (1,0,1134402664,'admin','a1e0a6bd21013666f...........

Listing 3

Backend-Benutzer

TYPO3 bietet ein ausgefeiltes Rechtemanagement, um für jeden Redakteur individuelle Zugriffsrechte festzulegen. Manche Administratoren scheuen jedoch den Aufwand für die Konfiguration und räumen den Redakteuren Admin-Rechte ein. Einem Redakteur sollte man jedoch niemals Admin-Status geben, da er ansonsten beliebige Änderungen – versehentlich oder mutwillig – durchführen kann.

Bei Backend-Benutzern, die nur für einen begrenzten Zeitraum an einer Seite arbeiten (Studenten, Zeitarbeiter, externe Dienstleister) sollte man schon beim Anlegen des Zugangs den Datumsbereich einschränken. So kann man nicht vergessen, den Account nach Abschluss der Arbeiten zu deaktivieren.

Anzeige
Anzeige
Schon beim Anlegen eines Mitarbeiters, der nur vorrübergehend Zugriff auf das TYPO3-Backend braucht, sollte man die Gültigkeit des Accounts zeitlich begrenzen.

Schon beim Anlegen eines Mitarbeiters, der nur vorrübergehend Zugriff auf das TYPO3-Backend braucht, sollte man die Gültigkeit des Accounts zeitlich begrenzen.

Ein Administrator sollte auch regelmäßig die Liste der Backend-Benutzer auf gültige Einträge prüfen. Manchmal wird vergessen Benutzer zu löschen, die die Firma verlassen haben. Andererseits kann es vorkommen, dass nach einem erfolgreichen Einbruch in eine Website neue Benutzer angelegt werden, um ein erneutes Einloggen zu vereinfachen.

iFrame-Attacken

Erfolgt ein Angriff auf eine Website, so gibt es verschiedene Szenarien. Beim sogenannten Defacement (Verunstaltung) wird in der Regel die Startseite verändert, um zu demonstrieren, dass man erfolgreich in den Server eingebrochen ist. Oft wird dabei die alte Startseite als Backup gesichert, so dass eine Wiederherstellung zunächst problemlos ist. Allerdings ist damit nicht die Sicherheitslücke beseitigt, der Angriff kann also jederzeit wiederholt werden.

Neuerdings besteht die Strategie der Angreifer jedoch immer häufiger darin, dass die Änderung an der Website möglichst lange unentdeckt bleibt. Das Ziel ist hierbei, mit dem Aufruf der Seiten Schadcode nachzuladen, der dann über Sicherheitslücken im Browser Trojaner oder ähnliche Programme installiert. Diese dienen entweder zum Ausspähen von Zugangsdaten oder dazu, die (Fern-)Steuerung des Rechners zu ermöglichen, etwa zum Versand von Spam-E-Mails.

Dazu wird meist ein iFrame in die Seiten eingebunden, der Code von einem externen Server lädt. Die URL des Servers wird dabei in der Regel verschleiert oder verschlüsselt, sodass auf den ersten Blick die Funktion des iFrames nicht erkennbar wird. Der iFrame selbst wird meist mit Hilfe von CSS versteckt. So wurde zum Beispiel Anfang Februar 2009 die Website des Hamburger Abendblatts mit einem iFrame präpariert [9].

Zur Erkennung solcher Änderungen ist es ratsam, den Quellcode, insbesondere den der Startseite, regelmäßig auf ungewünschte Veränderungen zu prüfen. Dies kann über ein per Cronjob laufendes Skript erfolgen, das die Zahl der iFrames in einer Seite zählt und bei Änderungen Alarm schlägt.

Regelmäßige Updates

Auch wenn eine TYPO3-Website problemlos läuft, sollte der Administrator regelmäßige Updates durchführen. Neben dem TYPO3-Quellcode betrifft dies die verwendeten Extensions, die PHP-Version, externe Dienstprogramme wie „htmldoc“ [10] oder „xpdf“ [11] sowie das Betriebssystem des Servers. Die Regel „Never change a running system“ ist hier also nicht angebracht. Gerade bei Sicherheitsupdates ist rasches Handeln gefordert.

Nach der Veröffentlichung einer Lücke beginnt nämlich der Wettlauf zwischen den Webmastern, die ihre Software aktualisieren, und den Angreifern, die versuchen die Lücken auszunutzen. In vielen Fällen lassen sich verwundbare Seiten problemlos über Suchmaschinen finden und durch die Verfügbarkeit von Exploits folgen erste Angriffswellen oft schon wenige Stunden nach dem Bekanntwerden von Lücken.

Weitere Wartungsarbeiten

In regelmäßigen Abständen sollte geprüft werden, ob TYPO3-Extensions vorhanden sind, die gar nicht verwendet werden. Oft kommt es vor, dass eine Erweiterung zu Testzwecken installiert wird, aber anschließend nicht wieder entfernt wird. Jede nicht verwendete Extension verbraucht nicht nur Systemressourcen, sondern stellt auch eine potenzielle Sicherheitslücke dar.

Geprüft werden sollte auch die Größe der Datenbank. Im Laufe der Zeit können – je nach Konfiguration von TYPO3 – einige Datenbanktabellen (cache_pages, cache_hash, sys_stat etc.) sehr groß werden, im Extremfall etliche Gigabyte. Das System wird dadurch nicht nur langsamer, sondern irgendwann wird der Speicher nicht mehr ausreichen und die Website nicht mehr funktionieren. Ähnliches gilt für Logdateien, die von TYPO3 erstellt werden.

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