Laden sie sich hier die Präsentation herunter

Werbung
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
Herunterladen