Protezione del sito da SQL injection e local file inclusion

[Read this in English]

Questa estensione è pubblicata su http://extensions.joomla.org , se vi piace, votatela o scrivete una recensione.

sql injecton, local file inclusion protection

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   

0 #15 Ciro 2018-02-15 07:45
Ciao Marco,
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?
Citazione
0 #14 Massimiliano 2016-01-27 12:18
Ciao Marco, perchè non riesco a installare il plugin? Mi da "Impossibile trovare pacchetto di installazione". Ho joomla 3.4.8.

Grazie
Citazione
0 #13 Carlo 2015-12-06 16:18
Ciao Marco, ho installato il tuo plugin, ma ora che devo fare? non vedo schermate nei components o qualcosa altro da fare, ovvero, dopo averlo installato l'ho semplicemente abilitato dall'extension Manager. Devo fare qualcos altro o dovrei vedere il tuo plugin da qualche altra parte? comunque io a parte le mail degli hacker che creano utenti a tutto spiano non vedo altre mail (che penso debbano provenire dal tuo plugin, quindi penso che stia facendo qualcosa di sbagliato). Puoi aiutarmi a capire per favore? Grazie per la disponibilità. Carlo

===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
Citazione
0 #12 alexask 2014-12-15 08:59
in realtà, non vedo richiamato componenti di joomla, sono tentativi di file inclusion ... finora di 2 tipi, un x.txt e il configuration.p hp (su questo ho messo i permessi 444 da prima).
Grazie sempre per il tuo contributo.
Alex

Citazione alexask:

===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/sistemisti, 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
0 #11 alexask 2014-12-12 21:53
ciao Marco,
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
0 #10 alexask 2014-12-06 08:54
[risolto] ho visto adesso che hai il download in fondo alla pagina inglese, grazie.

Citazione alexask:
ciao Marco, sono andato in extensions.joomla.org per scaricare il tuo plugin (mi serve per tutte le ver di joomla dalla 1.5 in su).
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
Citazione
0 #9 alexask 2014-12-06 08:51
ciao Marco, sono andato in extensions.joom la.org per scaricare il tuo plugin (mi serve per tutte le ver di joomla dalla 1.5 in su).
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
Citazione
+1 #8 Angelo 2014-07-10 01:24
Salve
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
Citazione
0 #7 Alex 2014-05-13 22:33
Ho ricevuto un alert per dei local file inclusion.

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
Citazione
0 #6 Guest 2013-02-05 16:39
ciao Marco esiste una versione per la 2.5.8?

==== 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
Citazione

Aggiungi commento

Please note: URL in text are not linked and user's site address is only for internal use and is not published.

Comments are human checked. All spam will be removed, so don't waste your time and, especially, mine!

Codice di sicurezza
Aggiorna