[s3web] Traduzione/sintesi slide3

  • From: Alberto Campanile <alberto.campanile@xxxxxxxxx>
  • To: s3web@xxxxxxxxxxxxx
  • Date: Fri, 19 Jun 2009 15:47:23 +0200

Ciao ragazzi.... ecco la traduzione/sintesi delle slide 3... occhio
che l'ultimo task (OWASP-AT-004) è moooolto sintetizzato...

Ciaoo
Authentication Testing

Nel campo della sicurezza informatica, si definisce autenticazione il processo 
tramite il quale un computer, un software o un utente, verifica la corretta, o 
almeno presunta, identità di un altro computer, software o utente. Questi test 
servono a cercare di capire come funziona la modalità di autenticazione e come 
usare queste informazioni per provare ad aggirare il meccanismo di 
autenticazione.

OWASP prevede dieci differenti test (OWASP-AT-001/10) [N.B. noi ne abbiamo 
studiati solo 4] per analizzare le possibili minacce che intercorrono durante 
la fase di autenticazione.

OWASP-AT-001 (Credentials transport over an encrypted channel) : Questo test ha 
come obiettivo quello di studiare e capire se i dati inseriti in un form 
dall'utente (durante la fase di autenticazione al sito), sono trasmessi 
utilizzando protocolli sicuri.
L'analisi si focalizza semplicemente provando a capire se i dati viaggiano (dal 
browser al server) attraverso canali non criptatati o attraverso appropriati 
protocolli di sicurezza come HTTPS. Chiaramente, la sicurezza dipende anche dal 
tipo di algoritmo di criptazione utilizzato e dalla robustezza della chiave che 
l'applicazione utilizza (come visto in OWASP-CM-001).

Quando si effettua l'autenticazione ad un sito web, di solito, l'utente 
inserisce le credenziali d'accesso in semplici form che trasferiscono i dati 
utilizzando il metodo POST. Quello che è meno ovvio è che i dati possono essere 
trasferiti sia utilizzando il protocollo HTTP (che rappresenta una via non 
sicura) sia attraverso HTTPS (che cripta i dati). A "complicare" il tutto, vi è 
la possibilità che la pagina di login sia accessibile attraverso HTTP, ma che i 
dati siano poi spediti via HTTPS.

Casi possibili:
        * Pagina LOGIN: HTTP - Pagina RIFERIMENTO: HTTPS
        * Pagina LOGIN: HTTPS - Pagina RIFERIMENTO: HTTPS
        * Pagina LOGIN: HTTP - Pagina RIFERIMENTO: HTTP
        * Pagina LOGIN: HTTPS - Pagina RIFERIMENTO: HTTP

OWASP-AT-002 (User enumeration) :  Questo test ha come obiettivo la verifica 
della possibilità di acquisire un set di utenti validi (userID) interagendo con 
la modalità di autenticazione dell'applicazione. Viene effettuato prima del 
test di brute force, il quale a partire da un nome utente valido cerca la 
corrispondente password.

Modalità di test:

+Messaggio di risposta HTTP
        * Test per utente valido/password sbagliata : Prevede l'analisi del 
messaggio di errore in caso di inserimento di utente valido/password sbagliata.
        * Test per nome utente non esistente : Prevede l'analisi del messaggio 
di errore in caso di inserimento di utente non valido/password sbagliata.
Nel caso in cui i messaggi ottenuti nei precedenti test non corrispondono si 
deve indagare e scoprire il motivo che crea la differenza tra le due risposte.

+Codici di errore nella pagina di login
Alcune applicazioni web mostrano uno specifico codice di errore o messaggio che 
il tester può analizzare. P.e., in caso di errata autenticazione possiamo 
ricevere pagine di errore simili a:
        * Invalid user
        * Invalid authentication
        
+URLs and URLs redirections
Quando inseriamo uno userID e password nell'applicazione web, possiamo 
osservare una indicazione d'errore nell'URL. 
P.e.:
http://www.foo.com/err.jsp?User=baduser&Error=0         (User=baduser  + 
Error=0 -> errore)
http://www.foo.com/err.jsp?User=gooduser&Error=2        (User=gooduser + 
Error=2 -> ok)

+URI Probing
In alcuni portali ad ogni utente è associata una directory. Per tale motivo, se 
il server web non è correttamente configurato è possibile che quest ultimo 
risponda in maniera differente nel caso in cui si effettua una richiesta di una 
directory esistente o meno.
P.e.
http://www.foo.com/account1 (403 Forbidden - Utente esistente)
http://www.foo.com/account2 (404 file Not Found - Utente non esistente)

OWASP-AT-003 (Guessable (Dictionary) User Account) : Questo task serve a 
verificare l'esistenza di account di default o di account ospite (guest). 
Esistono due approcci per determinare le combinazioni username/password di 
account di default o di account ospite (guest):
        * Utilizzando archivi pubblici di combinazioni username/password di 
default per dispositivi e applicazioni (es. www.CIRT.net);
        * Effettuando un attacco a dizionario, attraverso tool automatizzati 
(login cracker). Es. Hydra.
        
OWASP-AT-004 (Brute Force Testing) : Quando un attacco a dizionario fallisce, 
il tester può provare ad utilizzare il metodo di brute force per ottenere 
l'autenticazione. Il Brute-forcing è un algoritmo di risoluzione di un problema 
che consiste nel verificare tutte le soluzioni teoricamente possibili fino a 
che si trova quella effettivamente corretta.

La prima fase di questo test serve a determinare con quale tecnica viene 
effettuata l'autenticazione.

+Determinazione metodi di autenticazione

I metodi di autenticazione più utilizzati sono i seguenti:
        *HTTP Authentication
                -Basic Access Authentication
                -Digest Access Authentication
        *HTML Form-based Authentication

Es. HTML Form-based Authentication
                <form method="POST" action="login">
                        <input type="text" name"username">
                        <input type="password" name="password">
                </form>
        
        SessionLab07. Generare un dizionario (per nome utente e password) con 
uno script di shell. Utilizzare "hydra" contro un targer ed analizzare i 
risultati
        es. ./hydra -L [dizionarioUserID.txt] -P [dizionarioPassword.txt] 
www.sito.com [metodo_autenticazione]
        

Other related posts:

  • » [s3web] Traduzione/sintesi slide3 - Alberto Campanile