2/19/2010


Heracleum blog & web tools
NEI PANNI DEL CATTIVO
Per una volta mettiamoci dall'altra parte della barricata e vestiamo i panni dell'aggressore. L'obbiettivo è scoprire eventuali vulnerabilità nascoste nel sistema. Se è vero, come tanti sostengono, che a volte la miglior difesa è l'attacco, allora non esiste metodo migliore per verificare la sicurezza di un sistema, che calarsi nei panni di un potenziale aggressore. L'obbiettivo è sfruttare eventuali vulnerabilità per riuscire ad aggirare i sistemi di proezione presenti su un computer, o più di uno, ad esempio quelli presenti all'interno di una rete, per prenderne possesso. Tutto questo ci consentirà di conoscere in modo più approfondito alcune tra le tecniche di intrusione più utilizzate, con la speranza che, apprendere come opera il nemico, in futuro ci consentirà di predisporre le strategie di difesa più adeguate per protteggere efficacemente i nostri computer.



ESPERTI DI SICUREZZA
Le tecniche che permettono di scoprire potenziali vulnerabilità presenti in un sistema, sono note come auditing, di cui fanno parte anche i penetration test. Solitamente, si tratta di utilizzare strumenti e applicare tecniche molto sofisticate, appannaggio di utenti esperti, profondi conoscitori dei sistemi operativi, delle dinamiche di rete e delle debolezze di cui soffrono i PC in generale. Questa almeno è la regola, ma come tutte le regole, ha le sue eccezioni. Con il passare del tempo, infatti, sono stati creati strumenti di verifica sempre più raffinati, ma allo stesso tempo facili da usare, che permettono di eseguire test di sicurezza anche ad utenti con una conoscenza relativa a reti e computer di base. Le alternative sono tante, anche per quanto riguarda l'Open Source, ma tra le soluzioni disponibili, selezioniamo Metaexploit Framework, per la sua efficenza e immediatezza d'uso. In pratica, si tratta di una piattaforma di test che, grazie ad una serie di strumenti per lo sviluppo ed esecuzione di exploit, offre praticamente a tutti la possibilità di testare la sicurezza di un sistema. Cosa sono gli exploit, l'arte di sfruttare bug e vulnerabilità. In Informatica il termine exploit identifica un codice, all'atto pratico un programma che, sfruttando una vulnerabilità o un bug eventualmente presenti all'interno di un altra applicazione, ma anche dello stesso sistema operativo, permette di prendere possesso della macchina sulla quale questi sono in esecuzione. Ovviamente, rende possibili anche altri tipi di attacco. Metasploit Framework, in sintesi, spinge il concetto di penetration test all'estremo, offrendo la possibilità di eseguire numerosi tipi di attacchi informatici, ad esempio per verificare la tenuta di un firewall, di un IDS e di altri strumenti sistemati a protezione di un computer o di un intera rete. Inoltre, al termine dei test, genera un accurato report di ciò che è avvnuto in modo da dare la possibilità a chi lo utilizza di prendere i provvedimenti indispensabili alla messa in sicurezza dei sistemi. I tipi di attacco preconfezionati messi a disposizione da Metasploit sono stati sviluppati per testare vari sistemi operativi, GNU/Linux e Windows compresi, questo indipendentemente dalla piattaforma sulla quale il tool è in esecuzione.



INTERFACCIA: QUESTIONE DI GUSTI
Al termine della procedura di installazione, il programma è pronto all'uso. Prima però bisogna scegliere il tipo d'interfaccia da utilizzare: Metasploit Framework, ne offre ben quattro. La varietà di interfacce è necessaria per fare in modo che il programma si adatti perfettamente ad ambienti di esecuzione diversi. Ad esempio, un server potrebbe non disporre di ambiente grafico, per cui l'unica possibilità di usare Metasploit sarebbe la riga di comando. Per avviare l'interfaccia a console bisogna eseguire il comando msfconsole. Per rendere però piu facile l'utilizzo di questo potente strumento, soprattutto per gli utenti meno esperti, è stata introdotta, a partire dalla varsione 3.1, anche una versione grafica dell'interfaccia, avviabile con il comando msfgui. L'aspetto più interessante di questa GUI è che, sebbene sia estremamente potente (implementa quasi tutte le funzioni da riga di comando), il suo utilizzo è molto semplice, perchè basato interamente su procedure guidate. L'unico requisito richiesto è l'installazione di alcuni pacchetti della piattaforma di sviluppo Ruby segnalati al momento della sua esecuzione tramite il comando msfgui. Il concetto è simile per quanto riguarda l'interfaccia di tipo web. In questo caso, mediante il comando msfweb, viene avviato un server web integrato in Metasploit, il quale si occupa di rendere disponibile (caricare) l'interfaccia vera e propria che cosi diventa accessibile da un qualsiasi browser. Infine, troviamo l'interfaccia avviabile tramite il comando msfcli. Si tratta di un'altra interfaccia a riga di comando sviluppata principalmente per permettere di automatizzare i test. Ma in questo caso, i comandi, completi di tutti i parametri necessari all'azione che vogliamo svolgere, possono essere inseriti tutti insieme, senza più richiedere l'intervento dell'utente. In pratica, è come scrivere una sorta di script che automatizza tutte le operazioni. Ovviamente, quest'ultimo metodo è indicato solo ed esclusivamente per utenti esperti, i quali devono conoscere perfettamente il funzionamento di ogni singolo exploit e i parametri richiesti.



PRIMO APPROCCIO
La procedura per sferrare un attacco a un sistema è relativamente semplice. A scopo di esempio, avviamo l'interfaccia a console con msfconsole e, per prima cosa, scegliamo un exploit: l'elenco è visualizzabile eseguendo show all nella console di Metasploit. Per individuare quello più adatto alle nostre esigenze, bisogna controllare i payload associati ad ognuno di essi: si tratta del cosiddetto carico utile, in pratica il codice che attiva l'exploit e porta a termine l'attacco vero e proprio. A questo punto, possiamo utilizzarlo contro il sistema obbiettivo. L'iter è molto semplice: Metasploit, tramite l'exploit, sfrutta una falla nella sicurezza del sistema vittima per iniettare al suo interno il codice (payload) appositamente sviluppato, con lo scopo di eseguirlo e prendere il controllo della macchina. Ovviamente consiglio di eseguire i test su uno o più sistemi di vostra proprietà.



L'IMPORTANZA DEGLI AGGIORNAMENTI
Sebbene gli exploit integrati in Metasploit siano ben 491 (più 230 ausiliari), molti di questi non hanno effetto nel momento in cui i sistemi operativi e le applicazioni coinvolte sono correttamente aggiornati. Per loro natura, infatti, gli exploit hanno un esistenza effimera. In genere, quando si scopre una vulnerabilità e il relativo exploit per sfruttarla, passa poco tempo affinchè gli sviluppatori rendano disponibile una patch con la quale chiudere una falla. Proprio per questo motivo, se unn sistema è ben aggiornato, è sempre molto difficile da violare. È anche vero, però, che vengono scoperte nuove falle ed exploit di continuo, per cui un sistema può risultare vulnerabile anche subito dopo un aggiornamento. Alla luce di tutto ciò, è chiaro come è importante tenere sempre aggiornato il proprio sistema, per mantenere l'efficacia e l'efficenza di Metasploit come strumento per monitorare la sicurezza, è necessario procurarsi sempre gli exploit appena scoperti. Per eseguire questo aggiornamento è sufficiente eseguire il comando msfupdate, oppure abilitare gli aggiornamenti automatici durante la fase d'installazione.



UN ATTACCO REALE
Per collaudare Metasploit, come machcina di test (la vittima dell'attacco) ci serviremo di un computer con Windows XP senza service pak (il test di un exploit obsoleto per non rischiare in caso di errori, di colpire una occasionale vittima in rete), mentre nel ruolo di attaccante utilizeremo il PC con GNU/Linux sul quale prima abbiamo installato Metasploit (se volete il pacchetto basta chiedere). come interfaccia ci serviremo di quella grafica (avviandola subito con msfgui), ma nulla vieta di utilizzare la console o lìinterfaccia web. Prima di iniziare è consigliabile chiudere anche la connessione a Internet per un ulteriore sicurezza ed evitare, in caso di errore durante la digitazione di qualche parametro, di attaccare inavvertitamente un computer remoto.





RADIOGRAFIA DI UN EXPLOIT
Per utilizzare al meglio Metasploit, bisogna conoscere bene come funziona e cosa fa l'exploit di cui vogliamo serverci e il relativo payload. Conoscerli tutt è impossibile, ma è possibile approfondire l'argomento consultando l'archivio disponibile all'indirizzo www.metasploit.com/framework/modules . Al suo interno, ogni exploit è descritto dettagliatamente ed è fornito anche di chiari esempi di utilizzo. Purtroppo sono relativi alla sola interfaccia a riga di comando, ma è sempre possibile, con piccole variazioni, applicare le stesse tecniche agli altri casi.





DATABASE DELLE VULNERABILITÀ
Per cercare un exploit tra quelli gestiti da Metasploit, abbiamo detto che si possono utilizzare i campi ricerca OSVD, CVE, BID, MSB e TEXT. Quest'ultimo rappresenta il nome effettivo utilizzato da metasploit, mentre gli altri fanno riferimento a nomenclature utilizzate da diversi database accessibili on-line, che contengono l'elenco di tutte le vulnerabilità scoperte:

→ OSVDB (http://osvdb.org)
È un database indipendente e Open Source che descrive circa 60.850 vulnerabilità

→ CVE (http://cve.mitre.org)
Acronimo di Common Vulnerabilities and Exposure, è una sorta di dizionario pubblico che contiene informazioni relative alle falle di sicurezza

→ BID (http://www.securityfocus.com)
Database di varie vulnerabilità e di facile consultazione. A sua volta permette ricerche per "prodotto", versione oppure appoggiandosi al numero CVE.

Nessun commento:

Posta un commento