Come verificare se un server Linux è pulito da rootkit / backdoor / botnet ecc.?


9

Nel caso in cui un server Linux fosse esposto a Internet con una politica di sicurezza estremamente bassa (cartelle Samba anonime r / n, server database Firebird con password amministratore predefinita, nessun firewall, ecc.) Per una settimana, quindi come posso assicurarmi che il sistema sia non è stato compromesso senza formattazione e reinstallazione complete, accedendo solo in remoto tramite SSH?

Risposte:


7

Normalmente suggerirei un controllo locale con uno strumento come chkrootkit ma se l'unico modo per eseguire il controllo è farlo da remoto, allora ti consiglio di provare Rootkit Hunter .

Rookit Hunter verifica la presenza di rootkit e altre attività simili eseguendo test come i seguenti (vedere Informazioni sul progetto per maggiori dettagli):

  • Confronto hash MD5
  • Cerca i file predefiniti utilizzati dai rootkit
  • Autorizzazioni file errate per i file binari
  • Cerca le stringhe sospette nei moduli LKM e KLD
  • Cerca file nascosti

Voglio aggiungere che, come altri hanno già detto, l'unico modo sicuro per garantire che non ci sia stata manomissione del servizio è ricostruirlo. Questi strumenti funzionano bene, ma non sono una garanzia di successo al 100%.



2

So che questa risposta non è ciò che vuoi sentire, ma qui andiamo comunque. Ci sono alcuni strumenti che possono controllare il sistema il modo migliore per assicurarsi che il sistema sia pulito è quello di cancellare il server e ricostruire. Vorrei fare quanto segue:

  • Rimuovi il computer da Internet
  • Dati di backup e informazioni di configurazione per rimuovere i dispositivi
  • Formatta memoria
  • Reinstalla Base / Installazione standard / Aggiornamenti
  • Riconfigurare il server utilizzando i vecchi dati come riferimento
  • Ripristinare i dati dell'utente

Ecco alcune risorse che vorrei iniziare a leggere se non l'hai già fatto.

[testo collegamento] [1] testo collegamento testo collegamento testo collegamento

[1]: http://www.sans.org/reading_room/whitepapers/linux/linux-rootkits-beginners-prevention-removal_901 "Linux Rootkits Beginners"


2

Inoltre, non è la risposta che desideri, ma se esiste la possibilità che un sistema sia stato rootato, potrebbe essere molto difficile essere sicuri al 100% che il sistema sia pulito. I rootkit sono progettati per essere difficili da rilevare. Se si eseguono i vari correttori di root e si esegue il check out pulito, allora "molto probabilmente" il sistema è pulito.

Se la sicurezza è un problema, prenderei in considerazione la ricostruzione come appena detto il poster o il ripristino da buoni backup.


1

Devi davvero essere proattivo qui. Non esiste un modo affidabile per rilevare i rootkit sulle macchine, quindi è necessario impedire loro di arrivarci in primo luogo e trovare modi per rilevarli al momento dell'entrata (ad esempio tramite tripwire e interfacce bloccate).

Se pensi che una macchina sia stata sfruttata in qualche modo, devi davvero reinstallarla: non esiste un modo garantito per ripulirla a meno di una reinstallazione. Di gran lunga l'opzione più sicura.


1

RKhunter, Tripwire ecc. Sono fantastici, ma sono davvero utili solo se sono stati installati prima dell'incidente - questo perché sono ottimi per rilevare se i file chiave sono stati modificati. Se installi RKHunter ora ed eseguilo, rileverà l'inclusione di molti rootkit, ma non rileverà alcuna backdoor aperta da un utente malintenzionato nel sistema operativo o nelle applicazioni che utilizzi.

Ad esempio, potresti intrufolarti in un computer, creare un nuovo utente, concedere loro le autorizzazioni SSH e sudo, quindi ripulire successivamente lasciando una configurazione dall'aspetto legittimo e senza rootkit, quindi tornare più tardi e fare il tuo male.

La cosa migliore da fare è esaminare quali porte dispongono di servizi in ascolto, quindi verificare la configurazione di tutti quei servizi e assicurarsi che siano tutti legittimi. Quindi osserva la configurazione del firewall e blocca le porte non necessarie, sia in entrata che in uscita. Quindi installare RKHunter ecc. Per vedere se alcuni script-kiddie hanno lasciato cadere un kit di root lì dentro.

Ad essere sinceri, è probabilmente meno lavoro fare ciò che JJ ha suggerito e ricostruito che assicurarsi che il computer non sia stato compromesso. Sono i dati che sono preziosi, non il sistema operativo e la configurazione (a parte le ore di lavoro per l'impostazione).

Non sarai mai sicuro che non sia stato rotto da qualcuno più intelligente di te.


0

Il primo passo dovrebbe essere davvero rkhunter / chkrootkit, tuttavia in passato ho anche avuto buona fortuna con le funzionalità integrate in alcuni gestori di pacchetti, ad esempio "rpmverify" che passerà attraverso tutti i pacchetti sul tuo sistema e verificherà che gli MD5Sum dei file inclusi non differiscono dai file su disco.

I binari core dovrebbero avere MD5 identici a quelli specificati nei database RPM o DPKG, quindi se sono diversi sai che sta succedendo qualcosa di strano.


-1

Il modo più efficace per determinare se il sistema in esecuzione è compromesso è utilizzare Second Look . Verificherà il kernel e tutto il software in esecuzione in memoria per assicurarsi che siano coerenti con ciò che il fornitore di distribuzione ha spedito. Questo è un approccio molto migliore di rkhunter, chkrootkit, ecc., Che cercano artefatti di specifiche infezioni conosciute . Second Look non fa ipotesi sull'integrità del sistema operativo, quindi non è necessario averlo usato o installato prima di un incidente.

(Dichiarazione di non responsabilità: sono lo sviluppatore principale di Second Look.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.