Ich habe einen Heimserver, auf dem eine Desktop-Ubuntu-Distribution ausgeführt wird. Ich habe das in meiner Crontab gefunden
* * * * * /home/username/ /.access.log/y2kupdate >/dev/null 2>&1
und als ich in dieses Verzeichnis schaute (das Leerzeichen nach Benutzername / ist ein Verzeichnisname), fand ich viele Skripte, die offensichtlich etwas tun, was sie nicht tun sollten.
Bevor ich diesen Computer lösche und Dinge neu installiere, möchte ich herausfinden, was die Sicherheitsverletzung verursacht hat und wann sie durchgeführt wurde. Also öffne ich nicht wieder das gleiche Loch.
In welche Protokolldateien soll ich schauen? Die einzigen Server, von denen ich weiß, dass sie auf dem Computer ausgeführt werden, sind sshd und lighttpd.
Was soll ich tun, um festzustellen, ob solche Dinge erneut auftreten?
Antworten:
Stellen Sie zunächst sicher, dass der Computer von allen Netzwerken getrennt ist.
Stellen Sie zweitens sicher, dass Sie alle wichtigen Daten von den Laufwerken erhalten, bevor Sie das gehackte Betriebssystem erneut starten.
Beginnen Sie mit dem Auschecken der Zeitstempel auf den betreffenden Dateien. Oft sind sie genau.
Vergleichen Sie diese mit dem httpd-Protokoll und dem Auth-Protokoll, wenn sie nicht gelöscht wurden. Wenn einer der anderen abgewischt wurde, können Sie wetten, dass dies das Mittel zur Eingabe war. Wenn sie noch in Kontakt sind, können Sie möglicherweise weitere Informationen darüber abrufen, wie sie aus dem Protokoll eingegangen sind.
Wenn sie alle abgewischt sind, bist du ziemlich durchgeknallt. Es würde wahrscheinlich mehr Zeit brauchen, um herauszufinden, was passiert ist, als es wert ist.
Sie haben erwähnt, dass diese beiden Dienste ausgeführt werden. Gab es eine gute Firewall, die den Zugriff auf alles andere verhindert? Haben Sie SSH auf Port 22 zugelassen? Ist Ihr Login einigermaßen leicht zu erraten? Haben Sie Passwort-Logins zugelassen? Hatten Sie irgendeine Art von Real Rate Limit für Passwort-Logins? Hatten Sie zusätzliche Software mit lighttpd installiert? Perl; php; cgi; ein CMS oder ähnliches? Haben Sie eine aktualisierte Version der gesamten Software ausgeführt? Abonnieren Sie Sicherheitsbenachrichtigungen für die gesamte von Ihnen ausgeführte Software und bewerten Sie alle Benachrichtigungen sorgfältig, um festzustellen, ob sie für Software gelten, die Sie ausführen / der Öffentlichkeit zugänglich machen?
quelle
Dies ist eine Art Thema für sich; Sie können Google für Linux Forensics für weitere Informationen googeln. Grundsätzlich müssten Sie zuerst ein Image Ihrer Laufwerke für die Offline-Analyse erstellen, dann den Computer löschen und von Clean Slate installieren.
Und erinnere dich an alle Nebenkosten. Jeder, der den Computer benutzt, könnte seine Passwörter manipuliert haben. Ändern Sie Kennwörter, lassen Sie sie offline usw., bis Sie sie in einem "Reinraum" (isolierte VM) erhalten.
Ansonsten werden viele Protokolle überprüft (die gefälscht werden können) und Ihre Anwendungen überprüft (PHP-Skripte? Datenbanken? Für die neuesten Korrekturen aktualisiert? Andere Benutzer geben Passwörter heraus?).
Es gibt buchstäblich keine einfache Möglichkeit, Ihre Frage zu beantworten, da Sie forensische Arbeiten am Server durchführen und nach Löchern suchen müssen. Sie könnten einige automatisierte Tools verwenden, aber denken Sie daran, wenn der Angreifer über Root-Rechte verfügt, können Sie den System-Binärdateien nicht mehr vertrauen und Sie können den Protokollen nicht vertrauen.
Abhängig davon, wie sicher Sie es für zukünftige Angriffe machen möchten, können Sie Ihre Protokolle zunächst auf ein System umleiten, das nur zum Speichern von Systemprotokollen verwendet wird. Kein anderer Zugriff, um den Angriffsfußabdruck zu verringern.
Sie würden auch Prüfsummensoftware auf Ihrem System wie Tripwire ausführen, um die Integrität Ihrer Dateien zu überprüfen.
Halten Sie sich natürlich über Updates auf dem Laufenden und führen Sie eine Scan-Software aus, die nach Rootkits sucht.
Auch hier ist Sicherheit kein Wurf. Es kann auch eine Spezialität für sich sein. Die mehrschichtige Sicherheit kann so streng sein wie das Suchen nach Hosts / IPs, die nicht zu Ihrem Netzwerk gehören, das Verschlüsseln des gesamten Zugriffs auf das System, das tägliche Protokollieren von Änderungsprotokollen auf Ihrem System und das Einrichten eines Honeypots in Ihrem Netzwerk an Suchen Sie nach seltsamen Aktivitäten (warum versucht mein Server, eine Verbindung zu Port 25 des Honeypot-Computers herzustellen?)
In erster Linie, wenn Sie nach Aktivität suchen möchten, holen Sie sich das Disk-Image und installieren Sie die Serversoftware neu. Von Grund auf neu. Den Binärdateien des Servers kann nicht mehr vertraut werden.
BEARBEITEN - einige andere Dinge, die mir seit der Ausführung von SSH einfallen - Installieren Sie Denyhosts. Es kann so konfiguriert werden, dass automatisierte Angriffe auf Ihr System auf SSHD nach X Versuchen gesperrt werden. Es kann auch so konfiguriert werden, dass es von anderen Denyhost-Servern in einer "Cloud" aktualisiert wird, um gesperrte IP-Adressen freizugeben und so automatisierte Angriffe zu minimieren. Sie können auch den Port verschieben, den es abhört. Viele Leute weisen darauf hin, dass es nur Sicherheit durch Dunkelheit ist, aber angesichts der Anzahl der gescannten Bots werden zufällige Einbruchsversuche erheblich reduziert.
quelle