Ciao ragazzi, vi allego la seconda traduzione/sintesi delle slide.... Ciaoo
Configuration Testing Spesso l'analisi dell'infrastruttura e della topologia di una web application può rilevare preziose informazioni. OWASP per questa fase prevede otto tipi di test (OWASP-CM-001/8) che servono a determinare la conoscenza dei metodi HTTP permessi, di codice sorgente, di funzionalità di amministrazione, di modalità di autenticazione, etc. OWASP-CM-001 (test di verifica SSL/TLS) : Questa fase verifica l'utilizzo di appropriati algoritmi di cifratura e controlla la consistenza dei certificati a chiave pubblica (PKI certificates). SSL e TLS sono due protocolli che forniscono canali di comunicazione tali da garantire l'integrità, confidenzialità e autenticazione delle informazioni trasmesse. Nella fase iniziale della connessione SSL, il client manda al server un messaggio (hello message) contente le indicazioni su quali suite di cifratura può gestire. Una suite di cifratura è composta da: * Un protocollo di criptazione (DES, RC4, AES) * La lunghezza della chiave di criptazione (es. 40, 56, 128 bit) * Algoritmo di hash utilizzato per il controllo di integrità (SHA, MD5) Dopo che il server riceve l'hello message sceglie quale suite di cifratura utilizzare per questa sessione. Il servizio di autenticazione basato su certificati a chiave pubblica (PKI certificates) funziona come segue: * Ogni browser è provvisto di una lista di certificati autorizzati (trusted CAs) che vengono confrontati (mediante firma) con il certificato in esame; * Durante la fase di negoziazione iniziale con il server HTTPS, se il certificato risulta sconosciuto al browser, allora quest ultimo mostra all'utente un messeggio di allerta; * I certificati hanno un periodo di validità terminato il quale esso scade. Ancora una volta il browser segnala l'utente in merito; * Il browser inoltre informa l'utente anche nel caso in cui il nome del sito non corrisponde al quello riportanto nel certificato. A causa di restrizioni imposte dal governo americano (contro alcuni governi ostili), non è sempre possibile utilizzare cifrature forti (cioè con chiavi superiori a 40 bit). Per tale motivo i web server devono essere in grado di gestire cifrature deboli (chiavi inferiori a 40 bit). Nel caso di configurazioni errate del server, è possibile forzare l'utilizzo di cifrature deboli. In più, configurazioni improprie e gestione inaccurata dei certificati a chiave pubblica, possono scoraggiare l'utente all'accesso del servizio e possono esporlo ad un attacco di tipo Manin-the-Middle (MIM). Tool utilizzato : Nessus Vulnerability Scanner. Questo stumento permette di identificare i servizi basati su SSL su una determinata porta e di effettuare dei test di vulnerabilità. Esso prevede un plugin per il controllo di : * Certificati scaduti o che scadono nell'arco di 60 giorni; * Cifrature deboli. SessionLab05. Utilizzando "Nessus" analizzare i risultati relativi ad un sito a scelta mediante l'utilizzo di plugin relativi ai test SSL (si trovano nella categoria "General") OWASP-CM-002 (ORACLE DB LISTENER TESTING) : Questo test è relativo al Data base listener (DB), un demone network che hanno solo i DB Oracle. Il DB listner è un punto di ingresso per le connessioni remote ai DB Oracle. Tale componente resta in ascolto e gestisce le richieste di connessione. Questo test può essere effettuato da internet. La porta di default del listener è la 1521. Aree di attacco potenziali al DB listener sono: * Fermare il listener - DoS attack (Denial of service - Negazione di servizio); * Inserire una password e negare altri controlli dal listener (DBHijacking); * Ottenere informazioni dettagliate dal listener, database e configurazione dell'applicazione (furto di informazioni). OWASP-CM-003 (Infrastructure Configuration Management Testing) : La complessità intrinseca delle interconnessioni tra diverse tecnologie che interagiscono nell'infrastruttura di un web server, rende la gestione della configurazione ed il testing uno step fondamentale per il rilascio di una applicazione web. Infatti, ogni singola vulnerabilità contenuta in una delle centinaia di applicazioni presenti, può compromettere l'intera infrastruttura presente sullo stesso server. Se elementi come un software web server, server database o altre tipologie di server non sono messi in sicurezza in maniera appropriata, possono essere introdotti rischi o lasciare aperte vulnerabilità che (se sfruttuate) possono compromettere l'applicazione stessa. In questo task il tester cerca di studiare ed analizzare il più possibile l'infrastruttura di una applicazione web. Lo studio dell'architettura di una applicazione può essere semplice se questa informazione è prevista (ed accessibile) nella documentazione o nel caso in cui sia possibile effettuare interviste al team di sviluppo, ma può essere molto difficoltoso se si effettua un blind penetration test. In questa fase il tester si pone domande ed effettua i relativi test in modo da rispodere a questioni del tipo : * C'e' un sistema di firewall a proteggere il sistema? * Com è configurato? * Può essere bypassato? * è presente un reverse proxy? OWASP-CM-004 (Application Configuration Management Testing) : Questo task prevede il controllo che dati (o altri tipi di informazioni) siano nascosti nella fase successiva all'installazione e configurazione dell'applicazione. In questa fase sono analizzati : * FILE DI ESEMPIO - Molti web server e applicazioni web sono forniti (dopo l'installazione di default) di esempi d'uso ed altri file che agevolano il lavoro dello sviluppatore e che servono a testare se l'installazione è andata a buon fine. Esistono scanner CGI che includono una lista dettagliata di file e directory d'esempio note (fornite a web server e applicazioni web) e che determinano velocemente la presenza di questi file. * COMMENTI - Altre informazioni facilmente reperibili sono rappresentate dai commenti inseriti nelle pagine HTML dal programmatore/sviluppatore dell'applicazione web e che potrebbero essere utilizzate da un potenziale attaccante (spesso i commenti sono utilizzati dallo sviluppatore per eliminare/isolare porzioni di codice non più utilizzate). * LOG - L'ultima componente analizzata in questa fase è rappresentata dai file di LOG. Tali file possono contenere informazioni sensibili ed è pertanto necessaria una corretta gestione. TOOL UTILIZZATO : NIKTO (web vulnerability scanner) SessionLab06. Utilizzando "nikto" analizzare i risultati relativi ad uno o più webmail. es. nikto -host [sito_web] -output [file_risultati.txt] OWASP-CM-005 (Testing for File Extensions Handling) : Questo task prevede il controllo delle estensioni di file supportati dall'applicazione web. Tali informazioni sono utilizzate per determinare quali tecnologie, linguaggi o plugin sono utilizzati. Problemi: * I file ".asa" e ".inc" non dovrebbero mai essere accessibili, in quanto questi tipo di file possono contenere informazioni sensibili; * I file ".zip", ".tar", ".gz", ".tgz", ".rar", ".txt", ".pdf", quando selezionati, vengono mostrati a video o scaricati dal browser. Per tale motivo devono essere controllati e non devono contenere informazioni sensibili. * I file ".java" contengono codice sorgente e non dovrebbero mai essere accessibili. Per poter identificare i file supportati esistono varie tecniche tra cui: * Utilizzo di vulnerability scanner; * Tool per lo spidering e mirroring; * Ispezione manuale dell'applicazione (tale tecnica aggira le limitazioni dello spidering automatico); * Utilizzo di motori di ricerca. OWASP-CM-006 (File obsoleti, di backup e non referenziati) : Questo task prevede il controllo dell'esistenza di file obsoleti, di backup e non referenziati, i quali possono rilevare informazioni. Non è inusuale la presenza di file obsoleti rinominati o di archivi di backup (effettuati in alcuni casi in maniera automatica). Questi tipi di file possono presentare varie tipi di minaccia alla sicurezza dell'applicazione web: * File non referenziati : Possono contenere informazioni sensibili che possono facilitare l'area di attacco di un'applicazione (p.e. file contenenti le credenziali di accesso al database, file di configurazione possono contenere riferimenti a contenuti nascosti, etc.) * File obsoleti : Possono contenere vulnerabilità corrette nelle versioni più recenti (p.e. viewdoc.old.jsp può contenere vulnerabilita (corrette nel file viewdoc.jsp) e se trovato può essere sfruttato da un potenziale attaccante). * File di backup : Possono contenere codice sorgente progettato per essere eseguito sul server (p.e. La richiesta del file "viewdoc.bak" può contenere il codice sorgente di "viewdoc.jsp"). Archivi di backup possono contenere anche copie di tutti i file contenuti nella webroot. OWASP-CM-007 (Infrastructure and Application Admin Interfaces) : Questo task ha come obiettivo quello di trovare l'interfacca di amministratore e capire se è possibile l'accesso alle funzionalità di tale interfaccia. Se l'applicazione web è stata rilasciata (deployed) con la configurazione di default, è possibile reperire facilmente le credenziali d'accesso dalla documentazione di aiuto. OWASP-CM-008 (Testing for HTTP Methods and XST) : Questo task prevede il controllo che il web server non sia configurato in modo da permettere potenziali comandi (metodi) HTTP dannosi e che non siano possibili Cross Site Tracing (XST). Il documento RFC 2616 (che descrive la versione 1.1 dell'HTTP, cioè lo standard attuale) definisce i seguenti otto metodi: HEAD, GET, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT. Alcuni di questi metodi permettono al potenziale attaccante di modificare i file conservati sul web server ed in alcuni casi di rubare le credenziali del legittimo proprietario. Es. : * PUT: Permette al client di fare l'upload di nuovi file sul web server. Un attaccante può inserire file maliziosi (p.e.: Un file "asp" che esegue comandi invocando "cmd.exe"), o semplicemente utilizzando il server della vittima come deposito di file (file repository). * DELETE: Permette al client di cancellare un file dal web server. In questo modo l'attaccante può effettuare facilmente defacciamenti del sito o definire un attacco di tipo DoS (Denial of service - Negazione di servizio). * CONNECT: Questo metodo permette ad un client di utilizzare un web server come proxy; * TRACE: Questo metodo ritona indietro (echoes back) al client le stringhe spedite dal server, e dovrebbe essere usato solo in fase di debug. Questo metodo può essere utilizzato per attacchi di tipo Cross Site Tracing. Strumento utilizzato per verificare i metodi supportati : nc es. nc [sito_web] [porta] risultato di "nc www.victim.com 80" OPTIONS / HTTP/1.1 Host: www.victim.com HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Tue, 31 Oct 2006 08:00:29 GMT Connection: close Allow: GET, HEAD, POST, TRACE, OPTIONS Content-Length: 0