
Accorgersi che il proprio sito web è stato hackerato non è sempre immediato. In alcuni casi l’attacco è evidente: il sito mostra contenuti sconosciuti, reindirizza verso pagine sospette oppure non consente più di accedere al pannello di amministrazione.
In altri casi, invece, il problema rimane nascosto per settimane. Il sito sembra funzionare normalmente, ma al suo interno possono essere presenti file dannosi, utenti amministratori non autorizzati, pagine spam o script utilizzati per inviare email fraudolente.
Un sito compromesso può provocare perdita di posizionamento su Google, diminuzione delle visite, danni alla reputazione dell’attività e, nei casi più gravi, sottrazione di dati personali o informazioni riservate.
Vediamo quindi quali sono i principali segnali di un sito hackerato, quali controlli effettuare e come intervenire senza peggiorare la situazione.
Un sito viene considerato hackerato quando una persona o un programma riesce ad accedere senza autorizzazione ai suoi file, al database, al server oppure al pannello di gestione.
L’obiettivo dell’attacco può essere diverso a seconda dei casi. Alcuni hacker inseriscono pagine spam per sfruttare l’autorevolezza del dominio, altri installano malware, rubano dati, modificano i contenuti o utilizzano il server per inviare email di phishing.
Nei siti realizzati con WordPress, Joomla, PrestaShop o altri CMS, l’accesso può avvenire attraverso plugin non aggiornati, temi vulnerabili, password troppo semplici, credenziali rubate oppure configurazioni errate del server.
Il fatto che il sito continui a essere visibile non significa quindi che sia necessariamente sicuro.
Esistono diversi indizi che possono far sospettare una compromissione. La presenza di uno solo di questi segnali non dimostra con certezza che il sito sia stato attaccato, ma richiede comunque un controllo approfondito.
Uno dei segnali più evidenti è la comparsa di testi, immagini, link o pagine che non sono stati inseriti dal proprietario del sito.
Potresti trovare articoli in lingue straniere, pagine relative a farmaci, giochi d’azzardo, criptovalute o prodotti contraffatti. In alcuni casi questi contenuti non sono visibili nel menu del sito, ma risultano comunque presenti e indicizzati da Google.
Per verificarlo puoi cercare su Google:
site:nomedominio.it
Controlla se tra i risultati compaiono titoli o descrizioni che non riconosci.
Un sito compromesso può reindirizzare automaticamente i visitatori verso pagine esterne, pubblicità invasive, falsi concorsi, siti per adulti o piattaforme potenzialmente pericolose.
Il reindirizzamento può presentarsi soltanto da smartphone, da determinati browser oppure per gli utenti provenienti da Google. Questo rende il problema più difficile da individuare durante una normale visita al sito.
Chrome, Firefox, Edge e altri browser possono mostrare messaggi come:
“Questo sito potrebbe essere pericoloso”
“Il sito contiene malware”
“Il sito che stai per visitare contiene programmi dannosi”
Questi avvisi possono comparire quando Google o altri sistemi di sicurezza rilevano codice malevolo, tentativi di phishing o download sospetti.
Ignorare il problema può provocare una drastica riduzione delle visite, perché molti utenti abbandonano immediatamente la pagina.
Google Search Console può segnalare problemi nella sezione dedicata alle azioni manuali o ai problemi di sicurezza.
Tra gli avvisi più comuni possono esserci riferimenti a:
Una notifica di questo tipo deve essere presa seriamente. Prima di inviare una richiesta di revisione a Google è necessario eliminare completamente la causa del problema.
Una perdita improvvisa di visite da Google può essere collegata a numerosi fattori e non indica automaticamente un attacco.
Tuttavia, se il calo coincide con la comparsa di pagine spam, avvisi di sicurezza o modifiche non autorizzate, è possibile che Google abbia ridotto la visibilità del sito per proteggere gli utenti.
In questi casi è utile confrontare i dati di Google Search Console, Google Analytics e gli eventuali strumenti SEO utilizzati per il monitoraggio delle parole chiave.
La presenza di script dannosi può consumare risorse del server e rallentare il caricamento delle pagine.
Potresti notare errori frequenti, tempi di risposta più lunghi, consumo anomalo della CPU, superamento dei limiti dell’hosting o improvvisi blocchi del database.
Un rallentamento non è necessariamente causato da un attacco, ma deve essere analizzato se compare senza che siano state effettuate modifiche tecniche al sito.
Se la password non funziona più, l’indirizzo email dell’amministratore è stato modificato oppure il tuo account è stato eliminato, qualcuno potrebbe avere ottenuto l’accesso al sito.
Un altro segnale sospetto è la presenza di nuovi utenti con ruolo di amministratore, editore o gestore del negozio.
In questo caso è importante intervenire rapidamente, perché l’attaccante potrebbe avere ancora il controllo del sito.
Un sito o un server compromesso può essere utilizzato per inviare spam e messaggi di phishing.
Potresti ricevere segnalazioni da clienti, notifiche di mancata consegna relative a messaggi mai inviati oppure avvisi dal provider di posta elettronica.
Oltre al danno di immagine, il dominio o l’indirizzo IP del server potrebbero essere inseriti in blacklist, rendendo più difficile la consegna delle normali email aziendali.
Prima di cancellare file o ripristinare backup è necessario raccogliere più informazioni possibili.
Un intervento frettoloso potrebbe eliminare le tracce utili per identificare la vulnerabilità e permettere all’attaccante di rientrare poco tempo dopo.
Accedi al server tramite il pannello dell’hosting, FTP o SFTP e verifica la presenza di file modificati recentemente.
Presta attenzione soprattutto a:
.htaccess, index.php o wp-config.php;Non cancellare automaticamente tutto ciò che non riconosci. Alcuni file potrebbero appartenere a plugin, sistemi di cache o strumenti legittimi.
Controlla l’elenco degli utenti del CMS e cerca account che non riconosci.
Verifica anche gli indirizzi email associati agli amministratori e le eventuali modifiche recenti ai ruoli.
Nel caso di WordPress, è opportuno controllare anche il database, perché un account nascosto potrebbe non essere facilmente visibile dal pannello.
I log degli accessi e degli errori possono aiutare a capire quando è avvenuto l’attacco e quale risorsa è stata utilizzata.
È possibile individuare:
L’analisi dei log richiede competenze tecniche, ma può essere fondamentale per evitare che il problema si ripresenti.
Strumenti come Wordfence, Sucuri o MalCare possono aiutare a individuare file alterati, malware conosciuti e vulnerabilità.
Una scansione automatica, però, non è sufficiente a garantire che il sito sia completamente pulito. Alcuni malware sono progettati per nascondersi oppure per ricrearsi dopo la cancellazione.
Per questo motivo è consigliabile confrontare i file del sito con una copia originale del CMS, dei plugin e dei temi utilizzati.
Quando la compromissione è confermata, è necessario agire con ordine.
Se il sito reindirizza gli utenti, diffonde malware oppure espone dati sensibili, valuta di metterlo temporaneamente offline o in modalità manutenzione.
L’obiettivo è evitare che altri visitatori vengano danneggiati e impedire all’attaccante di continuare a utilizzare il sito.
È preferibile limitare l’accesso a livello server piuttosto che installare un nuovo plugin, soprattutto se non si conosce ancora l’origine dell’attacco.
Informa il servizio di hosting e chiedi se sono state rilevate attività anomale.
Il provider potrebbe mettere a disposizione:
Se sullo stesso spazio hosting sono presenti più siti, devono essere controllati tutti. Un attaccante potrebbe infatti spostarsi da un’installazione vulnerabile alle altre.
Prima di effettuare modifiche, crea una copia completa dei file e del database.
Anche se il backup contiene malware, può essere utile per analizzare l’attacco, recuperare dati o confrontare i file modificati.
Non utilizzare questa copia per ripristinare direttamente il sito pubblico senza averla prima controllata.
Modifica immediatamente le credenziali relative a:
Le nuove password devono essere lunghe, uniche e mai utilizzate su altri servizi.
È inoltre consigliabile revocare eventuali sessioni attive e attivare l’autenticazione a due fattori.
Elimina gli account che non riconosci e modifica le password di tutti gli utenti con privilegi elevati.
Controlla anche eventuali chiavi API, token, applicazioni collegate e accessi esterni.
La pulizia deve riguardare sia i file sia il database.
Limitarsi a cancellare la pagina spam visibile spesso non risolve il problema, perché il codice che l’ha generata può trovarsi altrove.
Scarica una copia ufficiale e aggiornata del CMS utilizzato e sostituisci i file principali.
Nel caso di WordPress, ad esempio, è possibile sostituire le cartelle del core lasciando temporaneamente separati i contenuti personali, i plugin, i temi e il file di configurazione.
Non utilizzare pacchetti provenienti da fonti non ufficiali.
Elimina e reinstalla plugin e temi scaricandoli dalle fonti ufficiali.
Un semplice aggiornamento potrebbe non eliminare file aggiunti dall’attaccante all’interno delle cartelle.
Rimuovi completamente tutti i componenti inutilizzati, disattivati o abbandonati dagli sviluppatori.
Gli hacker possono inserire codice malevolo anche nel database.
È necessario controllare:
Il database non deve essere ripristinato automaticamente da un vecchio backup senza prima verificarne la data e l’integrità.
Quando disponibile, il ripristino di un backup precedente all’attacco può essere la soluzione più rapida.
Il backup deve però essere realmente pulito. Se la vulnerabilità era già presente, il sito potrebbe essere nuovamente compromesso dopo poche ore o pochi giorni.
Dopo il ripristino è necessario aggiornare il CMS, correggere la falla e cambiare tutte le credenziali.
Una backdoor è un file o una modifica che consente all’attaccante di rientrare nel sito anche dopo la pulizia.
Può trovarsi in una cartella nascosta, in un plugin modificato, in un file di sistema oppure nel database.
Se non vengono eliminate tutte le backdoor, il sito continuerà a essere vulnerabile.
Una volta eliminati malware, pagine spam e accessi non autorizzati, bisogna verificare che il sito funzioni correttamente.
Controlla:
È importante verificare anche che non siano rimasti contenuti spam indicizzati da Google.
Se Google Search Console ha segnalato un problema di sicurezza, la richiesta di revisione deve essere inviata soltanto dopo aver completato la pulizia.
Nella richiesta è consigliabile spiegare in modo chiaro:
Non inviare richieste ripetute senza aver risolto il problema. Una revisione respinta può allungare i tempi necessari per rimuovere gli avvisi.
Per le pagine spam che non esistono più, verifica che restituiscano correttamente il codice HTTP 404 o 410. Evita di reindirizzare tutte le vecchie pagine compromesse verso la home page.
La sicurezza non si risolve con un singolo intervento. È necessario mantenere il sito aggiornato e monitorato nel tempo.
Gli aggiornamenti correggono spesso vulnerabilità già conosciute.
Rimandare per mesi può lasciare il sito esposto a strumenti automatici che cercano installazioni non protette.
Prima degli aggiornamenti più importanti è comunque opportuno creare un backup.
Plugin e temi scaricati da siti non ufficiali possono contenere malware già al momento dell’installazione.
Prima di utilizzare un componente, controlla quando è stato aggiornato, il numero di installazioni, l’assistenza disponibile e la reputazione dello sviluppatore.
Ogni componente aggiuntivo rappresenta un possibile punto di ingresso.
Mantieni soltanto i plugin realmente necessari e rimuovi quelli disattivati. Disattivare un plugin vulnerabile non sempre è sufficiente: se i file restano sul server, potrebbero comunque essere sfruttati.
La 2FA rende più difficile l’accesso anche nel caso in cui la password venga rubata.
Dovrebbe essere attivata almeno per amministratori, hosting, email aziendali, registrar del dominio e servizi cloud collegati al sito.
Non utilizzare la stessa password per WordPress, hosting, email, FTP e altri account.
Un’unica credenziale compromessa potrebbe consentire l’accesso a tutta l’infrastruttura.
L’utilizzo di un password manager può aiutare a creare e conservare password complesse.
Non tutti gli utenti devono avere il ruolo di amministratore.
Assegna a ciascuno soltanto i permessi necessari per svolgere il proprio lavoro. Elimina gli account inutilizzati e controlla periodicamente l’elenco degli utenti.
I backup devono essere frequenti, completi e conservati anche al di fuori dello stesso server del sito.
È utile mantenere più versioni nel tempo, perché l’ultimo backup potrebbe essere stato creato dopo la compromissione.
Verifica periodicamente che i backup siano realmente ripristinabili.
Un Web Application Firewall può bloccare una parte degli attacchi automatici, dei tentativi di accesso e delle richieste sospette.
Puoi inoltre configurare notifiche per:
Sì, un attacco può avere conseguenze sulla visibilità organica.
Google potrebbe rimuovere temporaneamente alcune pagine, mostrare avvisi nei risultati, sostituire titoli e descrizioni con contenuti spam oppure ridurre la fiducia verso il sito.
Il recupero dipende dalla gravità dell’attacco, dalla durata della compromissione e dalla velocità con cui vengono eliminate le pagine dannose.
Dopo la pulizia è importante controllare regolarmente il rapporto di indicizzazione, le query di ricerca, le sitemap e le eventuali azioni manuali presenti in Search Console.
La pulizia può diventare complessa quando il sito contiene dati sensibili, gestisce pagamenti, utilizza numerosi plugin oppure è ospitato insieme ad altri progetti.
È consigliabile chiedere assistenza quando:
Un intervento professionale non dovrebbe limitarsi a cancellare il malware. Deve individuare il punto di ingresso, chiudere la vulnerabilità e mettere in sicurezza l’intera installazione.
Capire se un sito è stato hackerato richiede attenzione, perché non tutti gli attacchi producono effetti immediatamente visibili.
Pagine sconosciute, reindirizzamenti, nuovi utenti amministratori, rallentamenti, email fraudolente e avvisi di Google sono tutti segnali che devono essere verificati.
La cosa più importante è intervenire con metodo: creare una copia del sito, cambiare le credenziali, analizzare file e database, eliminare le backdoor, aggiornare i componenti e controllare che l’attaccante non possa entrare nuovamente.
Una volta risolto il problema, backup esterni, aggiornamenti costanti, password uniche, autenticazione a due fattori e monitoraggio continuo possono ridurre notevolmente il rischio di nuovi attacchi.
| Cookie | Durata | Descrizione |
|---|---|---|
| cookielawinfo-checkbox-advertisement | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category . |
| cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
| cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
| cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
| cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
| cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
| CookieLawInfoConsent | 1 year | Records the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie. |
| JCS_INENREF | 1 hour | The cookie is a part of the website security measures and is used for anti-spam purposes. |
| JCS_INENTIM | 1 hour | The cookie is a part of the website security measures and is used for anti-spam purposes. |
| PHPSESSID | session | This cookie is native to PHP applications. The cookie is used to store and identify a users' unique session ID for the purpose of managing user session on the website. The cookie is a session cookies and is deleted when all the browser windows are closed. |
| viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
| _GRECAPTCHA | 5 months 27 days | This cookie is set by the Google recaptcha service to identify bots to protect the website against malicious spam attacks. |
| _wpss_h_ | 1 hour | This cookie is used for anti-spam and security of the website. |
| _wpss_p_ | 1 hour | This cookie is used for anti-spam and security of the website. |
| Cookie | Durata | Descrizione |
|---|---|---|
| d | 3 months | Quantserve sets this cookie to anonymously track information on how visitors use the website. |
| Cookie | Durata | Descrizione |
|---|---|---|
| CONSENT | 2 years | YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data. |
| u | 1 year | This cookie is used by Bombora to collect information that is used either in aggregate form, to help understand how websites are being used or how effective marketing campaigns are, or to help customize the websites for visitors. |
| _ga | 2 years | The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors. |
| _gat_gtag_UA_54545659_3 | 1 minute | Set by Google to distinguish users. |
| _gid | 1 day | Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously. |
| __gads | 1 year 24 days | The __gads cookie, set by Google, is stored under DoubleClick domain and tracks the number of times users see an advert, measures the success of the campaign and calculates its revenue. This cookie can only be read from the domain they are set on and will not track any data while browsing through other sites. |
| Cookie | Durata | Descrizione |
|---|---|---|
| ab | 1 year | Owned by agkn, this cookie is used for targeting and advertising purposes. |
| CMID | 1 year | Casale Media sets this cookie to collect information on user behavior, for targeted advertising. |
| CMPRO | 3 months | CMPRO cookie is set by CasaleMedia for anonymous user tracking, and for targeted advertising. |
| CMPS | 3 months | CMPS cookie is set by CasaleMedia for anonymous user tracking based on user's website visits, for displaying targeted ads. |
| CMST | 1 day | Casale Media sets this cookie to collect information on user behavior, for targeted advertising. |
| DSID | 1 hour | This cookie is set by DoubleClick to note the user's specific user identity. It contains a hashed/encrypted unique ID. |
| id | 1 year 1 month | Set by Google DoubleClick, this cookie is used to create user profiles to display relevant ads. |
| IDE | 1 year 24 days | Google DoubleClick IDE cookies are used to store information about how the user uses the website to present them with relevant ads and according to the user profile. |
| KADUSERCOOKIE | 3 months | The cookie, set by PubMatic, registers a unique ID that identifies a returning user's device across websites that use the same ad network. The ID is used for targeted ads. |
| KTPCACOOKIE | 1 day | The cookie, set by PubMatic, registers a unique ID that identifies a returning user's device across websites that use the same ad network. The ID is used for targeted ads. |
| mc | 1 year 1 month | Quantserve sets the mc cookie to anonymously track user behaviour on the website. |
| mdata | 1 year 1 month | This cookie is used by Media Innovation group and registers a unique ID to identify a visitor on their revisit, in order to show them relevant ads. |
| ov | 1 year 1 month | This cookie is set by the provider mookie1.com. This cookie is used for serving the user with relevant content and advertisement. |
| test_cookie | 15 minutes | The test_cookie is set by doubleclick.net and is used to determine if the user's browser supports cookies. |
| uuid | 3 months | MediaMath sets this cookie to avoid the same ads from being shown repeatedly and for relevant advertising. |
| VISITOR_INFO1_LIVE | 5 months 27 days | A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface. |
| YSC | session | YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages. |
| yt-remote-connected-devices | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
| yt-remote-device-id | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
| yt.innertube::nextId | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
| yt.innertube::requests | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
| Cookie | Durata | Descrizione |
|---|---|---|
| 04ecbdc3c8cf16f1be009c66ff1e1338 | 4 hours | No description |
| 058d1dd4c2b7a954880e0bbdb1870438 | 4 hours | No description |
| 06c08a52fb366b586c4a5a60bd81a032 | 4 hours | No description |
| 06cf9d7ef1d1881252ce47dd06ac08f3 | 4 hours | No description |
| 09440368c01217c60d60dd49cb763134 | 4 hours | No description |
| 0b06a9c49a6ae83407d78fa2c6cbb754 | 4 hours | No description |
| 0b2c5193e048ed914b2305e520425354 | 4 hours | No description |
| 0eb805528ad5c11759038444ff2341d9 | 4 hours | No description |
| 0fc3184b8684aacdd2d4a61212650c67 | 4 hours | No description |
| 0fe5b5ff96e0ebe112cd7b65a4b80e01 | 4 hours | No description |
| 12cb367bf061181ec080adeb0a979a63 | 4 hours | No description |
| 15743677e19d30149a85ea11579014c6 | 4 hours | No description |
| 1595c8a1e8f3d7936c76235fccb642d4 | 4 hours | No description |
| 180ccbb64978ceddfede7c1ded4fcc33 | 4 hours | No description |
| 1e3aa9c49fa6a3708c10698621561970 | 4 hours | No description |
| 1eff2c6050bd1a67bf59750bde8aa48a | 4 hours | No description |
| 22cc47102aa5930b376a1e850f9f7998 | 4 hours | No description |
| 2471fd4fbd0697c13a585de398e09cd6 | 4 hours | No description |
| 3038be542854f1abfe8398702470e2d9 | 4 hours | No description |
| 314165b7e8774789dd6594155f831d59 | 4 hours | No description |
| 31fcd56e023a056286bd963a2b7d9f91 | 4 hours | No description |
| 34be7884060f1d4b14bb2c0f5475f0d0 | 4 hours | No description |
| 364de52a19c37e44e56f104a25e869f7 | 4 hours | No description |
| 36547837130fd63665fd4de9211211f5 | 4 hours | No description |
| 38e93c3cfe326d787b45698a5a6bbfea | 4 hours | No description |
| 392959a50eb044c5a7a7de09899c7baa | 4 hours | No description |
| 3b5808709edd28b3d43cfaf46bdbfe13 | 4 hours | No description |
| 42db14d707fd007b171fb3cd183c716e | 4 hours | No description |
| 435d77343474100c952e594530cac6c7 | 4 hours | No description |
| 45d7cbc98cc5939ccaa31374d9501ee9 | 4 hours | No description |
| 4a17a7ac22d9100a17fc08365601a82b | 4 hours | No description |
| 4c3920b813956aad13fbf65e142958aa | 4 hours | No description |
| 4debd2636f1f4ed491b1fac2ecbe7818 | 4 hours | No description |
| 4f11801af7e6e577b3058dfbb8f007e9 | 4 hours | No description |
| 55eeca3eec69236f8c7c606b74d3387b | 4 hours | No description |
| 5d0c045aeff810303a5e8df2f7748631 | 4 hours | No description |
| 5d0c8e1d0dc504433e046993f4fa449a | 4 hours | No description |
| 5df70a264e8f43a64bdc1b79d5efb2e5 | 4 hours | No description |
| 5fa57ec7b68228177f48af589712c121 | 4 hours | No description |
| 61b279df23b147bc81ffd53a81fe2957 | 4 hours | No description |
| 647e91c682ee42138176157cbfadbe66 | 4 hours | No description |
| 67893c43404db52849ed4ca6cb145346 | 4 hours | No description |
| 681114604376872d4d04a7324e1f936d | 4 hours | No description |
| 70bb13372da078a313a3602c4b1108a2 | 4 hours | No description |
| 735b38aa234c6176d1803e2cd3cf7c20 | 4 hours | No description |
| 760cdecc7adf05d51d44a2ef21adf908 | 4 hours | No description |
| 785c4969ce93ee004f1fb17c836905cb | 4 hours | No description |
| 7978221bfaca83cfd66a6102b88a0e49 | 4 hours | No description |
| 7f1cd1ee4843eb910e614e7a03e4dd87 | 4 hours | No description |
| 813a2d9f186728cf33c2a881a88a65b6 | 4 hours | No description |
Contattami con WhatsApp ora !