Software Entwicklung für sichere mobile Endgeräte • • • • • • Mai 2016 Kurzvorstellung Situationsbeschreibung und Vorüberlegungen Angriffsvektoren Schutzmaßnahmen Praktisches Beispiel mit statischer Analyse des Quelltextes Zusammenfassung Security R&D - Oscar Angress Security Consultant - Jürgen Vollmer Sicherheit & QA Visualisierung Implementierung Firmenprofil • Zuverlässigkeit & Absturzsicherheit • Stabilität • Wartbarkeit Sicherer Entwicklungsprozess Automation Reports Verbessern der Sicherheit & Qualität Messbarkeit von Sicherheit & Qualität Analyze Automatisieren von Prozessen Company Profile – What we do ! Lösungen für den Entwicklungsprozess und mehr ! 1. Verbessern und Sicherstellen ihrer Software- & Produkt- … Sicherheit & Qualität, Zuverlässigkeit, Absturzsicherheit, Stabilität Wartbarkeit 2. Messbarkeit von Sicherheit & Qualität 3. Automatisieren von Prozessen mit der Implementierung von Softwarewerkzeugen und Services in bestehende Abläufe OSCAR T. ANGRESS Kurzvorstellung 01 02 03 Security Developer Architect Researcher Hacker Speaker .Net C++ Asm HA Software Multi Tier Cyber War Cyber War MOTIVATION 3% • Anonymous • Terrorists Espionage BEHIND ATTACKS Hacktivism Espionage 10% • Industry • Government Crime 01 02 03 04 Hacktivism 20% • Search for new Bugs • Fun Cyber Crime 67% • Ransom • Malware • Bank Robbery CYBER CRIME steigt im Vergleich zu den vergangenen Jahren kontinuierlich Click Mouse to Advance Animation CYBER WAR FUN DAMAGE SELL INFORMATION OR USE OF CONTROL UNKNOWN TARGET SELL INFORMATION DAMAGE CREATE MAX DMG POSSIBLE FUN FOR THE LOL’S MOTIVATION MONEY MONEY STEAL RANSOME CONTRACTORS STEAL 4 OTHER 3 ORGANIZATIONS 2 GOVERNMENT 1 INDUSTRY TARGETS 30% WAR, ESPIONAGE 10% 15% 45% WAR, ESPIONAGE Aurora Op. ALLE ANDEREN ATTACK VECTORS SOCIAL ENGINEERING EXPLOITS Das hier sind nur die 4 Top Vektoren oder Techniken die verwendet werden meistens in Kombinationen. SYSTEM APPLICATIONS SOCIAL ENGINEERING EXPLOITS WEAK SYSTEM VULNERABILITIES TELEFON EMAIL WEB MISSING PATCHES MISCONFIGURATION BAD CODE QUALITY OPENSOURCE 3rd Party COMPONENTS 50% Beispiel: Spoofing (CallID) Spoofing (Email) Verlockende Fallen 10% Visit on Web 80% Porno web Schadcode wird von Hackern hinterlassen. 10% Administrationsfehler 30% Keine Codereviews und nicht in den Entwicklungsprozess eingebunden SOFTWARE IS EVERYWHERE TCPIP Switch Printer Router Operating System DataBase WIFI My Product 3rd part Components Firewall Bluetooth RISIKOANALYSE Verifizierung Visuelle und nicht Visuelle Execution Remote Execution, Code Sign, Hashes, Exe Security Code Polymorphism Communication Hashes, Tokens, Verschlüsselung Validation Source Analyze, Hardware binding RISIKOANALYSE SYSTEM UPDATES SOFTWARE auf dem neuesten Stand Execution Process Security, Exe Security, Communication Hashes, Tokens, Verschlüsselung Validation Daten Verschlüsselung, Code Sign, Hardware binding Was sie heute tun reicht nicht aus! PANIC? Notfallpläne SERVER COMPROMISED SOFTWARE VULERABILITIES Was ist mit meinen Daten? Hotfixes? Erzwungene Updates? HACKER ATTACK STOLEN DEVICE Wie gehe ich damit um? Systeme nicht erreichbar? Erstellen Sie Verhaltensregeln bei Notfällen und bereiten sie sich vor. WEAKNESS - MOBILE DEVICE APPS SYSTEM COMM USER Sensitive Data Storage No Encryption Runtime Injections Escalated privileges Communication architecture Jailbreaking Passcode Firmware Encryption Phishing Framing Clickjacking Man in the middle Buffer overflows Trust Location HOW TO PROTECT APPLICATION PROTECTION ARCHITECTURE - - Plannung Sprachenauswahl Anti revers engineering Executable Protection DEVICE ENCRYPTION - UNSECURE Client Server STRONG AUTHENTICATION - Passwordsecurtiy PGP Certificate REMOTE FUNCTIONS - Serverbasierende Funktionen Minimaler Client SECURE ANALYSIS - Code Analyze Code Review Risikoabschätzung CHECKMARX CODE QUALITY AND SECURITY ERRORS Reporting Fehleridentifikation und Behebung Informationen über des Stand der Entwicklung für Entwickler und Management FIRST SCAN Guide Erster Scan der bestehenden Software Entwicklungsprozess steuerung Scan Results Workflow Select a Result Run & Manage Scans 1. Select a Result Begin by selecting the result type which contains all the instances of that vulnerability 2. Follow the Data Flow Graph 3. View in Source Code 4. Manage Results Look for best fix locations in the Graph view that displays connections between the results Select your result to view its code. This attack begins in row 173 Scan Results Workflow Understand the Result Run & Manage Scans 1. Select a Result 2. Follow the Data Flow Graph 3. View in Source Code 4. Manage Results For a SQL Injection scan result, the Data Flow Graph (DFG) shows the tainted areas in the source code, from beginning to end. A ‘tainted’ field is a field that can potentially carry malicious data. int iPassed = Convert.ToInt32(Utility.Dlookup("members", "count(*)",Login.Text)); public string Dlookup(string table, string field, string sWhere) { string sSQL = "SELECT “+ field +"FROM"+ table + "WHERE" + sWhere; OleDbCommand command = new OleDbCommand(sSQL,Connection); OleDbDataReader reader= command.ExecuteReader(CommandBehavior.SingleRow); … Scan Results Workflow Manage Results Run & Manage Scans 1. Select a Result Set Result State To Verify (default) Not Exploitable Confirmed Urgent 2. Follow the Data Flow Graph 3. View in Source Code 4. Manage Results Result Severity High Medium Low Info Assign Result to User The result’s state, severity and assignment stay with the result from scan to scan until this result no longer appears in the scan results. For example, set false positive results’ state to ‘Not Exploitable’. Look and Feel in Eclipse Look and Feel in Eclipse Workflow in Eclipse The look and feel in the Eclipse plug-in is very similar to the web interface. In addition to the regular Eclipse code pane (default position: upper-left), the CxViewer interface includes four panes with different levels of information. Data Flow Graph Full Graph The red-bordered element represents a best-fix location: Securing the code at this point will fix multiple instances of the vulnerability Results according to vulnerability type Workflow in Eclipse View Scan Results Workflow in Eclipse 1. View Scan Results 2. Look for Best Fix Location 3. View in Source Code 4. Re-scan In order to run a new scan, right-click the Project in Eclipse and select CxViewerAction Scan. The code contains 53 instances of SQL Injection Workflow in Eclipse Best Fix Location Workflow in Eclipse 1. View Scan Results 2. Look for Best Fix Location 3. View in Source Code Look for the nodes marked in red and zoom-in on them 4. Re-scan Workflow in Eclipse Fix & Re-scan Workflow in Eclipse 1. View Scan Results 2. Look for Best Fix Location 3. Fix in Source Code 4. Re-scan Now you can secure the code Select the red rectangle to view this element in the code in context Was sollte ich tun? Planung der Entwicklung unter Berücksichtigung aller Faktoren Aufsetzen von Sicherheitsmetriken für die Eigen- und Fremdentwicklung Ständige Quelltextüberprüfung während der Entwicklung Ausbildung meiner Mitarbeiter Penetrationstest und simulierte Angriffe Wir unterstützen sie von der Planung und Prozessgestaltung bis zum Testen von Software [email protected] Fragen & Antworten