Aus Sicherheitsgründen und zur Systemstabilität sollte jede Software gewartet werden. Ein wichtiger Teil der Wartung sind die regelmäßigen Updates und Upgrades von alten Versionen. Das ist für TYPO3 genau so wichtig, wie das regelmäßige Aktualisieren Ihres Virenscanners.
Ein Update ist erforderlich, wenn die bisherige TYPO3-Version veraltet ist, neue Funktionen genutzt werden sollen oder Sicherheitslücken entdeckt wurden. Auch einzelne Extensions sollten regelmäßig aktualisiert und getestet werden. Daher ist es ratsam, eine TYPO3-Installation stets auf dem neuesten Stand zu halten.
Welche Version Sie zur Zeit verwenden können Sie sehen, nachdem Sie sich in Ihrem TYPO3-System anmelden. Die Versionsnummer erscheint dann in der Titel-Zeile und auf dem Startbildschirm.
Update oder Upgrade?
Ein TYPO3 Update beseitigt eventuelle Fehler in der Software und führt zusätzliche Sicherheitsmaßnahmen ein. Neue Funktionen werden durch ein Update nicht eingeführt. Ein Update erkennt man an der Änderung der dritten Zahlengruppe, z.B. von 4.5.2 auf 4.5.3.
Bei einem Upgrade wird Ihr TYPO3 auf eine neuere Version aktualisiert. Diese zeichnet sich durch neue Funktionen, Verbesserung in der Benutzerfreundlichkeit oder durch verbesserte Leistung und Geschwindigkeit aus. Ein Upgrade erkennt man an der Änderung der zweiten Zahlengruppe, z.B. von 4.4.7 auf 4.5.3.
Wichtig zur Wartung sind insbesondere die Updates. Ein Upgrade wird erst fällig, wenn Ihre TYPO3 Version von den Entwicklern nicht mehr gepflegt wird, also für Ihre Version keine Updates mehr bereitgestellt werden.
Arten von Sicherheitsbedrohungen
Folgende Sicherheitsrisiken bestehen, wenn Sie kein rechtzeitiges TYPO3 Update durchgeführt haben:
Offenlegung von Informationen
Dies bedeutet, dass das System unter bestimmten Umständen Informationen einer externen Person zur Verfügung stellt. Solche Informationen könnten sensible Benutzerdaten (z.B. Namen, Adressen, Kundendaten, Kreditkarte, etc.) oder Informationen über das System (wie die Struktur des Dateisystems, installierte Software, Konfiguration, Versionsnummern usw.) sein. Ein Angreifer könnte diese Informationen nutzen, um einen Angriff gegen das System durchzuführen.
Identitätsdiebstahl
Unter bestimmten Bedingungen kann es möglich sein, dass das System persönliche Daten wie Kundenlisten, E-Mail-Adressen, Passwörter, Bestellhistorien oder Finanztransaktionen enthüllt. Diese Informationen können von Kriminellen für Betrug oder finanzielle Gewinne verwendet werden. Der Server mit einer TYPO3-Website sollte so gesichert werden, dass keine Daten ohne Zustimmung der Eigentümer der Website abgerufen werden können.
SQL-Injection
Mit SQL-Injection versucht der Angreifer, modifizierte SQL-Anweisungen an den Datenbank-Server senden, um Zugriff auf die Datenbank erhalten. Dies könnte dazu verwendet werden, um Informationen wie Kundendaten oder Benutzer-Passwörter abzurufen oder sogar die Datenbank-Inhalte zu verändert, indem beispielsweise Administratorenkonten in der Tabelle user hinzugefügt werden. Deshalb ist es notwendig, sorgfältig alle Parameter in der Datenbankabfrage zu analysieren und zu filtern.
Code-Injektion
Ähnlich wie bei der SQL-Injection enthält die „Code-Injektion“ Kommandos oder Dateien von Remote-Instanzen (RFI: Remote File Inclusion) oder aus dem lokalen Dateisystem (LFI: Local File Inclusion). Der abgerufene Code wird Teil der Ausführung des Skripts und läuft im Rahmen der TYPO3 Website (so hat es die gleichen Zugriffsrechte auf Server-Ebene). Beide Angriffe, RFI und LFI, werden oft durch unsachgemäße Überprüfung und Neutralisation von Benutzereingaben ausgelöst.
Authorization Bypass
Bei einem genehmigten Bypass Angriff nutzt ein Angreifer Sicherheitslücken in schlecht konzipierten Anwendungen oder Login-Formularen (z.B. Client-Seite Dateneingabe Validierung). Authorizationsmodule, die mit dem TYPO3 Kern ausgeliefert werden, sind getestet und geprüft. Aufgrund der offenen Architektur des TYPO3 kann dieses System durch alternative Lösungen erweitert werden. Dadurch können die Code-Qualität und Sicherheitsaspekte variieren.
Cross Site Scripting (XSS)
Cross-Site-Scripting tritt auf, wenn Daten, die von einer Anwendung verarbeitet werden, nicht auf alle verdächtigen Inhalte gefiltert werden. Es tritt am häufigsten bei Formularen auf Webseiten auf, wo ein Benutzer Daten eingibt, die dann durch die Anwendung verarbeitet werden. Wenn die Daten gespeichert oder auf ungefiltertem Weg zurück an den Browser geschickt werden, kann bösartiger Code ausgeführt werden. Ein typisches Beispiel ist ein Formular für einen Blog oder Gästebuch. Wenn die übermittelten Daten einfach in der Datenbank gespeichert werden, werden diese zurück an den Browser des Besucher geschickt, wenn der Blog oder das Gästebuch angezeigt werden. Dadurch ist es möglich nicht nur zusätzlichen Text oder Bilder einbinden, sondern auch JavaScript-Code oder eingebettete Frames, die den Code von einer fremden Website aufrufen.
Cross Site Request Forgery (XSRF)
Bei dieser Art von Angriffen werden nicht autorisierte Befehle von einem Benutzer eine Website gesendet. Betrachten Sie einen Editor, der in einer Anwendung (wie ein CMS oder Online-Banking-Service) angemeldet und daher im System zugelassen ist. Die Berechtigung kann in einem Session-Cookie im Browser des Benutzers gespeichert werden. Ein Angreifer kann eine E-Mail an die Person senden, mit einem Link zu einer Website mit vorbereiteten Bildern. Wenn der Browser die Bilder lädt, könnte es tatsächlich eine Anfrage an das System senden, wo der Benutzer angemeldet ist und Befehle im Namen des angemeldeten Benutzers ausführen.