“Security is about protection” Pete Herzog Sicurezza è “protezione”, sintetizza il creatore dell’OSSTMM. Quando sviluppiamo, i nostri “beni” vanno protetti dalle “minacce” tramite alcuni “controlli”. Il talk spiegherà, tramite un linguaggio semplice ed esempi, come proteggere Autenticazione/Autorizzazione, Sessione, Input/Output, Errori/Log, Dati, Comunicazione, Processi/Logica secondo andando in profondità con l’approccio OSSTMM nei temi di OWASP: capire i controlli più efficaci e convenienti.
29. category opesec limitations
Visibility Exposure!
operations
Access
Vulnerability!
Trust
Authentication
Indemnification
Class A Resiliance Weakness!
Subgugation
Continuity
controls
Non-Repudiation
Confidentiality
Class B Privacy Concern!
Integrity
Alarm
Anomalies
OSSTMM - Limitations mapping
30. “Conosci il tuo nemico” – Sun Tzu (L’arte della guerra)
THREAT MODELING FOR DUMMIES
31. Minacce e Attacchi
Web Application Database
Server Server server
Application
S.M.
HTTP/CM
D.V. (I/O)
T.L.P
D.A.
B.L.
P.L.
AT Data
AZ
E.H.A.L E.H.A.L E.H.A.L
Host Host Host
Beni
Struttura tipo di un’applicazione
37. “Sì, ma tu chi sei?” – Neo a Seraph (The Matrix: Reloaded)
AUTENTICAZIONE (AT)
38. Authorization Bypass, Brute Force, Guessable Account, Default User and Password,
User Enumeration, Browser Cache Management
Au Id Re Su Ct NR Cf Pr It Al
L’autenticazione “di per se”
Implementata lato server
Sempre verificata dove necessario
Non bypassabile (DV*)
Protetta nella comunicazione (TLP*)
Errori Gestiti e operazioni loggate (EHAL*)
Resiliente
39. Authorization Bypass, Brute Force, Guessable Account, Default User and Password,
User Enumeration, Browser Cache Management
Au Id Re Su Ct NR Cf Pr It Al
Form di autenticazione e di altre operazioni sulle
credenziali
Protetti lato client (autocomplete=off)
Usare limiti/CAPTCHA
Protetti nella comunicazione (TLP*)
Errori generici (EHAL*)
40. Authorization Bypass, Brute Force, Guessable Account, Default User and Password,
User Enumeration, Browser Cache Management
Au Id Re Su Ct NR Cf Pr It Al
Credenziali
Proteggere la memorizzazione (DP*)
Bloccare dopo tot. tentativi di accesso
Evitare account di default (user:pass)
Essere complesse (anche se generate di default)
Avere una durata minima e massima, con una storia
41. “ Conosco solo quello che devo sapere” – Rama (The Matrix: Revolutions)
AUTORIZZAZIONE (AZ)
42. Authorization Bypass (horizontal/vertical), Path Traversal
Au Id Re Su Ct NR Cf Pr It Al
L’autorizzazione su Risorse
(file/servizi/pagine/dati)
Implementata e verificata lato server (in caso con token mono-
uso)
Sempre verificata dove necessario
Proteggere anche le policy
Non bypassabile (DV*)
Protetta nella comunicazione (TLP*)
Errori Gestiti e operazioni loggate (EHAL*)
Resiliente
43. “sa dirmi cosa darebbe pur di mantenere viva tale interazione?” – Rama
(The Matrix: Revolutions)
SESSION MANAGEMENT (S.M.)
44. Session Fixation, Session Hijacking/Cookie Stealing, Session ID Analysis (Crypto,
Statistical)
Au Id Re Su Ct NR Cf Pr It Al
La sessione “di per se”
Sempre verificata
Implementare token anti-CSRF
Non permettere sessioni contemporanee*
Sessione legata all’IP/UA*
Distrutta per timeout relativo e assoluto
Errori Gestiti e operazioni loggate (EHAL*)
Resiliente
45. Session Fixation, Session Hijacking/Cookie Stealing, Session ID Analysis (Crypto,
Statistical)
Au Id Re Su Ct NR Cf Pr It Al
Identificativo di Sessione (SID)
Abbastanza Complesso
Cambiato dopo gli eventi di autenticazione
NON deve essere mostrato (es. GET, Log, Errori)
46. Session Fixation, Session Hijacking/Cookie Stealing, Session ID Analysis (Crypto,
Statistical)
Au Id Re Su Ct NR Cf Pr It Al
Cookie
Attributi impostati
Httponly, secure, path, domain, expires/max-age
Protetto nella comunicazione (TLP*)
47. “Quasi inconsciamente, scrisse con le dita sul tavolo coperto di polvere:
2+2 = 5” – Winston Smith (1984)
BUSINESS LOGIC (B.L.)
48. Business Logic Flow, Abuse of functionality, Insufficient Process Validation
Au Id Re Su Ct NR Cf Pr It Al
La logica “di per se” (limiti/flussi)
Verificare lato server i flussi
Verificare lato server i limiti
Evitare l’esposizione di parametri sensibili lato client
(anche DV*)
Errori Gestiti e operazioni loggate (EHAL*)
Resiliente
49. “never trust the user input, output too”
DATA VALIDATION (INPUT/OUTPUT)
50. Injection, Cross Site Scripting, HTTP Request/Response Smuggling/Splitting
Au Id Re Su Ct NR Cf Pr It Al
La Data Validation “di per se”
Implementata lato server e lato client, se
necessario*
Errori Gestiti e operazioni loggate (EHAL*)
Resiliente
51. Injection, Overflow, Cross Site Scripting, HTTP Request/Response Smuggling/Splitting
Au Id Re Su Ct NR Cf Pr It Al
Dati e File inviati da e verso l’applicazione
Presente parametri per destinati ad intepreti (SQL, XML, Xpath, Xquery,
HTML)
Presente per parametri usati per calcoli od operazioni (Overflow)
Presente per parametri che utilizzano URL (Redirect/Iframe)
Presente per i file (nome, estensione, contenuto e antivirus)
Utilizzare interpreti parametrici (API)
Verificare anche le richieste con metodi HTTP*
Specificare sempre la codifica in I/O
52. “Sei sicuro che questa linea è sicura?” – Trinity (The Matrix)
TRANSPORT LAYER PROTECTION
53. Eavesdropping
Au Id Re Su Ct NR Cf Pr It Al
La comunicazione
Vanno protetti tutti i dati sensibili (credenziali, id
di sessione, cookie, dati degli utenti…)
Resiliente
Errori Gestiti e Loggati (EHAL*)
54. Eavesdropping
Au Id Re Su Ct NR Cf Pr It Al
SSL e cifrari
Evitare Protocolli insicuri
Utilizzare solo cifrari forti
55. Eavesdropping
Au Id Re Su Ct NR Cf Pr It Al
Certificati
Firmati da entità riconosciute
In corso di validità
Devono corrispondere all’indirizzo
56. “Avrebbero potuto analizzare e mettere su carta, nei minimi particolari,
tutto quello che s'era fatto, s'era detto e s'era pensato” – Winston Smith
(1984)
ERROR HANDLING AND LOGGING
57. Non Repudiation, Log Attacks
Au Id Re Su Ct NR Cf Pr It Al
I Log
Devono contenere informazioni utili a tracciare le
richieste (sia fallite che non)
Vanno verificati i dati inseriti nei log (DV*)
Resilienza
Errori Gestiti e Loggati (!)
58. Non Repudiation, Log Attacks
Au Id Re Su Ct NR Cf Pr It Al
Errori
Sempre generici lato client
Dettagliati lato server