Identificare la vulnerabilità

Nell'ipotesi che siano in atto più attacchi indipendenti, anche dopo essere riuscito a individuare e risolvere una vulnerabilità, ti consigliamo di continuare a ricercarne altre. Prima di dare seguito agli accertamenti, leggi quali sono le principali modalità di compromissione dei siti web da parte degli spammer.

Requisiti:

  • Accesso come amministratore di shell/terminale ai server del sito: Web, database, file
  • Conoscenza dei comandi di shell/terminale
  • Comprensione del codice (come PHP o JavaScript)
  • Possibilità di eseguire due scanner antivirus

Prossime operazioni:

Verranno trattati diversi metodi comunemente utilizzati per compromettere un sito. Ci auguriamo che una di queste vulnerabilità possa riguardare il tuo sito o far luce su ulteriori possibilità.

Tieni presente che gli scanner di vulnerabilità sono diversi dagli scanner antivirus. Gli scanner di vulnerabilità possono essere molto più invasivi e potenzialmente più dannosi per il tuo sito. Ti consigliamo di seguire tutte le indicazioni, ad esempio quella di eseguire il backup del sito prima di eseguire la scansione.

Le potenziali vulnerabilità da esaminare includono:

1. Infezione da virus nel computer dell'amministratore

Sul computer infettato da virus di un amministratore, l'hacker potrebbe aver installato spyware per registrare le battute di tasti dell'amministratore del sito.

  • Esegui un controllo antivirus nei sistemi dell'amministratore. Ti consigliamo di eseguire diversi scanner antivirus, o scanner AV, affidabili su ognuno dei computer utilizzati dall'amministratore per accedere al sito. Poiché le nuove infezioni da malware vengono costantemente perfezionate per eludere gli scanner, questa operazione non è un metodo infallibile per rilevare virus. Dal momento che gli scanner AV potrebbero segnalare falsi positivi, l'esecuzione di più scanner consente di raccogliere una maggiore quantità di dati per stabilire se esista una vulnerabilità. Per maggiore sicurezza, valuta anche la possibilità di eseguire una scansione sia del tuo server web sia di tutti i dispositivi utilizzati per aggiornare o pubblicare i contenuti del sito.
    • Se lo scanner AV rileva spyware, virus, trojan horse o qualsiasi programma sospetto, esamina i log del server del sito per controllare l'attività dell'amministratore proprietario del computer infetto.
    • È possibile che i file di log siano stati alterati dall'hacker. In caso contrario, la correlazione tra il nome utente dell'amministratore e comandi sospetti nel file di log è un'ulteriore prova che la vulnerabilità del sito è provocata da un virus nel sistema di un amministratore.

2. Password deboli o riutilizzate

Decifrare una password debole può essere relativamente facile per gli hacker e consente loro di accedere al server in modo diretto. Le password complesse sono una combinazione di lettere, numeri e punteggiatura e non contengono parole o slang facilmente ritrovabili in qualsiasi dizionario. È opportuno utilizzare ogni password per una sola applicazione, anziché riutilizzarne una in tutto il Web. Se le password vengono riutilizzate, è sufficiente una violazione della sicurezza in una sola applicazione perché un hacker possa trovare le credenziali di accesso e tentare di riutilizzarle altrove.

  • Nel log del server controlla la presenza di attività indesiderate, ad esempio l'esecuzione di più tentativi di accesso o di comandi imprevisti da parte di un amministratore. Prendi nota di quando si è verificata l'attività sospetta, perché sapere quando è comparso l'attacco per la prima volta aiuta a stabilire quali copie di backup potrebbero essere ancora pulite.

3. Software obsoleto

Verifica che sui server sia stata installata l'ultima versione del sistema operativo, del sistema di gestione dei contenuti, della piattaforma di blogging, di applicazioni, di plug-in e così via.

  • Esegui una ricerca (magari tramite il Web) in tutto il software installato per determinare se la tua versione contiene un avviso di sicurezza. In tal caso, è piuttosto probabile che la vulnerabilità del tuo sito sia stata provocata dal software obsoleto.
  • Come best practice, cerca di mantenere sempre aggiornato il software dei server, indipendentemente dal fatto che, in questa occasione, il problema di vulnerabilità sia effettivamente dovuto al software obsoleto.

4. Pratiche di codifica permissive, come ad esempio reindirizzamenti aperti e iniezioni SQL

  • Reindirizzamenti aperti
  • I reindirizzamenti aperti vengono codificati in modo che la struttura degli URL consenta di aggiungere un altro URL affinché gli utenti possano raggiungere un file o una pagina web utile del sito. Ad esempio:

    http://example.com/page.php?url=http://example.com/good-file.pdf
    Gli hacker possono utilizzare in modo illecito i reindirizzamenti aperti aggiungendo la pagina contenente spam o malware al reindirizzamento aperto del sito, come di seguito:
    http://example.com/page.php?url=<malware-attack-site>

    • Se il tuo sito viene utilizzato illecitamente sfruttando i reindirizzamenti aperti, probabilmente avrai notato che gli URL di esempio forniti nel messaggio di Search Console includevano reindirizzamenti aperti a una destinazione indesiderata.
    • Per evitare reindirizzamenti aperti in futuro, controlla se l'opzione "consenti reindirizzamenti aperti" è attivata per impostazione predefinita nel software, se il codice consente di vietare reindirizzamenti fuori dominio o se puoi firmare il reindirizzamento in modo da reindirizzare solo gli URL con hashing corretto e firma crittografata.
  • Iniezioni SQL
  • Le iniezioni SQL si verificano quando un hacker riesce ad aggiungere comandi dannosi ai campi di immissione da parte dell'utente eseguiti dal database. Le iniezioni SQL aggiornano i record del database con spam o malware indesiderati oppure scaricano dati preziosi trasmettendoli all'hacker. Se il tuo sito utilizza un database e, soprattutto, se sei stato infettato con malware di tipo iniezione SQL, è possibile che il tuo sito sia stato compromesso da un'iniezione SQL.

    • Accedi al server del database e cerca al suo interno contenuti sospetti quali, ad esempio, campi di testo solitamente normali che ora presentano iframe o script.
    • Nel caso di valori sospetti, controlla che l'immissione dell'utente sia stata convalidata e abbia i caratteri di escape corretti o che sia tipizzata in modo sicuro così da non poter essere eseguita come codice. Se l'immissione dell'utente non risulta verificata prima dell'elaborazione del database, la causa principale della vulnerabilità del sito può essere l'iniezione SQL.

Passaggio successivo

Procedi al passaggio Ripulisci e gestisci il sito.