Protezione del sito da SQL injection e local file inclusion
Questa estensione è pubblicata su http://extensions.joomla.org , se vi piace, votatela o scrivete una recensione.
Protezione contro SQL Injection e Local file Inclusion
Questo plugin aggiunge un semplice ma, nella maggior parte dei casi, fondamentale protezione contro gli attacchi di tipo SQL injection e LFI (inclusione di file locale), analizzando i dati inviati a Joomla ed intercettanto gli exploit più comuni, salvando così il sito dagli hackers.
- Filtra le richieste in POST, GET, REQUEST. e blocca SQL injection / tentativi di LFI
- Notifica via e-mail quando viene generato un allarme
- Protegge anche da vulnerabilità sconosciute di estensioni di terze parti.
- White list per i componenti sicuri (a vostro rischio;))
Abilitate la notifica via mail e preparatevi ad avere paura!
In ogni caso ricordate che la sicurezza è una 'forma mentis', non un plugin!
Standard Set up (Impostazioni di base)
- Works on Front End only: (Attivo solo sul Front End)
Ignora le richieste (auto disabilitazione) inviate a /administrator. Salvo comprovate esigenze specifiche, è buona cosa non attivare il plugin sul back end. Un'alternativa di protezione del pannello amministrativo è indicata qui: Proteggere l'accesso alla directory /administrator. - NameSpaces inspected (Spazi dei nomi ispezionati)
Selezionare quali superglobal arrays ispezionare; le opzioni sono:- Get
- Get, Post
- Request
- Get, Post, Request
- Ignored Extension (estensioni ignorate)
Lista dei componenti, separati da virgole, da ignorare (es: com_content, com_dumper , com_weblinks)
Importante, prestate attenzione!
PHP analizza le richieste e popola i superglobal arrays copiando i singoli valori in ciascun array. Così $_GET['varName'] e $_REQUEST['varName'] non sono riferimenti allo stesso oggetto!
Cambiare $_GET per sanificare la query string non è sufficiente se il programma legge $_REQUEST.
Notification (Notifiche)
- Send Email Alert on injection/inclusion (Invia una mail su iniezione/inclusione)
se 'Yes' invia una mail di avviso in caso di attacco/malformed url - Mail to notify attack (mail cui notificare l'attacco)
indirizzo mail cui inviare l'avviso, se vuoto è impostato a 'mailfrom'
Advanced Set up (Impostazioni avanzate)
- Raise Error on Fault (Genera un errore sull'attacco)
Se 'Yes' ferma Joomla! e restituisce un errore (utile per il debug), se 'No' ripulisce la richiesta e la passa a Joomla! - Http Error Code
HTTP error code da restituire (40x, 50x) - Http Error Message (Messaggio di errore Http)
messaggio per la pagina di errore
Local File Inclusion parameters (Parametri per l'inclusione di file locali)
- LFI check only on canonical (controllo LFI solo sul canonico)
se 'Yes' verifica gli attacchi LFI solo per i parametri model, view, controller, template - Max number of consecutive '../' (numero massimo di '../' consecutivi)
quanti '../' consecutivi possono trovarsi nell'url
IP Blocking (Blocco degli ip)
(disponibile dalla versione 1.1)
- Enable temporary IP block
Abilita/disabilita il blocco degli accessi basato sull'ip dell'attaccante - Seconds to hold ip banned
Numero di secondi durante il quale bloccare ogni accesso all'IP - Max hacks attempt
Numero massimo di tentativi di attacco dopo cui attivare il blocco degli IP
Attenzione: assicuratevi che la modalità 'Debug' di Joomla! sia disattivata prima di attivare il blocco degli IP.
Procedimento:
- assicuratevi che la modalità 'Debug' di Joomla! sia disattivata
- attivare il blocco degli IP
- riattivate il 'Debug' (se serve, ovviamente)
La modalità 'Debug' di Joomla! intercetta gli errori del database ed impedisce al plugin di creare la tabella per la memorizzazione degli IP.
Un'utile aggiunta
Non tutti gli attacchi passano attraverso il framework di joomla: l'editor jce docet!
In questo caso potete aggiungere questo codice all'interno del file .htaccess, è sufficiente incollarlo subito dopo "RewriteEngine On" :
RewriteCond %{REQUEST_URI} ^/images/ [NC,OR]
RewriteCond %{REQUEST_URI} ^/media/ [NC,OR]
RewriteCond %{REQUEST_URI} ^/logs/ [NC,OR]
RewriteCond %{REQUEST_URI} ^/tmp/
RewriteRule .*\.(phps?|sh|pl|cgi|py)$ - [F]
Questo codice bloccherà ogni tentativo di mandare in esecuzione scripts al di fuori del controllo di joomla!. A seconda dei componenti installati, potreste avere bisogno di inserire ulteriori path.
Ripristino di un'errata installazione o di problemi di accesso
Le modalità di risoluzione delle problematiche di installazione sono trattate nell'articolo in lingua inglese Marco's SQL Iniection - LFI protection.
Questo plugin è in uso in parecchi siti (migliaia), ma non è stato ancora testato con tutte le più comuni estensioni. Controllate che le più importanti funzioni del vostro sito stiano operando correttamente.
Verificato (almeno) con:
.ckForms
.virtuemart
.joomfish
.PhocaDownload
.PhocaGallery
.RokDownloads
.AcyMailing
.ccnews
.AlphaRegistration
.Chrono Contact
.SOBI2
e altre.
Tenete presente questo, lo ripeto: questo plugin intercetta tutti i più comuni exploits, NON TUTTI!! Deve essere pertanto inteso come un aiuto, questa non è "LA SOLUZIONE".
Storia e download Marco's SQL Injection - LFI Interceptor Plugin for Joomla!
L'elenco delle versioni e i download sono reperibili in fondo all'articolo in lingua inglese Marco's SQL Iniection - LFI protection.
Commenti
complimenti per il prodotto. Un paio di domande:
1. ho visto che l'ultima versione rilasciata è un po' datata. E' ancora attuale come soluzione?
2. sai se ci sono problemi per l'indicizzazion e del sito da parte dei robot di google? E' un po' che ho messo su degli articoli sul blog, ma non sono stati ancora indicizzati. So che potrebbe dipendere da google stesso, ma meglio chiedere...
3. esiste una versione per Wordpress?
Grazie
===Risposta
ciao Carlo,
è sufficiente installare ed abilitare il plugin, non vedrai niente altro; le mail non sono spedite di default, ma va abilitata la spedizione dei reports così come il blocco degli ip. le istruzioni in inglese sono più aggiornate :(
la registrazione degli utenti invece non è bloccata in nessun caso e questa è una precisa scelta di progettazione.
ciao,
marco
Grazie sempre per il tuo contributo.
Alex
Citazione alexask:
installato il tuo plug-in su un paio di siti da qualche giorno e puntualmente arrivano le mail di avviso.
Premesso che di php conosco la A ma mi mancano le altre 25 lettere, nonché coniugazione dei verbi, ecc ...
Esiste la possibilità che il sito venga bucato e questo venga segnalato dalla mail di avviso? se si, come faccio a interpretare la mail? c'è qualche parola o frase chiave che me lo dice?
Da quello che ho letto non dovrebbe succedere ma non vorrei aver capito male.
Grazie mille per il tuo contributo.
Alex
===Risposta
ciao Alex,
se arriva la mail vuol dire che il plugin ha funzionato, il problema è se non arriva la mail...
comunque l'output è studiato per programmatori/s istemisti, e non potrebbe essere diversamente. unica cosa che posso dire è che se riporta il nome di un componente è opportuno verificare:
1. che sia installato (a volte è un tentativo a caso)
2. che sia aggiornato
ciao
Citazione alexask:
Cliccando sul download vengo rimandato nel tuo sito (che a sua volta dice di scaricarlo di la)
Dove posso reperire il tuo plugin (suggeritomi da Vales - joomla.it - grande mago dell'albo)
grazie
Alex
Vorrei installare il plug in sul mio sito joomla 2.5.
Vanno bene le impostazioni standard o devo cambiare qualcosa?
Non basta disinstallare il plug in, devo anche necessariamente modificare il database?
Posso provarlo in locale?
GRazie dell' attenzione e compliementi per tutti i consigli proposti sul sito
========Risposta
1. se non si sa esattamente ciò che si sta facendo è meglio lasciare le impostazioni standard.
2. non c'è nessuna ragione per modificare il database
3. puoi provarlo in locale, ma non pensare che io ti pubblichi degli hack per fare i test.
nota: chi vuole una risposta via mail deve inserire la mail...
ciao,
marco
Non ho ben chiaro se questo plugin blocca automaticamente i tentativi oppure li segnala solo, notificandoli in email.
Poi non ho capito se il blocco temporaneo dell'IP è una opzione alternativa alternativa al blocco permanente.
Non ho impostato il blocco temporaneo perchè immagino che questo plugin blocchi l'IP in modo permanente. E' corretto?
===Risposta
ciao Alex,
1.
blocca sempre i tentativi, e, se vuoi, li segnala per mail
2.
non esiste blocco permanente, non è cosa saggia, ma solo temporaneo
3.
vedi sopra.
ciao,
marco
==== Risposta
ciao paolo,
sì la trovi sulla pagina inglese, mi sono dimenticato che vi era anche una pagina in italiano :(
www.mmleoni.net/.../
ciao,
marco
RSS feed dei commenti di questo post.