30.10.04
Seite 1 - Security in TYPO3
Willkommen
Security in (und rund um) TYPO3
● Christian Kurta
http://www.typoheads.com
30.10.04
Seite 2 - Security in TYPO3
Agenda
● Security “Rund um TYPO3”
– LAMP / WAMP● Ist TYPO3 eigentlich “secure”?● Securing TYPO3● Make-me-weak!● Stresstesting
30.10.04
Seite 3 - Security in TYPO3
Ist Security messbar?
● Whitebox-Test● Redbox-Test● Code Review – Speziell bei Extensions● Performance / Stresstest
30.10.04
Seite 4 - Security in TYPO3
Security Rund um TYPO3
● Linux / Unix / Windows / OS X / ?● Apache● PHP● MySQL
30.10.04
Seite 5 - Security in TYPO3
Linux / Unix / Windows
● Nur absolut notwendige Programme installieren
● (< TYPO3 3.6.0: cp, mv)● Firewall (!!!)● tuga-assholes● Kernel Sicherheit / Microsoft BSA● Windows Updates
30.10.04
Seite 6 - Security in TYPO3
Linux
● Vorsicht bei Dateiberechtigungen● Nicht installieren:
– Kernel-source, gcc, make…– Wget, links, lynx, w3m …– Nc (Netcat), Etherreal …
● UserMode Linux● Tripwire, Chkrootkit● Logfiles dezentral speichern
30.10.04
Seite 7 - Security in TYPO3
Apache
● Nur absolut notwendige Module kompilieren● SSL fürs Backend verwenden!● Vorsicht bei:
– Directory Indexes– Includes
30.10.04
Seite 8 - Security in TYPO3
Die wichtigsten PHP.ini Variablen (1/2)
Safe_mode = On
Safe_mode_execdir = /meineexec/>= TYPO3 3.6.0
Open_basedir = /wwwalle TYPO3 Versionen
Register_globals = Off
30.10.04
Seite 9 - Security in TYPO3
Die wichtigsten PHP.ini Variablen (2/2)
● Log_errors = On● Display_errors = Off
30.10.04
Seite 10 - Security in TYPO3
MySQL-Security
● Root-Passwort vergeben!● Port 3306 bei der Firewall blockieren● Dem TYPO3 Web keine Create, Drop, Grant
usw Rechte geben.● Dem TYPO3 Web nur den lokalen Hostname
erlauben (localhost, www1 – nicht %)● phpMyAdmin mit .htaccess sichern
– (auch das von TYPO3)
30.10.04
Seite 11 - Security in TYPO3
MySQL-Performance (my.cnf)
● Persist Connections = Off● Max Users Limit auf Limit von Apache setzen!● Weitere Vorschläge?
30.10.04
Seite 12 - Security in TYPO3
Ist TYPO3 Secure?
● Security Audit 2002 von Martin Eiszner● Backend-Passwörter: MD5-Hash+unique
String – hard to guess● Backend-Sessions: 32bit MD5 Cookie -
120min gültig● Frontend-Passwörter: Plaintext
– “https enforcer” Extension
30.10.04
Seite 13 - Security in TYPO3
TYPO3 noch sicherer machen (1/2)
● /typo3-sourcecode mit .htaccess schützen● IPmaskList● lockToDomain bei BE-users/BE-groups● https fürs Backend – lockSSL = 1● Evtl typo3-Verzeichnis umbenennen● Keine SQL-Dumps speichern● Evtl localconf.php ausserhalb von webroot
30.10.04
Seite 14 - Security in TYPO3
TYPO3 noch sicherer machen (2/2)
● /typo3/dev Ordner löschen● Install-Tool mit die() Funktion versehen – oder
löschen.● Kein HTML-Content-Element für BE-User –
kein Button “HTML-Anzeigen” - XSS● Keine Installation von “Quickstart Package”● Warning_mode● Warning_Email_Addr
30.10.04
Seite 15 - Security in TYPO3
Make me weak! – Mach mich schwach!
30.10.04
Seite 16 - Security in TYPO3
Make me weak! – Mach mich schwach!
30.10.04
Seite 17 - Security in TYPO3
Make me weak! – Mach mich schwach!
● Praxisbeispiel
30.10.04
Seite 18 - Security in TYPO3
Stresstest
● Microsoft Application Test Center (im VisualStudio Paket enthalten -> Praxisbericht
● PureLoad● Bonny● top
30.10.04
Seite 19 - Security in TYPO3
Wie kann ich prüfen, ob ich nicht allein bin?
● w – Wer ist noch da?● lsof –pi -> Listet alle offenen Files & wer sie
offen hat.● ps auxw -> Prozesse überwachen● Verdächtige Dateien im /tmp verz.● Im httpd-log nach 100% suchen● Chkrootkit● tripwire
30.10.04
Seite 20 - Security in TYPO3
Links & Literatur
● Inside Typo3 – Abschnitt: Security● www.k-otik.com● www.securityfocus.org● www.kernel.org
30.10.04
Seite 21 - Security in TYPO3
Fragen / Antworten
● Vielen Dank für Ihre Aufmerksamkeit.