Frage Woher weiß ich, ob mein Linux-Server gehackt wurde?


Was sind die Anzeichen dafür, dass ein Linux-Server gehackt wurde? Gibt es Tools, die einen Audit-Bericht auf einer geplanten Basis generieren und per E-Mail versenden können?


34
2018-05-01 20:59


Ursprung


Wenn der Staat unbekannt ist, gibt es wirklich keinen Weg. Aus diesem Grund ist es so wichtig, vertrauenswürdige Installationsquellen zu verwenden und Tools wie Tripwire einzurichten, bevor Sie sie für etwas anderes als sich selbst freigeben. - Oskar Duveborn
serverfault.com/questions/650/... - Tom Ritter
Du meinst "geknackt". Hacking ist, wie wir Linux in erster Linie bekommen haben. - gbarry
Ein Freund von mir, dessen Server bei uns gehostet wurde, hat mich einmal gebeten, auf seinen Server zu schauen, da es etwas seltsam zu sein schien. Sobald ich die Baumstämme sah, wusste ich, dass etwas los war. Sie haben versucht, ihre Spuren zu verwischen, und ich glaube, sie hatten ein Root-Kit installiert, aber es war ein bisschen durcheinander. Wie auch immer, um es kurz zu machen, wir mussten den gesamten Server von Grund auf neu aufbauen. Es dauerte die ganze Nacht und dann konfigurierten wir einige Sicherheits-Audit-Tools. - Matt
@ Matt Verstand uns sagen, welche Werkzeuge? Immer noch dasselbe heute? - Rodrigo


Antworten:


  1. Halte ein unberührte Kopie von kritischen Systemdateien (wie ls, ps, netstat, md5sum) irgendwo, mit einer md5sum von ihnen, und vergleichen Sie sie regelmäßig mit den Live-Versionen. Rootkits werden diese Dateien unverändert modifizieren. Verwenden Sie diese Kopien, wenn Sie vermuten, dass die Originale kompromittiert wurden.
  2. Berater oder Stolperdraht informiert Sie über alle Dateien, die geändert wurden - vorausgesetzt, ihre Datenbanken wurden nicht manipuliert.
  3. Konfigurieren Sie syslog, um Ihre Protokolldateien an a zu senden Remote-Protokollserver wo sie von einem Eindringling nicht manipuliert werden können. Beobachten Sie diese Remote-Protokolldateien auf verdächtige Aktivitäten
  4. lies deine Logs regelmäßig - verwenden Logwatch oder Logcheck um die kritische Information zu synthetisieren.
  5. Kenne deine Server. Wissen Sie, welche Arten von Aktivitäten und Logs normal sind.

31
2018-05-01 21:11



MD5 wurde stark geschwächt, wenn es nicht ausgeworfen wurde. Vielleicht möchten Sie zu sha512 wechseln. - Broam


Stolperdraht ist ein häufig verwendetes Tool - es benachrichtigt Sie, wenn sich Systemdateien geändert haben, obwohl Sie es offensichtlich vorher installieren müssen. Andernfalls sind die üblichen Anzeichen wie neue Benutzerkonten, die Sie nicht kennen, seltsame Prozesse und Dateien, die Sie nicht erkennen, oder eine erhöhte Bandbreitennutzung ohne ersichtlichen Grund.

Andere Überwachungssysteme wie z Zabbix kann konfiguriert werden, um Sie zu warnen, wenn Dateien wie / etc / passwd geändert werden.


11
2018-05-01 21:01





Du nicht.

Ich weiß, ich weiß - aber es ist die paranoide, traurige Wahrheit, wirklich;) Es gibt natürlich viele Hinweise, aber wenn das System gezielt ins Visier genommen wurde, könnte es unmöglich sein, es zu sagen. Es ist gut zu verstehen, dass nichts jemals völlig sicher ist. Aber wir müssen sicherer arbeiten, also werde ich stattdessen auf alle anderen Antworten zeigen;)

Wenn Ihr System kompromittiert wurde, kann keines Ihrer System-Tools als vertrauenswürdig eingestuft werden.


11
2018-05-01 21:13



Sie gehen davon aus, dass Ihr Angreifer über gewisse Fähigkeiten verfügt, in irgendeiner Weise heimlich sein will und nicht nur daran interessiert ist, Spam zu verbreiten und Ihr OC3 einem Botnetz hinzuzufügen. Heutzutage findet man meistens heraus, dass riesige Mengen von Spam aus dem Server kommen, normalerweise auf einem überlasteten System, das nicht sein sollte. Die meisten "Hacker" sind heutzutage von Geld motiviert. - Ernie
Die am weitesten fortgeschrittenen Angriffswerkzeuge erfordern heutzutage keine Fertigkeiten und sind leicht verfügbar und einige sind standardmäßig und von Grund auf extrem versteckt. Botnets / Zombies können eine lange Zeit im Leerlauf sein, bevor sie für Schaden verwendet werden, aber Bugs in den Angriffswerkzeugen können unerwünschte Abstürze und seltsames Verhalten verursachen usw. - Oskar Duveborn


Einige Dinge, die mich in der Vergangenheit gewarnt haben:

  • Hohe Auslastung eines Systems, das inaktiv sein sollte
  • Seltsame segfaults, z. von Standard-Utilities wie ls (Dies kann mit gebrochenen Root-Kits passieren)
  • Versteckte Verzeichnisse in / oder /var/ (Die meisten Script-Kiddies sind zu dumm oder zu faul, um ihre Spuren zu verwischen)
  • netstat zeigt offene Ports, die nicht dort sein sollten
  • Daemons in der Prozessliste, in der du normalerweise verschiedene Varianten von (z. B. bind, aber du benutzt es 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 haben über die Sorgfalt (mit Updates usw.) des Administrators, von dem Sie ein System geerbt haben, behalten Sie es genau im Auge!


10
2018-05-03 01:49





Es gibt eine Methode zur Überprüfung von gehackten Servern über kill -

Wenn Sie "kill-0 $ PID" ausführen, senden Sie im Wesentlichen ein NOP-Signal an die Prozesskennung $ PID. Wenn der Prozess ausgeführt wird, wird der Befehl kill normal beendet. (FWIW, da du ein Nop-Kill-Signal gibst, wird dem Prozess nichts passieren). 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, ist eines der ersten Dinge, die es tut, dem Kernel zu sagen, dass er die betroffenen Prozesse vor den Prozesstabellen usw. versteckt. Allerdings kann er im Kernel-Raum alle möglichen coolen Sachen machen Prozesse. Und das heißt also

a) Diese Überprüfung ist keine umfassende Prüfung, da die gut codierten / intelligenten Rootkits sicherstellen, dass der Kernel mit einer Antwort "Prozess besteht nicht" antwortet, wodurch diese Überprüfung überflüssig wird. b) Wie auch immer, wenn ein gehackter Server einen "schlechten" Prozess ausführt, wird PID normalerweise nicht unter / proc angezeigt.

SoWenn Sie bis jetzt hier sind, besteht die Methode darin, jeden verfügbaren Prozess im System auf 0 zu setzen (alles von 1 -> / proc / sys / kernel / pid_max) und zu sehen, ob Prozesse laufen, aber nicht gemeldet werden / proc.

Wenn einige Prozesse als ausgeführt, aber nicht in / proc gemeldet werden, haben Sie wahrscheinlich ein Problem, egal wie Sie es betrachten.

Hier ist ein Bash-Skript, das alles 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 etwas anfangen, um zu graben.

HTH.


8
2018-06-17 20:39



Das ist wirklich nützlich für meinen Homeserver, wo ich nicht die Zeit habe, das System wie ein produktives Arbeitssystem zu pflegen. Wie auch immer, könnte ich dies in einer professionellen Umgebung anwenden und bin "relativ" sicher über die Ergebnisse? Und für die Antwort, 3 Jahre alt zu sein: Ist das noch eine gültige Methode, um im Jahr 2014 nach einer gewöhnlichen Infektion zu suchen? - hub


Ich werde die hier gegebenen Antworten wiederholen und eine eigene hinzufügen.

find /etc /var -mtime -2

Dadurch erhalten Sie eine schnelle Anzeige, wenn sich Ihre Hauptserverdateien in den letzten 2 Tagen geändert haben.

Dies ist aus einem Artikel über Hack-Erkennung Wie erkennt man, ob Ihr Server gehackt wurde?


7
2018-03-29 15:58



Ich denke - Zeit statt Zeit. Kann nicht manipulieren - Tillebeck


Von Wie kann ich unerwünschte Zugriffe auf meine Server erkennen?

  • Verwenden Sie ein IDS

    SNORT ist ein Open-Source-Netzwerk-Intrusion-Prevention- und -Erkennungssystem, das eine regelbasierte Sprache verwendet, die die Vorteile von Signatur-, Protokoll- und Anomalie-basierten Prüfmethoden kombiniert. Mit bisher Millionen von Downloads ist Snort weltweit die am weitesten verbreitete Intrusion Detection- und Prevention-Technologie und zum De-facto-Standard für die Branche geworden.

    Snort liest den Netzwerkverkehr und kann nach Dingen wie "Drive by Pen Testing" suchen, wo jemand nur einen kompletten Metasploit-Scan gegen Ihre Server durchführt. Gut, solche Dinge zu kennen, meiner Meinung nach.

  • Benutze die Logs ...

    Abhängig von Ihrer Verwendung können Sie sie einrichten, so dass Sie wissen, wann sich ein Benutzer anmeldet oder sich von einer ungeraden IP anmeldet oder wann sich der Root anmeldet oder wann immer sich jemand anmeldet. Ich habe tatsächlich den Server per E-Mail an mich jeden Log-Nachricht höher als Debug. Ja, sogar Notiz. Ich filtere natürlich einige von ihnen, aber jeden Morgen, wenn ich 10 Emails über Sachen bekomme, will ich es reparieren lassen, damit es aufhört zu passieren.

  • Überwachen Sie Ihre Konfiguration - ich halte meine gesamte / etc in Subversion, damit ich Revisionen verfolgen kann.

  • Führen Sie Scans aus. Werkzeuge wie Lynis und Rootkit-Jäger kann Sie auf mögliche Sicherheitslücken in Ihren Anwendungen aufmerksam machen. Es gibt Programme, die eine Hash- oder Hash-Struktur aller Ihrer Bins verwalten und Sie auf Änderungen hinweisen können.

  • Überwachen Sie Ihren Server - Genau wie Sie Diskspace erwähnt haben - Graphen können Ihnen einen Hinweis geben, wenn etwas ungewöhnlich ist. ich benutze Kakteen CPU, Netzwerkverkehr, Festplattenspeicher, Temperaturen usw. im Auge behalten sieht aus merkwürdig ist seltsam und du solltest herausfinden, warum es seltsam ist.


5
2018-05-01 21:40





Ich möchte nur hinzufügen:

Überprüfen Sie Ihren Bash-Verlauf, wenn dieser leer ist und Sie ihn nicht gelöscht oder geleert haben, besteht eine gute Möglichkeit, dass jemand Ihren Server kompromittiert hat.

Überprüfen Sie zuletzt. Entweder wirst du unbekannte IPs sehen oder es wird sehr leer aussehen.

Dann, wie die angenommene Antwort angibt, werden Systemdateien oft geändert, überprüfen Sie das Änderungsdatum. Sie manipulieren jedoch häufig das geänderte Datum.

Sie installieren oft eine andere Version von ssh, die auf einem zufälligen Port läuft. Dies ist oft in einigen wirklich seltsamen Orten versteckt. Beachten Sie, dass es normalerweise in etwas anderes als ssh umbenannt wird. Überprüfen Sie daher netstat (funktioniert möglicherweise nicht, da sie es oft ersetzen) und verwenden Sie iptables, um unbekannte Ports zu blockieren.

In jedem Fall ist Prävention eine bessere als Heilung. Wenn Sie kompromittiert wurden, ist es am besten, nur zu formatieren und neu zu starten. Es ist fast unmöglich zu bestätigen, dass Sie den Hack erfolgreich gereinigt haben.

Beachten Sie Folgendes, um zu verhindern, dass Ihr Server kompromittiert wird.

  1. Ändern Sie den ssh-Port
  2. Verhindern, dass sich root anmelden kann
  3. erlaube nur bestimmten Benutzern
  4. Passwort-Login verhindern
  5. Verwende SSH-Schlüssel, vorzugsweise passwortgeschützte Schlüssel
  6. Wenn möglich, schwarze Liste aller IPs und Whitelist der erforderlichen ips.
  7. Installieren und konfigurieren Sie fail2ban
  8. Verwenden Sie Tripwire, um Intrusionen zu erkennen
  9. Überwachen Sie die Anzahl der Benutzer, die mit Nagios oder zabbix angemeldet sind. Auch wenn Sie jedes Mal benachrichtigt werden, wenn Sie sich anmelden, wissen Sie zumindest, wenn etwas anderes spielt.
  10. Wenn möglich, halte deinen Server auf einem VPN und erlaube ssh nur via vpn ip. Sichern Sie Ihren VPN.

Es lohnt sich, darauf zu achten, dass sie, sobald sie auf einem Server sind, Ihren Bash-Verlauf durchgehen und nach anderen Servern suchen, mit denen Sie über diesen Server verbunden sind. Sie werden dann versuchen, eine Verbindung zu diesen Servern herzustellen. Wenn Sie also aufgrund eines schlechten Passwortes brutal gezwungen werden, ist es sehr wahrscheinlich, dass sie sich mit dem anderen Server verbinden und diese auch kompromittieren können.

Es ist eine hässliche Welt da draußen, ich wiederhole, Prävention ist besser als heilen.


2
2017-12-20 09:12





Nachdem ich ein bisschen herumgesucht habe, gibt es das auch, es tut was ich oben aufgelistet habe, unter anderem: http://www.chkrootkit.org/ und http://www.rootkit.nl/projects/rootkit_hunter.html


1
2018-06-17 20:57