Designprinzipien sicherer Systeme Defense in Depth, Least Privilege, Design for Evil, Attack Surface Reduction, Security through Diversity, … Dr. Peer Wichmann IT-Sicherheitsbeauftragter WIBU-SYSTEMS AG Designprinzipien sichere Systeme Defense in Depth, Least Privilege, … Inhalt Buzzword Bingo Gründe pro / contra Defense in Depth Warum man es nicht macht oder machen sollte Warum man es dennoch tun sollte Vorgehensweise Einzelmechanismen Literatur Buzzword Bingo Buzzword Bingo Defense in Depth Awareness Multilevel Security Bedrohungsanalyse Multilateral Security Attack Surface Reduction Least Privilege Design for Evil Security through Diversity St. Florians Prinzip Defence in Depth Pro und Contra Contra Wir machen die Sicherheit erst am Schluss … Wir haben Mechanismen, die die Anforderungen abdecken korrekt implementiert … Wir sind kein Ziel … Time-to-Market Features bringen Geld, Sicherheit kostet Geld Wir haben kein Geld / keine Zeit dafür … St. Florian ist unser guter Freund … Uns ist noch nie etwas passiert … Pro Es gibt keine unwichtige Daten / Anwendungen Angriffe nehmen selten den erwarteten Weg Es gibt später immer Änderungen Implementierte Mechanismen haben manchmal Fehler Unterliegende Systeme haben Fehler Es können relativ einfach Sicherheitszusagen getroffen werden Es gibt eine weitere Verteidigungslinie Es gibt noch eine weitere Verteidigungslinie … Vorgehensweise Vorgehensweise I Entwicklungsprozesse haben vier gemeinsame Phasen Anforderungen Design Implementierung Tests Wo sollte man am besten die Sicherheitsaspekte betrachten? Überall! Vorgehensweise II Awareness schaffen Awareness im Management Awareness in der Entwicklung Awareness der Tester Awareness der Anwender Sicherheitsanforderungen aufstellen (Security Targets) Herstellersicht Betreibersicht Anwendersicht Vorgehensweise III Awareness schaffen Bedrohungsanalyse Was passiert wenn Awareness schaffen Vorgehensweise IV Sicherheitsmechanismen definieren Was wäre, wenn dieser Mechanismus komplett versagt? Schrittweise neue Schwellen einführen Unterschiedliche Hürden sind unterschiedlich robust Systemnahe Hürden sind oft robuster aber weniger feingranular Verteidigung gegen Angreifer von innen Nicht darauf einlassen: „Dafür haben wir doch schon einen Mechanismus“ Einzelmechanismen Awareness Ohne Security Awareness werden alle Beteiligten leichtinnig, so dass sie jedes Sicherheitssystem ad Absurdum führen Auf allen Ebenen muss Awareness vorhanden sein Geschäftsleitung Projektleitung Entwickler Tester Zum üben und spielen: OWASP WebGoat Bedrohungsanalyse Ohne korrekte Bedrohungsanalyse keine Verteidigung Was sind meine zu schützenden Werte Eigene Methodik zur Bedrohungsanalyse Ideenquelle: Grundschutzhandbuch des BSI Design for Evil Alle sind böse Hacker sind böse, Benutzer sind böser, Mitarbeiter sind die bösesten Alle versuchen den einfachsten Weg zu gehen Social Engineering Umgehen von Regeln Schlimmer als Bösartigkeit: Gleichgültigkeit Dämlichkeit Fehlende Awareness Attack Surface Reduction Entfernen unnötiger Scripte (PHP) Abschalten unnötiger Services (Telnet, FTP, …) Entfernen unnötiger Benutzerkonten (DB, Unix) Blockieren unnötiger Ports in der Firewall Segmentieren durch Firewall Changeroot Minimale Datenspeicherung Verschlüsselung von Daten Least Privilege Keine unnötigen Benutzerrechte Webserver ohne Privilegien Datenbankbenutzer des Webserver mit minimalen Privilegien Nicht: Darf der das, muss ich das verhindern (Blacklist)? Sondern: Muss und braucht der das (Whitelist)? Changeroot „Stored Procedures“ in Datenbanken helfen Benutzerrechte zu reduzieren Netzwerksegmentierung Aufteilen in unterschiedliche Vertrauensbereiche Kontrollierte Übergänge Verringerung der Angriffsfläche an unterschiedlichen Stellen Benutzerauthentisierung Alle Benutzer authentisieren Starke Mechanismen verwenden Kryptographie ist oft robuster als Passworte Systemmechanismen oft robuster als Eigenimplementierung Mehrere Faktoren Wissen (Passwort) Besitz (Token) Eigenschaft (Biometrie) Interessenabwägung! Prüfung von Benutzereigaben Niemals ungeprüfte Benutzereingaben verwenden Niemals gegen eine Blacklist prüfen Immer Whitelisting verwenden Prüfung immer serverseitig Clientseitige Prüfungen nur als Comfortfunktion XSS – Cross-Site-Scripting SQL-Injection Shell Escape Security by Default Benutzer verändern keine Voreinstellungen! Standardeinstellungen müssen gut überlegt sein Zu restringente Einstellungen: Benutzer werden überfordert Zu simple Einstellungen: Unsichere Defaults werden beibehalten Kryptographie Sichere und verlässliche Mechanismen Kein „Kryptographie um jeden Preis“ Einsatz mit Sinn, Verstand und Augenmaß Verschlüsselte Protokolle HTTPS SSH Spielwiese: CrypTool https://www.cryptool.org/de/ Beispiele und Schulungen Security through Diversity Gleiche Anforderungen durch unterschiedliche Mechanismen Unterschiedliche Firewalls Unterschiedliche Betriebssysteme Unterschiedliche Zuständigkeiten Dadurch sollen gleiche Fehler an mehreren Stellen vermieden werden Defense in Depth Einstellung bzw. Denkweise Sicherheit ist nie lokal an einer Stelle vorhanden Sicherheit muss immer raumfüllend sein Erfahrung und destruktives Denken sind gefragt Kriminelle Energie ist hier gut aufgehoben Literatur Literatur Peter Gutmann: Enigeering Security https://www.cs.auckland.ac.nz/~pgut001/pubs/book.pdf Ross Anderson: Security Engineering http://www.cl.cam.ac.uk/~rja14/book.html Ross Anderson: Why Cryptosystems fail http://www.cl.cam.ac.uk/~rja14/Papers/wcf.pdf OWASP WebGoat https://www.owasp.org/index.php/Category:OWASP_WebGoat_Project BSI Grundschutzhandbuch https://www.bsi.bund.de/DE/Themen/ITGrundschutz/itgrundschutz_node.html Clifford Stoll: Das Kukuksei http://pdf.textfiles.com/academics/wilyhacker.pdf [email protected] Deutschland: +49-721-931720 USA: +1-425-7756900 China: +86-21-55661790 http://www.wibu.com [email protected]
© Copyright 2024 ExpyDoc