Vulnerabilità delle API Flashcards
Perchè abbiamo problemi di vulnerabilità delle API
Oggi i client sempre più potenti, motivo per cui logica passa da server a client spesso
Certe volte client consumano dati raw che poi rielaborano
Descrivi Broken object Level auth
Attacker può sostituire altro ID nell’Api al posto del proprio per poter acceder a dati altrui, manca anche un controllo delle autorizzazioni
Per evitare bisogna checkare utente non tramite ID api, ma tramite oggetti di sessione creati ad hoc
Descrivi Broken authentication
Non vengono controllate autenticazioni e attacker può assumere identità di altri utenti
Per prevenire bisogna verificare tutti i possibili path, e assicurarsi che ci siano dovuti controlli
Descrivi Dati eccessivamente esposti
Vengono inviati ai client dati raw
Inviare il minimo indispensabile ai client
Descrivi Mancanza di risorse
Client possono inviare oggetti di qualunque dimensione o utilizzare qualunque amount di risorse
Limitare risorse concedute
Descrivi Broken function level auth
Inseriamo livello di autenticazione nell’url dell’api
Non bisogna farci affidamento
Descrivi Mass assignment
Prendere elementi da post e trasformarli in oggetti direttamente, attacker può guessarli guardando le get
Definisci per bene tipi accettati
Descrivi Mal configurazione di API
Permette ad attackers di trovare problemi ed utilizzarli a proprio vantaggio
Effettuare adjustments per evitarli
Descrivi Injections di codice
Per risolvere check dei campi
Descrivi Assets management improprio
Attackers potrebbero trovare delle versioni non di produzione delle API e utilizzarle
Limitarne accesso
Descrivi Logging e monitor insufficienti
Aggiungere logging e monitor
Tipologie di scanning
Attivo cerca di penetrare sistema
Passivo cerca problemi del sistema
Analisi dinamica del codice
Genera varie tipologie di input che triggerano max numero possibile di paths
Tool per analisi dinamica
OWASP ZAP che permette di trovare vulnerabilità in running web apps, ZAP funziona come proxy tra client app e server.
Penetration Testing 101 cos’è?
Test diviso in 3 fasi:
1) esplorazione del sistema
2) attacco del sistema
3) report degli attacchi andati a buon fine