Come gestire una violazione della sicurezza sul tuo server
I server moderni spesso eseguono una moltitudine di applicazioni software.
Nel nostro caso, usiamo Docker sul server per eseguire più servizi.
Uno di questi servizi, Gitlab, aveva un problema di sicurezza (gitlab workhorse più specificamente).
Il che ha portato a un'infezione da trojan. (Nel nostro caso, i binari si chiamavano "wate" nel caso in cui questo importi a qualcuno - anche se potrebbero essere stati anche nomi puramente casuali).
Ne siamo venuti a conoscenza grazie al nostro hoster, Hetzner, che ha chiuso il nostro IP (e inviato diversi messaggi di avviso). Il trojan era stato usato come parte di un attacco DDoS su un IP cinese e stava generando quantità sospette di pacchetti.
Abbiamo agito, e alcune conoscenze utili sono emerse grazie a questa situazione.
Per fortuna il server era raggiungibile attraverso un altro IP (e a proposito - Hetzner vi permetterà anche di mettere in whitelist un IP per 2 ore così potrete anche lavorare con un server con un solo IP).
Ecco alcuni suggerimenti chiave per diagnosticare una tale violazione della sicurezza
- Non si faccia prendere dal panico. Proteggete prima i log di docker (e possibilmente create un backup) prima di spegnere il server - potreste aver bisogno di questi log per diagnosticare il problema.
- controllare quali utenti hanno effettuato l'ultimo accesso / se sono stati creati nuovi account
- Usate un antivirus sul vostro server (sul sistema operativo host per Docker). Abbiamo usato clamav per trovare i trojan.
- Nota: se hai anche un server di posta (come noi), l'antivirus probabilmente rileverà anche molte mail sospette.
- Usate uno scanner di rootkit - ce ne sono due che abbiamo usato, rkhunter e chkrootkit
- Usa htop per scoprire quali processi stanno caricando il server
- Utilizzare un'utilità di monitoraggio del traffico di rete
- guardare l'output di ps -aux per vedere qualsiasi processo sospetto
La mia raccomandazione è che prima di spegnendo il contenitore si crea un dump di ps -aux | grep wate (nel nostro caso) per vedere i processi trojan in esecuzione, e poi dopo lo spegnimento di nuovo.
In questo modo, sarete in grado di confermare a voi stessi che la violazione della sicurezza è stata contenuta, e che i processi non si sono diffusi al di fuori del contenitore Docker.
Problemi di prestazioni di WordPress
Abbiamo anche sperimentato alcuni problemi di prestazioni di WordPress durante questa situazione - mentre l'IP principale del server è stato bloccato.
Dopo che Hetzner ha sbloccato il nostro IP i problemi di performance sono scomparsi. (Il nostro sospetto iniziale era che la violazione fosse stata in un contenitore WordPress)
Azioni per evitare la situazione in futuro
- Stiamo per impostare gli aggiornamenti automatici del contenitore. Il ragazzo di mia sorella mi ha raccomandato il contenitore Docker "Watchtower".
- C'è uno strumento chiamato Lynis che è uno strumento di controllo della sicurezza che esamineremo
- Usare l'autenticazione a chiave pubblica/privata sul server per SSH. Limitare specificamente quali account sono autorizzati ad accedere
- Utilizzare un servizio di auditing/scanner SaaS - stiamo progettando di eseguirlo regolarmente
- Iniziate a creare dei rolling backup, se non li state già facendo, in modo da poter tornare indietro ad una data passata
Non c'è vergogna in un errore - l'informatica moderna è un'impresa complessa. Finché si continua a imparare dalle situazioni, e si usano approcci diversi ai problemi IT (e alla vita in generale), c'è crescita e movimento in avanti. La vita.
Per fortuna, la maggior parte delle situazioni può essere gestita e ribaltata. Speriamo che abbiate dei backup in atto e che possiate riprendervi dalla vostra situazione.
Buona fortuna e grazie per aver letto questo.