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?
Antworten:
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.
quelle
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!
quelle
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.
quelle
"* ... 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
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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:
quelle
Zu diesem Thema gibt es einige schlechte Ratschläge, wie zum Beispiel:
Optimieren Sie
/etc/ssh/sshd_config
stattdessen einfach Ihre , um die Sicherheit zu verbessern:PermitRootLogin no
Wenn Sie Box sind infiltriert worden. Baue die Box neu auf.
quelle
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.
quelle
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.
quelle
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.
Neu installieren und von einer Sicherung wiederherstellen, bevor das System kompromittiert wurde.
Sehen:
Sehen:
quelle
Sie können die Box beobachten, um zu sehen, was rein und raus geht, und nach verdächtigen Dingen suchen. Siehe diesen Beitrag: /programming/124745/sniffing-network-traffic-for-signs-of-virusesspyware
quelle
Psad in Verbindung mit Shorewall ist eine gute Möglichkeit, Ihre iptables-Regeln zu ergänzen.
Ich benutze auch Fail2ban , um meine SSH-Anmeldungen zu verfolgen
quelle
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 :)
quelle
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.
quelle
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:
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.
quelle
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
http://www.rootkit.nl/projects/lynis.html
http://bastille-linux.sourceforge.net/
quelle