5. Netzwerkattacken: DDoS
Verteilte Denial of Service Attacken
einige hundert bis mehrere Millionen kompromittierte
Rechner (BotNet)
Schicken udp, icmp, tcp Packete, reflektiertes DNS
typ0-udp-dos
Network
bis zu 25 GB/s (empirisch)
6. Distributed Denial of Service
Wird vorrangig kriminell genutzt
Erpressung (in-ist-drin.de 7/2007, many more)
Politisch (Estland 5/2007, mehr als 1.000.000
Computer im Botnet)
Kriminell (Anti-419, Anti-Dialer-Sites)
War eigentlich mal ein Spass für Scriptkiddies im IRC
Network
7. DDoS Schutz
Sie alleine können sich nicht schützen
Ihr Firewall hilft nicht, wenn ihr Uplink kleiner als 25
GB/s ist.
Ihr Provider kann, „DDos Managed Security Services“
Der Traffic für die angegriffene Seite wird verworfen (/
dev/null) oder zu einem reinigenden Router geschickt
Network
Blackholing ist im Weihnachtsgeschäft suboptimal, eine
Cleaning Router Infrastruktur ist teuer.
8. Schutz für das lokale Netz
Eine Firewall muss sein
Nur was sein muss, alles andere aus:
FTP, SSH, SUN-RPC, DNS, SMTP, IMAP, POP
Ein Service, den sie wirklich brauchen
IP-Filterung, eigenes Management-Netz
Network
besser: ein VPN nutzen
9. Linux absichern
nicht benötigte Dienste deaktivieren
nicht benötigte Software deinstallieren
aktuell bleiben
Kernel härten
Linux
ungebrauchte Module deaktivieren
Kernel-Module global deaktivieren
Mandantory Access Control wie SELinux oder
AppArmor nutzen
10. GRSecurity
Patchset gegen 2.4.x un 2.6.x Kernel
Beinhaltet PaX
ASLR, Page NX
Role Based Linux Control (RBAC)
Access
Chroot hardening, Signal logging, etc.
Hardened Gentoo, Hardened Linux from Scratch
11. SELinux
Security Enhanced Linux
von der NSA entwickelt
technisch sehr sicher
Linux
kompliziertes Rechtesystem
Teil vom Mainline Kernel 2.6,
Redhat, Fedora, OpenSUSE, Debian
12. AppArmor
Wurde als „SubDomain“ von Immunix entwickelt
... die von Novell gekauft wurden
Teil von Novell/SuSE Linux
Open Source, unterstützt auch viele andere
Linux
Distributionen
SELinux für Doofe
Wir benutzen es gerne
13. AppArmor
Einfacher Ansatz für Mandantory Access Control
Filerechte und POSIX capabilities
basiert auf Filenamen
Einfacher Workflow
Linux
die Software wird während der Nutzung profiled
das Profil wird als Sammlung erlaubter Zugriffe
genutzt
14. Warum ich AppArmor mag
Ihr PHP-Script soll in config.inc.php schreiben
By default verbieten es beide
SELinux:
Label für /var/www/html is http_sys_content_t ->
Linux
Schreibzugriffe erlauben für /var/www/html
AppArmor:
/var/www/html/config.inc.php w
15. Harte Indianer
Alle nicht benötigten Module deaktivieren
mod_parmguard
Apache von applikationsspezifischen Filtern für
Setzen
Parameter
mod_security
freier, kleine Web Application Firewall
filtert nach Whitelist mt regulären Ausdrücken
Standardregelsets (gotroot.com)
16. mod_security
von Breach-Security gekauft, heute Dual-Lizensiert
Filter fürs Grobe
Apache
Code Executions, Inclusions, SQL-Injections, XSS
mod_security 2.0
Statefull
Session support
17. MySQL Sicherheit
MySQL in SELinux/AppArmor laufen lassen
Netzwerk deaktivieren: skip-networking
MySQL
Filezugriff deaktivieren: set-variable = local-infile=0
Unnötige Dinge entfernen:
test datenbank
default users, default rights
Nur wirklich benötigte Rechte vergeben
20. Suhosin Engine Patches
Globale Schutzmechanismen für Low-Level-Bugs
PHP
Memory Manager Hardening (Canary/Safe-Unlink)
Hashtable Destructor Protection
Protection gegen Format String Vulnerabilities
Realpath() Härtung
21. Suhosin Extension
Schutz für unbekannten Bugs
PHP
Granular verbotene Methoden nach vhosts
Schutz gegen Remote Inclusion
Transparente Session/Cookie Encryption
Variable und Upload Filtering
22. Suhosin Logging
Viele Ausgabekanäle
PHP script, File
syslog, Shell Script, PHP
Mehrere Loglevel
Log Message mit Datei, Zeile und Angreifer-IP
Simulationsmodus zum testen und tunen
23. Coding Guidelines
E_ALL/E_STRICT safe coding
keine globalen Variablen nutzen
PHP
verbotene Funktionen
definierte Nutzung von Konstanten
Parameter Binding Datenbank-API
Libraries für CSRF Schutz, Eingabevalidation, -filterung,
-escaping, Datenbankzugriffe
24. Input / Output Flow in PHP
Input check:
Validierung in Abhängigkeit von dem erwarteten
Inhalt PHP
Invalider Input entweder sanitizen oder löschen
Output Escaping:
Es gibt 5 Escape-Methoden für HTML, 2 für SQL, 2
für Shellausführung.
Es git keine Default Escaping
25. Parameter Binding in PHP
<?php
$pdo = new PDO(DSN);
PHP
$stm = $pdo->prepare(
‘SELECT * FROM foo LIMIT :id‘);
$stm->bindValue(‘:id‘, 1);
$stm->execute();
Bind Parameters in Bezeichnern und Syntaxelementen
geht nicht.
27. PHP-IDS
Besser als nichts
Irgendwie konnte manPHP
es immer umgehen
Keine Ausrede für mangelhafte Validierung, Filterung
und Escaping
Kann man zum automatische Abmeldung eines
Benutzers verwenden