Was sind die Anzeichen dafür, dass ein Linux-Server gehackt wurde? Gibt es Tools, mit denen ein Prüfungsbericht nach einem festgelegten Zeitplan erstellt und per E-Mail versendet werden kann?
Was sind die Anzeichen dafür, dass ein Linux-Server gehackt wurde? Gibt es Tools, mit denen ein Prüfungsbericht nach einem festgelegten Zeitplan erstellt und per E-Mail versendet werden kann?
Antworten:
Das tust du nicht.
Ich weiß, ich weiß - aber es ist wirklich die paranoide, traurige Wahrheit;) Es gibt natürlich viele Hinweise, aber wenn das System speziell ausgerichtet wäre, könnte es unmöglich sein, es zu sagen. Es ist gut zu verstehen, dass nichts jemals absolut sicher ist. Aber wir müssen sicherer arbeiten, deshalb werde ich stattdessen auf alle anderen Antworten verweisen;)
Wenn Ihr System kompromittiert wurde, kann keinem Ihrer Systemwerkzeuge vertraut werden, um die Wahrheit zu enthüllen.
Tripwire ist ein häufig verwendetes Tool - es benachrichtigt Sie, wenn sich Systemdateien geändert haben, obwohl Sie es natürlich vorher installieren müssen. Andernfalls sind Elemente wie neue Benutzerkonten, die Sie nicht kennen, seltsame Prozesse und Dateien, die Sie nicht erkennen, oder eine erhöhte Bandbreitennutzung ohne ersichtlichen Grund die üblichen Anzeichen.
Andere Überwachungssysteme wie Zabbix können so konfiguriert werden, dass Sie benachrichtigt werden, wenn Dateien wie / etc / passwd geändert werden.
Einige Dinge, die mich in der Vergangenheit gewarnt haben:
ls
(dies kann mit defekten Root-Kits passieren)/
oder /var/
(die meisten Script-Kiddies sind zu dumm oder zu faul, um ihre Spuren zu verwischen)netstat
Zeigt offene Ports an, die nicht vorhanden sein solltenbind
, aber Sie verwenden immer djbdns
)Außerdem habe ich festgestellt, dass es ein zuverlässiges Zeichen dafür gibt, dass eine Box kompromittiert ist: Wenn Sie ein schlechtes Gefühl in Bezug auf die Sorgfalt (mit Updates usw.) des Administrators haben, von dem Sie ein System geerbt haben, behalten Sie es im Auge!
Es gibt eine Methode, gehackte Server zu überprüfen kill
:
Wenn Sie "kill -0 $ PID" ausführen, senden Sie im Wesentlichen ein NOP-Signal, um die Kennung $ PID zu verarbeiten. Wenn der Prozess ausgeführt wird, wird der Befehl kill normal beendet. (FWIW, da Sie ein NOP-Kill-Signal übergeben, passiert mit dem Prozess nichts). Wenn ein Prozess nicht ausgeführt wird, schlägt der Befehl kill fehl (Beendigungsstatus kleiner als Null).
Wenn Ihr Server gehackt wird / ein Rootkit installiert ist, weist es den Kernel zunächst an, die betroffenen Prozesse vor den Prozesstabellen zu verbergen prozesse. Und das bedeutet das
a) Diese Prüfung ist keine umfangreiche Prüfung, da die gut codierten / intelligenten Rootkits sicherstellen, dass der Kernel mit einer "Prozess existiert nicht" -Antwort antwortet, wodurch diese Prüfung überflüssig wird. b) Wenn auf einem gehackten Server ein "fehlerhafter" Prozess ausgeführt wird, wird die PID normalerweise nicht unter / proc angezeigt.
Also , wenn Sie sich hier bis jetzt sind, dann ist das Verfahren zu töten -0 jeden verfügbaren Prozess im System (alles von 1 -> / proc / sys / kernel / pid_max) und sehen , ob es Prozessen, die ausgeführt werden, aber nicht gemeldet in / proc.
Wenn einige Prozesse ausgeführt werden, aber nicht in / proc gemeldet werden, haben Sie wahrscheinlich ein Problem, wie Sie es sehen.
Hier ist ein Bash-Skript, das all das implementiert - https://gist.github.com/1032229 . Speichern Sie das in einer Datei und führen Sie es aus. Wenn Sie einen Prozess finden, der in proc nicht gemeldet wird, sollten Sie einen Anhaltspunkt haben, um sich zu vertiefen.
HTH.
Ich werde die hier gegebenen Antworten unterstützen und eine meiner eigenen hinzufügen.
find /etc /var -mtime -2
Auf diese Weise können Sie schnell feststellen, ob sich eine Ihrer Hauptserverdateien in den letzten 2 Tagen geändert hat.
Dies stammt aus einem Artikel zur Hack-Erkennung. Ermittelt, ob Ihr Server gehackt wurde.
Von Wie kann ich unerwünschte Einbrüche auf meinen Servern erkennen?
Verwenden Sie ein IDS
SNORT® ist ein Open-Source-System zur Verhinderung und Erkennung von Netzwerkeinbrüchen, das eine regelgesteuerte Sprache verwendet und die Vorteile signatur-, protokoll- und anomaliebasierter Prüfmethoden kombiniert. Mit Millionen von Downloads ist Snort die weltweit am weitesten verbreitete Intrusion Detection- und Prevention-Technologie und hat sich zum De-facto-Standard für die Branche entwickelt.
Snort liest den Netzwerkverkehr und kann nach Dingen wie "Drive-by-Pen-Tests" suchen, bei denen nur ein vollständiger Metasploit-Scan für Ihre Server ausgeführt wird. Nach meiner Meinung ist es gut, solche Dinge zu wissen.
Verwenden Sie die Protokolle ...
Abhängig von Ihrer Verwendung können Sie es so einrichten, dass Sie wissen, wann sich ein Benutzer anmeldet oder wann sich ein Benutzer von einer ungeraden IP-Adresse anmeldet, wann sich der Root anmeldet oder wann immer jemand versucht, sich anzumelden. Ich habe tatsächlich den Server E-Mail mir jede Protokollmeldung höher als Debug. Ja sogar Beachten. Natürlich filtere ich einige von ihnen, aber wenn ich jeden Morgen 10 E-Mails mit Dingen erhalte, möchte ich das Problem beheben, damit es nicht mehr passiert.
Überwachen Sie Ihre Konfiguration - Ich behalte tatsächlich meine gesamte / etc in Subversion, damit ich Revisionen verfolgen kann.
Führen Sie Scans durch. Tools wie Lynis und Rootkit Hunter können Sie vor möglichen Sicherheitslücken in Ihren Anwendungen warnen . Es gibt Programme, die einen Hash oder Hash-Baum aller Ihrer Bins verwalten und Sie auf Änderungen hinweisen können.
Überwachen Sie Ihren Server - Wie Sie bereits erwähnt haben - Diagramme können Ihnen einen Hinweis geben, wenn etwas ungewöhnlich ist. Ich benutze Cacti , um CPU, Netzwerkverkehr, Speicherplatz, Temperaturen usw. im Auge zu behalten. Wenn etwas seltsam aussieht , ist es seltsam und Sie sollten herausfinden, warum es seltsam ist.
Ich möchte nur hinzufügen:
Überprüfen Sie Ihren Bash-Verlauf. Wenn er leer ist und Sie ihn nicht entfernt oder geleert haben, besteht die Möglichkeit, dass jemand Ihren Server kompromittiert hat.
Zuletzt prüfen. Entweder sehen Sie unbekannte IPs oder es sieht sehr leer aus.
Wie in der akzeptierten Antwort angegeben, werden Systemdateien häufig geändert. Überprüfen Sie das Änderungsdatum. Sie manipulieren jedoch häufig das geänderte Datum.
Sie installieren häufig eine andere Version von ssh, die auf einem zufälligen Port ausgeführt wird. Dies ist oft an einigen wirklich seltsamen Orten verborgen. Beachten Sie, dass es normalerweise in etwas anderes als ssh umbenannt wird. Überprüfen Sie daher netstat (funktioniert möglicherweise nicht, da es häufig ersetzt wird) und verwenden Sie iptables, um unbekannte Ports zu blockieren.
In jedem Fall ist dies eine Situation, in der Vorbeugen besser ist als Heilen. Wenn Sie kompromittiert wurden, ist es am besten, einfach zu formatieren und neu zu starten. Es ist fast unmöglich zu bestätigen, dass Sie den Hack erfolgreich bereinigt haben.
Beachten Sie die folgenden Punkte, um eine Gefährdung Ihres Servers zu vermeiden.
Es lohnt sich zu beachten, dass sie, sobald sie sich auf einem Server befinden, Ihren Bash-Verlauf durchsuchen und nach anderen Servern suchen, mit denen Sie über ssh von diesem Server aus verbunden sind. Sie werden dann versuchen, eine Verbindung zu diesen Servern herzustellen. Wenn Sie also aufgrund eines schlechten Passworts brutal gezwungen werden, ist es sehr wahrscheinlich, dass sie eine Verbindung mit dem anderen Server herstellen und diese auch gefährden können.
Es ist eine hässliche Welt da draußen, ich wiederhole, Prävention ist besser als Heilung.
Nachdem ich mich ein bisschen umgesehen habe, gibt es auch das, was ich oben aufgelistet habe: http://www.chkrootkit.org/ und http://www.rootkit.nl/projects/rootkit_hunter.html
Sie sollten GuardRail ausprobieren. Es kann Ihren Server täglich scannen und Ihnen auf schöne visuelle Weise mitteilen, was sich geändert hat. Es erfordert keinen Agenten und kann über SSH eine Verbindung herstellen, sodass Sie Ihren Computer und Ihre Ressourcen nicht mit einem Agenten auslasten müssen.
Das Beste ist, dass es für bis zu 5 Server kostenlos ist.
Schau es dir hier an: