Come faccio a determinare se il mio box Linux è stato infiltrato?


11

Di recente ho letto un articolo sull'analisi dei tentativi di accesso SSH dannosi. Questo mi ha fatto pensare: sono insoliti il ​​nome utente SSH, le combinazioni di password sulla mia casella Debian? Ero stato preso di mira da un attacco del dizionario della forza bruta? Diamo un'occhiata a /var/log/auth.log.0 :

Sep 23 07:42:04 SLUG sshd[8303]: Invalid user tyjuan from 210.168.200.190
Sep 23 07:42:09 SLUG sshd[8305]: Invalid user tykeedra from 210.168.200.190
Sep 23 07:42:14 SLUG sshd[8307]: Invalid user tykeem from 210.168.200.190
Sep 23 07:42:19 SLUG sshd[8309]: Invalid user tykeshia from 210.168.200.190
Sep 23 07:42:25 SLUG sshd[8311]: Invalid user tyla from 210.168.200.190
Sep 23 07:42:30 SLUG sshd[8313]: Invalid user tylan from 210.168.200.190
Sep 23 07:42:35 SLUG sshd[8315]: Invalid user tylar from 210.168.200.190
Sep 23 07:42:40 SLUG sshd[8317]: Invalid user tyler from 210.168.200.190
Sep 23 07:42:45 SLUG sshd[8319]: Invalid user tylerfrank from 210.168.200.190
Sep 23 07:42:50 SLUG sshd[8321]: Invalid user tyliah from 210.168.200.190
Sep 23 07:42:55 SLUG sshd[8323]: Invalid user tylor from 210.168.200.190

Quindi non sembra buono. Ora che so di essere stato preso di mira da un attacco e che alcuni dei miei nomi utente, le combinazioni di password sono deboli, mi piacerebbe sapere come posso ...

  • ... determinare se il mio box Linux è stato infiltrato?
  • ... annullare uno dei danni lasciati dagli autori?
  • ... impedire che ciò accada in futuro?

AGGIORNARE

Qualche consiglio su come annullare qualsiasi danno lasciato dagli autori?


quel registro non suggerisce che sei stato compromesso. hai ulteriori informazioni oltre a ciò che ti preoccupa?

Risposte:


15

Molte persone sembrano suggerire DenyHosts, ma ho riscontrato molto successo con Fail2Ban sui miei sistemi. Controlla un numero (configurabile) di errori, quindi esegue un'azione: sui miei server, tale azione consiste nell'utilizzare iptables per eliminare tutto il traffico dall'host. Dopo 10 errori di accesso, vengono bannati e questa è la fine.

Lo uso in combinazione con Logcheck, in modo da sapere sempre cosa succede sui miei server.

Se hai prove che qualcuno abbia effettivamente violato i tuoi sistemi (i registri che hai pubblicato non ne sono la prova), l'unica soluzione è eseguire il backup di tutti i dati che devi conservare, pulire la macchina, reinstallare e ripristinare dai backup. Altrimenti, non c'è modo di esserne sicuri.


1
Uso anche logcheck e fail2ban. Ottima combinazione.

Secondo, l'uso di fail2ban.
Malfist,

Sono anche passato a fail2ban da denyhosts perché fail2ban monitora più servizi (posta, web, ftp, ...) ed è più configurabile
Jure1873

10

Anche i tentativi di accesso validi vengono registrati, quindi se vedi un tentativo di forza bruta seguito da un successo, questa è una buona indicazione che è successo qualcosa di brutto.

Uso DenyHosts per monitorare i miei registri alla ricerca di traffico SSH sospetto e l'ho configurato per il firewall automatico degli host a un certo punto.

Tieni presente che esistono molti altri modi in cui vorresti monitorare il tuo computer per vedere se è compromesso, tra cui schemi di caricamento, attività di accesso, sniffing periodico del traffico, monitoraggio dei processi in esecuzione e porte aperte e garanzia dell'integrità dei file con uno strumento come tripwire.

Se hai intenzione di fare solo uno, il monitoraggio del carico del sistema è un modo molto efficace per rilevare i compromessi, poiché la maggior parte delle macchine quando vengono compromesse vengono utilizzate per fare cose come inviare enormi quantità di spam o ricevere molto traffico. Forse non è utile se sei un bersaglio di alto valore e le persone potrebbero provare a penetrare in te in modo specifico per motivi diversi da quello di trasformare il tuo host in uno zombi, ma comunque prezioso. Inoltre è necessario un carico di monitoraggio per la profilazione e per capire quando è necessario investire in più hardware o software migliore.

Dovresti anche fare un'analisi completa dei log, guardando auth.log e altri per cose che sono inaspettate. L'analisi dei file di registro è un mercato competitivo e il problema non è stato ancora risolto, ma esistono strumenti gratuiti come logwatch che possono essere configurati per inviare riepiloghi quotidianamente.

Sicurezza attraverso i livelli!


1
Naturalmente, l'attaccante avrebbe potuto modificare i registri per rimuovere le prove della loro intrusione, quindi la mancanza di prove nei registri non significa necessariamente che tutto sia a posto.

Questo è vero. La mancanza di prove non è praticamente mai prova di nessun compromesso, nel mio libro. La registrazione su un server remoto può aumentare l'affidabilità dei registri. Uso i tunnel syslog-ng e ssh per questo scopo.

Avevo visto anche ridicoli numeri di tentativi di hackerare il mio server ... Ho installato DenyHosts e aveva già aggiunto un paio di IP dopo solo 10 minuti. Grazie!
Aaron Brown,

4

Dimentica Tripwire, è piuttosto costoso. Usa invece AIDE. È gratuito, facile da installare (anche se ci vuole un po 'di tempo per decidere quali directory temporanee escludere e altrimenti configurare).

lo esegui, crea un database di tutti i file. Eseguilo di nuovo e ti dirà quali file sono stati modificati.

Un'altra cosa da fare è installare CSF, che ha un blocco di tipo denyhost, poiché le persone non riescono ad accedere ripetutamente, le aggiungerà alle regole del firewall. Puoi anche richiedere che gli accessi SSH abbiano anche una chiave pubblica, gli script kiddies possono tentare tutti gli accessi che vogliono allora.


Esiste una versione open source (e gratuita) di Tripwire. Vedi tripwire.org
Dan Andreatta il

4
"* ... determine if my Linux box has been infiltrated?"
  • cercare segni di strani processi. Normalmente utilizzo gli strumenti forniti con chkrootkit ( http://www.chkrootkit.org )
  • Esegui un portcan con nmap da un'altra macchina. Se la tua scatola è stata compromessa, è probabile che l'atacker abbia installato una backdoor

"* ... annullare i danni lasciati dagli autori?"

dimenticalo, se c'è stato un attacco, il miglior consiglio è di reinstallarlo da zero (assicurati di inserire eventuali buchi nella nuova installazione). È molto semplice non notare una backdoor o un processo invisibile, è meglio reinstallare.

"* ... impedire che ciò accada in futuro?"

  • aggiornamenti di sicurezza

  • firewall stretto

  • password complesse

  • disattivare i servizi non necessari


3

dai un'occhiata a strumenti come logcheck , doorsentry e tripwire . è molto comune per i tentativi SSH del dizionario casuale, quindi non me ne preoccuperei troppo. potresti voler cambiare la porta per l'offuscamento casuale, ma vedrai comunque tentativi casuali di volta in volta, è la vita che ha una macchina su Internet.


3

Una cosa che uso sui miei server per aiutare a prevenire questi attacchi è DenyHosts . DenyHosts impedirà a un utente malintenzionato di tentare l'accesso. Da quando è stato installato, i miei file di registro hanno avuto molte meno voci di tentativi di accesso.


3

È buona norma utilizzare coppie di chiavi pubbliche / private come autenticazione aggiuntiva; In questo modo un utente non può accedere tramite SSH senza una chiave corretta; che sarebbe piuttosto impossibile indovinare per un forcer brutale. Un bell'articolo su questo può essere trovato qui .

Questo da solo con una passphrase sarebbe piuttosto solido per l'autenticazione SSH; Ma ci sono più vulnerabilità! Fai attenzione con tutte le applicazioni che utilizzano una porta aperta; Se contengono un bug, gli sfruttatori potrebbero sorpassare il tuo sistema. Un buon esempio è stato un bot di spam installato sul nostro server a causa di un bug nel software webstats che stavamo attualmente utilizzando.


2

Fail2ban è un analizzatore in tempo reale del registro di accesso. Può essere configurato per bloccare qualsiasi IP con un numero di tentativi falliti di accesso. Questo evita gli attacchi del dizionario senza dover spostare la porta ssh. chkrootkit e rootkithunter sono utili utilità per verificare la presenza di intrusioni. Se l'intrusione ha avuto esito positivo, la migliore pratica è copiare i dati (e solo i dati, non i file eseguibili), cancellare e reinstallare perché è davvero difficile essere sicuri al 100% che il sistema sia pulito.


2

Non c'è niente qui per suggerire che la tua scatola sia stata compromessa. Anche se le tue password sono piuttosto deboli, è estremamente improbabile che un attacco del dizionario che provochi un solo tentativo di accesso a ciascun nome utente abbia esito positivo.

Ma, se sai che le tue password sono deboli, rafforzale! Personalmente mi piace pwgen (che è confezionato da Debian). Ad ogni corsa, genera un gran numero di candidati con password forti ma relativamente pronunciabili che (almeno per me) sono abbastanza facili da ricordare, come yodieCh1, Tai2daci o Chohcah9.

Tuttavia, se ci sono altre prove per dimostrare che il tuo sistema è stato compromesso ... Nuke dall'orbita. È l'unico modo per esserne sicuri.

I dati non eseguibili sono probabilmente recuperabili, ma qualsiasi cosa con contenuto eseguibile (questo include potenzialmente cose come documenti MS Office e alcuni file di configurazione) deve andare, a meno che tu non sia disposto e in grado di esaminarlo manualmente per assicurarti che non abbia è stato reso ostile o accettare la possibilità che possa essere ostile e danneggiare il sistema o fornire una strada per un futuro compromesso se lo si tiene in giro.


2

Una piccola protezione aggiuntiva che mi piace è quella di limitare il limite delle connessioni ssh in entrata per rallentare eventuali attacchi del dizionario o simili. Non aspettarti che questo ti protegga da solo, ma utilizzalo in aggiunta ai suggerimenti nelle altre risposte, inclusa la disabilitazione dell'autenticazione con password.

Usando iptables:

$ iptables        -A INPUT      -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
$ iptables        -A INPUT      -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
$ iptables        -A INPUT      -p tcp --dport 22 -j DROP

2

Ci sono alcuni consigli scarsi su questo thread, come:

  • usando una porta non standard per ssh (sbagliato!)
  • utilizzando alcuni strumenti di sicurezza di terze parti (aggiungendo una dipendenza / complessità non necessaria)
  • configurazione del firewall per bloccare o autorizzare (mal di testa manutenzione)

Basta modificare il tuo /etc/ssh/sshd_configinvece per migliorare la sicurezza:

  • PermitRootLogin no
  • Configurare AllowUsers solo per gli utenti del sistema che dispongono di account ssh
  • Prendi in considerazione l'utilizzo di sole chiavi fisiche con "PasswordAuthentication no"

Se sei box è stato infiltrato. Ricostruisci la scatola.


(-1) Talvolta è necessario configurare le regole sul firewall o utilizzare un sistema di prevenzione delle intrusioni. Chiamarlo povero consiglio senza ulteriori discussioni sul perché non sia una buona idea non è molto utile.
Zoredache,

1

Accadrà tutto il tempo con ssh abilitato. Spostalo su una porta alta.

Esiste un programma chiamato "Tripwire" che è eccellente per il rilevamento delle intrusioni, ma piuttosto difficile da installare. Se non altro, dovresti leggere i loro documenti in modo da capire i problemi.


1

È necessario installare il rilevamento delle intrusioni prima di collegare la macchina a Internet.

Ed è una buona idea inserire nella whitelist IP le connessioni SSH solo per essere sicuri che tutto il mondo non possa nemmeno provare cose del genere.


Aggiungerei anche gli utenti autorizzati che potevano accedere tramite SSH e disabilitare, se possibile, l'autenticazione basata su password.

1

Come posso determinare se il mio box Linux è stato infiltrato?

Avvia il supporto di sola lettura (livecd) e confronta i file con il tuo backup o con il supporto originale.

Basta guardarsi intorno per comportamenti strani. Naturalmente questo è più semplice se prendi il tempo prima di un hack per avere una buona sensazione di ciò che è "normale".

Gli errori che hai pubblicato non indicano un compromesso. Solo che qualcuno ci sta provando.

Come posso annullare uno qualsiasi dei danni lasciati dagli autori?

Reinstallare e ripristinare da un backup prima che il sistema fosse compromesso.

Vedere:

Come posso evitare che ciò accada in futuro?

Vedere:




0

usa rkhunter o chkrootkit o entrambi; scansiona la tua scatola dall'esterno per vedere quali porte sono aperte

in ogni caso, se tutto ciò che hai è un utente non valido, non devi preoccuparti :)


0

Qualcosa di molto diverso: prova a utilizzare Google sull'indirizzo IP! Un hacker che si chiama STARTURK dalla Turchia potrebbe aver tentato di hackerare il tuo sito.

Anche se sembra un attacco di forza bruta al tuo sistema, potrebbe anche essere che questo hacker abbia appena fatto un tentativo e ora sia andato su un altro sito.


0

Come molti hanno notato, Tripwire / AIDE sono il modo migliore per cercare modifiche al sistema. Sfortunatamente, la mucca è fuori dalla stalla su quella poiché deve essere configurata su un sistema noto.

Una cosa che potrebbe aiutarti almeno ad iniziare è usare il tuo database RPM per controllare i md5sums dei tuoi file. L'essenza di base è questa:

rpm -qa | xargs rpm -V

Questo non è perfetto per una serie di motivi. Innanzitutto, il database RPM locale potrebbe teoricamente essere stato modificato. In secondo luogo, la maggior parte delle distro usa il prelinking e RPM non è a conoscenza di prelink. È possibile che gli MD5 siano stati modificati da tale processo, il che è legittimo.

Il miglior consiglio è questo: se non sei sicuro di essere stato compromesso, è davvero il momento di ricostruire.


0

Per prevenire futuri problemi di sicurezza, puoi dare un'occhiata a OSSEC , lo uso per fare controlli di integrità dei file e monitoraggio dei log sui nostri server, è molto completo e facile da configurare. Può inviare notifiche e-mail, è possibile controllare gli avvisi tramite riga di comando o un'interfaccia web ...

http://www.ossec.net/

tratto dal sito web:

"OSSEC è un sistema di rilevamento delle intrusioni basato su host Open Source. Esegue l'analisi dei log, il controllo dell'integrità dei file, il monitoraggio dei criteri, il rilevamento dei rootkit, gli avvisi in tempo reale e la risposta attiva."

  • analisi dei log Può controllare i file dei log sui server e avvisarti tramite regole (ce ne sono molti predefiniti e puoi aggiungere i tuoi)

  • integrità dei file tripwire / aide come functionnality in modo da vedere se qualche file è stato modificato sul tuo server

  • monitoraggio delle politiche: controlla alcune regole di sicurezza "Best practice"

  • rilevamento rootkit: rkhunter, chkrootkit come functionnality

  • avvisi in tempo reale e risposta attiva: puoi configurare ossec in modo che reagisca automaticamente agli avvisi (non lo uso, ma puoi usarlo per bloccare l'accesso ssh agli host facendo troppi tentativi di connessione falliti)

Prodotto davvero buono ed è molto attivo

Per indurire la tua scatola puoi anche usare lince o bastiglia

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.