Secure Programming vs. Secure Development

Ähnliche Dokumente
Web-Sicherheit: Kein fauler Zauber?! Kai Jendrian. <Seminartitel> <Seminartitel>

Warum werden täglich tausende von Webseiten gehackt?

Web Application Security

am Beispiel - SQL Injection

am Beispiel - SQL Injection

Datensicherheit. Vorlesung 7: Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

Was ist bei der Entwicklung sicherer Apps zu beachten?

Abbildung der Gefährdungen der WASC und OWASP auf die Gefährdungen und Maßnahmenempfehlungen des IT-Grundschutz-Bausteins B 5.

Baustein Webanwendungen. Stephan Klein, Jan Seebens

FileBox Solution. Compass Security AG. Cyber Defense AG Werkstrasse 20 Postfach 2038 CH-8645 Jona

IT-Sicherheit Angriffsziele und -methoden Teil 2

Sichere Entwicklung und gängige Schwachstellen in eigenentwickelten SAP-Web- Anwendungen

Exchange Verbund WOLFGANG FECKE

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 2013 OneConsult GmbH

Lokale Installation von DotNetNuke 4 ohne IIS

Netzwerksicherheit Übung 9 Websicherheit

Praktische Erfahrungen aus hunderten von Sicherheitsabnahmen German OWASP Day Dr. Amir Alsbih CISO Haufe Gruppe

Aktuelle Bedrohungen im Internet

OpenWAF Web Application Firewall

Datensicherheit. Vorlesung 5: Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

OWASP Top 10. im Kontext von Magento. Mittwoch, 21. November 12

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Sicherheit Web basierter Anwendungen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Absicherung von Web-Anwendungen in der Praxis Highlights aus den OWASP TOP 10

Operator Guide. Operator-Guide 1 / 7 V1.01 / jul.12

zum IT- und Business Service Management

ACCOUNTINFO 1.01 VERWENDEN DER ACCOUNTINFO-SCHNITTSTELLE ABFARGE VON ACCOUNT-INFORMATIONEN IN ECHTZEIT 02. MÄRZ 2010

Secure Webcoding for Beginners

Hilfe zur Konfiguration der Software Smart-eShop & Smart-Admin-Bereich

Secure Coding & Live Hacking von Webapplikationen. Conect Informunity

Agenda. Agenda. Web Application Security Kick Start. Web Application Security Kick Start. OWASP Top Ten meets JSF. OWASP Top Ten meets JSF

Empfohlene Sicherheitsmaßnahmen aus Sicht eines Betreibers. Wien,

Sicherheitseinstellungen... 2 Pop-up-Fenster erlauben... 3

Sicherheit in Webanwendungen CrossSite, Session und SQL

Protect 7 Anti-Malware Service. Dokumentation

sslstrip und HSTS Sven Schleier OWASP Stammtisch München, 18. Februar 2014 sslstrip und HSTS sslstrip und HSTS Sven Schleier Der Angriff

Sicherheitstechnische Qualifizierung (SQ), Version 10.0 Security Assurance Level SEAL-3

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Das Leitbild vom Verein WIR

Der Gabelstapler: Wie? Was? Wer? Wo?

Internet Explorer Version 6

Cambridge ESOL BULATS Online FAQs Konfiguration des Internet Explorers

Die Oracle BI Trilogie von Trivadis

Oracle GridControl Tuning Pack. best Open Systems Day April Unterföhring. Marco Kühn best Systeme GmbH

Task: Nmap Skripte ausführen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Authentisierung in Unternehmensnetzen

Die Post hat eine Umfrage gemacht

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.

Anleitung zum Prüfen von WebDAV

iphone app - Anwesenheit

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Sorgfalt im Umgang mit Identitätskennungen (fürs Zertifikat)

Kompatibilitätsmodus und UAC

SAP NetWeaver Gateway. 2013

Datenschutz im Unternehmen. Was ist Datenschutz, und weshalb betrifft er unser Unternehmen?

Zugriff auf elektronische Angebote und Datenbanken der Hochschulbibliothek von externen Lokationen

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Anleitung für die Lohnmeldung via ELM-Standard mittels PartnerWeb

Die Industrie- und Handelskammer arbeitet dafür, dass Menschen überall mit machen können

Anwendungsbeispiele Sign Live! Secure Mail Gateway

Hacker-Methoden in der IT- Sicherheitsausbildung. Dr. Martin Mink

Herzlich willkommen zur Kurzvorlesung: Die häufigsten Fehlerquellen bei der Erstellung von Webapplikationen. Udo H. Kalinna. Nürnberg, den

Einrichtung eines -Kontos bei Mac OS X Mail Stand: 03/2011

Anleitung zum Prüfen von WebDAV

Web Applications Vulnerabilities

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

3. Stored Procedures und PL/SQL

Oracle Database Backup Service - DR mit der Cloud

<Insert Picture Here> Ohne Fenster-zur-Welt SSO mit ios-apps und Oracle Access Manager

Software WISO Hausverwalter 2014 Datenübernahme aus WISO Mein Geld Version / Datum V 1.0 /

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Hinweise bei Problemen mit Makros

XONTRO Newsletter. Kreditinstitute. Nr. 81 (Update)

Popup Blocker/Sicherheitseinstellungen

Windows Server 2008 für die RADIUS-Authentisierung einrichten

Kontaktlos bezahlen mit Visa

Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind. Albert Einstein BERATUNG

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Zusammenfassung Web-Security-Check ZIELSYSTEM

Impulse Inklusion Selbst-bestimmtes Wohnen und Nachbarschaft

Hacker-Tool Browser von der Webanwendung zu den Kronjuwelen

TNT SWISS POST AG KUNDENSERVICE. Kompetent I lokal I sofort erreichbar in vier Sprachen (DE, FR, IT & EN) THE PEOPLE NETWORK

LANiS Mailversender ( Version 1.2 September 2006)

SWOT Analyse zur Unterstützung des Projektmonitorings

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Software-Entwicklungsprozesse zertifizieren

StarMoney Umstellungsassistent

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

FATCA Quo vadis? Georg Blesinger Consultant Financial Services Frankfurt, Januar 2011

Transkript:

Secure Programming vs. Secure Development Niklaus Schild Senior Consultant Niklaus.schild@trivadis.com Zürich, 10.Juni 2010 Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Wien

Agenda Entwicklung der Sicherheitsprobleme Trust-Modeling Input-Validierung Daten sind immer im Spiel. Output-Encoding Schutz vor CSRF Secure Development Secure Programming 2

*) OWASP Top 10 Entwicklung der Sicherheitsprobleme 2004* 2007* 2010* Unvalidated Input Cross Site Scripting Injection Broken Access Control Injection Flaws Cross Site Scripting Broken Authentication and Session Management Malicious File Execution Broken Authentication and Session Management Cross Site Scripting Insecure Direct Object Reference Insecure Direct Object Reference Buffer Overflow Cross Site Request Forgery Cross Site Request Forgery Injection Flaws Information Leakage and Security Missconfiguration Improper Error Handling Improper Error Handling Broken Authentikation and Session Management Insecure Cryptographinc Storage Insecure Storage Insecure Cryptographinc Failure to Restrict URL Access Storage Application Denial of Service Insecure Communications Insufficient Transport Layer Protection Insecure Configuration Management Failure to Restrict URL Access Unvalidated Redirects and Forwards Secure Programming 3

*) OWASP Top 10 Entwicklung der OWASP Top 10 2004* 2007* 2010* Unvalidated Input Cross Site Scripting Injection Broken Access Control Injection Flaws Cross Site Scripting Broken Authentication and Session Management Cross Site Scripting Malicious File Execution Insecure Direct Object Reference Buffer Overflow CSRF CSRF Injection Flaws Broken Authentication and Session Management Insecure Direct Object Reference Information Leakage and Security Missconfiguration Improper Error Handling Improper Error Handling Broken Authentikation and Session Management Insecure Cryptographinc Storage Insecure Storage Insecure Cryptographinc Failure to Restrict URL Access Storage Application Denial of Service Insecure Communications Insufficient Transport Layer Protection Insecure Configuration Management Failure to Restrict URL Access Unvalidated Redirects and Forwards Secure Programming 4

Entwicklung der Sicherheitsprobleme Ein erheblicher Teil der Sicherheitsprobleme lassen sich auf Validierungs-Probleme im Input/Output-Kontext zurückführen Warum? komplizierte Lösungsansätze Fokus auf konkrete Fällen anstatt auf übergeordneter Problematik Ganzheitliche Lösungsansätze werden zu wenig praktiziert Das übergeordnete und fundamentale Konzept des Trust- Modeling hilft diese Probleme zu lösen: 1. Kann ich den Daten vertrauen? 2. Erstellen des notwendigen Vertrauens Secure Programming 5

Trust-Modeling Im Trust-Modeling werden Vertrauensverhältnisse von Datenflüssen analysiert F: kann der Browser den Web-App Daten vertrauen? A: wenn der Browser dem Web-App Betreiber vertraut F: kann die Web-App den DB-Daten vertrauen? A: wenn: - DB-Betreiber vertraut wird - Integrität gesichert ist Browser Web-App DB F: kann die Web-App den Browser-Daten vertrauen? A: wenn: - Benutzer vertraut wird - Integrität gesichert ist - Anfragen zu Antworten passen - nur wenn Daten validiert sind F: kann die DB den Web-App Daten vertrauen? A: wenn: - Web-App Betreiber vertraut wird - Integrität gesichert ist Secure Programming 6

Trust-Modeling Web-App Browser GET Request 1 login.jsp Response HTML/CSS 2 POST Request: j_username, j_password 3 anonym 1 X.509 Zertifikat (HTTPS) erlaubt Authentisierung der Web-App gegenüber Browser einseitige Vertrauensstellung 2 Kann Web-App die Response ohne weiteres zum Browser schicken? 3 Web-App kann dem Browser (Benutzer) nicht vertrauen Request kann nicht vertraut werden Validierung erforderlich! Secure Programming 7

Trust-Modeling Web-App Browser ueberweisung.jsp Response HTML/CSS POST Request: Konto=X, Betrag=Y Response HTML/CSS 1 1 2 authentisiert 1 Kann Web-App die Response einfach an den Browser schicken? Ist sie statisch generiert: ja Daten aus Datenbank bezogen: nein (ausser DB ist 100% vertrauenswürdig!) Daten müssen korrekt Codiert werden 2 Kann Web-App dem Request vertrauen? Benutzer ist Authentisiert Secure Programming 8

Trust-Modeling Trust-Modeling zeigt, wo kritische Datenströme entstehen Wir haben Schnittstellen identifiziert, bei welchen ein Vertrauensverhältnis erstellt, Daten validiert und korrekt kodiert werden müssen. Was muss an diesen Schnittstellen beachtet werden? Sicherstellen, dass die Vertrauensverhältnisse sichergestellt und gewahrt werden Input Validierung Output Encoding und weitere vertrauensbildende Massnahmen Secure Programming 9

Input/Output Validierung Input-Validierung bekämpft folgende Sicherheitsprobleme: SQL-Injection LDAP-Injection X-Path-Injection XSLT-Injection Command Injection Parameter Injection Buffer Overflows Output-Validierung (oder Encoding) bekämpft folgende Sicherheitsprobleme: Cross Site Scripting Secure Programming 10

Input Validierung Massnahmen für Input Validierung An sämtlichen Schnittstellen müssen die Eingaben validiert werden Generell: Syntax- und Semantikvalidierung Whitelisting der erwarteten Zeichen Blacklisting der gefährlichen Zeichen Steuerzeichen z.b.:,=-:;%$ Zeichen mit besonderer Bedeutung z.b.: \0 SQL-Injection: Prepared Statements (z.b. OR-Mapper) Stored Procedures Bean Validation ESAPI (Enterprise Security API) Secure Programming 11

Output Encoding Überall wo nicht vertrauenswürdige Daten in einen potentiell ausführbaren Kontext kopiert werden muss das richtige Encoding sichergestellt werden: HTML HTML escaping & &amp < &lt > &gt " &quot Das gilt auch für:javascript, CSS, URL, etc. Um XSS effizient bekämpfen zu können ist ein (Encoding)Framework erforderlich: z.b. ESAPI Secure Programming 12

Beispiel Cross Site Request Forgery POST-Request in GET-Request umgefwandelt...bank-2/pages/ueberweisung.jsf... &form%3aselectonemenukonto=sparkonto+10007392 &form%3akontonummer=10005821 &form%3averwendungszweck=test &form%3abetrag=233 &form%3aueberweisen=%c3%9cberweisung... In Link verpackt <a href=... > Wetterbericht</a>...dem Opfer untergejubelt... Secure Programming 13

Schutz vor CSRF Wenn Webanwendungen kritische Transaktionen durchführen, muss CSRF verhindert werden: Administrative Aktivitäten Firewall-Konfiguration, Hinzufügen, Verändern und Entfernen von Benutzer E-Banking oder e-commerce Transaktion Transparete Massnahme: Synchronizer Token in jeden Request einbinden CSRF Guard Kein XSS! Massnahme mit Benutzerinteraktion Re-Authentisierung Einmal-Passwort CAPTCHA Secure Programming 14

Secure Development Was haben wir eben gemacht? Über Trust-Modeling kritische Schnittstellen in Anwendung identifiziert Sicherheitsmassnahmen diskutiert Nachhaltige Sicherheit funktioniert nur im ganzheitlichen Kontext Secure Development Secure Development (Security Development Lifecycle) erfordert: Ausbildung Governance Risikoanalyse Secure Programming Test und Verifikation Secure Programming 15

Vielen Dank!? www.trivadis.com Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Wien