TYPO3. Alles rund um Sicherheit

Letzte Änderung:

Allgemeines

In den Zeiten der digitalen Transformation gewinnen Websites als Informations-, Transaktions- und Präsentationsmedium immer größere Bedeutung. Gleichzeitig hat der Gesetzgeber in den letzten Jahren strenge Regeln für den Umgang mit pesönlichen Daten erstellt.

Demzufolge birgen Website-Ausfälle und Hacker-Angriffe nicht nur hohe wirtschaftliche sondern auch rechtliche Risiken:

  • Datenmissbrauch: Der Missbrauch von Daten durch Dritte verursacht Imageschäden und kann im Rahmen der Datenschutzgrundverordnung(DSGVO) sehr hohe Geldstrafen nach sich ziehen.
  • Servermissbrauch: Von Viren befallene Websites werden häufig zu Fremdzwecken mißbraucht (z.B. Suchmaschinenspaming, “Cryptojacking”, DDoS-Attacken, usw.). Sie können Haftungsschäden verursachen sowie Rankingverluste bis hin zum Blacklisting bei Suchmaschinen.
  • Datenverlust/Dysfunktionalität: In der Regel schützen Backups vor dem versehentlichen oder absichtlichen Verlust von Daten. Da sich ein Virenbefall in der Regel aber immer erst viel später bemerkbar macht, kann es sein, dass auch zurück liegende Datensicherungen keine Abhilfe mehr leisten. Im schlimmsten Fall muss die Website nocheinmal komplett neu entwickelt werden.

In diesem Artikel möchten wir Maßnahmen aufzeigen, die die oben genannten Risiken minimieren. 


Organisatorisches

In der TYPO3 Association ist ein eigenes Security Team für die Überwachung und Steuerung von sicherheitsrelevanten Fragen und Problemen rund um TYPO3 zuständig.

Es ist auf jeden Fall empfehlenswert, die Veröffentlichungen des Teams über die Kanäle eMail-Verteiler und Twitter-Account(@typo3_security) zu verfolgen.

Unter  https://typo3.org/help/security-advisories/ erhält man eine Liste aller bekannten Sichherheitslücken sowie entsprechende Handlungsempfehlungen, die jeweils als sog. “Security Bulletins” veröffentlicht werden. .

Security Bulletins

Es gibt drei Arten von Bekanntmachungen(“Security Bulletins”), die mit einer eindeutigen Kennung veröffentlicht werden:

  • TYPO3-CORE-SA-yyyy-nnn für Bulletins, die den TYPO3 Core betreffen
  • TYPO3-EXT-SA-yyyy-nnn für Bulletins, die für TYPO3-Extensions gelten
  • TYPO3-PSA-yyyy-nnn für Public Service Announcements

Wobei yyyy für das entsprechende Jahr der Veröffentlichung und nnn für eine fortlaufende Nummer steht.

Public Service Anouncements

Sichheitsrelevante Informationen, die nicht direkt den Source Code von TYPO3 oder Extensions betreffen, werden als sog. Public Service Announcements veröffentlicht. Darunter fallen unter anderem Probleme bei Dritt-Software wie Apache, PHP oder mySQL.

Severity

Die Severity ist ein Indikator für die Dringlichkeit einer Sicherheitslücke:

Severity Bedeutung
Critical höchste Dringlichkeitsstufe, die ein sofortiges Handeln erfordert
High zweithöchste Stufe, schnellstmöglicher Handlungsbedarf
Medium Ihre Installation ist nicht zwingend betroffen, dennoch sollte Update erfolgen
Low die Installation ist nur unter bestimmten – eher unwahrscheinlichen – Umständen     betroffen. Auch in diesem Fall empfehlen wir ein Update.

Warum ist es wichtig, immer das aktuellste Sicherheitsupdate zu installieren?
TYPO3 ist ein Quellcode offenes System. Durch den Vergleich von alter Version und neuer Version können Hacker sehr schnell erkennen, welche Änderungen durchgeführt wurden. Auf diese Weise wird dann auch die Schwachstelle der alten Version sichtbar.
Daher eine der wichtigsten Regeln in Sachen Sicherheit:

Halten Sie das System immer auf dem neuesten Sicherheitspatch. 


Installation

Installieren Sie den Code direkt von get.typo3.org. Vermeiden Sie vermeintlich einfachere Installationspakete von Drittanwendern. Vergleichen Sie den Haswert der heruntergeladenen Datei mit dem auf der offiziellen Website veröffentlichten.

Schreib- und Leserechte sollte nur der User (z.B. “apache”) haben, unter dem der Webserver läuft. Programmierer/Administratoren sollten durch eine Gruppenzuordnung entsprechende Rechte erhalten. Grundsätzlich reichen die Schreibrechte für die Verzeichnisse “fileadmin”, “typo3conf” und “typo3temp”.

Die Datei typo3conf/LocalConfiguration.php ist die wichtigste Konfigurationsdatei in TYPO3. Sie sollte nicht von Unbefugten les-(weil hier Datenbankzugangsdaten im Klartext enthalten sind) oder schreibbar(weil eine Änderung des Installtool-Passwortes und damit die Erstellung eines Admin-Accounts möglich ist) sein.

Für die Benutzung des Installtools sollten nur ausgewählte Administratoren sog. “Maintainer-Rechte” haben.

Redakteure sollten grundsätzlich keinen ftp/ssh/scp-Zugang zum Webserver haben.


Unter dem Punkt “Reports” im TYPO3 Backend gibt es einen Bereich “Security”, der komplett auf grün stehen sollte.

Server Response on static files
Hierbei handelt es sich um eine häufige Warnmeldung, die nach einer Standard-Installation häufig angezeigt wird. Damit wird die Möglichkeit beschrieben, mit dem TYPO3 Filemanager Dateien mit der Syntax „maliciouscode.html.txt“ (oder „maliciouscode.svg.txt“) hochzuladen. Einige Webserver behandeln diese Dateien als HTML-Dateien, weil sie die Zeichenkette „.html“ enthalten. 
Da html- und svg-Dateien schadhaften Code enthalten können, besteht für Redakteure die Möglichkeit, das System auf diese Weise zu unterwandern. Wir beschreiben in einem separaten Artikel zum Thema Server Response on static files, wie Sie dieses Problem beheben können.

Log

Unter "Log" werden wichtige Ereignisse in TYPO3 protokolliert. Hierzu zählen u.a. Systemfehler, auch Loginversuche, redaktionelle Maßnahmen, Datei-Uploads u.v.m.

Dieses Protokoll ist somit ein wichtiges Instrument bei der laufenden Systemüberwachung:


Mailbenachrichtigungen

In TYPO3 gibt es einige Möglichkeiten, über Systemveränderungen oder andere Ereignisse per Mail informiert zu werden.

Systemeinstellungen automatisiert überwachen

Mit dem Scheduler-Task „System Status Update“ können Sie die Systemumgebung automatisiert überwachen. Bei Fehler/Warnungen (oder wenn gewünscht grundsätzlich) wird eine Mail an die in der Taskdefinition hinterlegte Adresse geschickt.

Logins protokollieren

Lassen Sie sich per Mail informieren, wenn sich ein User(“1”) oder zumindest Administrator(“2”) einloggt:

 

$GLOBALS['TYPO3_CONF_VARS']['BE']['warning_mode’] = 1 oder 2
$GLOBALS['TYPO3_CONF_VARS']['BE']['warning_email_addr’] = <MAILADRESSE>

 

(Beide Werte können über das Installtool eingestellt werden)

Redakteure können sich über ihre persönlichen Einstellungen (siehe Schalter "Notifiy me by email when somebody logs in from my account") ebenfalls informieren lassen, wenn sich jemand über ihren Account einloggt.

Fehlgeschlagene Loginversuche

Sie können fehlgeschlagene Loginversuche manuell nachvollziehen, indem Sie unter „Reports“ das Filterfeld „Action“ auf „Login“ setzen und den gewünschten Zeitraum angeben:


Weitere Maßnahmen

Im Folgenden weitere Maßnahmen, die den Schutz Ihres TYPO3 Systems weiter erhöht:

Multifaktor-Authentifizierung

Ab TYPO3 v11 besteht die Möglichkeit, Backend-User nur noch über eine Mehrfaktorauthentifizierung
Zugang zum Backend zu ermöglichen.
Mehr Infos dazu in unserem Artikel zur Multifaktor-Authentifizierung mit TYPO3.

Logdaten anonymisieren

Anonymisieren Sie die Daten in der Tabelle sys_log über den Scheduler(Task „ Anonymize IP addresses in database tables”)

Verwendung des HTTP Security Headers

Die Verwendung von HTTP Security Headern ist eine weitere Möglichkeit, die eigene Website sicherer zu machen. Die Header weisen Browser z.B. an, Serveranfragen nur über "https" zu stellen( "HTTP Strict Transport Security response header" oder kurz HSTS), verhindern und vermeiden u.a. Angriffe durch Cross Site Scripting, MIME Sniffing und Clickjacking.

Ob Ihre Website mit diesen Headern ausreichend geschützt ist, können Sie unter https://securityheaders.com testen.

Eine einfache Lösung zum Setzen des HTTP Security Headers finden Sie in unserem DSGVO Artikel.

Inhaltselement “Plain HTML” deaktivieren

In TYPO3 gibt es die Möglichkeit, HTML(und damit auch svg/JavaScript)-Code als Inhaltselement auf einer Seite auszugeben. Diese Funktion sollten Sie zumindest für Redakteure über die „Access Lists“ in den Einstellungen des Users(oder besser der Gruppe) deaktivieren.

Hochladen von HTML, JavaScript- und SVG-Dateien unterbinden

HTML-, JavaScript- und SVG-Dateien können schadhaften Code enthalten. Die Möglichkeit des Hochladens solcher Dateien über den Filemanager sollte daher nach Möglichkeit unterbunden werden.

Table Garbage Collection

Löschen Sie regelmäßig über den scheduler-Task Table Garbage Collection die Tabellen syslog und sys_history
Wenn Sie – wie die meisten – die Extension powermail nutzen, löschen Sie auch die Tabellen tx_powermail_domain_model_mail und tx_poswer,ail_domain_model_answer.


Backupstrategie

Ein wichtiger Bestandteil für einen möglichst ausfallfreien Betrieb einer Website, ist das Vorhalten eines Backups. 

Komponenten eines TYPO3 Backups

Das Backup einer TYPO3 Installation umfasst zwei Komponenten:

1. Dateien
Ausschlaggebend sind i.d.R. die beiden Verzeichnisse:

<WEBROOT>/fileadmin
<WEBROOT>/typo3conf

Hierbei handelt es sich um Standardverzeichnisse, die in speziellen Fällen auch an anderer Stelle liegen können. „typo3conf“ kann z.B. aus Sicherheitsgründen auch außerhalb des Webroot Pfades liegen. „fileadmin“ kann anders heißen bzw. kann es weitere Verzeichnisse(„File Mounts“) geben.

2. Datenbank
TYPO3 benötigt eine Datenbank, die selbstverständlich auch zu sichern ist.

Backup testen
Um sicher zu gehen, dass Backups vollständig sind und problemlos zurück gespielt werden können, sollten diese getestet werden. In der Praxis bietet es sich häufig an, ein Backup in einer zweiten Umgebung zurückzuspielen und diese dann gleichzeitig als Testumgebung für Aufgaben zu verwenden, die nicht sofort im Live System durchgeführt werden sollen (wie z.B. Security Update, Template Änderungen usw.).

Weitere Hinweise

Backups sollten nicht (nur) lokal gehalten werden. Wir haben ein eigenes Backup Script entwickelt, das die Spiegelung von Backups auf andere Server ermöglicht.

Bedenken Sie, dass Backups persönliche Daten im Sinne der DSGVO enthalten können und treffen Sie entsprechende Schutzmaßnahmen, wie z.B. die Verschlüsselung und einen Passwortschutz.

Backup Intervalle

Da mögliche Funktions-Fehler, Datenverlust und/oder schadhafter Code in den meisten Fällen erst spät erkannt werden, sollten Backups nicht nur vom Vortag sondern über einen längeren Zeitraum verfügbar sein.

Wir empfehlen die folgenden Backup Intervalle:

  • Machen Sie ein tägliches Backup
  • Behalten Sie ein Backup der letzten 7 Tage
  • Behalten Sie ein Backup des letzten Monats
  • Behalten Sie ein Backup des letzten halben Jahres
  • Behalten Sie ein Backup der letzten 12 Monate

TYPO3 Support

Sie benötigen Support bei dem sicheren Betrieb Ihrer TYPO3 Installation(en)? Als TYPO3 Agentur mit zertifizierten Entwicklern unterstützen wir Sie gerne und bieten Ihnen einen profeesionellen TYPO3-Support. Wir freuen uns über Ihre Kontaktaufnahme.