Frage Ein früherer IT-Mitarbeiter hat wahrscheinlich einige Hintertüren zurückgelassen. Wie kann ich sie beseitigen? [Duplikat]


Diese Frage hat hier bereits eine Antwort:

Ich fing an, für ein Unternehmen zu arbeiten, das einen früheren IT-Mitarbeiter wegen Datenlecks gefeuert hat.

Ich kann nur folgende Dinge sagen:

Wir verwenden eine Firebird DB mit einer Anwendung, die von einer anderen Firma, Proxmox, für die Virtualisierung von Windows Server 2008 R2, SQL Server, Cloud-Core-Mikrotik-Router und einigen anderen Mikrotik-Geräten geschrieben wurde.

Ich bin mir nicht 100% sicher, aber gibt es einen schnellen Weg, um zu überprüfen, ob noch ein paar Hintertüren übrig sind, ohne interne Prozesse zu unterbrechen und alles neu zu formatieren?

Dieser vorherige Typ war wirklich gut, er hatte Software in C ++ und C # geschrieben. Ich weiß auch, dass er einen Assembler gemacht hat und ein paar Programme in ollydbg geknackt hat.


64
2018-01-25 09:00


Ursprung


Kommentare sind nicht für längere Diskussionen; Diese Konversation war zum chatten bewegt. - Michael Hampton♦


Antworten:


Der einzige Weg, um absolut sicher zu sein, ist jedes System sauber zu wischen und von Grund auf neu zu installieren. Sie müssen außerdem alle lokal generierten Software und Konfigurationen überprüfen, um sicherzustellen, dass sie keine Backdoors enthalten. Dies ist eine nicht triviale Aufgabe, die mit nicht trivialen Kosten verbunden ist.

Darüber hinaus kann man nicht viel tun.

Offensichtlich, während Sie entscheiden, was zu tun ist

  • Überprüfen Sie alle Firewallregeln auf Gültigkeit
  • Überprüfen Sie alle Konten auf Gültigkeit
  • Überprüfen Sie alle Sudoers-Dateien auf Gültigkeit
  • Ändern Sie alle Passwörter und Schlüssel

aber das kratzt nur an der Oberfläche.


108
2018-01-25 10:43



Tatsächlich. Ein vollständiges Code-Audit ist das nur Um sicherzugehen - versteh was jede Codezeile macht. Es ist trivial, eine "spezielle" URL hinzuzufügen, die eine Shell öffnet und diese in einer obskuren Anwendungslogik versteckt. Das Scannen, Neustarten oder Überprüfen von Konfigurationsdateien wird nicht erkannt, geschweige denn behoben. - Boris the Spider
Hinweis: "Neuinstallation von Grund auf" bedeutet wirklich von Grund auf neu. Holen Sie sich eine neue Maschine, die er nicht hätte berühren können, und verwenden Sie diese, um neue Installationsdateien für alle von Ihnen verwendeten Betriebssysteme und Software von der offiziellen Website herunterzuladen, vorzugsweise über eine gesicherte Verbindung und von einem völlig anderen Netzwerk. Wenn Sie die richtigen Installationsprogramme nicht online finden können, verwenden Sie eine Prüfsumme für vorhandene Dateien, bevor Sie sie verwenden. - Nzall
In Anbetracht des gesamten physischen Zugriffs, den der Typ gehabt hätte, müssen Sie möglicherweise nach ungewöhnlicher oder unerwarteter Hardware suchen. - user2357112
Wenn Sie Software verwenden müssen, schrieb der Typ und Sie haben eine vollständige Code-Prüfung abgeschlossen und dann neu kompiliert, weil Sie immer noch nicht sicher sein können, dass die Binärdateien, die Sie haben, vollständig aus dem von Ihnen geprüften Quellcode stammen. - Robert
"Nuke die gesamte Website aus dem Orbit - es ist der einzige Weg, um sicher zu sein" - beldaz


Das wichtigste Ziel eines entlassenen Systemadministrators ist es, seine Vergangenheit zu bereinigen, vor allem, wenn es sich um einen schlechten Ruf handelt. Wenn ein Angriff auf sein vorheriges System stattfinden würde, würde er nichts gewinnen (besonders nicht seinen alten Job), aber er könnte verlieren viel. Ich bin schon oft mit ähnlichen Ängsten konfrontiert worden, aber meiner Meinung nach sind sie weitgehend unbegründet. Ich denke, es ist viel wahrscheinlicher, dass wenn du ihm ein paar Fragen stellen würdest, wäre er sehr nett und hilfsbereit zu dir (was du dann wiederum deinem Boss gegenüber erwähnen solltest).


Betrachten wir nun den sehr unwahrscheinlichen Fall, dass er wirklich etwas schädlich machen möchte.

Machen Sie ein Archiv Ihres gesamten Netzwerks in einem für ihn unerreichbaren Ort (hinter einer Firewall, die nicht in seiner Verantwortung ist, Festplatte in einem verschlossenen Schrank usw.).

Sobald Sie dieses Backup erstellt haben, kann er seine Spuren nicht mehr abdecken. Im Falle eines Schurkenangriffs wird es als Beweis dienen.


Sie können niemals 100% sicher sein (außer im Falle einer Neuinstallation des gesamten Netzwerks). Sie können eine Checkliste durchlaufen, aber Sie können nie sicher sein, dass Sie alles überprüft haben.

Selbst für den Fall, dass Sie ein Loch finden, können Sie nicht beweisen, dass es dort absichtlich platziert wurde. Beachten Sie, dass das gleiche Problem für Softwareentwickler besteht. Schlechte Arbeit ist keine Straftat, und Sie können nicht beweisen, dass er zum Beispiel "vergessen" hat, absichtlich das Standardpasswort für die Datenbankadministration zu ändern. Oder dass Benutzern, deren Passwort von ihm festgelegt wurde, "versehentlich" die Privilegien gewährt wurden, die für die Verbindung mit Ihren streng geheimen Datenbanken erforderlich sind.


In den meisten Fällen sind der wichtigste Teil Ihres Systems nicht Ihre Betriebssysteme, sondern die Daten, die auf ihnen verwaltet werden. Dies gilt insbesondere dann, wenn es sich bei diesen Daten um private Daten und das Eigentum Ihrer Kunden handelt. Er hätte sie lange vor seinem letzten Arbeitstag stehlen, sie verschlüsseln und an nur ihm bekannten Orten speichern können. Stellen Sie sicher, dass Sie auch nach Spuren suchen, die darauf hinweisen, dass er Kopien Ihrer Daten erstellt hat, bevor er gegangen ist. Beachten Sie jedoch, dass wenn Sie es "richtig" tun, Sie nichts finden werden.


39
2018-01-25 16:08



Ich mag deine Antwort und habe versucht, sie natürlicher zu lesen. Zögern Sie nicht, einen Rollback auszuführen, wenn Sie mit meinen Änderungen nicht einverstanden sind. - Reaces
@Reaces Absolut okay, vielen Dank! - peterh


@JonasWielicki hat diese Frage mit einer unserer kanonischen Sicherheitsfragen verglichen (Wie gehe ich mit einem kompromittierten Server um?). Ich stehe zu meiner Antwort auf Das Frage, aber es gibt einen wichtigen Unterschied.

In dieser Frage war der Server bekannt kompromittiert sein. So weit ich das verstehe diese Frage, die in diesem Fall nicht festgestellt wurde. Daher bin ich mir nicht sicher, ob wir den Flammenwerfer gerade ausbrechen müssen.

Menschen verlassen eine Organisation die ganze Zeit, ohne dass etwas Schlimmes passiert, selbst wenn sie unter schlechten Bedingungen ausgezogen sind. Einfach gut programmieren zu können, was alles "Beweismaterial" ist, das Sie uns in der Frage OP gezeigt haben, bedeutet nicht, dass jemand per se ein Hacker ist, noch dass er Sie wahrscheinlich angreifen wird, nachdem er gegangen ist.

Wenn Sie wirklich besorgt sind, würde ich vorschlagen, eine externe Sicherheitsfirma zu beauftragen, Ihr System zu auditieren. Dies wird hoffentlich nicht nur kleine Überraschungen aufdecken, die der ehemalige Systemadministrator hinterlassen hat, sondern auch eine gute Grundlage für all Ihre Sicherheitsprobleme und Bedenken, die sich in Zukunft ergeben.


14
2018-01-26 11:34



Beachten Sie, dass Peterh vorgeschlagen hat Wie suchen Sie nach Backdoors von der vorherigen IT-Person? als ein mögliches Duplikat, das IMO eine viel bessere Übereinstimmung als sein würde Wie gehe ich mit einem kompromittierten Server um? - α CVn
@ MichaelKjörling Ich würde zustimmen, es würde eine bessere dup machen. Ich denke, die Frage ist anders genug, um die "Suche von Backdoors One" zu überleben, selbst wenn die Antworten ähnlich sind. - Rob Moir
Ich bin eigentlich etwas unschlüssig, ob die beiden den gleichen Boden bedecken. Das Finden der Hintertüren ist ein offensichtlicher erster Schritt, bevor sie eliminiert werden können; einmal gefunden, würden die spezifischen Schritte je nach Art der Hintertür etwas anders sein. - α CVn
@ MichaelKjörling Ich würde sagen, dass es als erster Schritt sehr offensichtlich ist. Wie die Top-Antwort zeigt, ist die bei weitem häufigste Strategie, anzunehmen, dass alles verdorben ist, zu löschen, neu zu installieren usw., ohne irgendwelche Anstrengungen zu unternehmen, Backdoors zu finden. - jwg


Der einzige Weg, um sicherzustellen, dass keine Hintertür sicher existiert, ist das System zu vernichten, wie Sie sagten.

Wenn das nicht möglich ist,

  1. Berücksichtigen Sie eine sichere Basiskonfiguration und analysieren Sie die aktuelle Konfiguration davon.
  2. Überprüfen Sie alle suid-Programme.
  3. Analysiere alle laufenden Prozesse.
  4. Führen Sie einen Portscan auf dem System durch, um offene Ports und Dienste zu identifizieren.
  5. Überwachen Sie routinemäßig alle abgehenden und eingehenden Verbindungen und suchen Sie nach unerwünschten Verbindungen.

11
2018-01-25 14:08





Sie müssen entscheiden, wie sicher Sie sein wollen. Das Kosten-Nutzen-Verhältnis wird niemals für eine Atomkalibrierung aus dem Orbit reichen.

Verlangen Manager Versprechungen oder versuchen Sie nur, die Systeme, die Sie geerbt haben, angemessen zu untersuchen?

Wenn es Manager sind, müssen Sie jetzt herausfinden, wie vernünftig sie sind. Sind sie bereit sich mit "ziemlich sicher" zufrieden zu geben? Vielleicht kannst du dem gefeuerten Mann zu seinem neuen Job folgen!

Wenn Sie Ihre eigenen Systeme untersuchen möchten, würde ich mit der Einrichtung eines Netzwerküberwachungssystems wie Snort beginnen. Suchen Sie nach unerwartetem Verkehr, wie " Warum spricht das System jeden Tag mit diesem einen Server in Russland? "oder" Warum machen Leute IRC über meinen Webserver? "(das ist mir passiert).

Ich denke, @ peterhs Vorschlag, ein großes Archiv zu erstellen, ist eine wirklich gute Idee. Ich denke auch, dass sein Vorschlag, dass der gefeuerte Typ hilfreich ist, völlig realistisch ist. Probleme wie diese stellen sich in 90% der Fälle als blödes Management heraus.


9
2018-01-25 23:24





Sie sollten eine Überprüfung der aktuellen Funktionalität und Verwendung durchführen, aber ehrlich gesagt sollten Sie von vorne anfangen.

Das bedeutet, dass Sie nicht nur "aus dem Orbit herausholen", sondern alle Kernfunktionen und Anforderungen notieren, wie zum Beispiel, welche Ports auf der Firewall für die Box geöffnet sein müssen, IP-Adressen- oder Hostnamen-Beschränkungen und die Verschiedenen. Klempner "so.

Erstellen Sie dann eine neue Umgebung basierend auf dem, was Sie gesehen haben, führen Sie einige Tests zur Bestätigung der Funktionalität durch und wechseln Sie dann die Wartung, um eine offizielle Umschaltung durchzuführen: Kopieren Sie Daten von der alten Konfiguration auf die neue und schalten Sie dann IPs ein die Box, um die alten IPs aus der alten Box zu übernehmen oder andere Systeme einzurichten, die Zugriff benötigen, um sich mit dem neuen Setup verbinden zu können.

Aber selbst wenn Sie das tun, können Sie möglicherweise den Daten in der Datenbank nicht vertrauen, aber zumindest in einem solchen Fall wird das Kernsystem auf etwas Stabileres und "Gesunderes" umgestellt, so dass Sie einen Reiniger haben Startpunkt.

Außerdem erwähnten Sie die vorherige I.T. Leute konnten in Assembler und C ++ programmieren. Meine Frage wäre: Warum? Führen Sie eine Prüfung von eventuell vorhandenem benutzerdefiniertem Code durch und bewerten Sie die Funktionalität. Denn während die anderen Leute könnte waren in ihren Programmierfähigkeiten "fancy", wer weiß, ob sie etwas in C ++ programmiert haben, das zum Beispiel in Python oder einem Bash / Batch-Skript leicht neu erstellt werden kann. Ich habe schon viele C ++ - Programmierer kennengelernt, die wirklich C ++ - Code verwenden, wenn einfachere Tools verwendet werden können, um äquivalente Funktionalität zu erreichen.

Aber am Ende des Tages könnte der Wiederaufbau der Architektur von Grund auf die einzige und sicherste Sache sein.


6
2018-01-26 02:34



Das Auftanken aus der Umlaufbahn ist kostspielig, es würde monatelange Arbeit mit der großen Wahrscheinlichkeit von vielen Stabilitätsproblemen bedeuten. Insbesondere in großen Unternehmen ist die zulässige Ausfallzeit im Wesentlichen gleich Null. - peterh


Als Erstes ändern alle ihr Passwort. Zweitens müssen Sie die Firewall und alles, was direkt mit ihr verbunden ist, sichern. Ändern Sie ALLE Passwörter überall.

Wenn er nicht durch die Firewall kommen kann, wird er sich auf etwas verlassen müssen, das eine Verbindung zu ihm herstellt, und es wird viel schwieriger.

Sie müssen alles über die Firewall, die Regeln und die Konfiguration lernen und sie für Dinge, die nicht dazugehören, Zeile für Zeile überprüfen. Selbst dann wäre es besser, einen neuen Router zu bekommen und die Konfiguration manuell zu übertragen. Überprüfen, dass jede Änderung an der Konfiguration korrekt ist, keine Hintertür und dass sie sogar noch benötigt wird. Dies ist die perfekte Zeit, um den Cruft aus Ihrem System zu entfernen.


2
2018-01-27 02:18



Viele Kennwörter sind in Quell- und Konfigurationsressourcen fest codiert. Besonders diejenigen, die zu internen Diensten gehören. Wenn das System komplex ist, können sie oft nicht alle finden. Oft ist es nicht einmal bekannt, dass es sich im Wesentlichen um ein Passwort handelt (gut ... Berechtigungs-Token), zum Beispiel einen 128-Bit-Hexa-Code in einer Konfigurationsdatei, der tief in eine .jar-Datei gezippt ist. - peterh