Anche se riesci a individuare e correggere una vulnerabilità potrebbero essere in atto più attacchi indipendenti, ma ti consigliamo di continuare a cercarne altre. Inizia la tua indagine leggendo le principali modalità di compromissione dei siti web da parte degli spammer.
Dovrai avere quanto segue:
- Accesso come amministratore di shell o di terminale ai server del tuo sito: web, database e file
- Conoscenza dei comandi della shell o del terminale
- Conoscenza del codice (come PHP o JavaScript)
- La possibilità di eseguire due scanner antivirus
Azioni successive
Verranno trattati diversi metodi comunemente utilizzati per compromettere un sito. Ci auguriamo che una di queste opzioni si applicherà al tuo sito o che almeno faccia chiarezza su ulteriori possibilità.
Tieni presente che gli scanner di vulnerabilità sono diversi dagli scanner antivirus. Gli strumenti di scansione delle vulnerabilità possono essere molto più invasivi e potrebbero potenzialmente causare danni indesiderati al tuo sito. Segui tutte le indicazioni, ad esempio esegui il backup del sito, prima di eseguire la scansione.
Vulnerabilità potenziali {Potential-vulnerabilities}
Ecco alcune possibili vulnerabilità da esaminare:
Infezione da virus sul computer dell'amministratore
Sul computer infettato da virus di un amministratore, l'hacker potrebbe aver installato spyware per registrare le sequenze di tasti dell'amministratore del sito.
- Verifica la presenza di virus nei sistemi degli amministratori. Consigliamo di eseguire diversi scanner antivirus (AV) affidabili su tutti i computer utilizzati da un amministratore per accedere al sito. Poiché le nuove infezioni malware vengono costantemente progettate per eludere gli scanner, questo non è un metodo infallibile di rilevamento di virus. L'esecuzione di più scanner consente di evitare falsi positivi e di fornire più punti dati per determinare se esiste una vulnerabilità. Per sicurezza, ti consigliamo inoltre di eseguire la scansione sia del tuo server web sia di tutti i dispositivi utilizzati per aggiornare o pubblicare sul sito.
- Se lo scanner AV rileva spyware, virus, trojan horse o qualsiasi altro programma sospetto, esamina i log del server del sito per verificare l'attività dell'amministratore proprietario del computer infetto.
- L'hacker potrebbe aver alterato i file di log. In caso contrario, la correlazione tra il nome utente dell'amministratore e comandi sospetti nel file di log è un'ulteriore prova che un virus nel sistema di un amministratore ha reso vulnerabile il sito.
Password deboli o riutilizzate
Le password inefficaci sono facili da scoprire per gli hacker, in quanto forniscono loro l'accesso diretto al tuo server. Una password efficace è formata da una combinazione di lettere, numeri e punteggiatura, senza parole o gergali presenti in un dizionario. Le password devono essere utilizzate per una sola applicazione e non devono essere riutilizzate nel web. Quando le password vengono riutilizzate, è sufficiente una sola violazione della sicurezza in un'applicazione affinché un hacker possa trovare dati di accesso e password da usare altrove.
Nel log del server, controlla la presenza di attività indesiderate, come più tentativi di accesso da parte di un amministratore o di un amministratore che esegue comandi imprevisti. Prendi nota di quando si è verificata l'attività sospetta, perché sapere quando è stato subito l'attacco per la prima volta aiuta a determinare quali backup potrebbero essere ancora puliti.
Software obsoleto
Verifica che sui server sia stata installata la versione più recente del sistema operativo, del sistema di gestione dei contenuti, della piattaforma di blogging, delle applicazioni, dei plug-in e di qualsiasi altro software utilizzato dal sito.
- Esegui una ricerca su tutto il software installato (ad esempio tramite una ricerca web) per determinare se la tua versione contiene un avviso per la sicurezza. Se sì, è probabile che il software obsoleto abbia reso vulnerabile il tuo sito.
- Come best practice, cerca sempre di mantenere aggiornato il software dei server, indipendentemente dal fatto che il software obsoleto abbia causato questi specifici problemi di vulnerabilità.
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 dell'URL consenta di aggiungere un altro URL in modo che gli utenti possano raggiungere un file o una pagina utile sul sito. Ad esempio:
http://example.com/page.php?url=http://example.com/good-file.pdf
o
http://example.com/page.php?url=malware-attack-site>
- Se il tuo sito viene utilizzato in modo illecito da reindirizzamenti aperti, probabilmente avrai notato che il messaggio in Search Console include URL di esempio che includevano reindirizzamenti aperti a una destinazione indesiderata.
- Per impedire reindirizzamenti aperti in futuro, verifica quanto segue:
- Indica se l'opzione "Consenti reindirizzamenti aperti" è attivata per impostazione predefinita nel software.
- Indica se il tuo codice può vietare i reindirizzamenti esterni al dominio.
- Indica se sei in grado di firmare il reindirizzamento in modo che possano continuare solo i reindirizzamenti con URL sottoposti ad hashing e con la firma crittografica corretta.
Iniezioni SQL
Le iniezioni SQL si verificano quando un hacker è in grado di aggiungere comandi non autorizzati ai campi di input dell'utente eseguiti dal database. Le iniezioni SQL aggiornano i record nel database con contenuti indesiderati di spam o malware oppure scaricano dati preziosi da restituire all'hacker. Se il tuo sito utilizza un database e, soprattutto, se sei stato infettato da malware, è possibile che il tuo sito sia stato compromesso da un'iniezione SQL.
- Accedi al server del database e cerca all'interno del database contenuti sospetti, ad esempio campi di testo altrimenti normali che ora mostrano iframe o script.
- Per i valori sospetti, verifica che l'input utente sia convalidato e che abbia i caratteri di escape corretti o che sia stato digitato in modo sicuro, in modo che non possa essere eseguito come codice. Se l'input utente non viene controllato prima dell'elaborazione del database, SQL injection può essere una causa principale della vulnerabilità del tuo sito.