Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

60
Hackers vs Developers proteggere 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 of Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Page 1: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Hackers  vs  Developersproteggere  le  applicazioni  mobile  tra  OWASP  e  OSSTMM

Page 2: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Cri$cal  ServicesSecurity

Page 3: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Grazie!

Page 4: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

HACKERS  VS  DEVELOPERSproteggere  le  applicazioni  mobile  tra  OWASP  e  OSSTMM

Page 5: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM
Page 6: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

OSSTMM

“In  breve,  questo  è  il  metodo  per  organizzare  le  operazioni  militari”  –  Sun  Tzu  (L’arte  della  guerra)

Page 7: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

minaccia  -­‐>  controllo  (-­‐limitazioni)  -­‐>  bene

Page 8: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

“security  is  about  protec$on”

Pete  Herzog  -­‐  No  More  of  the  Same  Bad  Security

Page 9: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Visibility

opera7ons

Page 10: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Exposure!

visibility  -­‐  limita7on

Page 11: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Access

opera7ons

Page 12: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Trust

opera7ons

Page 13: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Vulnerability!

Visibility/trust  -­‐  limita7on

Page 14: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Authen;ca;on

controls  –  class  a  (interac7ve)

Page 15: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Indemnifica;on

controls  –  class  a  (interac7ve)

Page 16: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Resilience

controls  –  class  a  (interac7ve)

Page 17: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Subjuga;on

controls  –  class  a  (interac7ve)

Page 18: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Con;nuity

controls  –  class  a  (interac7ve)

Page 19: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Weakness!

limita7on  –  class  a  (interac7ve)

Page 20: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Non-­‐Repudia;on

controls  –  class  b  (process)

Page 21: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Confiden;ality

controls  –  class  b  (process)

Page 22: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Privacy

controls  –  class  b  (process)

Page 23: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Integrity

controls  –  class  b  (process)

Page 24: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Alarm

controls  –  class  b  (process)

Page 25: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Concern!

limita7on  –  class  b  (process)

Page 26: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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

Page 27: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

THREAT  MODELING  FOR  DUMMIES“Conosci  il  tuo  nemico”  –  Sun  Tzu  (L’arte  della  guerra)

Page 28: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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

Page 29: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Minacce  e  ARacchi

Insecure  Data  Storage

Page 30: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Minacce  e  ARacchi

Weak  Server  Side  Controls

Page 31: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Minacce  e  ARacchi

Insufficient  Transport  Layer  

Protec;on

Page 32: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Minacce  e  ARacchi

Client  Side  Injec;on

Page 33: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Minacce  e  ARacchi

Poor  Authoriza;on  

and  Authen;ca;on

Page 34: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Minacce  e  ARacchi

Improper  Session  Handling

Page 35: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Minacce  e  ARacchi

Security  Decisions  Via  Untrusted  Inputs

Page 36: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Minacce  e  ARacchi

Side  Channel  Data  Leakage

Page 37: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Minacce  e  ARacchi

Broken  Cryptography

Page 38: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Minacce  e  ARacchi

Sensi;ve  Informa;on  Disclosure

Page 39: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

DATA  VALIDATION  (INPUT/OUTPUT)“never  trust  the  user  input,  output  too”

Page 40: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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

Page 41: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

Skype  iOS  insecure  handling

Page 42: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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...)

Page 43: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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)

Page 44: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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

Page 45: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

lion  exposes  filevault  password

Page 46: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

AUTENTICAZIONE  (AT)“Sì,  ma  tu  chi  sei?”  –  Neo  a  Seraph  (The  Matrix:  Reloaded)

Page 47: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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

Page 48: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

u;lizzo  del  deviceid

Page 49: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

SESSION  MANAGEMENT  (S.M.)

“sa  dirmi  cosa  darebbe  pur  di  mantenere  viva  tale  interazione?”  –  Rama  (The  Matrix:  RevoluWons)

Page 50: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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)

Page 51: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

session  aIer  death

Page 52: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

TRANSPORT  LAYER  PROTECTION“Sei  sicuro  che  questa  linea  è  sicura?”  –  Trinity  (The  Matrix)

Page 53: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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

Page 54: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

richiesta  authToken  per  ClientLogin  (Picasa)

Page 55: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

DATI  (CODICE  E  SEGRETI)“Ecco  faVo,  il  segreto  è  questo”  –  Oracolo  (The  Matrix  -­‐  RevoluWons)

Page 56: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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

Page 57: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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$

Page 58: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

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!!

Page 59: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

GRAZIE!  Q/A?:)

Page 60: Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM

RIFERIMENTI

ISECOM  OSSTMMMicrosok  SDLOWASP  TesWng  GuideOWASP  Developer’s  GuideOWASP  Code  Review  GuideOWASP  ASVSOWASP  ASDR