• HOME
  • Blog
  • Sicurezza Joomla: 7 regole da seguire, [plugin] e come ripulire un sito compromesso

Sicurezza Joomla: 7 regole da seguire, [plugin] e come ripulire un sito compromesso

Joomla è una delle piattaforme CMS open source più diffuse nel web e proprio per questa ragione è soggetta a continui attacchi hacker. La maggior parte delle volte le intrusioni hanno carattere di "passatempo" e in genere gli hacker entrano modificando alcuni file nella root e in determinate cartelle o ne caricano di nuovi con lo scopo di appoggiarsi al nostro hosting ed inviare migliaia di email pubblicitarie (spam) o per creare redirect a landing page (solitamente illegali) di annunci erotici, vendita di farmaci vari e simili. Essere scelti come target ben preciso è molto raro, a meno che non siate un’organizzazione molto importante con un database notevole da craccare e divulgare in rete - questo fa curriculum per l'hacker di turno - o rivendere nel mercato nero di Internet.

I modi attraverso i quali riescono ad entrare sono diversi:

  • Attacco brute force della pagina administrator. Con un software automatico (bot) - in grado di replicare migliaia di combinazioni alfanumeriche in pochi secondi - gli hacker tentano di indovinare username e password di accesso.
  • Utilizzano bug del tema, della release (spesso non aggiornata) o dei vari plugin installati.
  • Accedono tramite FTP. Questo capita quando i permessi dei file e delle cartelle risultano sbagliati. 
  • A volte la colpa è da imputare all'hosting che non mantiene i propri server sicuri. Non acquistare domini su hosting provider dalla dubbia serietà e competenza ma affidati a strutture solide e aggiornate sia dal punto di vista hardware che software.

Quando un sito viene compromesso le conseguenze possono essere diverse a seconda del tipo di problema che è stato arrecato. Se si tratta di un eCommerce, affiliazione o pubblicità è facile intuirne il danno economico a cui si potrebbe andare incontro ma è altrettanto significativo anche quello che riguarda l'immagine del brand stesso. Agli occhi dell'utente vedere un sito compromesso fa abbassare il livello di valutazione e fiducia che con impegno si era riusciti ad ottenere nel tempo. Di riflesso ne possono risentire a breve termine conversioni e contatti. In ultimo il danno di posizionamento e nella serp di Google. Nel momento in cui Google trova un sito infetto, oltre a comunicare l'accaduto direttamente al proprietario (attraverso la mail registrata in Google Search Console), prende immediati provvedimenti per difendere gli altri utenti che navigano la rete. Per evitare o quanto meno limitare un attacco hacker è importante prestare molta attenzione sul versante della sicurezza.

7 regole da seguire per la sicurezza del tuo sito Joomla
  1. Backup

    Fai una copia completa del sito (database e file). Una delle estensioni di Joomla più efficaci è certamente Akeeba Backup che permette con un solo click di effettuare il backup del sito, di selezionare le cartelle che si desidera escludere dal backup o ancora di effettuare operazioni di ripristino. In caso di attacco la presenza di una copia pulita sul tuo pc ti consente di ripristinare velocemente l’intero sito o sostituire (via FTP) i file hackerati con quelli originali. Tramite FileZilla puoi visualizzare l’elenco dei file tra remoto e locale, in modo da confrontare peso, data, nome o presenza di file nuovi e sconosciuti. In quest'ultimo caso, se hai dubbi, puoi scaricare il file che non ti convince, aprirlo con un editor html (esempio Dreamweaver) e notare facilmente la presenza di codice "sporco" o meno.

  2. Permessi file e cartelle

    Una misura di sicurezza molto importante riguarda i permessi dei file e delle cartelle del sito Joomla. Come vanno impostati? Il metodo più semplice è l'utilizzo di un client FTP. Seleziona il singolo file o la cartella con il tasto destro del mouse e quindi “Permessi file...”

    - Imposta le autorizzazioni per le cartelle a 755
    - Imposta le autorizzazioni per i file a 644
    - Imposta le autorizzazioni per il file configuration.php a 444
    - Non utilizzare mai le autorizzazioni 777

    permessi file cartelle

  3. Plugin per la sicurezza

    Lo spam e gli attacchi brute force rappresentano due delle pratiche più diffuse e pericolose che ledono alla sicurezza di Joomla. È buona prassi utilizzare dei plugin appositamente sviluppati per limitare questi eventi.

    Di seguito una lista che ti invito a studiare e testare.

    Securitycheck Pro

    Suite di sicurezza molto completa e in grado di proteggere il tuo sito senza compromettere la velocità del server. L’interfaccia è semplice e consente di monitorare molte funzioni: blocco ip, scansione malware, protezione .htaccess, SQL Injection, gestione permessi file e cartelle, geoblock e molto altro.

    jHackGuard

    Estensione disponibile gratuitamente che filtra i dati in ingresso degli utenti e implementa diverse impostazioni di sicurezza. Affidabile ed efficace contro SQL injection, esecuzioni di codice in modalità remota e attacchi basati su XSS, l'estensione è preconfigurata con una serie di regole indicate per la maggior parte dei siti Joomla (puoi modificarle come vuoi attraverso webpanel) che sono disattivate per gli amministratori autenticati così che i suoi filtri non interferiscano con le quotidiane attività sul sito.

    Admin Tools

    Sviluppato da Akeeba Backup offre una serie di ottime funzionalità come la protezione della cartella amministrativa dietro impostazione di una password, permette il blocco geografico degli indirizzi IP ed esegue una scansione dei file PHP rilevando eventuali modifiche non autorizzate. Admin Tools previene in maniera efficace gli attacchi XXS ed effettua una scansione su tutti i file che vengono caricati sul sito monitorando l'eventuale presenza di stringhe di codice sospette.

    Brute Force Stop

    Consente di prevenire gli attacchi brute force memorizzando i dettagli dei tentativi di login non riusciti così da permettere all’amministratore del sito di analizzarli e di prendere le necessarie misure di sicurezza. Il plugin permette anche di configurare la notifica dei tentativi di login falliti e degli indirizzi IP bloccati.

    RSFirewall

    Suite di sicurezza creata da RSJoomla. Fornisce uno dei migliori servizi di protezione contro le intrusioni e gli attacchi da parte degli hacker. Esegue un controllo accurato per le vulnerabilità di estensioni di terze parti, permette di attivare la scansione dei file di Joomla suscettibili di modifiche da parte di malintenzionati (esempio configuration.php), attiva un blocco su tentativi SQL injection e furto di account administrator.

    Centrora Security

    Dotata di uno scanner di sicurezza e anti-malware questa estensione permette di identificare l'eventuale presenza di codici dannosi, spam, virus, SQL injection e ogni altro tipo di vulnerabilità.

    R-Antispam

    Blocca lo spam proveniente da forum Kunena. Questa estensione utilizza un algoritmo bayesiano e funziona più maniera più efficace se impiegata con Akismet.

    Antispam by CleanTalk

    Antispam invisibile, all-in-one. Nessun commento o registrazione spam. Protegge VirtueMart, JComments 2.3, 3.0, K2, RS Form ed altri componenti.

  4. Password complesse

    Non utilizzare password con parole comuni o che semplicemente contengano informazioni personali come il nome di tua figlia, moglie o cane. Pensa ad una combinazione più complessa come il titolo di un film, canzone o spettacolo, nel quale alterni minuscole e maiuscole aggiungendo caratteri speciali. Esempio: "Notthing Hill" potrebbe diventare “No!!hinG_Hi??1999”. Non è il massimo ma così va già meglio. Ho sostituito il carattere "t" con il punto esclamativo "!" e la "l" con quello interrogativo "?", aggiunto l'underscore (puoi usare anche il trattino centrale se preferisci) e l'anno di uscita. Ti sembrerà difficile ma lo è solamente perché non rispecchia il tuo schema mentale ma il mio. Prova con altre forme a te più congeniali.

  5. Aggiornamento CMS ed estensioni

    Non solo la release ma aggiorna tutte le estensioni che hai installato.

    aggiornamenti joomla messaggio

    Regola fondamentale per risolvere eventuali bug o vulnerabilità dell'applicazione. Attraverso il messaggio che appare nella home del pannello di controllo del sito visiona la lista degli aggiornamenti (pacchetto, plugin, componente o libreria) e provvedi quanto prima all'adeguamento con l'ultima versione disponibile.

    lista aggionamenti joomla

  6. Two Factor Authentication

    Joomla ha un sistema di verifica in due passaggi integrato. Protegge i dati di accesso al sito con un codice segreto secondario che cambia ogni 30 secondi. È possibile utilizzare il proprio smartphone e l'applicazione Google Authenticator per la generazione del codice.

  7. File .htaccess

    All'interno di questo file si possono implementare diverse regole per rendere più sicuro l'utilizzo dell'applicazione. Ad esempio queste 4 righe vanno a bloccare tutte le chiamate a file .php che non siano il file index.php. 

    # Forbid access to PHP files in subfolders.
    RewriteCond %{REQUEST_URI} ^.*\.php$
    RewriteCond %{REQUEST_URI} !^.*index\.php
    RewriteRule ^ index.html [F]

    Ti invito a studiare in rete il file e abilitare le direttive che ritieni possano essere più utili al sito.
Il mio sito è stato compromesso. Cosa devo fare?

Se effettuando una ricerca tramite Google la serp restituisce sotto al tuo sito la scritta: "Questo sito potrebbe essere compromesso" vai al seguente link: https://developers.google.com/webmasters/hacked/?hl=it e segui i passaggi che trovi in elenco. Prima di richiedere un controllo fai un test di sicurezza su: http://sitecheck.sucuri.net/scanner

[Pillole vintage] Sicurezza nelle versioni 1.5, 1.6, 1.7 e 2.5

Tratto da alcuni miei interventi di pulizia e ripristino siti compromessi tra il 2012 e il 2014

9 OTTOBRE 2012

Se il tuo sito subisce continue modifiche del file .htaccess vai nelle cartelle:

  • images/stories e controlla l'eventuale presenza di file .php. Es story.php o con inizio sintassi .cache_. Non esitare a cancellarli
  • images/banners cancella file .php. Esempio: lib_2xao8f.php

12 NOVEMBRE 2012

Se ti appare pagina bianca quando clicchi sul link che riconduce alla home del sito o a qualsiasi pagina interna - anche attraverso i sitelink indicizzati nella serp - controlla:

  • index.php presente nella root principale, dove nell'ultima riga cambia la stringa: $JResp = JResponse::toString($mainframe->getCfg('gzip'));: con la seguente originale e corretta echo JResponse::toString($mainframe->getCfg('gzip'));

Per quanto riguarda il backend se anch'esso restituisce pagina bianca guarda in /administrator e controlla se il file index.php è a 0 KB. In questo caso è stato modificato. Ricaricate l'originale. Per il resto aggiorna sia la versione 1.5.x all'ultima release (.26) e i vari componenti installati.

10 GENNAIO 2013

Se aprendo il tuo sito appare la pagina con la scritta "Hackeado por HighTech Brazil HackTeamNo\One - CrazyDuck - Otrasher" ripristina la index.php della root ed il configuration.php. Cancella le tracce dell'intrusione dalla root:

  • ck.htm
  • xk.txt

stessi file in:

  • /tmp
  • /cache

Per buona prassi controlla ed aggiorna eventuali componenti di mailing (es ACY Mailing) per evitare spam.

24 APRILE 2013

Alcuni componenti e plugin - forse lo stesso Joomla 1.5 - subiscono continui e gravi attacchi malware, esattamente trojan PHP/Backdoor (.AG o .CK) dove lo stesso Securi SiteCheck li identifica MW:SPAM:SEO. Se il problema non viene risolto velocemente, questa compromissione conduce soltanto in una direzione, la blacklist. I virus si trovano all'interno delle cartelle /components e /modules. Nella prima cancella /com_hello, nella seconda /mod_sys e /mod_joomcasche. Sono tutte cartelle create dall'hacker.

Personale suggerimento e consuetudine, cambia la password FTP e DB oltre a quella di super administrator. Alla fine fai un backup con Akeeba Backup e conservalo in una cartella del tuo PC. Alcune falle consentono ai vari hacker di inserire codice dannoso nelle pagine "articolo" di Joomla come da esempio di seguito riportato:

<p> </p>
<div id="Sw1sDnCAhz5NXsFwzFoh2IeS4G" style="position: absolute; top: -979px; left: -1278px; width: 359px;"><a href="http://viagraonlinemastervs.com">buy viagra</a>
<p> </p>
</div>

Per via della posizione "position: absolute; top: -979px; left: -1278px;" non sono visibili se non in vista HTML. In questo caso, se non hai un backup recente e aggiornato, la soluzione è cancellare il codice hackerato a mano.

27 MAGGIO 2013

Se il report della scansione di Sucuri SiteCheck restituisce molte pagine infettate con la stessa riga di codice nocivo, loggati nel backend e vai in gestione template "Mod HTML". Con un semplice find trova la riga incriminata e cancellala. Di norma viene inserita nell'apertura di <body> (es. dnnViewState). Usa un editor HTML per agevolati nella lettura del codice. Una volta salvata la pagina esegui un RE-SCAN. Non ci sarà più traccia di codice malevole, eviterai così la blacklist, prima fra tutti quella di Google Safe Browsing.

Protezione con regole Rewrite nel file htaccess

Limitare le richieste HTTP POST:

RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REMOTE_ADDR} !127.0.0.1
RewriteRule ^ / [R,L]

Le regole appena scritte bloccano tutte le richieste POST ad esclusione di quelle provenienti da localhost. Di seguito l'aggiunta di una condizione Rewrite dove puoi consentire l’accesso al tuo indirizzo IP o ad altri IP di collaboratori o dipendenti dell'azienda.

RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REMOTE_ADDR} !127.0.0.1
RewriteCond %{REMOTE_ADDR} !tuoIP
RewriteRule ^ / [R,L]

Controlla periodicamente la lista delle estensioni vulnerabili al seguente indirizzo: https://docs.joomla.org/Archived:Vulnerable_Extensions_List e iscriviti alla newsletter degli sviluppatori di cui si utilizza l'estensione.

30 DICEMBRE 2013

Gli ultimi attacchi inibiscono la modifica degli articoli e più in generale l'intera gestione del backend. Spesso si arriva alla "perdita" del pannello di controllo /administrator. Al suo posto una pagina 404. In questo caso nella gestione utenti troverai un administrator di troppo (non esitare ad eliminarlo) e soprattutto diversi file modificati in FTP.

Gli step da seguire per ripulire il sito sono i seguenti:

  • Portati all'interno di /modules nella root principale. Noterai una cartella nuova e non presente nelle installazioni di Joomla, ovvero "mod_administrator". Al suo interno i file con script dannoso sono redatti per avere privilegi nel tuo sito. Non esitare a cancellare l'intera cartella.
  • Nella root apri la cartella /un. Qui controlla la presenza di file .php maligni come il seguente sys09725827.php. Elimina ogni taccia. La data di modifica ti sarà sempre di aiuto.
  • In ultimo accedi all'interno di /administrator. Provvedi a ricaricare index.php che l'hacker ha cancellato. In questo caso è fondamentale avere un backup .jpa scompattato con Akeeba eXtract Wizard.

Ora il backend è tornato visibile in /administrator e soprattutto gestibile in ogni sezione.

24 FEBBRAIO 2014

Tra le infezioni più complicate da risolvere ci sono senza dubbio quelle identificate come Blackhat SEO Spam (MW:SPAM:SEO). Il questo caso gli hacker hanno inserito nel tuo sito uno o più link a loro siti (o siti spam). Ti riporto un esempio:

IS Seo

Ti sarà utile consultare il Sucuri Blog nell'area dedicata allo Spam. Ecco il link: http://blog.sucuri.net/category/spam

Alcuni passaggi da seguire:

  • All'interno della cartella /administrator controlla la presenza di due file: fix.php e/o pack.php. Entrambi sono identificati come PHP/Backdoor.Shell. Cancellali.
  • In modules cerca la cartella mod_cmsfix. Al suo interno troverai file php infetti Trojan PHP/BackDoor.CK. Ripulisci.
  • Ricordati di svuotate la cartella tmp.
0
Shares
0
Shares