Al momento è Webmaster del portale XoopsItalia.
Una delle risorse più importanti nel vasto mondo dei moduli per Xoops, è sicuramente il modulo Protector, sviluppato e mantenuto da Mineaki Gotoh, alias GIJOE.
Questo modulo nasce dall'ampliamento dell'ormai antiquato AntiDos-P, che forniva protezione contro gli attacchi di tipo Denial of Service, ed offre copertura pressoché completa verso minacce generiche e minacce specifiche contro Xoops.
Al momento in cui scrivo questo documento, la versione stabile più aggiornata del Protector è la 2.55, scaricabile da www.peak.ne.jp/xoops, disponibile sia in zip, sia in tgz. All'interno del pack troverete già la traduzione in italiano scritta dal sottoscritto.
1. Funzionalità del Protector
Il modulo intercetta e reagisce ai seguenti tipi di attacchi:
| Denial of Service (DoS) | |
|---|---|
| In cosa consiste | Un attacco DoS punta a saturare le capacità di connessione di un server |
| Come viene portato | Una tipologia classica di attacco DoS consiste nel continuo caricamento di porzioni del portale, costringendo il server ad un lavoro continuativo per soddisfare le richieste |
| Come reagisce il modulo | Il Protector è in grado di valutare con che frequenza viene richiesto l'aggiornamento delle stesse pagine del portale, tramite tempo e numero di reload. Una volta riconosciuto l'attacco come DoS può reagire fornendo all'IP attaccante: - nulla, come se il portale fosse scomparso - una pagina vuota (schermata bianca) oppure può direttamente inserire l'IP nell'elenco degli esclusi (ban dell'IP) Inoltre nelle recenti versioni del modulo è possibile negare l'accesso al portale tramite utilizzo del file .htaccess, ma questa funzionalità è ancora a livello sperimentale. Alcuni moduli, come ad esempio i moduli chat, hanno però bisogno di essere aggiornati frequentemente dai browser degli utenti, per seguire il continuo flusso informativo che viene modificato. Per evitare che gli utenti che utilizzano tali moduli vengano tacciati come attaccanti è possibile indicare quali moduli escludere dal controllo anti-DoS. |
| Bad Crawlers | |
|---|---|
| In cosa consiste | Un Crawler è un motore di indicizzazione e di collezione di informazioni (ad esempio e-mail postate in un forum a scopo spam) |
| Come viene portato | Un Crawler diventa “maleducato” (bad crawler) quando accede troppo frequentemente al portale |
| Come reagisce il modulo | Il Protector applica ai crawler gli stessi criteri visti per i DoS. Quando appura che il crawler è maleducato può reagire con: - una pagina contenente solo il blocco di login - nulla, come se il portale fosse scomparso - una pagina vuota (schermata bianca) - ban dell'IP - blocco da .htaccess (sperimentale) E' comunque possibile specificare tramite regex quali bot e crawler non considerare mai come maleducati (google, yahoo,...). |
| SQL Injection | |
|---|---|
| In cosa consiste | L'agente attaccante tenta di operare query sul database iniettandole via browser |
| Come viene portato | Approfittando magari di codice scritto in modo poco attento, oppure sfruttando vere e proprie vulnerabilità di moduli sensibili. |
| Come reagisce il modulo | Un portale database-driven come Xoops deve prestare molta attenzione agli attacchi di questo tipo, pena la possibile ed irrimediabile corruzione della base di dati. Proprio per questa particolare necessità di sicurezza, il Protector è in grado di bloccare tre diversi tipi di attacco SQL injection: - rilevazione di commento isolato - rilevazione di sintassi UNION - specificazione di campi chiave non interi Le prime due tipologie, se utilizzate a dovere, potrebbero permettere all'attaccante di “agganciare” proprie query a quelle normalmente utilizzate dal portale. Il Protector può reagire nei seguenti modi: - fornire una pagina con il solo blocco login - sterilizzazione - fornire pagina vuota - ban dell'IP
Il terzo tipo di attacco può essere bloccato chiedendo al Protector di forzare il trattamento di ogni campo chiave (*id) delle query SQL come campi integer. Questa funzione può però creare problemi con alcuni moduli. |
| XSS (Cross Site Scripting) | |
|---|---|
| In cosa consiste | Un attacco Cross Site Scripting (abbreviato XSS, per non essere confuso in CSS – Cascade Styling Sheets) è simile per natura agli attacchi SQL injection, puntando ad iniettare script arbitrari. |
| Come viene portato | Gli attacchi XSS possono essere portati nei modi più disparati e sfruttando le vulnerabilità di vari linguaggi (HTML, JavaScript, Flash,...). Nella maggior parte dei casi sono comunque gli stessi sviluppatori che offrono il fianco agli attacchi non progettando correttamente le loro applicazioni. |
| Come reagisce il modulo | Essendo un tipo di attacco estremamente vario e difficile da bloccare, l'unica vera difesa è utilizzare moduli testati, stabili e sicuri, sviluppati da team di riconosciuta affidabilità e serietà. Il Protector infatti, pur essendo un modulo particolarmente potente, è in grado di interecettare solo una minima parte di questi attacchi, mediante il trattamente dei campi chiave come interi (vedi attacchi SQL Injection). |
| Contaminazione delle Variabili Globali | |
|---|---|
| In cosa consiste | Consiste nell'ottenimento di particolari risultati (corruzione dei dati, ottenimento di privilegi da amministratore,...) mediante la corruzione dei dati contenuti nelle variabili globali. |
| Come viene portato | Modificando lato utente il contenuto delle proprietà degli oggetti e delle variabili globali. |
| Come reagisce il modulo | Il modulo può reagire con: - pagina contenente il solo login - pagina vuota - ban dell'IP |
| Hi-Jacking della sessione | |
|---|---|
| In cosa consiste | Consiste nell'utilizzo delle vostre credenziali specificate nella vostra sessione utente da parte di un agente attaccante. |
| Come viene portato | Attraverso il dirottamento della sessione utente su un altro IP |
| Come reagisce il modulo | Il modulo impedisce il dirottamento proteggendo i bit dell'IP registrato nella sessione utente. E' possibile inoltre indicare quali gruppi non sono autorizzati a spostare il proprio IP in una sessione. |
| Caratteri nulli (Null-Bytes) | |
|---|---|
| In cosa consiste | Il carattere di terminazione “\0” viene utilizzato spesso in diversi tipi di attacchi. |
| Come viene portato | Iniettando a dovere un carattere nullo è possibile avere diversi risultati, come la terminazione di una funzione o processo, o addirittura può permettere l'esecuzione di codice arbitrario non controllato. |
| Come reagisce il modulo | Il modulo può sterilizzare un carattere nullo sostituendolo con uno spazio. |
| Attraversamento delle directory (Directory Traversal) | |
|---|---|
| In cosa consiste | Noto anche come “Scalata delle directory”, consiste nell'accedere a file e directory non protetti. |
| Come viene portato | Sfruttando una cattiva progettazione/programmazione l'attaccante riesce a risalire l'albero delle directory fino ad accedere a contenuti che avrebbero dovuto essere protetti (cartelle eseguibili, cache,...) |
| Come reagisce il modulo | Il modulo reagisce eliminando i path di risalita (“../”) nelle richieste che sembrano specificare file ben precisi. |
| CSRF (Cross Site Request Forgeries) | |
|---|---|
| In cosa consiste | Consiste nell'invio di richieste HTTP arbitrarie |
| Come viene portato | L'attaccante invia HTTP request arbitrarie con le credenziali di un ignaro utente, rendendo molto complessa l'identificazione dell'attacco. |
| Come reagisce il modulo | Il modulo chiude le falle che permettevano alcuni attacchi CSRF in Xoops 2.0.9.2. |
| Forza Bruta | |
|---|---|
| In cosa consiste | Consiste nell'individuazione della password di un utente mediante tentativi continui. |
| Come viene portato | L'agente attaccante con uno script ad hoc genera tutte le possibili password alfanumeriche e le inserisce nel form di login, fino ad individuare quella corretta. |
| Come reagisce il modulo | Il modulo stabilisce una numero massimo di tentativi di login effettuabili nell'arco di dieci minuti. Superata tale soglia l'IP viene espulso. |
| Invio di file eseguibili o camuffati (== IE Content-Type XSS) | |
|---|---|
| In cosa consiste | Consiste nell'esecuzione di script arbitrari contenuti in file inviati dall'attaccante. |
| Come viene portato | L'agente attaccante invia file contenenti script in moduli con funzionalità di upload al fine di poterli eseguire. |
| Come reagisce il modulo | L'invio di file pericolosi (ad esempio eseguibili o con estensione .php) comporta la chiusura del portale. |
| XMLRPC | |
|---|---|
| In cosa consiste | Consiste nell'esecuzione di script arbitrari sfruttando alcune vulnerabilità strutturali del protocollo XMLRPC. |
| Come viene portato | Alcune funzioni XMLRPC (come la eval()) si prestano ad attacchi basati sull'iniezione ed esecuzione di codice arbitrario non controllabile. |
| Come reagisce il modulo | Il Protector può disabilitare l'utilizzo di tali funzioni. |

Oggi: 0
Ieri: 1
Totali: 5604
Ospiti : 18
Membri : 0
Totali: 18























