hackers vs developers: progettere le applicazioni mobile tra owasp e osstmm

Post on 18-Nov-2014

666 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

top related