[TYPO3-german] Wie sicher ist Typo3

David Bruchmann david at bruchmann-web.de
Tue Dec 23 03:17:26 CET 2008


Meiner Ansicht nach läßt sich bis auf wenige Massnahmen die Sicherheit
innerhalb von TYPO3 nur geringfügig erhöhen.

Beispiel: Userspezifische Salt-Werte bei der Verschlüsselung der Passworte,
ggf. vielleicht auch besonders sicherheitsrelevanter Daten - der
Renderingprozess erst einmal ausgenommen, da aber bei vereinzelten Inhalten
das Caching sowieso deaktiviert wird, währe das hier auch kein gravierender
Nachteil. Einen im BE offenliegenden Logarithmus zur Ver- und
Entschlüsselung könnte man zumindest erschweren indem man zufällig variable
Methoden zur Verschlüsselung wählt, die man über eine ID in den Saltwert
einarbeitet. Somit muss man schon rechnen um alleine die
Verschlüsselungsmethode ausfindig zu machen.
Ein entwendetes Passwort führt den notwendigen Aufwand jedoch ad absurdum.

Weitere Massnahmen lassen sich jedoch theoretisch von Ausserhalb auf
Serverebene ergreifen:
1) Referrer testen, Zugriff nicht nur von bestimmten Computern sondern auch
nur über einen zwischengeschalteten Server möglich.
2) SSH
3) Zusätzliches Passwort fürs BE per .htaccess zumindest für die reinen
BE-Funktionen.

Bei IP-Lock und 1) nützt einem das entwendete Passwort nichts. Allerdings
steigern einige Massnahmen den Verwaltungsaufwand stark, und lassen sich nur
durch hohe Zahl von Angriffen oder besonders schützenswerte Daten
rechtfertigen.

Darüber hinaus besteht zumindest bei ausreichender Zugriffsmöglichkeit die
Option das Passwort für MySQL per Cron-Skript in regelmäßigen Abständen zu
ändern. Allerdings denke ich, dass das den laufenden Betrieb beeinträchtigen
kann.

Gruß
David




-----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.netfielders.de
[mailto:typo3-german-bounces at lists.netfielders.de] Im Auftrag von Patrick
Rodacker
Gesendet: Dienstag, 23. Dezember 2008 02:32
An: typo3-german at lists.netfielders.de
Betreff: Re: [TYPO3-german] Wie sicher ist Typo3

Hallo Markus,

Markus Deckmann schrieb:

> Am besten erscheint es mir kurz zu beschreiben was für einen Kontext ich
> bei meiner Frage im Kopf hatte. Nehmen wir an ich wolle etwas in der
> Datenbank speichern, bspw. einen tt_news-Datensatz. Der Text dieses
> Datensatzes wird derzeit ja unverschlüsselt in der Datenbank gespeichert
> und bei Bedarf der Extension daraus wieder gelesen und ausgegeben. Jetzt
> ist mein Bedenken das bei einem unberechtigten Zugriff auf die
> entsprechenden Datenbanktabellen solche Inhalte ausgelesen werden können
> ohne über Typo3 gehen zu müssen, da die Inhalte ja dann komplett über
> den komprimitierten Zugang der Datenbank ausgelesen werden können. Meine
> Idee hierzu war jetzt beim speichern eines Datensatzes diesen bspw. mit
> etwas wie PGP zu verschlüsseln und dann diesen Wert in der Datenbank zu
> speichern. Beim auslesen dieses Wertes befindet er sich solange im
> PGP-Zustand bis es zur tatsächlichen Ausgabe kommt, d.h. so spät wie
> möglich im Quelltext soll eine Rückwandlung (u.a. durch Eingabe eines
> extra Passwortes des jeweiligen Benutzers) des Reintextes passieren der
> dann über die Webseite ausgegeben wird.
> 
> Meine Frage nach der Sicherheit war daher eher in die Richtung gemünzt
> zu erfahren wie es hier dann aussieht mit unberechtigtem Abfangen dieses
> beispielhaften Textes von oben.
> 
> Da bei dieser Anforderung die Sicherheit und Verschlossenheit der
> gespeicherten Daten oberste Priorität besitzt stellen bspw.
> Laufzeiten-Verlängerungen aufgrund der Verschlüsselung das kleinste
> Problem dar. Mein Bedenken ist nur das trotz der Verschlüsselung bspw.
> ein einfaches einhaken über bspw. einen Hook im Core möglich ist und ein< 
> abfangen der dort evtl. bereits entschlüsselten Inhalte.

auch wenn du keine weiteren Informationen liefern kannst, so finde ich
den bis dato beschriebenen Ansatz doch schon arg paranoid. Du gehst von
dem Szenario aus, dass du deinen Datenbankserver nicht sichern kannst,
bzw. dieser kompromittiert wird und du willst auf der aufsetzenden
Schicht die Sicherheit / Verschlüsselung implementieren, die du auf der
untergeordneten Schicht nicht gewährleisten kannst. Da hakt meiner
Meinung nach das Konzept schon komplett.

Angenommen, du legst wirklich alle Inhalte in der Datenbank mit einem
verschlüsselt ab, dann hast du immer noch das Problem, dass du für die
öffntlichen, bzw. nicht personenbezogenen Inhalte nur ein Schlüsselpaar
hast. Wenn du dann den privaten Schlüssel durch eine Benutzereingabe
verifizieren willst, dann musst du hierfür auf jeden fall diesen
Schlüssel auf einem zweiten Server ablegen, damit das ansich  überhaupt
Sinn macht.

Grundsätzlich wäre das sicherlich machbar und du musst dir dann mal den
Frontend Rendering Prozess von TYPO3 [1] ansehen und schauen, dass du
die Entschlüsselung zu einem so späten Zeitpunkt integrierst, so dass
keine Hooks danach folgen, die die entschlüsselten Daten da dann
abfangen. Ganz ehrlich denke ich aber, dass du da keine Chance haben
wirst, da du dann entscheidende Konzepte von TYPO3 wie z.B das Caching
über Bord werfen musst.

Auch wenn ich deinem Ansatz eher skeptisch gegenüber stehe, bin ich
interessiert daran, was du für eine Lösung für dein Problem entwickelst,
also halt uns auf dem laufenden ;-)

Besten Gruß
Patrick

[1]
http://buzz.typo3.org/uploads/media/TYPO3_Frontend_Rendering_Process_v1.5.pd
f


-- 
The Reflection - Webentwicklung
Patrick Rodacker

Parkallee 19
28209 Bremen

Telefon: +49 (0) 421 / 620 24 57
Mobil: +49 (0) 175 / 543 87 00

E-Mail: patrick.rodacker at the-reflection.de
Internet: http://the-reflection.de
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.netfielders.de
http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german



More information about the TYPO3-german mailing list