Wie stelle ich fest, ob meine Linux-Box infiltriert wurde?


11

Ich habe kürzlich einen Artikel über die Analyse böswilliger SSH-Anmeldeversuche gelesen . Das brachte mich zum Nachdenken, sind der SSH-Benutzername und die Passwortkombinationen auf meiner Debian-Box so ungewöhnlich? War ich von einem Brute-Force-Wörterbuchangriff angegriffen worden? Werfen wir einen Blick auf /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

Das sieht also nicht gut aus. Jetzt, da ich weiß, dass ich von einem Angriff angegriffen wurde und einige meiner Kombinationen aus Benutzername und Passwort schwach sind, würde ich gerne wissen, wie ich ...

  • ... feststellen, ob meine Linux-Box infiltriert wurde?
  • ... den von den Tätern hinterlassenen Schaden rückgängig machen?
  • ... dies in Zukunft verhindern?

AKTUALISIEREN

Irgendwelche Ratschläge, um den Schaden, den die Täter hinterlassen haben, rückgängig zu machen?


Dieses Protokoll weist nicht darauf hin, dass Sie kompromittiert wurden. Haben Sie darüber hinaus weitere Informationen, die Sie beunruhigen?

Antworten:


15

Viele Leute scheinen DenyHosts vorzuschlagen, aber ich habe viel Erfolg mit Fail2Ban auf meinen Systemen gesehen. Es sucht nach einer (konfigurierbaren) Anzahl von Fehlern und führt dann eine Aktion aus. Auf meinen Servern besteht diese Aktion darin, mit iptables den gesamten Datenverkehr vom Host zu löschen. Nach 10 Anmeldefehlern werden sie gesperrt und das ist das Ende.

Ich benutze das in Kombination mit Logcheck, damit ich immer weiß, was auf meinen Servern los ist.

Wenn Sie Beweise dafür haben, dass tatsächlich jemand in Ihre Systeme eingebrochen ist (die von Ihnen veröffentlichten Protokolle sind keine Beweise dafür), besteht Ihre einzige Lösung darin, alle Daten zu sichern, die Sie zum Speichern, Löschen des Computers, Neuinstallieren und Wiederherstellen benötigen von Backups. Ansonsten gibt es keine Möglichkeit, sicher zu sein.


1
Ich benutze auch logcheck und fail2ban. Sehr gute Kombination.

Ich unterstütze die Verwendung von fail2ban.
Malfist

Ich habe auch von Denyhosts zu Fail2Ban gewechselt, weil Fail2Ban mehr Dienste (Mail, Web, FTP, ...) überwacht und konfigurierbarer ist
Jure1873

10

Gültige Anmeldeversuche werden ebenfalls angemeldet. Wenn Sie also einen Brute-Force-Versuch gefolgt von einem Erfolg sehen, ist dies ein guter Hinweis darauf, dass etwas Schlimmes passiert ist.

Ich verwende DenyHosts , um meine Protokolle auf verdächtigen SSH-Verkehr zu überwachen, und habe es so konfiguriert, dass Hosts an einem bestimmten Punkt automatisch von der Firewall entfernt werden.

Beachten Sie, dass Sie Ihren Computer auf verschiedene andere Arten überwachen möchten, um festzustellen, ob er gefährdet ist. Dazu gehören Lademuster, Anmeldeaktivitäten, regelmäßiges Sniffing des Datenverkehrs, Überwachung laufender Prozesse und offener Ports sowie Sicherstellung der Dateiintegrität mit einem Tool wie tripwire.

Wenn Sie nur eine ausführen, ist die Überwachung der Systemlast eine sehr effektive Methode, um Kompromisse zu erkennen, da die meisten Computer, wenn sie kompromittiert werden, dazu verwendet werden, beispielsweise große Mengen an Spam zu senden oder auf andere Weise viel Verkehr zu empfangen. Vielleicht nicht nützlich, wenn Sie ein hochwertiges Ziel sind und die Leute versuchen, aus anderen Gründen gezielt in Sie einzudringen, als Ihren Wirt in einen Zombie zu verwandeln, aber dennoch wertvoll. Außerdem ist eine Überwachungslast erforderlich, um Profile zu erstellen und herauszufinden, wann Sie in mehr Hardware oder bessere Software investieren müssen.

Sie sollten auch eine umfassende Protokollanalyse durchführen und in auth.log und anderen nach unerwarteten Dingen suchen. Die Analyse von Protokolldateien ist ein wettbewerbsintensiver Markt und das Problem ist noch nicht gelöst. Es gibt jedoch kostenlose Tools wie Logwatch, die so konfiguriert werden können, dass Sie täglich Zusammenfassungen erhalten.

Sicherheit durch Schichten!


1
Natürlich hätte der Angreifer die Protokolle ändern können, um Beweise für ihr Eindringen zu entfernen. Ein Mangel an Beweisen in den Protokollen bedeutet also nicht unbedingt, dass alles in Ordnung ist.

Das ist wahr. Mangel an Beweisen ist in meinem Buch im Grunde nie ein Beweis für keinen Kompromiss. Die Protokollierung auf einem Remote-Server kann die Vertrauenswürdigkeit der Protokolle erhöhen. Zu diesem Zweck verwende ich Syslog-ng- und SSH-Tunnel.

Ich hatte lächerlich viele Versuche gesehen, meinen Server zu hacken ... Ich habe DenyHosts installiert und es hatte bereits nach nur 10 Minuten ein paar IPs hinzugefügt. Vielen Dank!
Aaron Brown

4

Vergiss Tripwire, es ist ziemlich teuer. Verwenden Sie stattdessen AIDE. Es ist kostenlos und einfach einzurichten (obwohl es eine Weile dauert, um zu entscheiden, welche temporären Verzeichnisse ausgeschlossen und ansonsten konfiguriert werden sollen).

Wenn Sie es ausführen, wird eine Datenbank aller Dateien erstellt. Führen Sie es erneut aus und Sie erfahren, welche Dateien geändert wurden.

Eine andere Sache, die Sie tun müssen, ist die Installation von CSF, das über einen Blocker vom Typ Denyhost verfügt. Da sich Benutzer nicht wiederholt anmelden, werden sie zu Ihren Firewall-Regeln hinzugefügt. Sie können auch verlangen, dass SSH-Anmeldungen einen öffentlichen Schlüssel haben. Die Skriptkinder können dann so viele Anmeldungen versuchen, wie sie möchten.


Es gibt eine Open Source (und kostenlose) Version von Tripwire. Siehe tripwire.org
Dan Andreatta

4
"* ... determine if my Linux box has been infiltrated?"
  • Suchen Sie nach Anzeichen für seltsame Prozesse. Normalerweise verwende ich die Tools, die mit chkrootkit geliefert werden ( http://www.chkrootkit.org ).
  • Führen Sie einen Portscan mit nmap von einem anderen Computer aus durch. Wenn Ihre Box kompromittiert wurde, ist es wahrscheinlich, dass der Angreifer eine Hintertür installiert hat

"* ... den von den Tätern hinterlassenen Schaden rückgängig machen?"

Vergessen Sie es, wenn es einen Angriff gab, ist der beste Rat, ihn von Grund auf neu zu installieren (stellen Sie sicher, dass Sie alle Löcher in der neuen Installation einstecken). Es ist sehr einfach, eine Hintertür oder einen Stealth-Prozess nicht zu bemerken. Sie sollten sie besser neu installieren.

"* ... verhindern, dass dies in Zukunft passiert?"

  • Sicherheitsupdates

  • enge Firewall

  • starke Passwörter

  • Deaktivieren Sie nicht benötigte Dienste


3

Schauen Sie sich Tools wie Logcheck , Portsentry und Tripwire an . Es ist sehr häufig für SSH-Versuche mit zufälligen Wörterbüchern, daher würde ich mir darüber keine Sorgen machen. Möglicherweise möchten Sie den Port für zufällige Verschleierung ändern, aber Sie werden von Zeit zu Zeit immer noch zufällige Versuche sehen. Es ist das Leben, eine Maschine im Internet zu haben.


3

Eine Sache, die ich auf meinen Servern verwende, um diese Angriffe zu verhindern, ist DenyHosts . DenyHosts verhindert, dass ein böswilliger Benutzer versucht, sich anzumelden. Seit der Installation hatten meine Protokolldateien viel weniger Anmeldeversuchseinträge.


3

Es wird empfohlen, öffentliche / private Schlüsselpaare als zusätzliche Authentifizierung zu verwenden. Auf diese Weise kann sich ein Benutzer ohne einen richtigen Schlüssel nicht über SSH anmelden. was für einen brutalen Forcer ziemlich unmöglich zu erraten wäre. Einen schönen Artikel dazu finden Sie hier .

Dies allein mit einer Passphrase wäre für die SSH-Authentifizierung ziemlich solide. Aber es gibt noch mehr Schwachstellen! Achten Sie auf alle Anwendungen, die einen offenen Port verwenden. Wenn sie einen Fehler enthalten, können Exploiter Ihr System überholen. Ein gutes Beispiel war ein Spam-Bot, der aufgrund eines Fehlers in der aktuell verwendeten Webstats-Software auf unserem Server installiert wurde.


2

Fail2ban ist ein Echtzeit-Analysegerät für Zugriffsprotokolle. Es kann so konfiguriert werden, dass jede IP mit einer Reihe von fehlgeschlagenen Anmeldeversuchen blockiert wird. Dadurch werden Wörterbuchangriffe vermieden, ohne dass der SSH-Port verschoben werden muss. chkrootkit und rootkithunter sind gute Dienstprogramme, um auf Eindringen zu prüfen. Wenn das Eindringen erfolgreich war, wird empfohlen, Daten (und nur Daten, keine ausführbaren Dateien) zu kopieren, zu löschen und neu zu installieren, da es wirklich schwierig ist, 100% ig sicher zu sein, dass das System sauber ist.


2

Nichts deutet darauf hin, dass Ihre Box kompromittiert wurde. Selbst wenn Ihre Passwörter ziemlich schwach sind, ist es äußerst unwahrscheinlich, dass ein Wörterbuchangriff, der nur einen Anmeldeversuch auf jeden Benutzernamen auslöst, erfolgreich ist.

Wenn Sie jedoch wissen, dass Ihre Passwörter schwach sind, stärken Sie sie! Ich persönlich mag pwgen (das von Debian verpackt wird). Bei jedem Lauf werden eine große Anzahl starker, aber relativ aussprechbarer Passwortkandidaten generiert, an die man sich (zumindest für mich) ziemlich leicht erinnern kann, wie z. B. yodieCh1, Tai2daci oder Chohcah9.

Wenn es jedoch andere Beweise dafür gibt, dass Ihr System kompromittiert wurde ... Nuke es aus dem Orbit. Nur so können Sie sicher sein.

Nicht ausführbare Daten sind wahrscheinlich verwertbar, aber alles, was ausführbaren Inhalt enthält (dazu gehören möglicherweise MS Office-Dokumente und einige Konfigurationsdateien), muss gelöscht werden, es sei denn, Sie sind bereit und in der Lage, sie entweder manuell zu überprüfen, um sicherzustellen, dass sie nicht vorhanden sind. Es wurde nicht feindlich eingestellt oder es wurde die Möglichkeit akzeptiert, dass es feindlich sein und entweder Ihr System beschädigen oder einen Weg für einen zukünftigen Kompromiss bieten könnte, wenn Sie es beibehalten.


2

Ein kleiner zusätzlicher Schutz, den ich mag, ist die Begrenzung eingehender SSH-Verbindungen, um Wörterbuchangriffe oder ähnliches zu verlangsamen. Erwarten Sie nicht, dass dies Sie selbst schützt, sondern verwenden Sie dies zusätzlich zu den Vorschlägen in den anderen Antworten, einschließlich der Deaktivierung der Kennwortauthentifizierung.

Verwenden von 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

Zu diesem Thema gibt es einige schlechte Ratschläge, wie zum Beispiel:

  • Verwenden eines nicht standardmäßigen Ports für ssh (falsch!)
  • Verwenden eines Sicherheitstools eines Drittanbieters (Hinzufügen einer unnötigen Abhängigkeit / Komplexität)
  • Konfigurieren Ihrer Firewall zum Blockieren oder Whitelisting (Wartungsprobleme)

Optimieren Sie /etc/ssh/sshd_configstattdessen einfach Ihre , um die Sicherheit zu verbessern:

  • PermitRootLogin no
  • Konfigurieren Sie AllowUsers nur für die Benutzer auf dem System, die über SSH-Konten verfügen
  • Verwenden Sie nur physische Schlüssel mit 'PasswordAuthentication no'.

Wenn Sie Box sind infiltriert worden. Baue die Box neu auf.


(-1) Manchmal ist es erforderlich, Regeln für die Firewall zu konfigurieren oder ein Intrusion Prevention-System zu verwenden. Es ist nicht sehr hilfreich, es als schlechten Rat ohne zusätzliche Diskussion darüber zu bezeichnen, warum es keine gute Idee ist.
Zoredache

1

Wird die ganze Zeit mit aktiviertem ssh passieren. Bewegen Sie es zu einem hohen Port.

Es gibt ein Programm namens "Tripwire", das sich hervorragend für die Erkennung von Eindringlingen eignet, aber ziemlich schwer zu installieren ist. Wenn nichts anderes, sollten Sie die Dokumente lesen, damit Sie die Probleme verstehen.


1

Sie müssen die Intrusion Detection installieren, bevor Sie den Computer an das Internet anschließen.

Und es ist eine gute Idee, SSH-Verbindungen auf die IP-Whitelist zu setzen, um sicherzugehen, dass die ganze Welt solche Dinge nicht einmal ausprobieren kann.


Ich würde auch Whitelist-Benutzer hinzufügen, die sich über SSH anmelden dürfen, sowie die kennwortbasierte Authentifizierung nach Möglichkeit deaktivieren.

1

Wie kann ich feststellen, ob meine Linux-Box infiltriert wurde?

Starten Sie schreibgeschützte Medien (livecd) und vergleichen Sie die Dateien mit Ihrem Backup oder dem Originalmedium.

Schauen Sie sich nur nach merkwürdigem Verhalten um. Dies ist natürlich am einfachsten, wenn Sie sich vor einem Hack die Zeit nehmen, um ein gutes Gefühl dafür zu bekommen, was „normal“ ist.

Die von Ihnen veröffentlichten Fehler weisen nicht auf einen Kompromiss hin. Nur dass jemand es versucht.

Wie kann ich den von den Tätern hinterlassenen Schaden rückgängig machen?

Neu installieren und von einer Sicherung wiederherstellen, bevor das System kompromittiert wurde.

Sehen:

Wie kann ich dies in Zukunft verhindern?

Sehen:




0

benutze rkhunter oder chkrootkit oder beides; Scannen Sie Ihre Box von außen, um festzustellen, welche Ports geöffnet sind

Wenn Sie nur einen ungültigen Benutzer haben, brauchen Sie sich keine Sorgen zu machen :)


0

Etwas ganz anderes: Verwenden Sie Google für die IP-Adresse! Ein Hacker, der sich STARTURK aus der Türkei nennt, hat möglicherweise versucht, Ihre Website zu hacken.

Während es wie ein Brute-Force-Angriff auf Ihr System aussieht, könnte es gut sein, dass dieser Hacker nur einen Versuch unternommen hat und jetzt zu einer anderen Site gegangen ist.


0

Wie viele angemerkt haben, sind Tripwire / AIDE der beste Weg, um nach Systemänderungen zu suchen. Leider ist die Kuh aus dem Stall, da sie auf einem bekanntermaßen guten System konfiguriert werden muss.

Eine Sache, die Ihnen zumindest beim Einstieg helfen könnte, ist die Verwendung Ihrer RPM-Datenbank, um die MD5-Summen Ihrer Dateien zu überprüfen. Das Wesentliche ist:

rpm -qa | xargs rpm -V

Dies ist aus verschiedenen Gründen nicht perfekt. Erstens könnte Ihre lokale RPM-Datenbank theoretisch geändert worden sein. Zweitens verwenden die meisten Distributionen Prelinking, und RPM ist nicht Prelink-fähig. Die MD5s scheinen von diesem Prozess geändert worden zu sein, was legitim ist.

Der beste Rat lautet: Wenn Sie nicht sicher sind, ob Sie kompromittiert wurden, ist es wirklich Zeit für einen Umbau.


0

Um zukünftige Sicherheitsprobleme zu vermeiden, können Sie sich OSSEC ansehen . Ich verwende es zur Überprüfung der Dateiintegrität und zur Protokollüberwachung auf unseren Servern. Es ist sehr vollständig und einfach zu konfigurieren. Es kann E-Mail-Benachrichtigungen senden, Sie können Warnungen über die Befehlszeile oder eine Weboberfläche überprüfen ...

http://www.ossec.net/

von der Website genommen:

"OSSEC ist ein Open Source Host-basiertes Intrusion Detection-System. Es führt Protokollanalysen, Dateiintegritätsprüfungen, Richtlinienüberwachung, Rootkit-Erkennung, Echtzeitwarnungen und aktive Antworten durch."

  • Protokollanalyse Es kann die Protokolldatei auf Ihren Servern überprüfen und Sie über Regeln benachrichtigen (es sind viele vordefiniert und Sie können Ihre eigenen hinzufügen).

  • Tripwire / Aide-Dateiintegrität ähnelt der Funktionalität, sodass Sie sehen können, ob eine Datei auf Ihrem Server geändert wurde

  • Richtlinienüberwachung: Überprüfen Sie einige Sicherheitsregeln für "Best Practices"

  • Rootkit-Erkennung: rkhunter, chkrootkit-ähnliche Funktionalität

  • Echtzeitwarnung und aktive Antwort: Sie können ossec so konfigurieren, dass es automatisch auf Warnungen reagiert (ich verwende dies nicht, aber Sie können es verwenden, um den SSH-Zugriff auf Hosts zu blockieren, die zu viele fehlgeschlagene Verbindungsversuche ausführen).

Wirklich gutes Produkt und es ist sehr aktiv

Zum Härten Ihrer Box können Sie auch Lynis oder Bastille verwenden

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.