Anzeige
Anzeige
Software & Entwicklung
Artikel merken

Tipps und Tricks für Admins: TYPO3 sicher betreiben

Die TYPO3-Sicherheitslücke, die im Februar 2009 für eine Blamage des Innenministers Schäuble und die irrtümliche Entlassung Kevin Kurányis beim FC Schalke 04 sorgte, ist schon fast vergessen. Dieser Artikel bündelt daher zahlreiche wichtige Tipps, wie man die Sicherheit der eigenen TYPO3-Installation erhöhen kann.

6 Min. Lesezeit
Anzeige
Anzeige

Die Ereignisse rund um die TYPO3-Sicherheitslücke im Februar 2009 sorgten nicht nur bei Administratoren und Webentwicklern für große Aufruhr, sondern auch viele Entscheider stellten sich die Frage nach der Verlässlichkeit von Open-Source-Systemen in puncto Sicherheit. Keine Software ist fehlerfrei, aber es reichen wenige Schritte aus, um ein hohes Maß an Sicherheit in der eigenen TYPO3-Installation zu gewährleisten.

Extensions als Schwachpunkt

Anzeige
Anzeige

In aller Regel öffnet nicht der TYPO3-Kern selbst die Sicherheitslücke, sondern die Website wird durch Fehler in einer oder mehreren TYPO3-Extensions angreifbar. Häufig sind diese Extensions nicht sicher gegenüber bekannten Eindring-Mechanismen wie Cross-Site-Scripting oder SQL-Injections. Es empfiehlt sich daher, in Ihrer TYPO3-Installation darauf zu achten, dass Sie nur die jeweils aktuellsten Versionen der verwendeten Extensions installiert haben. Darüber hinaus sollten Sie nur die so genannten „Reviewed“-Extensions aus dem TER installieren. Diese Extensions wurden vom TYPO3-Security-Team auf eventuelle Schwachstellen überprüft und genügen den Ansprüchen an Sicherheit. Der Extension-Manager führt im Bereich „Import Extensions“ normalerweise nur solche Extensions auf, die als „reviewed“ gelten. Bei vielen Entwicklern hat sich nach dem Anlegen einer neuen TYPO3-Installation aber die Routine eingeschlichen, diese Einstellung zu ändern und alle Extensions im Manager anzeigen zu lassen. Hier muss sich jeder Entwickler fragen, ob es wirklich notwendig ist, auf nicht geprüfte Erweiterungen zurückzugreifen.

Nicht mehr benötigte Extensions sollten nicht nur über den Extension-Manager deaktiviert, sondern vollständig vom Server entfernt werden, da auch inaktive Extensions über den Webserver direkt angesprochen werden und Schaden verursachen können. Über die Funktion „Backup/Delete“ in der Detailansicht einer Extension können Sie nicht mehr verwendete Erweiterungen komfortabel entfernen.

Anzeige
Anzeige

Darüber hinaus sollten Sie darauf achten, die jeweils aktuellste Version im System zu verwenden. Dazu gibt es seit TYPO3 4.2 eine nützliche Funktion im Extension-Manager. Unter „Check for Extension Updates“ zeigt er eine Liste aller Erweiterungen mit neuen Versionen an, die Sie mit wenigen Klicks aktualisieren können.

Anzeige
Anzeige

Wer noch Installationen des Zweigs 4.1 oder 4.0 pflegen muss, dem sei die Extension „ter_update_check“ [1] empfohlen. Diese stellt die Funktionalität auch in älteren TYPO3-Versionen zur Verfügung. Auch für Version 4.2 bietet die Extension ein nettes Extra für leidgeplagte Administratoren: Ein CLI-Skript kann automatisch die Extension-Liste aktualisieren und neue Versionen auf der Kommandozeile ausgeben. Im Zusammenspiel mit einem Cronjob ist dies ein starkes Werkzeug, mit dem sich auch mehrere TYPO3-Installationen auf einem Server überwachen lassen.

Seit TYPO3 4.2 informiert der Extension-Manager Admins über neue Versionen.

Seit TYPO3 4.2 informiert der Extension-Manager Admins über neue Versionen.

Des Pudels Kern

Auch der TYPO3-Kern selbst ist nicht unangreifbar. Ein entscheidender Faktor für die Sicherheit des Systems ist die Verwendung der jeweils aktuellen TYPO3-Version. Wem die Veröffentlichung einer neuen Version nach Bekanntwerden einer Sicherheitslücke nicht schnell genug geht, kann auf das Subversion-Repository zurückgreifen. Dort sind die jeweils aktuellen Entwicklungszweige tagesaktuell verfügbar. Um beispielsweise die aktuellste Version des 4.2-Entwicklungszweigs zu erhalten, genügt folgender Befehl auf der Shell:

Anzeige
Anzeige
SHELL
svn co https://svn.typo3.org/TYPO3v4/Core/branches/TYPO3_4-2/ typo3_src_4-2

Listing 1

Dadurch wird der Ordner „typo3_src_4-2“ angelegt, auf den dann ein eventueller Symlink zeigen kann. Um den TYPO3-Kern zu aktualisieren, genügt es, in den Ordner hineinzuwechseln und ein „svn up“ auszuführen. Der lokale TYPO3-Kern wird dann mit dem im Repository abgeglichen und gegebenenfalls aktualisiert.

Über das Subversion-Repository ist es auch möglich, nur von veröffentlichter Version zu Version zu springen. Dazu bedient man sich der so genannten „Tags“. Jede Version ist als Tag im Repository abgelegt. Der folgende Befehlt macht einen Checkout (co) auf die Version 4.2.7:

SHELL
svn co https://svn.typo3.org/TYPO3v4/Core/tags/TYPO3_4-2-7 typo3_src_4-2

Listing 2

Um auf einen neuen Tag, also eine neue Version zu wechseln, bedienen Sie sich des Switch-Kommandos (sw):

Anzeige
Anzeige
SHELL
svn sw https://svn.typo3.org/TYPO3v4/Core/tags/TYPO3_4-2-8 typo3_src_4-2
U typo3_src_4-2/ChangeLog
U typo3_src_4-2/t3lib/config_default.php
U typo3_src_4-2/typo3/sysext/setup/mod/index.php
U typo3_src_4-2/typo3/sysext/rtehtmlarea/ext_emconf.php
Updated to revision 5712.

Listing 3

In wenigen Sekunden enthält Ihr Ordner „typo3_src_4-2“ die Version 4.2.8, statt zuvor 4.2.7.

Das Salz in der Suppe

TYPO3 speichert die Passwörter der Frontend-User im Klartext. Ein Angreifer, der unberechtigten Zugriff auf die Datenbank erlangt, kennt damit auch alle Passwörter der Frontend-User. Die Passwörter der Backend-User sind zwar mit einem MD5-Hash versehen, aber auch diese sind nicht gänzlich unknackbar.

Abhilfe schafft hier die Extension „t3sec_saltedpw“ [2]. Diese versieht sowohl Frontend- als auch Backend-Benutzerpasswörter mit so genannten „salted Hashes“. Dabei wird das als MD5 abgespeicherte Passwort nochmals mit einem Zufallswert kombiniert, um so die Sicherheit drastisch zu erhöhen. Um die Extension aktiv zu schalten, genügt es, sie aus dem TER zu laden, sie zu installieren und dann durch folgende Einträge in der localconf.php zu aktivieren:

Anzeige
Anzeige
PHP
$TYPO3_CONF_VARS['FE']['loginSecurityLevel'] = 'normal';
$TYPO3_CONF_VARS['BE']['loginSecurityLevel'] = 'normal';

Listing 4

Beachten Sie dabei unbedingt, dass die Passwörter im Klartext vom Browser an den Server übermittelt werden.

Die Schotten dicht machen

Der beste Schutz auf Serverseite ist nutzlos, wenn das Klartextpasswort bereits auf dem Weg zum Server durch einen bösen „Man in the middle“ abgehört wird. Benutzen Sie daher die Extension nur im Zusammenhang mit einem SSL-Zertifikat!

Viele Webhoster bieten schon für wenige Euros im Monat ein Zertifikat an. Wenn Sie Ihre Seiten auf einem eigenen Root-Server betreiben, können Sie sich das SSL-Zertifikat auch selbst generieren und ausstellen. Backend-Benutzer müssen dann zwar einmalig das vermeintlich unsichere Zertifikat akzeptieren, um das Backend zu betreten, es bietet aber genauso viel Sicherheit wie ein kostenpflichtiges fremdverifiziertes SSL-Zertifikat.

Anzeige
Anzeige

Ist ein Zugang via SSL möglich, sollte man Benutzer nur noch den Zugang über das sichere Protokoll gestatten und den „normalen“ HTTP-Zugang auf die sichere Leitung umleiten. Dies geht beispielsweise über eine mod_rewrite-Regel des Apache. Dazu legen Sie eine .htaccess-Datei im Ordner „/typo3/“ mit folgendem Inhalt und Ihrem individuellen Pfad zum Backend an:

.htaccess
RewriteEngine On
RewriteBase /typo3/
RewriteCond %{SERVER_PORT} !443
RewriteRule ^(.*)$ https://www.example.com/typo3/ [R,L]

Listing 5

Nicht selten werden Sicherheitslecks erst im Zusammenspiel mit Lücken in PHP-eigenen Funktionen richtig kritisch. Stellen Sie daher sicher, dass Sie stets aktuelle Versionen von PHP, MySQL und Webserver einsetzen. Sollten Sie keinen Einfluss auf Versionen der Serversoftware haben und sollte diese stark veraltet sein, weisen Sie Ihren Provider dringend darauf hin oder ziehen Sie direkt einen Wechsel in Betracht. Wird zudem Apache als Webserver eingesetzt, gibt es einige kleinere Tricks und Kniffe, um diesen ein wenig sicherer zu machen. So können Sie beispielsweise über den Eintrag „Options-Indexes“ in der .htaccess-Datei im Wurzelverzeichnis Ihrer TYPO3-Installation das so genannte Directory-Listing deaktivieren. Dies verhindert den Zugriff auf Ordner, die keine index-Datei beinhalten und so eine Liste aller enthaltenen Dateien zeigen würden (z. B. das Verzeichnis „/fileadmin/ “). Wer direkten Zugriff auf die httpd.conf des Apache-Servers hat, kann auch mittels „ServerTokens ProductOnly“ verhindern, dass der Webserver bei jeder Anfrage im HTTP-Header oder bei Fehlerseiten die vollständige Server- und Betriebssystemversion anzeigt.

Auf der Hut sein

Ein nicht unwichtiger Faktor bei der Sicherheit von Systemen ist die Information. Sie sollten wissen, wann es eine neue TYPO3-Version gibt oder wann das TYPO3-Security-Team auf Schwachstellen in Erweiterungen hinweist. Das Team veröffentlicht dazu so genannte Security-Bulletins [3]. Um immer auf dem aktuellsten Stand zu bleiben, sollten Sie zudem die Mailingliste „TYPO3-announce“ [4] abonnieren. So bekommen Sie aktuelle Informationen zu Veröffentlichungen in den E-Mail-Postkasten. Und keine Sorge: Sie bekommen außer diesen E-Mails auch keine anderen, wie es in Diskussions-Mailinglisten der Fall ist.

Anzeige
Anzeige

Dies ist natürlich nicht das ganze Geheimnis der Sicherheit, sondern es sind lediglich einige simple Methoden, die helfen können, Ihre TYPO3-Installation ein wenig sicherer zu machen. Grundsätzlich gilt natürlich immer auch, sich selbst und die Redakteure für das Thema Sicherheit zu sensibilisieren. Zu einfach zu erratene Passwörter oder die Verwendung alter Webbrowser können zu ebenbürtigen Sicherheitsproblemen führen wie Fehler in der Software.

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
5 Kommentare
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

Sebastian Gebhard

1. Ich weiß der Artikel wurde 1:1 aus dem Magazin übernommen, aber vllt könnt ihr das SVN-Beispiel noch auf die aktuelle Version 4.2.10 oder 4.3.0 anpassen. Jemand, der das hier als aktuellen Artikel versteht, könnte denken 4.2.8 wäre die aktuelle Version und holt sich möglicherweise einen gefährdeten Core.

2. Der Tipp mit den reviewed extensions ist ja theoretisch nett, leider zeigt sich in der Praxis, dass dieses Feature seinen Nutzen verloren hat. Es werden schon seit langem keine Extensions mehr reviewed. Das bedeutet, dass viele essentielle Extensions dann nicht zur Verfügung stehen. Andersherum wurden die früher schon einmal reviewten Extensions in der Zwischenzeit meistens deutlich weiterentwickelt, wobei sich auch Sicherheitslücken eingeschlichen haben können. Leider fehlt der Association wohl die Manpower um diese Aufgabe weiter zu bewältigen. Helfen kann man übrigens indem man Mitglied wird.

Viele Grüße,
(derzeitiges Nicht-Mitglied) Sebastian

Antworten
no5251

Wer mehrere Installationen zu pflegen hat und nicht ständig alle manuell auf Risiken prüfen möchte kann auch den Dienst von http://www.typo3watchdog.com nutzen.

Viele Grüße
Marco

Antworten
Ulf Kosack

Zu dem Abschnitt „Schotten dicht machen“. SSL ist natürlich das mittel der Wahl, aber es reicht doch auch im Install-Tool den Wert $TYPO3_CONF_VARS[BE][lockSSL] auf 1 zu setzen. Dann erfolgt die Anmeldung am BE über SSL und nach erfolgreichem Login geht es wieder mit http weiter. Wer ganz sicher gehen will, kann es ja auch auf 2 setzen. Dann ist das komplette Backend verschlüsselt.

Meines Erachtens hat das den gleichen Effekt wie die Rewrite-Regel in htaccess, nur dass das Install-Tool ein Konfigurationsoberfläche dafür bietet, oder?

Viele Grüße
Ulf

Antworten
Michael Feinbier

@Sebastian: Natürlich könnte man den Artikel anpassen und auf die Version 4.3.0 anpassen. Aber das löst ja das ‚Problem‘ nicht. Mittlerweile gibt es ja schon 4.3.1 die gegenüber der .0 wieder wichtige Sicherheitsupdates enthält.
Man müsste so also bei jedem Update alle Artikel durchgehen und anpassen. Schätze, die Arbeit wird sich niemand machen wollen. Die geistige Leistung eines Administrators beim Checkout die Versionsnummer mit der aktuellsten zu vertauschen sollte wohl nicht zu viel verlangt sein, oder?

@Ulf: Ja die Option im Install Tool ist durchaus eine adäquate Lösung die vermutlich auch einfacher ist als eine RewriteRegel. Wie gut oder sicher das gegenüber mod_rewrite ist, kann ich nicht sagen. Schlecht wird es sicher nicht sein ;)

Antworten
t3manager

@ No5251

Auch t3manager.com bietet inzwischen ein nützliches Dashboard um detailierte Informationen über jede TYPO3 Installation zu erhalten.

Antworten

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