Come gli Hacker Entrano nel Tuo Sito Aziendale: La Catena di Attacco Completa
La maggior parte degli imprenditori pensa all'hacking come qualcosa che succede a banche, governi o giganti tecnologici. La realta e diversa. Ogni giorno, migliaia di siti web di piccole e medie imprese vengono compromessi da attaccanti che non hanno mai scelto specificamente quei bersagli. Li hanno trovati nello stesso modo in cui Google trova i siti web: scansionando l'intera rete.
Questo articolo vi guida attraverso i passaggi esatti che un attaccante compie per compromettere un sito web aziendale. Non teoria. Non finzione hollywoodiana. Il processo reale e ripetibile che i professionisti della sicurezza vedono incidente dopo incidente. Capire questa catena e il primo passo per spezzarla.
Passo 1: Ricognizione - Raccogliere Informazioni sul Vostro Sito
Prima che un attaccante tocchi il vostro sito web, raccoglie informazioni a riguardo. Questa fase si chiama ricognizione e non richiede alcuna interazione con il vostro server. Tutto viene raccolto da fonti pubblicamente disponibili.
Ricerche WHOIS
Il database WHOIS memorizza i dettagli di registrazione per ogni nome di dominio. Un attaccante lo consulta per scoprire chi ha registrato il vostro dominio, quando, quale registrar usate, e a volte il vostro nome, email e telefono. Se la registrazione del dominio sta per scadere, anche questo e visibile e sfruttabile.
In Svizzera, i domini .ch sono gestiti da SWITCH. I dati WHOIS per i domini .ch sono piu limitati rispetto ai .com, ma rivelano comunque il registrar, la data di registrazione e la configurazione dei name server.
Enumerazione DNS
I record DNS sono pubblici per progettazione. Un attaccante interroga il vostro DNS per trovare:
- Record A/AAAA: Gli indirizzi IP del vostro server web. Questo rivela il vostro provider di hosting e a volte altri siti sullo stesso server.
- Record MX: La vostra infrastruttura email. Se usate Google Workspace o Microsoft 365, e visibile qui.
- Record TXT: Configurazioni SPF, DKIM e DMARC (o la loro assenza). Rivela anche servizi di terze parti che usate.
- Sottodomini: Strumenti come
subfinder,amasso i log di certificate transparency rivelano sottodomini. Questo spesso porta alla luce siti di staging dimenticati, pannelli di amministrazione, vecchi ambienti di test e server di sviluppo che nessuno si e ricordato di mettere offline.
Shodan e Censys
Shodan viene spesso chiamato "il motore di ricerca dell'internet delle cose". Scansiona continuamente ogni indirizzo IP pubblico e indicizza quello che trova: porte aperte, servizi in esecuzione, versioni software, dettagli del certificato SSL, header della risposta HTTP. Un attaccante digita il vostro dominio o IP in Shodan e vede immediatamente il software del vostro server web, la versione PHP, se avete un OpenSSH obsoleto, quali altre porte sono aperte e quali servizi rispondono.
Questo non e hacking. E guardare informazioni pubblicamente disponibili che il vostro server trasmette a chiunque le chieda. Shodan le rende semplicemente ricercabili.
Wappalyzer e Fingerprinting Tecnologico
Wappalyzer e un'estensione del browser (e API) che identifica lo stack tecnologico dietro qualsiasi sito web. Visitate un sito e vi dice il CMS (WordPress 6.1, Joomla 4.2, Drupal 10), i framework JavaScript, gli strumenti di analisi, il software del server e i plugin. BuiltWith fa la stessa cosa su larga scala.
Perche e importante? Perche ogni tecnologia ha vulnerabilita note legate a versioni specifiche. Se il vostro sito usa WordPress 5.8 con Contact Form 7 versione 5.3.2, un attaccante conosce gia ogni CVE applicabile. Non deve indovinare. Lo cerca nei database pubblici come il National Vulnerability Database (NVD) o il database delle vulnerabilita di WPScan.
Google Dorking
Google indicizza piu del vostro sito di quanto possiate pensare. Gli attaccanti usano operatori di ricerca avanzati per trovare file esposti:
site:vostrasocieta.ch filetype:sql- Trova dump di database SQL accidentalmente lasciati sul server.site:vostrasocieta.ch filetype:log- Trova file di log che possono contenere password, chiavi API o percorsi interni.site:vostrasocieta.ch inurl:admin- Trova pagine di login admin.site:vostrasocieta.ch "index of"- Trova directory con listing abilitato, esponendo la struttura dei file.
Niente di questo richiede strumenti speciali. Solo un browser e Google.
Passo 2: Scansione Automatica delle Vulnerabilita
Dopo la ricognizione, l'attaccante ha una mappa dettagliata del vostro stack tecnologico. Ora scansiona alla ricerca di vulnerabilita specifiche. Qui le cose diventano automatiche, ed e per questo che l'argomento "siamo troppo piccoli per essere un bersaglio" non regge.
Come Funzionano gli Scanner Automatici
Strumenti come Nikto, WPScan, Nuclei e Acunetix prendono un URL come input e lo testano contro centinaia o migliaia di vulnerabilita note. Verificano header di sicurezza mancanti, credenziali predefinite sui pannelli admin, vulnerabilita note nella versione del CMS rilevata, vulnerabilita nei plugin, file di configurazione esposti, possibilita di directory traversal, punti di SQL injection e opportunita di cross-site scripting.
Una scansione completa richiede minuti. Botnet automatizzate eseguono queste scansioni continuamente su ogni indirizzo IP di internet. Il vostro sito viene scansionato in questo momento, che lo sappiate o no. I log di qualsiasi server web mostrano un flusso costante di richieste automatiche che cercano /wp-login.php, /administrator, /.env, /phpinfo.php e decine di altri percorsi comuni.
L'Economia della Scansione Botnet
Non si tratta di una persona seduta al computer che sceglie il vostro sito. Organizzazioni criminali operano botnet (reti di computer compromessi) che scansionano milioni di siti al giorno. Quando un bot trova una vulnerabilita, lo segnala. Un operatore umano decide poi quali siti compromessi vale la pena sfruttare ulteriormente.
La scansione e indiscriminata. Una panetteria a Bellinzona viene scansionata con la stessa frequenza di una banca a Zurigo. La differenza e che la banca ha un team di sicurezza che monitora quelle scansioni e risponde. La panetteria no.
Scanner Specifici per CMS
I siti WordPress affrontano una scansione particolarmente intensa perche WordPress alimenta circa il 40% di tutti i siti web. WPScan ha un database di oltre 40.000 vulnerabilita note nel core di WordPress, temi e plugin. Quando una nuova vulnerabilita viene resa pubblica, il codice exploit appare spesso entro ore, e gli scanner automatici lo aggiungono alla loro rotazione entro giorni.
Consultate la nostra analisi dettagliata su vulnerabilita WordPress: cosa e cambiato e cosa ancora si rompe.
Passo 3: Sfruttamento - Entrare
La scansione ha trovato una vulnerabilita. Ora l'attaccante la sfrutta. Il metodo specifico dipende dalla vulnerabilita, ma ecco i piu comuni che vediamo nelle compromissioni di siti di PMI svizzere.
SQL Injection (SQLi)
L'SQL injection avviene quando l'input dell'utente (da una casella di ricerca, modulo di login, parametro URL o modulo di contatto) viene passato direttamente a una query del database senza un'adeguata sanitizzazione. L'attaccante inserisce comandi SQL dove l'applicazione si aspetta testo normale.
Considerate un modulo di login che verifica le credenziali con una query come:
SELECT * FROM users WHERE username = 'INPUT' AND password = 'INPUT'
Se l'attaccante inserisce ' OR '1'='1 come nome utente, la query diventa:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = ''
Poiche '1'='1' e sempre vero, il database restituisce tutti gli utenti, e l'attaccante accede come primo utente nella tabella, che e tipicamente l'amministratore.
Questa e la versione semplificata. L'SQLi nel mondo reale e piu sofisticata e puo estrarre interi database, modificare dati, creare nuovi account admin o persino eseguire comandi del sistema operativo attraverso il server database.
Cross-Site Scripting (XSS)
L'XSS permette a un attaccante di iniettare codice JavaScript nelle pagine web visualizzate da altri utenti. Ci sono tre tipi:
- XSS riflesso: Lo script malevolo e incorporato in un URL. Quando qualcuno clicca il link, lo script si esegue nel suo browser. Comune nelle funzionalita di ricerca e nelle pagine di errore.
- XSS persistente: Lo script malevolo e memorizzato permanentemente sul server (in un database, campo commenti o profilo utente). Ogni visitatore che visualizza quella pagina esegue lo script. Piu pericoloso perche non richiede che la vittima clicchi un link speciale.
- XSS basato su DOM: La vulnerabilita e nel codice JavaScript lato client piuttosto che nel codice lato server.
Cosa puo fare un attaccante con XSS? Puo rubare cookie di sessione (e prendere il controllo degli account utente), reindirizzare i visitatori a pagine di phishing, iniettare miner di criptovaluta, modificare il contenuto della pagina (mostrando moduli di pagamento falsi, per esempio) e registrare le sequenze di tasti.
Vulnerabilita di Upload File
Molti siti web permettono il caricamento di file: foto profilo, documenti per moduli di contatto, elementi di portfolio. Se la funzionalita di upload non valida correttamente i tipi di file, un attaccante puo caricare un file PHP mascherato da immagine. Quando accede a quel file attraverso il server web, il codice PHP si esegue e ha esecuzione di codice remoto sul vostro server.
Questo e uno dei vettori di attacco piu comuni che vediamo nei siti web aziendali in Ticino. Un modulo di contatto che permette allegati, una sezione portfolio con upload di immagini, un modulo di candidatura che accetta file CV. Qualsiasi di questi puo diventare un punto di ingresso se la validazione dell'upload e insufficiente.
Esecuzione di Codice Remoto Attraverso i Plugin
I plugin CMS sono il vettore di attacco numero uno per le compromissioni dei siti web. Un singolo plugin vulnerabile puo dare a un attaccante il controllo completo del vostro sito e, a seconda della configurazione del server, dell'intero server.
Lo schema si ripete: un ricercatore o attaccante scopre una vulnerabilita in un plugin popolare. Viene pubblicata una CVE. Entro giorni (a volte ore), il codice exploit e disponibile. Gli scanner automatici aggiungono l'exploit al loro arsenale. Ogni sito che esegue la versione vulnerabile e ora un bersaglio.
Bypass dell'Autenticazione e Brute Force
Se il pannello admin e accessibile da internet (e nella maggior parte dei siti aziendali lo e), gli attaccanti proveranno il brute-force del login. Usano credential stuffing (provando combinazioni username/password trapelate da altre violazioni) e attacchi a dizionario. Senza rate limiting, blocco dell'account o autenticazione multi-fattore, e questione di tempo.
Troviamo frequentemente pannelli admin di siti web aziendali svizzeri a URL prevedibili come /wp-admin, /administrator o /admin senza protezione aggiuntiva. Vedete il nostro articolo sulle pagine admin esposte e come proteggerle.
Passo 4: Persistenza - Restare Dentro
Entrare e una cosa. Restare e un'altra. Gli attaccanti vogliono accesso persistente che sopravviva a cambi di password, aggiornamenti dei plugin e anche pulizie parziali.
Web Shell
Una web shell e uno script (di solito PHP) che fornisce un'interfaccia web al server. Sembra un file normale nella directory del vostro sito ma da all'attaccante una riga di comando attraverso il browser. Possono sfogliare file, modificare configurazioni, accedere al database, caricare altri strumenti e muoversi verso altri sistemi nella rete.
Le web shell sono piccole. Alcune sono una singola riga di codice PHP. Sono spesso nascoste in directory con migliaia di file legittimi (come wp-content/uploads/2022/03/) e con nomi che sembrano file WordPress legittimi (class-wp-theme-compat.php). Senza sapere quali file dovrebbero esserci, non le noterete.
Account Backdoor
L'attaccante crea un nuovo account amministratore nel vostro CMS con un nome che sembra legittimo (wp_maintenance, system_update, support_admin). Anche se scoprite l'intrusione e cambiate tutte le password, questo account persiste. Se non verificate la lista utenti, non lo noterete.
File Core Modificati
Gli attaccanti a volte modificano i file core del CMS per includere il loro codice backdoor. La funzione che si carica ad ogni richiesta di pagina ottiene qualche riga in piu che verifica un parametro specifico e, se presente, esegue comandi. Questo persiste attraverso cambi di password e aggiornamenti plugin.
Cron Job e Attivita Pianificate
A livello server, gli attaccanti possono aggiungere cron job che periodicamente verificano se la loro web shell e ancora presente e la ricreano se e stata eliminata. Ecco perche una pulizia superficiale spesso fallisce: rimuovete la web shell, ma il cron job la rimette entro l'ora.
Passo 5: Esfiltrazione dei Dati e Monetizzazione
Ora l'attaccante ha accesso persistente. Cosa ne fa?
Furto di Dati
Database clienti, liste email, informazioni personali, dettagli di pagamento (se memorizzati), documenti interni, credenziali di accesso per altri servizi. Secondo la nuova Legge federale sulla protezione dei dati (nLPD) e il GDPR, una violazione che coinvolge dati personali attiva obblighi di notifica e potenziali sanzioni.
Iniezione di Spam SEO
Uno degli esiti piu comuni che vediamo nei siti aziendali svizzeri compromessi e lo spam SEO. L'attaccante inietta link e pagine nascoste nel vostro sito che promuovono prodotti farmaceutici, siti di gioco d'azzardo o prodotti contraffatti. I vostri visitatori potrebbero non vederlo (lo spam e spesso mascherato e visibile solo ai crawler dei motori di ricerca), ma Google lo vede e penalizza il vostro sito.
L'imprenditore spesso non se ne accorge per mesi. Vede solo i propri posizionamenti di ricerca calare gradualmente e si chiede perche. Quando trova il contenuto iniettato, il danno SEO richiede da 6 a 12 mesi per riprendersi.
Cryptojacking
L'attaccante inietta codice JavaScript che mina criptovaluta usando i browser dei vostri visitatori. Il sito rallenta, i visitatori si lamentano, ma non c'e nessun defacement visibile.
Ransomware ed Estorsione
In attacchi piu mirati, l'attaccante cifra i file del sito e il database e chiede un pagamento per la chiave di decifratura.
Movimento Laterale
Se il vostro server del sito e connesso alla vostra rete interna (piu comune nelle piccole aziende di quanto pensiate, specialmente con hosting on-premise), l'attaccante lo usa come trampolino per raggiungere i vostri sistemi interni.
Perche "Troppo Piccoli per Essere un Bersaglio" e Sbagliato
Siamo molto specifici su perche questo ragionamento e sbagliato:
- La scansione e automatica. Le botnet scansionano ogni indirizzo IP. Non selezionano bersagli. Trovano vulnerabilita.
- Lo sfruttamento e automatico. Una volta trovata una vulnerabilita, l'exploit si esegue automaticamente. Nessun umano decide se la vostra azienda "vale" la pena di essere attaccata.
- I siti piccoli sono piu facili. Hanno meno difese, meno monitoraggio e tempi di risposta piu lenti.
- Il vostro sito ha valore anche se i vostri dati non ne hanno. Le risorse del server, la reputazione del dominio e l'autorita SEO hanno tutti valore monetario per gli attaccanti.
I dati del NCSC svizzero lo confermano. La maggioranza degli incidenti informatici segnalati in Svizzera proviene da piccole e medie imprese.
Il Problema delle Web Agency
Molte PMI svizzere esternalizzano il proprio sito web a un'agenzia web locale. E ragionevole. Il problema e che la maggior parte delle web agency sono aziende di design e marketing, non aziende di sicurezza. Costruiscono siti attraenti e funzionali, ma la sicurezza non e la loro competenza principale.
Carenze comuni delle agenzie che troviamo durante le valutazioni di sicurezza in Ticino:
- Nessun header di sicurezza configurato: CSP, HSTS, X-Frame-Options completamente assenti.
- URL admin predefiniti: WordPress admin su
/wp-adminsenza restrizione IP o autenticazione aggiuntiva. - Plugin inutilizzati lasciati attivi: Plugin installati durante lo sviluppo ma mai rimossi.
- Nessun contratto di manutenzione: Il sito viene costruito, consegnato e mai piu aggiornato.
- Hosting condiviso senza isolamento: Piu siti sullo stesso server senza isolamento adeguato.
- FTP invece di SFTP: Credenziali trasmesse in chiaro.
- Nessuna validazione dell'input: I moduli accettano qualsiasi input senza validazione lato server.
Come Spezzare la Catena di Attacco
| Fase dell'Attacco | Misura Difensiva |
|---|---|
| Ricognizione | Minimizzare la divulgazione di informazioni. Nascondere gli header di versione del server. Usare WHOIS privacy. Rimuovere record DNS non necessari. |
| Scansione | Web Application Firewall (WAF). Rate limiting. Fail2ban per sondaggi ripetuti. |
| Sfruttamento | Tenere tutto aggiornato. Validazione input lato server. Security headers. Limitare gli upload. Disabilitare funzionalita inutilizzate. |
| Persistenza | Monitoraggio integrita file. Audit regolari degli account utente. Limitare i permessi di scrittura. Monitorare i cron job. |
| Esfiltrazione | Monitoraggio rete. Log accesso database. Filtraggio in uscita. Scansioni regolari per contenuto iniettato. |
Esempi Reali da Aziende Svizzere
Senza nominare aziende specifiche, ecco schemi che abbiamo osservato durante interventi di incident response con PMI svizzere:
Caso 1: Un'Azienda di Servizi del Ticino
Un'azienda di servizi in Ticino ha avuto il proprio sito WordPress compromesso attraverso un plugin Contact Form 7 obsoleto. L'attaccante ha caricato una web shell attraverso la vulnerabilita di upload file, poi ha iniettato spam SEO in 800 pagine. L'azienda non se ne e accorta per cinque mesi. Google aveva segnalato il sito come potenzialmente dannoso, il traffico organico era calato del 70% e l'email aziendale veniva segnalata come spam. Il recupero ha richiesto nove mesi.
Caso 2: Uno Studio Professionale di Lugano
Uno studio professionale a Lugano usava un sito personalizzato con un modulo di contatto per i pazienti. Il modulo non aveva sanitizzazione dell'input. Un attaccante ha usato SQL injection per estrarre l'intero database, inclusi nomi, email e dettagli degli appuntamenti. Questo ha costituito una violazione dei dati secondo la nLPD, richiedendo la notifica all'IFPDT e alle persone coinvolte.
Caso 3: Un E-commerce nel Sopraceneri
Un piccolo negozio online con una versione obsoleta di WooCommerce e stato compromesso attraverso una vulnerabilita nota in un plugin del gateway di pagamento. L'attaccante ha modificato la pagina di checkout per includere uno skimmer di carte di credito. I dati di pagamento dei clienti sono stati rubati per tre settimane.
Cosa Dovreste Fare Ora
- Fate una valutazione di sicurezza. Non potete correggere quello che non conoscete. Contattateci per un audit di sicurezza del sito web.
- Aggiornate tutto. CMS, plugin, temi, versione PHP/Node.js.
- Implementate security headers. CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy.
- Proteggete il pannello admin. Restrizione IP, autenticazione a due fattori, URL non predefiniti, password forti.
- Configurate il monitoraggio. Monitoraggio integrita file, uptime e Google Search Console.
- Abbiate un piano di risposta agli incidenti. Sapere chi chiamare e cosa fare se il sito viene compromesso.
Gli attaccanti seguono uno schema prevedibile. Se capite quello schema, potete difendervi. La domanda non e se il vostro sito verra scansionato e testato. Lo e gia. La domanda e se reggera.
Vuoi sapere se il tuo sito è sicuro?
Richiedi un audit di sicurezza gratuito. In 48 ore ricevi un report completo.
Richiedi Audit Gratuito