Letzte Änderung:
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:
In diesem Artikel möchten wir Maßnahmen aufzeigen, die die oben genannten Risiken minimieren.
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. .
Es gibt drei Arten von Bekanntmachungen(“Security Bulletins”), die mit einer eindeutigen Kennung veröffentlicht werden:
Wobei yyyy für das entsprechende Jahr der Veröffentlichung und nnn für eine fortlaufende Nummer steht.
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.
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.
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.
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:
In TYPO3 gibt es einige Möglichkeiten, über Systemveränderungen oder andere Ereignisse per Mail informiert zu werden.
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.
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.
Sie können fehlgeschlagene Loginversuche manuell nachvollziehen, indem Sie unter „Reports“ das Filterfeld „Action“ auf „Login“ setzen und den gewünschten Zeitraum angeben:
Im Folgenden weitere Maßnahmen, die den Schutz Ihres TYPO3 Systems weiter erhöht:
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.
Anonymisieren Sie die Daten in der Tabelle sys_log über den Scheduler(Task „ Anonymize IP addresses in database tables”)
Aber TYPO3 Version 11 können Sie die Anzahl von gescheiterten Loginversuchen limitieren. Wählen Sie als Admin mit Maintainer-Rechten den Punkt "Settings" -> "Configure Installationwide Options" und ändern Sie hier je nach Wunsch die Parametern [BE][loginRateLimit], [BE][loginRateLimitInterval] und [BE][loginRateLimitIPExcludeList]
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.
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.
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.
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.
Ein wichtiger Bestandteil für einen möglichst ausfallfreien Betrieb einer Website, ist das Vorhalten eines 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.).
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.
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:
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.