Diventa Autore per CoreTech | Scopri di più





Come recuperare un sito Web compromesso

24/06/20 CoreTech Blog

Qualsiasi altro proprietario o webmaster di un sito Web a cui potresti chiedere chi si trova oltre la fase principiante concorderà sul fatto che una delle loro priorità principali sarà sempre mantenere i loro siti web sicuri. Tuttavia, gli exploit e gli strumenti disponibili per gli hacker sono così vasti e le tecnologie software si evolvono così rapidamente, che è molto possibile, forse probabile, che sperimenterai un sito Web compromesso. 

Questo è ancora più probabile se il tuo sito web esegue un CMS open source come WordPress o Joomla! con molti plugin. In particolare, i nuovi problemi di sicurezza di WordPress compaiono abbastanza spesso e i siti di WordPress compromessi non sono affatto rari.

Quando si affronta un evento del genere, può essere utile disporre di un breve elenco di controllo delle attività da eseguire come parte del processo di recupero. Fare le cose giuste nell'ordine giusto sarà la chiave per massimizzare le tue possibilità di recupero completo e di successo, oltre a mitigare gli eventi futuri.

Banner

La tua lista di cose da fare

L'elenco delle cose da fare conterrà due tipi di attività: attività di preparazione e attività di azione. Le attività di preparazione non comportano alcuna modifica al sito Web o ai componenti correlati o sottostanti.

È essenziale comprendere chiaramente questo punto perché la prima azione preferita deve essere quella di assicurarsi che l'attaccante non abbia modo di continuare ad accedere al sistema; qualsiasi altra azione che modifichi il sito Web può avvisare l'attaccante che sono stati scoperti prima che l'accesso sia stato bloccato e non si desidera innescare l'attaccante nel causare più danni o nel coprire le proprie tracce.

Ricorda: una volta che l'evento si è verificato, deve essere trattato non solo come un motivo per risolvere ma anche come una motivazione per indurire e proteggere.

  • Preparare: piano di reazione
  • Prepara: foglio di battaglia
  • Azione: portare il sistema offline
  • Prepara: clona il tuo sistema su un banco di prova o su un server di gestione temporanea
  • Prepara: scansiona il tuo sito Web alla ricerca di vulnerabilità; identificare e confermare il punto di intrusione sospetto
  • Azione: correggere la vulnerabilità
  • Azione: riportare online la versione fissa del sito; quando possibile, è necessario ridistribuire la versione disinfettata del sito Web in una configurazione pulita del sistema operativo / web server
  • Prepara: monitora il tuo sito Web nuovo e migliorato
  • Prepara: prepara un piano di reazione per eventi futuri

Preparare: piano di reazione

Mantieni la calma e la concentrazione e riconosci che l'evento potrebbe essere accaduto qualche tempo fa; non importa se reagisci dopo 30 secondi o dopo 15 minuti.

Banner

Una volta che il tuo sito web è stato violato, è assolutamente necessario dedicare qualche minuto a riflettere sulle cose per ottenere il massimo dall'incidente. Prenditi il ​​tempo necessario per annotare tutti i passaggi necessari per:

  • Preservare la situazione attuale del sito Web e i suoi dati sottostanti per offrirti la migliore possibilità di capire come è stata attuata la violazione
  • Evitare di apportare modifiche rapide che avviseranno l'attaccante di coprire le proprie tracce o causare più danni
  • Raccogliere informazioni e strumenti necessari per amministrare il sito Web e i componenti correlati.

Prepara: foglio di battaglia

Se vai in battaglia, devi assicurarti che il tuo arsenale sia popolato da un arsenale completo di armi. Fondamentalmente, questo significa avere a portata di mano:

  • Accesso ai dettagli e alle relative credenziali per il tuo sito web
  • Nomi di file e percorsi per qualsiasi file di configurazione, che può contenere informazioni che regolano l'accesso al sito Web stesso o ad altri sistemi a cui il sito Web si connette o si integra, come ad esempio:
    • Dettagli e credenziali di accesso al database
    • Dettagli di integrazione di sistemi di terze parti e relative credenziali, chiavi API o token di sicurezza
  • Accesso ai dettagli e alle relative credenziali per il sistema operativo o la piattaforma sottostante il tuo sito web
  • Se si sta gestendo l'hardware sottostante, i dettagli di accesso e le credenziali per gli strumenti di accesso "luci spente" (DRAC, ILO, KVM, console locale o remota, ecc.)
  • Numeri di telefono, indirizzi e-mail e informazioni sul portale di supporto per qualsiasi fornitore che fornisce all'utente il server Web e uno qualsiasi dei livelli sottostanti, inclusi token di identificazione o PIN / numeri di telefono correlati, indirizzi e-mail per le risorse dello sviluppatore che si impegneranno per l'eventuale codice modifiche o altre correzioni programmatiche al tuo sito Web.

Azione: portare offline il sistema

La tua prima azione dovrebbe essere quella di portare il tuo sistema offline. I vantaggi sono:

  • Limita qualsiasi danno aggiuntivo che l'attaccante potrebbe infliggere al tuo sito web
  • Impedisce all'attaccante di coprire le proprie tracce o nascondere eventuali prove che potrebbero ricondurvi a loro, o ai loro metodi, o entrambi
  • Impedisce al sistema di infliggere danni aggiuntivi ad altre persone, nonché di accedere o danneggiare dati o script su altri siti Web (spam, cross-site scriptinge così via)

Prima di poter mettere offline il tuo sistema, assicurati di aver compilato con cura il foglio di battaglia con tutte le informazioni necessarie per continuare ad accedere al sistema, anche se sarà offline.

I passaggi specifici che è necessario eseguire per portare il sistema offline dipendono dal fatto che si stia utilizzando una società di hosting o se il proprio host web si trova presso la propria sede.

Preparare: clonare il sistema su un banco di prova o server di gestione temporanea

Alcune delle tue attività di indagine implicheranno l'esecuzione di test sul tuo sito Web per capire dove e come può essere penetrato (da qui le frasi coniate "pen test" e " pen test "). Alcuni di questi test possono essere aggressivi e causare danni al sito Web o ai suoi dati sottostanti o, in questo caso, a eventuali artefatti lasciati sul sistema dall'aggressore, che potrebbero portarti alla loro identità, metodologia o entrambi.

Per eliminare gli effetti di questi rischi, clonerai il tuo sistema su un banco di prova o server di staging completamente separato. Questo banco di prova non deve trovarsi in un provider di hosting perché deve essere isolato da qualsiasi spazio di indirizzi IP pubblico per assicurarsi che il sistema clonato non sia raggiungibile dall'esterno e che il sistema clonato non possa accedere o influire su terze parti. Qualsiasi sistema utilizzato per testare il sistema clonato si collegherebbe allo stesso spazio di indirizzi IP privato del clone allo scopo di eseguire i test.

Prepara: scansiona il tuo sito Web alla ricerca di vulnerabilità

Una volta popolato il tuo banco di prova con un clone del tuo sito Web e dei componenti correlati, puoi testare in sicurezza il tuo sistema.

In genere si utilizza un approccio a due punte, in esecuzione contemporaneamente:

  • Scansiona l'intero sito Web per tutti i possibili punti di ingresso
  • Cerca il punto di ingresso specifico di questo evento

Scansiona l'intero sito Web utilizzando l'automazione

Il primo canale di indagine sarebbe quello di utilizzare un approccio di audit di sistema - utilizzando uno scanner di vulnerabilità Web affidabile, avviare una scansione sul banco di prova clonato, che dovrebbe eseguire le seguenti operazioni:

  • Identificare la configurazione errata del server Web e del software correlato
  • Identificare le versioni precedenti e note del software vulnerabile ( lesospensioni tipiche del software del server Web e del sistema operativo sono tipiche)
  • Identificare metodi di accesso alla sicurezza non sicuri (ad esempio password deboli suscettibili di attacchi di forza bruta o di dizionario o meccanismi di cifratura deboli)
  • Identificare l'accesso inappropriato alle posizioni dei filesystem (come visibilità della directory e problemi di autorizzazione)
  • ... ed esegui una batteria molto grande di test specifici alla ricerca di specifiche vulnerabilità note

Questo scanner ti fornirà un elenco di vulnerabilità a cui il tuo sito Web è sensibile. Questo tipo di scansione può richiedere molto tempo, in particolare per siti Web di grandi dimensioni e complessi. Puoi usare questo tempo di "attesa" per ...

Cerca manualmente un punto di ingresso

È fondamentale trovare l'effettivo punto di ingresso che ha attivato questo evento. Anche se si eseguisse un ripristino completo da un backup che eliminasse qualsiasi danno causato dall'attaccante, è ragionevole supporre che l'attaccante possa ottenere di nuovo molto rapidamente l'accesso utilizzando lo stesso identico veicolo.

Dove cercare? Questo non è un elenco esaustivo e, man mano che cresci in esperienza e acquisisci una maggiore familiarità con i sistemi specifici che gestisci, sarai in grado di creare un elenco più completo e specifico per le tue esigenze. L'elenco seguente, tuttavia, presenta un punto di partenza utilizzabile. Tieni presente che le azioni investigative di questo particolare elenco vengono eseguite sul server web reale, non sul banco di prova, quindi per il momento è importante che le tue manovre siano limitate all'indagine e alla raccolta di informazioni - non apportare modifiche per il tempo essere.

  • Ottieni un elenco di processi in esecuzione e cerca applicazioni o servizi in esecuzione sospetti come backdoor o trojan
    • Se hai una versione precedente pulita da confrontare con questo sarebbe molto utile
    • Identificare il percorso del file per un programma malware in esecuzione sospetto può aiutarti a identificare il punto di ingresso (potresti voler utilizzare un software antivirus per aiutarti)
    • Identificare l'utente con cui è in esecuzione un programma sospetto o l'account utente o il gruppo proprietario del programma può aiutarti a identificare il punto di ingresso
  • Se il tuo sistema è stato violato, esiste una grande possibilità che l'autore dell'attacco possa aver introdotto nuovi file con codice dannoso o modificato file già esistenti sul tuo sistema
    • Se conosci la data dell'ultima modifica al tuo sistema, puoi semplicemente scartare tutti i file sul tuo sistema per trovare quelli che sono stati modificati o creati dopo le tue ultime modifiche
    • Se il file system del tuo server web è statico, può essere utile confrontarlo con un dump del file system documentato precedente; se non ne hai uno, la tua revisione finale potrebbe voler considerare questo passaggio per eventuali politiche future che ruotano attorno alla sicurezza del sito web
    • Se non è già installato, è possibile prendere in considerazione la distribuzione di software sul proprio server Web che controlla regolarmente il contenuto del file system rispetto a un elenco di file system pulito noto (in genere denominato baseline); questo concetto è chiamato HIDS o Sistema di rilevamento delle intrusioni basato su host; puoi iniziare leggendo AIDE, syschangemon, Mugsy, Samhain, come una selezione iniziale di strumenti open source da implementare sul tuo server web e utilizzare il motore di ricerca di Google per ulteriori informazioni
    • Controlla l'utente o il gruppo che possiede i file creati o modificati poiché ciò può essere utile per identificare il punto di ingresso
    • Controlla attentamente il contenuto dei file creati o modificati; i contenuti aggiunti o modificati potrebbero aiutarti a identificare l'autore e / o i loro metodi, o eventualmente aiutarti a capire se il tuo sito Web viene utilizzato come piattaforma per lanciare un attacco su altri siti Web di terze parti
  • Guarda i file di registro generati dal sistema operativo, dal software del server Web e da qualsiasi altro software utilizzato anche dal tuo sito Web (server di database ad esempio)

Si spera che la tua scrupolosa indagine sui file di registro, sui processi in esecuzione e sul contenuto anomalo del filesystem ti abbia permesso di identificare il difetto di sicurezza e il punto di ingresso.

Confronta i risultati manuali con i risultati automatici

Se hai identificato uno o più punti di ingresso sospetti, può essere interessante e istruttivo confrontare i tuoi risultati con l'elenco delle vulnerabilità identificate dalla scansione automatica delle vulnerabilità del web.

Azione: correggere le vulnerabilità

Utilizzando le informazioni acquisite dall'indagine manuale di file, processi e registri, insieme all'elenco (si spera breve) delle vulnerabilità compilato dallo scanner delle vulnerabilità del web, è ora possibile procedere con l'implementazione dei miglioramenti del codice o degli aggiornamenti del server e della protezione per impedire tale un evento che si ripete e collega eventuali altri punti deboli, in generale rendendo il tuo sito web più sicuro. Riassumendo brevemente:

  • Ferma qualsiasi processo straniero
  • Rimuovere eventuali file o file eseguibili estranei
  • Sostituisci file e set di dati modificati con versioni nuove o sanificate

Ciò può sembrare ovvio, ma è di fondamentale importanza controllare eventuali correzioni implementate ripetendo la scansione automatizzata, confermando così che le correzioni sono effettivamente efficaci.

Azione: portare online il sito Web fisso

Ora che la pulizia è stata completata, i file e i processi sospetti sono stati arrestati ed eliminati, i punti di ingresso sono stati protetti e sono in atto altre misure di sicurezza, è possibile riportare il sito Web online.

In caso di dubbi sul fatto di aver completamente contenuto e invertito il lavoro dell'attaccante, è necessario distribuire un nuovo host del server Web e ridistribuire il sito Web igienizzato e i componenti ausiliari a questo nuovo host. Se esegui un CMS open source come un sito Web WordPress, potrebbe anche essere una buona idea installare la versione più recente da zero con un numero limitato di plug-in (utilizzando anche le versioni più recenti).

Prepara: monitora il tuo sito web

Il tuo sito Web è di backup e in esecuzione. Non respirare troppo facilmente, tuttavia, perché è necessario assicurarsi che le correzioni siano efficaci. In particolare, è necessario escogitare un modo (ad esempio monitorando i messaggi di registro) per disporre di un sistema di allarme rapido di un utente malintenzionato che tenta di accedere al sistema tramite lo stesso vettore di accesso dell'evento appena risolto.

Se l'attaccante riesce a rientrare, allora non hai identificato correttamente il punto di ingresso o non li hai identificati tutti oppure la correzione è inadeguata; in ogni caso, dovrai ripetere il processo per ripristinare nuovamente da questo ultimo evento di hacking.

Preparare: piano di reazione per eventi futuri

Dopo esserti completamente ripreso da questo evento e aver completato tutte le attività correlate a questo evento, dovresti rivedere questa sezione, rivedere il Piano di reazione che hai creato per questo evento e utilizzarlo per creare una procedura di recupero per qualsiasi evento futuro.

Ciò consentirà a te e agli altri membri del tuo team di supporto di gestire in modo più efficace ed efficiente il tuo prossimo evento.


Articoli su Acunetix

Trovare le vulnerabilità dei siti web prima degli HackerL'importanza della convalida delle correzioni: lezioni da GoogleSDLC agile e sicuro - Best practiceIn che misura le aziende gestiscono la sicurezza delle applicazioni Web?Cross-Origin Resource Sharing (CORS) e intestazione Access-Control-Allow-OriginCosa sono i reindirizzamenti aperti?DevSecOps: come arrivarci da DevOpsIl bigino su SQL Injection per sviluppatoriSfruttare SSTI in ThymeleafSicurezza nginx: come proteggere la configurazione del serverRafforzamento del sistema Web in 5 semplici passaggiCos'è la sicurezza del sito Web - Come proteggere il tuo sito Web dall'hackingRapporto sulle vulnerabilità delle applicazioni Web Acunetix 2020Perché l'elenco delle directory è pericoloso?Cosa sono gli hack di Google?Cosa è l'attacco BEASTWeb Shells in Action - Rilevazione e prevenzione - parte 5Web Shells in Action - parte 4Mantenere le Web Shells sotto copertura - parte 3Introduzione alle web shell - parte 2: 101 Uso di PHPIntroduzione alle web shell - parte 1Debunking 5 miti sulla postura della sicurezza informaticaIniezioni di NoSQL e come evitarleConfigurazione passo passo di Acunetix con JenkinsCosa sono i riferimenti a oggetti diretti non sicuriAnche il più forte cade: un'iniezione SQL in Sophos XG FirewallAcunetix rilascia Business Logic RecorderCome recuperare un sito Web compromessoCome difendersi dagli hacker Black Hat durante la pandemia COVID-19Che cos'è l'inclusione remota dei file (RFI)?Apache Security - 10 consigli per un'installazione sicuraUn nuovo sguardo sugli attacchi correlati al proxy inversoVulnerabilità delle password comuni e come evitarleTutto quello che devi sapere sugli attacchi Man-in-the-MiddleChe cosa sono le iniezioni HTMLRed Teaming – 5 consigli su come farlo in modo sicuroTesta le tue competenze XSS utilizzando siti vulnerabiliPerché hacker malintenzionati hanno messo gli occhi sugli ospedaliPratiche di codifica sicura – I tre principi chiaveLa maledizione delle vecchie librerie JavaMutation XSS nella ricerca GoogleIgnorare SOP utilizzando la cache del browserCome e perché evitare reindirizzamenti e inoltri non convalidati?Dirottamento di sessione e altri attacchi di sessioneCome abbiamo trovato un altro XSS in Google con AcunetixChe cos'è un buffer overflowChe cos'è l'overflow di IntegerChe cos'è HSTS e perché dovrei usarlo?Che cosa è OS Command InjectionVulnerabilità delle entità esterne XML in Internet ExplorerCoreTech assicura protezione dei siti Web con AcunetixCoreTech distributore Acunetix a fianco dei partner per la CyberSecurityCyberSecurity applicativa, nuova opportunità per voi!