Hackers	
  vs	
  Developers
proteggere	
  le	
  applicazioni	
  
mobile	
  tra	
  OWASP	
  e	
  
OSSTMM
Cri$cal	
  Services
Security
Grazie!
proteggere	
  le	
  applicazioni	
  mobile	
  tra	
  OWASP	
  e	
  OSSTMM

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

                                          OSSTMM
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)
category                    opesec                     limita;ons

                                Visibility                  Exposure!
    opera;ons
                                 Access
                                                           Vulnerability!
                                 Trust

                              Authen;ca;on
                             Indemnifica;on
           Class	
  A           Resiliance                  Weakness!
                               Subguga;on
                                Con;nuity
controls
                             Non-­‐Repudia;on
                              Confiden;ality
           Class	
  B              Privacy                   Concern!
                                Integrity
                                   Alarm

                                                                   Anomalies

                  OSSTMM	
  -­‐	
  Limita;ons	
  mapping
“Conosci	
  il	
  tuo	
  nemico”	
  –	
  Sun	
  Tzu	
  (L’arte	
  della	
  guerra)

THREAT	
  MODELING	
  FOR	
  DUMMIES
Minacce	
  e	
  ARacchi



    Mobile           Web	
  Server                          Applica;on	
  Server            Database	
  
                                                                                             server
	
  App
      D.V.                               	
  Web	
  Service
                                                                  S.M.
                              HTTP/CM



                                           D.V.	
  (I/O)
    Source
                      T.L.P




                                                                                     D.A.
                                                                              B.L.
                                                                  AT                          Data
    E.H.A.L.
                                                                  AZ
 API	
  /	
  Apps
                       E.H.A.L.                                   E.H.A.L.                   E.H.A.L
 O.S.          FS
                         Host                                      Host                       Host
          HW



                                                           Beni

                    Stru?ura	
  ;po	
  di	
  una	
  app	
  mobile	
  MVC
Insecure	
  Data	
  
   Storage
Weak	
  Server	
  
Side	
  Controls
Insufficient	
  
Transport	
  Layer	
  
   Protec;on
Client	
  Side	
  
 Injec;on
Poor	
  
Authoriza;on	
  
     and	
  
Authen;ca;on
Improper	
  
 Session	
  
Handling
Security	
  
Decisions	
  Via	
  
 Untrusted	
  
   Inputs
Side	
  Channel	
  
Data	
  Leakage
Broken	
  
Cryptography
Sensi;ve	
  
Informa;on	
  
 Disclosure
“never	
  trust	
  the	
  user	
  input,	
  output	
  too”

DATA	
  VALIDATION	
  (INPUT/OUTPUT)
M4	
  Client	
  Side	
  Injec;on,	
  M7	
  Security	
  Decisions	
  via	
  untrusted	
  inputs



Au   Id           Re          Su            Ct         NR            Cf          Pr            It     Al



                   Data	
  Valida$on	
  su	
  Mobile

     verificare	
  SEMPRE	
  i	
  da7	
  	
  che	
  riceviamo
                    codice	
  (X)HTML
           URL/URI	
  con	
  vari	
  protocolli
       privilegi	
  minini	
  per	
  le	
  applicazioni
                      le	
  sandbox
Skype	
  iOS	
  insecure	
  handling
M2	
  Weak	
  Server	
  side	
  controls
                    (OWASP	
  TOP	
  10	
  WEB	
  in	
  generale)


Au     Id     Re      Su           Ct         NR          Cf        Pr   It   Al



     Il	
  web	
  server	
  (Data	
  Valida$on	
  e	
  altro...)

       anche	
  se	
  i	
  da7	
  sono	
  gia	
  sta7	
  valida7	
  
   dall’applicazione,	
  vanno	
  verifica7	
  anche	
  sul	
  
                               server*
 (inoltre	
  anche	
  la	
  componente	
  web	
  deve	
  essere	
  
                              proteQa)
“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)

    ERROR	
  HANDLING	
  AND	
  LOGGING
M8	
  Side	
  Channel	
  Data	
  Leakage



Au     Id     Re     Su           Ct        NR          Cf      Pr   It   Al



                           File	
  System

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!
lion	
  exposes	
  filevault	
  password
“Sì,	
  ma	
  tu	
  chi	
  sei?”	
  –	
  Neo	
  a	
  Seraph	
  (The	
  Matrix:	
  Reloaded)

          AUTENTICAZIONE	
  (AT)
M5	
  Poor	
  Authen;ca;on	
  and	
  Authoriza;on



Au   Id      Re          Su         Ct       NR         Cf        Pr   It   Al



             Il	
  sistema	
  di	
  auten$cazione

               Implementata	
  lato	
  server
          AVenzione	
  ad	
  usare	
  idenWficaWvi	
  hw
          ProteVa	
  nella	
  comunicazione	
  (TLP*)
u;lizzo	
  del	
  deviceid
“sa	
  dirmi	
  cosa	
  darebbe	
  pur	
  di	
  mantenere	
  viva	
  tale	
  interazione?”	
  –	
  Rama	
  
                                 (The	
  Matrix:	
  RevoluWons)

       SESSION	
  MANAGEMENT	
  (S.M.)
M6	
  Session	
  Handling
     (Session	
  Fixa;on,	
  Session	
  Hijacking/Cookie	
  Stealing,	
  Session	
  ID	
  Analysis)


Au      Id          Re          Su           Ct        NR          Cf          Pr            It       Al



     La	
  sessione	
  di	
  per	
  se	
  (tra	
  device	
  e	
  server)

                          Sempre	
  verificata
           Non	
  permeVere	
  sessioni	
  contemporanee*
            DistruVa	
  per	
  Wmeout	
  relaWvo	
  e	
  assoluto
                      (cookie,	
  token,	
  oauth)
session	
  aIer	
  death
“Sei	
  sicuro	
  che	
  questa	
  linea	
  è	
  sicura?”	
  –	
  Trinity	
  (The	
  Matrix)

TRANSPORT	
  LAYER	
  PROTECTION
M3	
  Insufficent	
  Transport	
  Layer	
  Protec;on



Au     Id      Re         Su          Ct        NR         Cf            Pr   It   Al



                          La	
  comunicazione

Vanno	
  proteU	
  tuU	
  i	
  da7	
  sensibili	
  (credenziali,	
  id	
  
    di	
  sessione,	
  cookie,	
  da7	
  degli	
  uten7…)
richiesta	
  authToken	
  per	
  ClientLogin	
  (Picasa)
“Ecco	
  faVo,	
  il	
  segreto	
  è	
  questo”	
  –	
  Oracolo	
  (The	
  Matrix	
  -­‐	
  RevoluWons)

             DATI	
  (CODICE	
  E	
  SEGRETI)
M10	
  Informa;on	
  disclosure



Au     Id    Re     Su        Ct       NR         Cf   Pr   It   Al



                    Il	
  codice	
  sorgente

password	
  o	
  altre	
  informazioni	
  sensibili	
  hardcoded
      algoritmi	
  e	
  procedure	
  proprietarie
M9	
  Broken	
  Crypto
                        M1	
  Insecure	
  Data	
  Storage


Au     Id     Re      Su         Ct        NR           Cf   Pr   It   Al



              I	
  da$	
  da	
  mantenere	
  segre$

     U7lizzare	
  le	
  Crypto	
  API	
  specifiche	
  del	
  S.O.
                    evitare	
  il	
  filesystem
                       tenerla	
  sul	
  server
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!
!

                  cri?ografia	
  vs	
  encoding
:)

GRAZIE!	
  Q/A?
ISECOM	
  OSSTMM
Microsok	
  SDL
OWASP	
  TesWng	
  Guide
OWASP	
  Developer’s	
  Guide
OWASP	
  Code	
  Review	
  Guide
OWASP	
  ASVS
OWASP	
  ASDR


RIFERIMENTI

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