hackers vs developers: progettere le applicazioni mobile tra owasp e osstmm
DESCRIPTION
Sicurezza è “protezione”, sintetizza il creatore dell’OSSTMM. Quando sviluppiamo applicazioni, i nostri “beni” vanno protetti dalle “minacce” tramite alcuni “controlli”. Il talk spiegherà, tramite un linguaggio semplice ed esempi, come proteggere le applicazioni Mobile e le varie componenti andando in profondità con l’approccio OSSTMM nei temi di OWASP e del Mobile: capire i controlli più efficaci e convenienti. Dopo una breve introduzione sull’OSSTMM verrà effettata la modellazione delle minacce su un tipico scenario mobile e quindi capire quali controlli applicare.TRANSCRIPT
Hackers vs Developersproteggere le applicazioni mobile tra OWASP e OSSTMM
Cri$cal ServicesSecurity
Grazie!
HACKERS VS DEVELOPERSproteggere le applicazioni mobile tra OWASP e OSSTMM
OSSTMM
“In breve, questo è il metodo per organizzare le operazioni militari” – Sun Tzu (L’arte della guerra)
minaccia -‐> controllo (-‐limitazioni) -‐> bene
“security is about protec$on”
Pete Herzog -‐ No More of the Same Bad Security
Visibility
opera7ons
Exposure!
visibility -‐ limita7on
Access
opera7ons
Trust
opera7ons
Vulnerability!
Visibility/trust -‐ limita7on
Authen;ca;on
controls – class a (interac7ve)
Indemnifica;on
controls – class a (interac7ve)
Resilience
controls – class a (interac7ve)
Subjuga;on
controls – class a (interac7ve)
Con;nuity
controls – class a (interac7ve)
Weakness!
limita7on – class a (interac7ve)
Non-‐Repudia;on
controls – class b (process)
Confiden;ality
controls – class b (process)
Privacy
controls – class b (process)
Integrity
controls – class b (process)
Alarm
controls – class b (process)
Concern!
limita7on – class b (process)
OSSTMM -‐ Limita;ons mapping
category opesec limita;ons
Exposure!
Vulnerability!
Weakness!
Concern!
Visibility
AccessTrust
Authen;ca;onIndemnifica;on
ResilianceSubguga;onCon;nuity
Non-‐Repudia;onConfiden;ality
PrivacyIntegrityAlarm
opera;ons
controls
Class A
Class B
Anomalies
THREAT MODELING FOR DUMMIES“Conosci il tuo nemico” – Sun Tzu (L’arte della guerra)
Applica;on Server
Web Service
Stru?ura ;po di una app mobile MVC
Web Server Database server
Data
T.L.P
S.M.
B.L.AT
AZ
HostHost
D.V. (I/O
)
HTTP
/CM
D.A.
Host
Minacce e ARacchi
Beni
E.H.A.LE.H.A.L.E.H.A.L.
Mobile
App
HW
O.S. FS
E.H.A.L.
Source
D.V.
API / Apps
Minacce e ARacchi
Insecure Data Storage
Minacce e ARacchi
Weak Server Side Controls
Minacce e ARacchi
Insufficient Transport Layer
Protec;on
Minacce e ARacchi
Client Side Injec;on
Minacce e ARacchi
Poor Authoriza;on
and Authen;ca;on
Minacce e ARacchi
Improper Session Handling
Minacce e ARacchi
Security Decisions Via Untrusted Inputs
Minacce e ARacchi
Side Channel Data Leakage
Minacce e ARacchi
Broken Cryptography
Minacce e ARacchi
Sensi;ve Informa;on Disclosure
DATA VALIDATION (INPUT/OUTPUT)“never trust the user input, output too”
verificare SEMPRE i da7 che riceviamocodice (X)HTML
URL/URI con vari protocolliprivilegi minini per le applicazioni
le sandbox
Au Id Re Su Ct NR Cf ItPr Al
M4 Client Side Injec;on, M7 Security Decisions via untrusted inputs
Data Valida$on su Mobile
Skype iOS insecure handling
anche se i da7 sono gia sta7 valida7 dall’applicazione, vanno verifica7 anche sul
server*(inoltre anche la componente web deve essere
proteQa)
Au Id Re Su Ct NR Cf ItPr Al
M2 Weak Server side controls(OWASP TOP 10 WEB in generale)
Il web server (Data Valida$on e altro...)
ERROR HANDLING AND LOGGING
“Avrebbero potuto analizzare e meVere su carta, nei minimi parWcolari, tuVo quello che s'era faVo, s'era deVo e s'era pensato” – Winston Smith
(1984)
non devono essere salvate informazioni riservate su filesystem (chache, log, screenshot, temp)
cancellare sempre i file dopo l’u7lizzo...... e aQenzione ai permessi sui file!
Au Id Re Su Ct NR Cf ItPr Al
M8 Side Channel Data Leakage
File System
lion exposes filevault password
AUTENTICAZIONE (AT)“Sì, ma tu chi sei?” – Neo a Seraph (The Matrix: Reloaded)
Implementata lato serverAVenzione ad usare idenWficaWvi hwProteVa nella comunicazione (TLP*)
Au Id Re Su Ct NR Cf ItPr Al
M5 Poor Authen;ca;on and Authoriza;on
Il sistema di auten$cazione
u;lizzo del deviceid
SESSION MANAGEMENT (S.M.)
“sa dirmi cosa darebbe pur di mantenere viva tale interazione?” – Rama (The Matrix: RevoluWons)
Sempre verificataNon permeVere sessioni contemporanee*DistruVa per Wmeout relaWvo e assoluto
(cookie, token, oauth)
Au Id Re Su Ct NR Cf ItPr Al
M6 Session Handling(Session Fixa;on, Session Hijacking/Cookie Stealing, Session ID Analysis)
La sessione di per se (tra device e server)
session aIer death
TRANSPORT LAYER PROTECTION“Sei sicuro che questa linea è sicura?” – Trinity (The Matrix)
Vanno proteU tuU i da7 sensibili (credenziali, id di sessione, cookie, da7 degli uten7…)
Au Id Re Su Ct NR Cf ItPr Al
M3 Insufficent Transport Layer Protec;on
La comunicazione
richiesta authToken per ClientLogin (Picasa)
DATI (CODICE E SEGRETI)“Ecco faVo, il segreto è questo” – Oracolo (The Matrix -‐ RevoluWons)
password o altre informazioni sensibili hardcodedalgoritmi e procedure proprietarie
Au Id Re Su Ct NR Cf ItPr Al
M10 Informa;on disclosure
Il codice sorgente
U7lizzare le Crypto API specifiche del S.O.evitare il filesystemtenerla sul server
Au Id Re Su Ct NR Cf ItPr Al
M9 Broken CryptoM1 Insecure Data Storage
I da$ da mantenere segre$
cri?ografia vs encoding
ldc literal_876:"QlVtT0JoVmY2N2E=”!invokestatic byte[] decode( java.lang.String ) invokespecial_lib java.lang.String.<init> // pc=2!astore 8!!private final byte[] com.picuploader.BizProcess.SendRequest.routine_12998 ! (com.picuploader.BizProcess.SendRequest, byte[], byte[] );! {! enter! new_lib net.rim.device.api.crypto.TripleDESKey!!
GRAZIE! Q/A?:)
RIFERIMENTI
ISECOM OSSTMMMicrosok SDLOWASP TesWng GuideOWASP Developer’s GuideOWASP Code Review GuideOWASP ASVSOWASP ASDR