Wie gehe ich mit einem kompromittierten Server um?

601

Dies ist eine kanonische Frage zur Serversicherheit - Reagieren auf Sicherheitsverletzungen (Hacking)
Siehe auch:

Canonical Version
Ich vermute, dass einer oder mehrere meiner Server durch einen Hacker, einen Virus oder einen anderen Mechanismus gefährdet sind:

  • Was sind meine ersten Schritte? Wenn ich vor Ort ankomme, sollte ich den Server trennen, "Beweise" aufbewahren, gibt es noch andere anfängliche Überlegungen?
  • Wie erhalte ich die Dienste wieder online?
  • Wie verhindere ich, dass das Gleiche sofort wieder passiert?
  • Gibt es Best Practices oder Methoden, um aus diesem Vorfall zu lernen?
  • Wenn ich einen Incident Response Plan zusammenstellen wollte, wo würde ich anfangen? Sollte dies Teil meiner Disaster Recovery- oder Business Continuity-Planung sein?

Originalfassung

2011.01.02 - Ich bin am Sonntag um 21.30 Uhr auf dem Weg zur Arbeit, weil unser Server irgendwie kompromittiert wurde und einen DOS- Angriff auf unseren Provider zur Folge hatte. Der Serverzugriff auf das Internet wurde heruntergefahren, was bedeutet, dass mehr als 5-600 unserer Clientsites heruntergefahren sind. Nun könnte dies ein FTP-Hack oder irgendwo eine Codeschwäche sein. Ich bin mir nicht sicher, bis ich dort bin.

Wie kann ich das schnell herausfinden? Wir sind in einer ganzen Reihe von Rechtsstreitigkeiten verwickelt, wenn ich den Server nicht so schnell wie möglich wieder in Betrieb nehme. Jede Hilfe wird geschätzt. Wir führen Open SUSE 11.0 aus.


2011.01.03 - Vielen Dank an alle für Ihre Hilfe. Zum Glück war ich nicht die einzige Person, die für diesen Server verantwortlich ist, sondern nur die nächste. Es ist uns gelungen, dieses Problem zu beheben, obwohl es in einer anderen Situation möglicherweise nicht für viele andere gilt. Ich werde detailliert beschreiben, was wir getan haben.

Wir haben den Server vom Netz getrennt. Es wurde versucht, einen Denial-of-Service-Angriff auf einen anderen Server in Indonesien durchzuführen, und der Schuldige befand sich ebenfalls dort.

Wir haben zunächst versucht, den Ursprung auf dem Server zu ermitteln, da wir davon ausgegangen sind, dass mehr als 500 Sites auf dem Server für einige Zeit im Mondschein stehen. Mit SSH-Zugriff führten wir jedoch einen Befehl aus, um alle Dateien zu finden, die zu dem Zeitpunkt bearbeitet oder erstellt wurden, als die Angriffe begannen. Glücklicherweise wurde die anstößige Datei in den Winterferien erstellt, was bedeutete, dass zu diesem Zeitpunkt nicht viele andere Dateien auf dem Server erstellt wurden.

Wir konnten dann die problematische Datei identifizieren, die sich im Ordner für hochgeladene Bilder auf einer ZenCart- Website befand.

Nach einer kurzen Zigarettenpause kamen wir zu dem Schluss, dass der Upload aufgrund des Speicherorts der Dateien über eine unzureichend gesicherte Datei-Upload-Funktion erfolgt sein muss. Nach einigem googeln stellten wir fest, dass es eine Sicherheitslücke gab, die das Hochladen von Dateien innerhalb des ZenCart Admin-Panels für ein Bild für eine Plattenfirma ermöglichte. (Der Abschnitt, den es nie wirklich benutzte), hat beim Posten dieses Formulars nur eine Datei hochgeladen, die Dateierweiterung nicht überprüft und nicht einmal geprüft, ob der Benutzer angemeldet war.

Dies bedeutete, dass alle Dateien hochgeladen werden konnten, einschließlich einer PHP-Datei für den Angriff. Wir haben die Sicherheitslücke mit ZenCart auf der infizierten Site gesichert und die fehlerhaften Dateien entfernt.

Die Arbeit war erledigt und ich war 2 Uhr morgens zu Hause


Die Moral - Wenden Sie immer Sicherheitspatches für ZenCart oder ein anderes CMS-System an. Wie bei der Veröffentlichung von Sicherheitsupdates wird die ganze Welt auf die Sicherheitsanfälligkeit aufmerksam gemacht. - Machen Sie immer Backups und sichern Sie Ihre Backups. - Stellen Sie jemanden ein oder sorgen Sie für jemanden, der in Zeiten wie diesen da sein wird. Um zu verhindern, dass sich jemand auf einen in Panik geratenen Beitrag bei Server Fault verlässt.

gunwin
quelle
7
Ich weiß, wie Sie sich fühlen - wir hatten großes Glück, dass "hilfreiche" Hacker auf dieser Website uns mitteilen, was sie getan haben! Ich freue mich auf großartige Antworten auf diese Frage, falls wir in Zukunft "weniger hilfreiche" Gäste haben.
Jarrod Dixon
186
Rufen Sie einen Fachmann an, um zu helfen!
Marcog
103
Ich möchte nicht klug oder unsympathisch klingen (ich auch nicht), und natürlich kenne ich die Details Ihrer Situation nicht, aber wenn Sie die einzige Person sind, die für eine 500-600-Site-Einrichtung verantwortlich ist, könnte dies der Fall sein ein grundlegender Fehler bei der Ausführung dieses Servers sein. Einige Unternehmen beschäftigen einen dedizierten Systemadministrator, der den ganzen Tag nichts anderes tut, als Server zu warten - eine Aufgabe, die nicht automatisch im Rahmen eines Programmierers liegt, auch wenn es so scheint. Vielleicht ist das eine Überlegung wert, wenn die Krise vorbei ist. Wie auch immer, ich wünsche Ihnen viel Glück bei der Lösung der aktuellen Situation.
Pekka 웃
Nehmen Sie nicht unbedingt an, dass Sie ein vollständiges Kernel-Root-Kit haben und dass Ihr Root-Passwort kompromittiert ist. Es ist möglicherweise nur ein hinterhältiges Bash- / Perl-Skript, und es ist möglich, es zu bereinigen, ohne es zu formatieren, obwohl der Chor hier etwas vorgibt
Hayden Thring

Antworten:

1015

Von dem, was Sie hier gepostet haben, ist es schwierig, konkrete Ratschläge zu geben, aber ich habe einige allgemeine Ratschläge, die auf einem Beitrag basieren, den ich vor langer Zeit geschrieben habe, als ich mich noch um das Bloggen kümmern konnte.

Keine Panik

Zunächst einmal gibt es keine "Schnellkorrekturen" außer dem Wiederherstellen Ihres Systems von einem Backup, das vor dem Eindringen erstellt wurde, und dies hat mindestens zwei Probleme.

  1. Es ist schwierig festzustellen, wann das Eindringen stattgefunden hat.
  2. Es hilft Ihnen nicht, das "Loch" zu schließen, durch das sie das letzte Mal eingebrochen sind, und es hilft Ihnen nicht, die Folgen eines "Datendiebstahls" zu bewältigen, der möglicherweise auch stattgefunden hat.

Diese Frage wird immer wieder von den Opfern von Hackern gestellt, die in ihren Webserver eindringen. Die Antworten ändern sich sehr selten, aber die Leute stellen die Frage immer wieder. Ich bin mir nicht sicher warum. Vielleicht mögen die Leute die Antworten, die sie auf der Suche nach Hilfe gesehen haben, einfach nicht oder sie können niemanden finden, dem sie vertrauen, um ihnen Ratschläge zu geben. Oder vielleicht lesen die Leute eine Antwort auf diese Frage und konzentrieren sich zu sehr auf die 5%, warum ihr Fall speziell ist und sich von den Antworten unterscheidet, die sie online finden können, und verpassen die 95% der Frage und Antwort, wenn ihr Fall nahe genug gleich ist als die, die sie online lesen.

Das bringt mich zum ersten wichtigen Informationsnugget. Ich weiß wirklich zu schätzen, dass Sie eine besondere einzigartige Schneeflocke sind. Ich schätze, dass auch Ihre Website ein Spiegelbild von Ihnen und Ihrem Unternehmen oder zumindest Ihrer harten Arbeit im Auftrag eines Arbeitgebers ist. Aber für jemanden, der von außen nach innen schaut, sei es eine Person für Computersicherheit, die sich das Problem ansieht, um Ihnen zu helfen, oder sogar der Angreifer selbst, ist es sehr wahrscheinlich, dass Ihr Problem zu mindestens 95% mit jedem anderen Fall identisch ist, den sie haben jemals angeschaut.

Nimm den Angriff nicht persönlich und nimm nicht die Empfehlungen an, die hier folgen oder die du von anderen Leuten persönlich bekommst. Wenn Sie dies lesen, nachdem Sie Opfer eines Website-Hacks geworden sind, tut es mir wirklich leid, und ich hoffe, Sie können hier etwas Hilfreiches finden, aber dies ist nicht die Zeit, um Ihr Ego in die Quere zu bringen, was Sie brauchen machen.

Sie haben gerade herausgefunden, dass Ihre Server gehackt wurden. Was jetzt?

Keine Panik. Handeln Sie auf keinen Fall in Eile und tun Sie auf keinen Fall so, als ob etwas niemals passiert wäre und handeln Sie überhaupt nicht.

Erstens: Verstehe, dass die Katastrophe bereits passiert ist. Dies ist nicht die Zeit für die Ablehnung; Es ist an der Zeit zu akzeptieren, was passiert ist, realistisch zu sein und Schritte zu unternehmen, um die Folgen der Auswirkungen zu bewältigen.

Einige dieser Schritte werden weh tun, und (es sei denn, Ihre Website enthält eine Kopie meiner Daten) es ist mir wirklich egal, ob Sie alle oder einige dieser Schritte ignorieren, das liegt an Ihnen. Aber wenn man ihnen richtig folgt, wird es am Ende besser. Das Medikament mag schrecklich schmecken, aber manchmal muss man das übersehen, wenn das Heilmittel wirklich wirken soll.

Verhindern Sie, dass sich das Problem verschlimmert:

  1. Als erstes sollten Sie die betroffenen Systeme vom Internet trennen. Unabhängig von den anderen Problemen, die Sie haben, kann der Angriff nur fortgesetzt werden, wenn Sie das System mit dem Internet verbunden lassen. Ich meine das ganz wörtlich; Lassen Sie jemanden den Server physisch besuchen und ziehen Sie die Netzwerkkabel ab, wenn dies erforderlich ist. Trennen Sie jedoch das Opfer von den Muggern, bevor Sie versuchen, etwas anderes zu tun.
  2. Ändern Sie alle Ihre Kennwörter für alle Konten auf allen Computern, die sich im selben Netzwerk wie die gefährdeten Systeme befinden. Nicht wirklich. Alle Konten. Alle Computer. Ja, Sie haben Recht, das könnte übertrieben sein. Auf der anderen Seite könnte es nicht. Du weißt es nicht so oder so, oder?
  3. Überprüfen Sie Ihre anderen Systeme. Achten Sie besonders auf andere mit dem Internet verbundene Dienste und auf solche, die finanzielle oder andere wirtschaftlich sensible Daten enthalten.
  4. Wenn das System personenbezogene Daten von Personen enthält, informieren Sie unverzüglich die für den Datenschutz verantwortliche Person (wenn Sie das nicht sind) und fordern Sie eine vollständige Offenlegung an. Ich weiß, das ist hart. Ich weiß, das wird weh tun. Ich weiß, dass viele Unternehmen diese Art von Problem unter den Teppich kehren wollen, aber das Unternehmen muss sich damit befassen - und dies unter Berücksichtigung aller relevanten Datenschutzgesetze.

Wie verärgert Ihre Kunden auch sein mögen, wenn Sie sie über ein Problem informieren, sie sind viel verärgerter, wenn Sie es ihnen nicht mitteilen, und sie finden es erst heraus, nachdem jemand Waren im Wert von 8.000 USD mit den von ihnen angegebenen Kreditkartendaten belastet hat von Ihrer Website gestohlen.

Erinnerst du dich, was ich vorher gesagt habe? Das Schlimme ist schon passiert. Die Frage ist nur, wie gut Sie damit umgehen.

Verstehe das Problem vollständig:

  1. Schalten Sie die betroffenen Systeme NICHT wieder online, bis diese Phase vollständig abgeschlossen ist, es sei denn, Sie möchten die Person sein, deren Beitrag der Wendepunkt für mich war, als ich mich entschied, diesen Artikel zu schreiben. Ich werde nicht auf diesen Beitrag verlinken, damit die Leute billig lachen können, aber die wahre Tragödie ist, wenn die Leute nicht aus ihren Fehlern lernen.
  2. Untersuchen Sie die "angegriffenen" Systeme, um zu verstehen, wie die Angriffe Ihre Sicherheit gefährden konnten. Bemühen Sie sich, herauszufinden, wo die Angriffe "herkommen", damit Sie verstehen, welche Probleme Sie haben und beheben müssen, um Ihr System in Zukunft sicher zu machen.
  3. Untersuchen Sie die "angegriffenen" Systeme erneut, um zu verstehen, wohin die Angriffe geführt haben, damit Sie verstehen, welche Systeme bei dem Angriff kompromittiert wurden. Stellen Sie sicher, dass Sie alle Hinweise befolgen, die darauf hindeuten, dass gefährdete Systeme zum Sprungbrett für weitere Angriffe auf Ihre Systeme werden könnten.
  4. Stellen Sie sicher, dass die bei allen Angriffen verwendeten "Gateways" vollständig verstanden sind, damit Sie sie ordnungsgemäß schließen können. (Wenn z. B. Ihre Systeme durch einen SQL-Injection-Angriff kompromittiert wurden, müssen Sie nicht nur die fehlerhafte Codezeile schließen, durch die sie eingebrochen sind, sondern Sie möchten auch Ihren gesamten Code überprüfen, um festzustellen, ob derselbe Fehlertyp vorliegt wurde woanders gemacht).
  5. Verstehen Sie, dass Angriffe aufgrund von mehr als einem Fehler erfolgreich sein können. Oft gelingt es Angriffen nicht, einen einzigen großen Fehler in einem System zu finden, sondern mehrere (manchmal geringfügige und triviale) Probleme miteinander zu verknüpfen, um ein System zu gefährden. Wenn Sie beispielsweise SQL Injection-Angriffe verwenden, um Befehle an einen Datenbankserver zu senden, müssen Sie feststellen, dass die Website / Anwendung, die Sie angreifen, im Kontext eines Administrators ausgeführt wird, und die Rechte dieses Kontos als Sprungbrett für die Beeinträchtigung anderer Teile von verwenden ein System. Oder wie es Hacker gerne nennen: "Ein weiterer Tag im Büro, an dem man die üblichen Fehler ausnutzt".

Warum nicht einfach den entdeckten Exploit oder das Rootkit "reparieren" und das System wieder online stellen?

In solchen Situationen besteht das Problem darin, dass Sie nicht mehr die Kontrolle über dieses System haben. Es ist nicht mehr dein Computer.

Die einzige Möglichkeit, um sicherzugehen, dass Sie die Kontrolle über das System haben, besteht darin, das System neu zu erstellen . Es ist zwar sehr wertvoll, den Exploit zu finden und zu reparieren, der zum Einbrechen in das System verwendet wurde, aber Sie können nicht sicher sein, was noch mit dem System geschehen ist, nachdem die Eindringlinge die Kontrolle erlangt haben (was für Hacker, die sich einstellen, nicht ungewöhnlich ist) Systeme in ein Botnetz einbinden, um die von ihnen selbst genutzten Exploits zu patchen, "ihren" neuen Computer vor anderen Hackern zu schützen sowie ihr Rootkit zu installieren).

Machen Sie einen Plan für die Wiederherstellung und bringen Sie Ihre Website wieder online und bleiben Sie dabei:

Niemand möchte länger offline sein als nötig. Das ist eine gegebene. Wenn diese Website ein Mechanismus ist, der Einnahmen generiert, ist der Druck, sie schnell wieder online zu stellen, sehr groß. Auch wenn das Einzige, was auf dem Spiel steht, der Ruf Ihres Unternehmens ist, erzeugt dies immer noch einen großen Druck, die Dinge schnell wieder in Ordnung zu bringen.

Geben Sie jedoch nicht der Versuchung nach, zu schnell wieder online zu gehen. Bewegen Sie sich stattdessen so schnell wie möglich, um zu verstehen, was das Problem verursacht hat, und um es zu lösen, bevor Sie wieder online gehen. Andernfalls werden Sie mit ziemlicher Sicherheit erneut Opfer eines Eingriffs und denken Sie daran: "Einmal gehackt zu werden, kann als Unglück eingestuft werden. Sich gleich danach wieder hacken zu lassen, sieht nach Nachlässigkeit aus "(mit Entschuldigung an Oscar Wilde).

  1. Ich gehe davon aus, dass Sie alle Probleme, die zu dem erfolgreichen Eindringen geführt haben, verstanden haben, bevor Sie überhaupt mit diesem Abschnitt beginnen. Ich möchte den Fall nicht überbewerten, aber wenn Sie das nicht zuerst getan haben, müssen Sie es wirklich tun. Es tut uns leid.
  2. Zahlen Sie niemals Erpressungs- / Schutzgelder. Dies ist das Zeichen eines einfachen Zeichens, und Sie möchten nicht, dass dieser Ausdruck Sie jemals beschreibt.
  3. Versuchen Sie nicht, dieselben Server ohne vollständigen Neuaufbau wieder online zu stellen. Es sollte weitaus schneller gehen, eine neue Box zu erstellen oder "den Server aus dem Orbit zu entfernen und eine Neuinstallation" auf der alten Hardware durchzuführen, als jede einzelne Ecke des alten Systems zu überprüfen, um sicherzustellen, dass es sauber ist, bevor es zurückgesetzt wird wieder online. Wenn Sie damit nicht einverstanden sind, wissen Sie wahrscheinlich nicht, was es wirklich bedeutet, sicherzustellen, dass ein System vollständig bereinigt ist, oder Ihre Website-Bereitstellungsverfahren sind ein unheiliges Durcheinander. Vermutlich verfügen Sie über Sicherungen und Testbereitstellungen Ihrer Site, die Sie nur zum Erstellen der Live-Site verwenden können, und wenn Sie dies nicht tun, ist es nicht Ihr größtes Problem, gehackt zu werden.
  4. Seien Sie sehr vorsichtig, wenn Sie Daten wiederverwenden, die zum Zeitpunkt des Hacks "live" auf dem System waren. Ich werde nicht sagen, dass Sie es niemals tun werden, weil Sie mich einfach ignorieren werden, aber ehrlich gesagt müssen Sie die Konsequenzen der Aufbewahrung von Daten bedenken, wenn Sie wissen, dass Sie ihre Integrität nicht garantieren können. Idealerweise sollten Sie dies aus einer Sicherung wiederherstellen, die vor dem Eindringen erstellt wurde. Wenn Sie das nicht können oder wollen, sollten Sie mit diesen Daten sehr vorsichtig sein, da sie verunreinigt sind. Sie sollten sich insbesondere der Konsequenzen für andere bewusst sein, wenn diese Daten Kunden oder Website-Besuchern gehören und nicht direkt Ihnen.
  5. Überwachen Sie die Systeme sorgfältig. Sie sollten sich dazu entschließen, dies in Zukunft als fortlaufenden Prozess durchzuführen (siehe unten), aber Sie bemühen sich besonders, während des Zeitraums unmittelbar nach der Rückkehr Ihrer Website ins Internet wachsam zu sein. Die Eindringlinge werden mit ziemlicher Sicherheit wiederkommen, und wenn Sie feststellen, dass sie versuchen, wieder einzudringen, werden Sie mit Sicherheit schnell feststellen können, ob Sie wirklich alle zuvor verwendeten Löcher und alle von ihnen für sich selbst erstellten Löcher geschlossen haben, und Sie könnten sich nützlich machen Informationen, die Sie an Ihre örtliche Strafverfolgungsbehörde weitergeben können.

Das Risiko in Zukunft reduzieren.

Das Erste, was Sie verstehen müssen, ist, dass Sicherheit ein Prozess ist, den Sie über den gesamten Lebenszyklus des Entwerfens, Bereitstellens und Wartens eines mit dem Internet verbundenen Systems anwenden müssen, und nicht etwas, das Sie später wie billig über Ihren Code legen können Farbe. Um richtig sicher zu sein, müssen ein Dienst und eine Anwendung von Anfang an unter Berücksichtigung dieses Aspekts als eines der Hauptziele des Projekts konzipiert werden. Mir ist klar, dass das langweilig ist und Sie alles schon einmal gehört haben und dass ich den Druck, Ihren Beta-Web2.0 (Beta) -Dienst in den Beta-Status im Web zu versetzen, einfach nicht erkenne, aber die Tatsache ist, dass dies so bleibt wiederholt werden, weil es wahr war, als es das erste Mal gesagt wurde und es noch keine Lüge geworden ist.

Sie können das Risiko nicht ausschließen. Sie sollten nicht einmal versuchen, das zu tun. Was Sie jedoch tun sollten, ist zu verstehen, welche Sicherheitsrisiken für Sie wichtig sind und wie Sie sowohl die Auswirkungen des Risikos als auch die Wahrscheinlichkeit, dass das Risiko eintritt, verwalten und reduzieren können.

Welche Maßnahmen können Sie ergreifen, um die Wahrscheinlichkeit eines erfolgreichen Angriffs zu verringern?

Zum Beispiel:

  1. War der Fehler, der es Leuten ermöglichte, in Ihre Site einzudringen, ein bekannter Fehler im Herstellercode, für den ein Patch verfügbar war? Wenn ja, müssen Sie Ihren Ansatz zum Patchen von Anwendungen auf Ihren mit dem Internet verbundenen Servern überdenken?
  2. War der Fehler, der es Leuten ermöglichte, in Ihre Site einzudringen, ein unbekannter Fehler im Herstellercode, für den kein Patch verfügbar war? Ich befürworte auf keinen Fall einen Lieferantenwechsel, wenn Sie so etwas befürchten, weil alle ihre Probleme haben und Ihnen in höchstens einem Jahr die Plattformen ausgehen, wenn Sie diesen Ansatz wählen. Wenn ein System Sie jedoch ständig im Stich lässt, sollten Sie entweder auf ein robusteres System migrieren oder zumindest Ihr System neu planen, damit anfällige Komponenten in Watte eingewickelt und so weit wie möglich von feindlichen Augen entfernt bleiben.
  3. War der Fehler ein von Ihnen entwickelter Fehler im Code (oder ein für Sie arbeitender Auftragnehmer)? Wenn ja, müssen Sie Ihren Ansatz zur Genehmigung von Code für die Bereitstellung auf Ihrer Live-Site überdenken? Könnte der Fehler durch ein verbessertes Testsystem oder durch Änderungen an Ihrem Codierungsstandard behoben worden sein (z. B. ist die Technologie kein Allheilmittel, aber Sie können die Wahrscheinlichkeit eines erfolgreichen SQL-Injection-Angriffs durch Verwendung gut dokumentierter Codierungstechniken verringern ).
  4. War der Fehler auf ein Problem mit der Bereitstellung des Servers oder der Anwendungssoftware zurückzuführen? Wenn ja, verwenden Sie automatisierte Verfahren, um Server zu erstellen und bereitzustellen, wo dies möglich ist? Dies ist eine große Hilfe bei der Aufrechterhaltung eines konsistenten "Grundzustands" auf allen Servern, bei der Minimierung des Aufwands an benutzerdefinierter Arbeit, die für jeden einzelnen Server ausgeführt werden muss, und somit hoffentlich bei der Minimierung der Möglichkeit, dass ein Fehler gemacht wird. Gleiches gilt für die Code-Bereitstellung. Wenn Sie etwas "Besonderes" für die Bereitstellung der neuesten Version Ihrer Web-App benötigen, versuchen Sie, diese zu automatisieren und sicherzustellen, dass sie immer auf konsistente Weise durchgeführt wird.
  5. Könnte das Eindringen früher mit einer besseren Überwachung Ihrer Systeme aufgefangen worden sein? Natürlich ist eine 24-Stunden-Überwachung oder ein Bereitschaftssystem für Ihre Mitarbeiter möglicherweise nicht kosteneffektiv, aber es gibt Unternehmen, die Ihre Web-Services für Sie überwachen und Sie im Falle eines Problems benachrichtigen können. Sie könnten sich entscheiden, dass Sie sich das nicht leisten können oder es nicht brauchen, und das ist in Ordnung. Berücksichtigen Sie es einfach.
  6. Verwenden Sie Werkzeuge wie Tripwire und Nessus, wo dies angebracht ist - aber verwenden Sie sie nicht einfach blind, weil ich es gesagt habe. Nehmen Sie sich die Zeit, um zu lernen, wie Sie einige gute Sicherheitstools verwenden, die für Ihre Umgebung geeignet sind, halten Sie diese Tools auf dem neuesten Stand und verwenden Sie sie regelmäßig.
  7. Ziehen Sie in Betracht, Sicherheitsexperten einzustellen, um die Sicherheit Ihrer Website regelmäßig zu überprüfen. Auch hier könnten Sie sich entscheiden, dass Sie sich das nicht leisten können oder es nicht brauchen, und das ist in Ordnung. Berücksichtigen Sie es einfach.

Welche Maßnahmen können Sie ergreifen, um die Folgen eines erfolgreichen Angriffs zu verringern?

Wenn Sie der Meinung sind, dass das "Risiko" einer Überflutung in der unteren Etage Ihres Hauses hoch ist, aber nicht hoch genug, um einen Umzug zu rechtfertigen, sollten Sie zumindest die unersetzlichen Familienerbstücke nach oben bringen. Richtig?

  1. Können Sie die Anzahl der Dienste reduzieren, die direkt dem Internet ausgesetzt sind? Können Sie eine Lücke zwischen Ihren internen Diensten und Ihren internetfähigen Diensten aufrechterhalten? Dies stellt sicher, dass selbst wenn Ihre externen Systeme gefährdet sind, die Chancen, dies als Sprungbrett für Angriffe auf Ihre internen Systeme zu verwenden, begrenzt sind.
  2. Speichern Sie Informationen, die Sie nicht speichern müssen? Speichern Sie solche Informationen "online", wenn sie woanders archiviert werden könnten? Es gibt zwei Punkte zu diesem Teil; Das offensichtliche ist, dass die Leute keine Informationen von Ihnen stehlen können, die Sie nicht haben, und der zweite Punkt ist, dass je weniger Sie speichern, desto weniger Sie warten und programmieren müssen, und daher gibt es weniger Chancen, dass Fehler ins Spiel kommen Ihr Code oder Systemdesign.
  3. Verwenden Sie für Ihre Web-App die Prinzipien des geringsten Zugriffs? Wenn Benutzer nur aus einer Datenbank lesen müssen, stellen Sie sicher, dass das Konto, mit dem die Web-App diese verwaltet, nur Lesezugriff hat, keinen Schreibzugriff zulässt und erst recht keinen Zugriff auf Systemebene.
  4. Wenn Sie mit etwas nicht sehr erfahren sind und es für Ihr Unternehmen nicht von zentraler Bedeutung ist, sollten Sie es auslagern. Mit anderen Worten, wenn Sie eine kleine Website betreiben, auf der über das Schreiben von Desktopanwendungscode gesprochen wird, und beschließen, kleine Desktopanwendungen von der Website aus zu verkaufen, sollten Sie Ihr Kreditkartenbestellsystem an jemanden wie Paypal auslagern.
  5. Wenn möglich, sollten Sie das Üben der Wiederherstellung von gefährdeten Systemen in Ihren Disaster Recovery-Plan aufnehmen. Dies ist wohl nur ein weiteres "Katastrophenszenario", dem Sie begegnen könnten, einfach eines mit einer Reihe von Problemen und Problemen, die sich von dem üblichen "Serverraum in Flammen" unterscheiden.

... Und schlussendlich

Ich habe wahrscheinlich jede Menge Dinge ausgelassen, die andere für wichtig halten, aber die obigen Schritte sollten Ihnen zumindest dabei helfen, Dinge zu sortieren, wenn Sie das Pech haben, Hackern zum Opfer zu fallen.

Vor allem: Keine Panik. Denk nach bevor du handelst. Handle fest, sobald du eine Entscheidung getroffen hast, und hinterlasse unten einen Kommentar, wenn du meiner Liste der Schritte etwas hinzuzufügen hast.

Rob Moir
quelle
8
+1 für einen hervorragenden Beitrag, der zur Hand ist, damit die Leute eine Richtung einschlagen können. Ich weiß, wie häufig es für Amateur-Serveradministratoren vorkommt, in diesen Panikmodus zu geraten, wenn ihnen zum ersten Mal ein "Hack" passiert. Es ist ein großer Fehler, an diesem Ort zu sein, aber es passiert. Die Hoffnung wäre, dass dies nicht zweimal der gleichen Person passiert.
Andrew Barber
33
+1 "... aber dies ist nicht die Zeit, dein Ego in die Quere zu bringen, was du tun musst." Dies ist wichtig, damit Sys-Administratoren manchmal verstehen. Egal wie gut Sie informiert sind, es gibt immer diejenigen (manchmal böswillige), die kompetenter oder schlauer sind als Sie.
Grahamux
11
Gute Antwort. Ich bin mir nicht sicher, warum jeder den Schritt "Call Law Enforcement" als optional betrachtet. Wenn Sie für die Daten anderer Personen verantwortlich sind (und sich Sorgen um Rechtsstreitigkeiten machen), sollte dies eines der ersten Dinge auf Ihrer Liste der zu erledigenden Dinge sein.
WDS
8
Sehr gut geschrieben, nur eine Frage: "Machen Sie eine vollständige und offene Offenlegung gegenüber allen potenziell Betroffenen auf einmal." Ehrlich, aber nicht immer richtig. Wenn Sie auf einen Kompromiss reagieren, müssen Sie möglicherweise einige Governance-Probleme lösen, und Ihr Unternehmen wird Ihnen im Allgemeinen Abstriche machen. Die Offenlegung oder Nichtoffenlegung kann jedoch insbesondere dann erfolgen, wenn die Auswirkungen auf den Datenschutz möglicherweise über Ihrer Gehaltsstufe liegen könnte rechtliche Auswirkungen haben. Es ist möglicherweise besser vorzuschlagen, dass Sie die Person, die für den Datenschutz verantwortlich ist (wenn Sie es nicht sind), unverzüglich informieren und URGE eine vollständige Offenlegung vornehmen.
TheoJones
5
@GilesRoberts-Hosts für virtuelle Maschinen verfügen normalerweise über ein Control Panel, über das Sie die Einstellungen ihrer Gäste ändern und sogar fernsteuern können, ohne RDP oder SSH zu verwenden, um sich tatsächlich beim Gast anzumelden. Sie sollten in der Lage sein, den Gast mithilfe der Steuerelemente des Hosts zu isolieren. Verwenden Sie dann die Remote-Anzeige-Tools, um den Gast nach Belieben zu untersuchen.
Rob Moir
204

Es hört sich so an, als wären Sie etwas über Ihrem Kopf. das ist okay. Rufen Sie Ihren Chef an und fangen Sie an, über ein Notfallbudget für Sicherheitsmaßnahmen zu verhandeln. $ 10.000 könnten ein guter Anfang sein. Dann müssen Sie jemanden (einen PJ, einen Kollegen, einen Manager) dazu bringen, Firmen anzurufen, die sich auf die Reaktion auf Sicherheitsvorfälle spezialisiert haben. Viele können innerhalb von 24 Stunden und manchmal sogar schneller antworten, wenn sie ein Büro in Ihrer Stadt haben.

Sie brauchen auch jemanden, der Kunden anspricht. Zweifellos ist das schon jemand. Jemand muss mit ihnen telefonieren, um zu erklären, was los ist, was getan wird, um mit der Situation umzugehen, und um ihre Fragen zu beantworten.

Dann müssen Sie ...

  1. Bleib ruhig. Wenn Sie für die Reaktion auf Vorfälle zuständig sind, müssen Sie jetzt ein Höchstmaß an Professionalität und Führungsqualitäten unter Beweis stellen. Dokumentieren Sie alles, was Sie tun, und informieren Sie Ihren Manager und Ihr Führungsteam über wichtige Maßnahmen. Dazu gehört das Arbeiten mit einem Reaktionsteam, das Deaktivieren von Servern, das Sichern von Daten und das erneute Online-Schalten. Sie brauchen keine blutigen Details, aber sie sollten alle 30 Minuten oder so von Ihnen hören.

  2. Sei realistisch. Sie sind kein Sicherheitsexperte und es gibt Dinge, die Sie nicht kennen. Das ist okay. Wenn Sie sich bei Servern anmelden und Daten anzeigen, müssen Sie Ihre Grenzen kennen. Vorsichtig treten. Stellen Sie im Verlauf Ihrer Untersuchung sicher, dass Sie nicht auf wichtige Informationen herumstampfen oder etwas ändern, das später benötigt wird. Wenn Sie sich unwohl fühlen oder vermuten, ist dies ein guter Ort, um anzuhalten und einen erfahrenen Fachmann zur Übernahme zu bewegen.

  3. Besorgen Sie sich einen sauberen USB-Stick und Ersatzfestplatten. Hier sammeln Sie Beweise. Machen Sie Backups von allem, was Sie für relevant halten. Kommunikation mit Ihrem ISP, Netzwerk-Dumps usw. Auch wenn die Strafverfolgung keine Rolle spielt, sollten Sie im Falle einer Klage nachweisen, dass Ihr Unternehmen den Sicherheitsvorfall professionell und angemessen gehandhabt hat.

  4. Am wichtigsten ist es, den Verlust zu stoppen. Identifizieren und Unterbinden des Zugriffs auf gefährdete Dienste, Daten und Computer. Am besten ziehen Sie am Netzwerkkabel. Wenn Sie nicht können, ziehen Sie den Strom.

  5. Als nächstes müssen Sie den Angreifer entfernen und die Lücke (n) schließen. Vermutlich hat der Angreifer keinen interaktiven Zugriff mehr, weil Sie das Netzwerk gezogen haben. Sie müssen jetzt identifizieren, dokumentieren (mit Backups, Screenshots und Ihren eigenen persönlichen Beobachtungsnotizen oder vorzugsweise sogar durch Entfernen der Laufwerke von den betroffenen Servern und Erstellen einer vollständigen Disk-Image-Kopie) und dann den Code und die Prozesse entfernen, die er zurückgelassen hat . Dieser nächste Teil wird nicht funktionieren, wenn Sie keine Backups haben. Sie können versuchen, den Angreifer von Hand aus dem System zu entwirren, aber Sie werden nie sicher sein, dass Sie alles haben, was er zurückgelassen hat. Rootkits sind bösartig und nicht alle sind nachweisbar. Die beste Antwort besteht darin, die Sicherheitsanfälligkeit zu identifizieren, Image-Kopien der betroffenen Datenträger zu erstellen, die betroffenen Systeme zu bereinigen und von einer als funktionierend bekannten Sicherung neu zu laden. Don' t Vertrauen Sie blindlings Ihrem Backup. überprüfe es! Reparieren oder schließen Sie die Sicherheitsanfälligkeit, bevor der neue Host erneut in das Netzwerk eingebunden wird, und schalten Sie ihn dann online.

  6. Organisieren Sie alle Ihre Daten in einem Bericht. An diesem Punkt ist die Sicherheitslücke geschlossen und Sie haben etwas Zeit zum Atmen. Seien Sie nicht versucht, diesen Schritt zu überspringen. es ist noch wichtiger als der Rest des Prozesses. In dem Bericht müssen Sie ermitteln, was schief gelaufen ist, wie Ihr Team reagiert hat und welche Schritte Sie unternehmen, um zu verhindern, dass dieser Vorfall erneut auftritt. Sei so detailliert wie möglich; Dies ist nicht nur für Sie, sondern für Ihr Management und als Verteidigung in einer potenziellen Klage.

Das ist eine himmelhohe Überprüfung dessen, was zu tun ist. Die meiste Arbeit besteht lediglich aus Dokumentation und Backup-Verwaltung. Keine Panik, du kannst das Zeug machen. Ich empfehle dringend , dass Sie professionelle Sicherheitshilfe erhalten. Selbst wenn Sie mit den Vorgängen fertig werden, wird ihre Hilfe von unschätzbarem Wert sein und sie werden normalerweise mit Ausrüstung geliefert, um den Prozess einfacher und schneller zu gestalten. Wenn Ihr Chef auf Kosten stößt, erinnern Sie ihn daran, dass es im Vergleich zur Bearbeitung eines Rechtsstreits sehr klein ist.

Sie haben meinen Trost für Ihre Situation. Viel Glück.

Blueben
quelle
19
+1 Gute Antwort. Es hört sich so an, als ob das OP keine vordefinierte "Notfallreaktion" hat und Ihr Beitrag sollte unter anderem darauf hinweisen, dass es so eingerichtet wird.
Rob Moir
109

CERT hat ein Dokument Schritte zur Wiederherstellung von einem UNIX- oder NT-System-Kompromiss , das gut ist. Die spezifischen technischen Details dieses Dokuments sind etwas veraltet, aber ein Großteil der allgemeinen Hinweise gilt immer noch direkt.

Dies ist eine kurze Zusammenfassung der grundlegenden Schritte.

  • Wenden Sie sich an Ihre Sicherheitsrichtlinie oder das Management.
  • Holen Sie sich die Kontrolle (schalten Sie den Computer offline)
  • Analysieren Sie das Eindringen, rufen Sie Protokolle ab und finden Sie heraus, was schief gelaufen ist
  • Repariere Sachen
    • Installieren Sie eine saubere Version Ihres Betriebssystems !!! Wenn das System kompromittiert wurde, können Sie ihm nicht vertrauen.
  • Aktualisieren Sie die Systeme, damit dies nicht noch einmal passieren kann
  • Setzen Sie den Betrieb fort
  • Aktualisieren Sie Ihre Richtlinie für die Zukunft und dokumentieren Sie sie

Ich möchte Sie ausdrücklich auf Abschnitt E.1 verweisen.

E.1. Denken Sie daran, dass bei einer Gefährdung eines Computers alles auf diesem System geändert werden könnte, einschließlich des Kernels, der Binärdateien, der Datendateien, der ausgeführten Prozesse und des Speichers. Im Allgemeinen besteht die einzige Möglichkeit, darauf zu vertrauen, dass eine Maschine frei von Hintertüren und Änderungen durch Eindringlinge ist, in der Neuinstallation des Betriebs

Wenn Sie noch kein System wie Tripwire installiert haben, können Sie nicht zu 100% sicher sein, dass Sie das System bereinigt haben.

Zoredache
quelle
26
Auch dann kann Tripwire mit Kernel-Modulen und so getäuscht werden. Neu installieren.
Reconbot
Die damit verbundene Frage, wie in einer Krise zu reagieren ist, kann hier ebenfalls hilfreich sein.
Zoredache
67
  1. Identifizieren Sie das Problem. Lesen Sie die Protokolle.
  2. Enthalten . Sie haben den Server getrennt, das ist also erledigt.
  3. Ausrotten . Installieren Sie das betroffene System höchstwahrscheinlich neu. Löschen Sie jedoch nicht die Festplatte des gehackten Computers, sondern verwenden Sie eine neue. Es ist sicherer, und Sie benötigen möglicherweise den alten, um hässliche Hacks, die nicht gesichert wurden, wiederherzustellen und forensische Untersuchungen durchzuführen, um herauszufinden, was passiert ist.
  4. Erholen . Installieren Sie alles, was Sie brauchen, und stellen Sie Backups wieder her, um Ihre Kunden online zu bringen.
  5. Follow-up . Finden Sie heraus, was das Problem war, und verhindern Sie, dass es erneut auftritt.
Jakob Borg
quelle
52

Roberts "bittere Pille" -Antwort ist genau richtig, aber völlig allgemein gehalten (genau wie Ihre Frage). Es hört sich so an, als hätten Sie ein Verwaltungsproblem und benötigen dringend einen Vollzeit-Systemadministrator, wenn Sie einen Server und 600 Clients haben, aber das hilft Ihnen jetzt nicht weiter.

Ich betreibe eine Hosting-Firma, die in dieser Situation ein wenig Handarbeit leistet, also beschäftige ich mich mit vielen kompromittierten Maschinen, aber auch mit Best Practices für unsere eigenen. Wir weisen unsere kompromittierten Kunden immer an, neu zu erstellen, es sei denn, sie sind sich der Art eines Kompromisses nicht absolut sicher. Langfristig gibt es keinen anderen verantwortlichen Weg.

Sie sind jedoch mit ziemlicher Sicherheit nur das Opfer eines Script-Kiddys, der eine Startrampe für DoS-Angriffe oder IRC-Bouncer oder etwas, das in keiner Beziehung zu den Websites und Daten Ihrer Kunden steht, haben möchte. Daher sollten Sie als vorübergehende Maßnahme bei der Neuerstellung in Betracht ziehen, eine starke ausgehende Firewall auf Ihrer Box zu installieren. Wenn Sie alle ausgehenden UDP- und TCP-Verbindungen blockieren können, die für das Funktionieren Ihrer Sites nicht unbedingt erforderlich sind, können Sie Ihre kompromittierte Box für jeden, der sie von Ihnen ausleiht, unbrauchbar machen und die Auswirkungen auf das Netzwerk Ihres Providers auf Null reduzieren.

Dieser Vorgang kann einige Stunden dauern, wenn Sie dies noch nicht getan haben und noch nie über eine Firewall nachgedacht haben. Er kann Ihnen jedoch dabei helfen, den Dienst Ihres Clients wiederherzustellen, wenn das Risiko besteht, dem Angreifer weiterhin Zugriff auf die Daten Ihres Clients zu gewähren . Da Sie sagen, dass Sie Hunderte von Kunden auf einem Computer haben, hosten Sie vermutlich kleine Broschürenwebsites für kleine Unternehmen und nicht 600 E-Commerce-Systeme voller Kreditkartennummern. Wenn dies der Fall ist, kann dies ein akzeptables Risiko für Sie sein. Stellen Sie sicher, dass Ihr System schneller wieder online ist, als 600 Sites auf Sicherheitslücken zu überprüfen, bevor Sie etwas zurückbringen. Sie werden jedoch wissen, welche Daten vorhanden sind und wie komfortabel Sie diese Entscheidung treffen würden.

Dies ist absolut keine bewährte Methode, aber wenn dies bei Ihrem Arbeitgeber bisher nicht der Fall war, müssen Sie mit dem Finger darüber wedeln und Zehntausende Pfund für ein SWAT-Team verlangen, weil Sie der Meinung sind, dass dies Ihre Schuld ist (auch wenn dies nicht gerechtfertigt ist!). ) klingt nicht nach der praktischen Option.

Die Hilfe Ihres Internetdienstanbieters wird hier von entscheidender Bedeutung sein. Einige Internetdienstanbieter bieten eine Konsolenserver- und Netzwerk-Boot-Umgebung (Plug-in, aber Sie wissen zumindest, nach welcher Möglichkeit Sie suchen müssen), mit der Sie den Server verwalten können, während Sie nicht mit dem Netzwerk verbunden sind. Wenn dies überhaupt eine Option ist, fragen Sie danach und verwenden Sie sie.

Langfristig sollten Sie jedoch einen Systemneubau planen, der auf Roberts Beitrag und einer Prüfung jedes Standorts und seiner Einrichtung basiert. Wenn Sie keinen Sysadmin zu Ihrem Team hinzufügen können, suchen Sie nach einem Managed-Hosting- Angebot, bei dem Sie Ihrem ISP für Sysadminning-Hilfe und eine 24-Stunden-Antwort auf solche Fragen bezahlen. Viel Glück :)

Matthew Bloch
quelle
41

Sie müssen neu installieren. Speichern Sie, was Sie wirklich brauchen. Beachten Sie jedoch, dass alle Ihre ausführbaren Dateien möglicherweise infiziert und manipuliert sind. Ich habe folgendes in Python geschrieben: http://frw.se/monty.py , das MD5-Sumbs aller Ihrer Dateien in einem bestimmten Verzeichnis erstellt. Wenn Sie es das nächste Mal ausführen, wird überprüft, ob etwas geändert wurde, und was dann ausgegeben Dateien geändert und was in den Dateien geändert.

Dies kann nützlich für Sie sein, um festzustellen, ob seltsame Dateien regelmäßig geändert werden.

Das Einzige, was Sie jetzt tun sollten, ist, Ihren Computer aus dem Internet zu entfernen.

Filip Ekberg
quelle
13
Also ... du hast Tripwire implementiert.
womble
13
Ja, stimmt etwas damit nicht?
Filip Ekberg
1
+1 für ziehen, analysieren (jemanden dazu bringen, echte Forensik zu
betreiben
4
Wenn Sie die Wahl zwischen einem anonymen Python-Skript und einer dokumentierten, (etwas) unterstützten, gut verstandenen Standardlösung haben, hoffen Sie, dass sie sich für das erstere entscheiden?
Tripleee
37

HINWEIS: Dies ist keine Empfehlung. Mein spezielles Incident Response- Protokoll würde wahrscheinlich nicht unverändert auf Grant unwins Fall zutreffen.

In unseren akademischen Einrichtungen haben wir ungefähr 300 Forscher, die nur rechnen. Sie haben 600 Clients mit Websites, sodass Ihr Protokoll wahrscheinlich anders sein wird.

Die ersten Schritte in unserem " Wenn ein Server gefährdet wird" -Protokoll sind:

  1. Identifizieren Sie, dass der Angreifer in der Lage war, root zu werden (erhöhte Rechte).
  2. Trennen Sie die betroffenen Server. Netzwerk oder Strom? Bitte sehen Sie eine separate Diskussion .
  3. Überprüfen Sie alle anderen Systeme
  4. Booten Sie die betroffenen Server von einer Live-CD
  5. (optional) Holen Sie sich die Images aller Systemlaufwerke mitdd
  6. Starten Sie die Post-Mortem-Forensik. Schauen Sie sich die Protokolle an, ermitteln Sie den Zeitpunkt des Angriffs und suchen Sie nach Dateien, die zu diesem Zeitpunkt geändert wurden. Versuchen Sie, das Wie zu beantworten ? Frage.

    • Planen Sie parallel dazu die Wiederherstellung und führen Sie sie aus.
    • Setzen Sie alle Root- und Benutzerkennwörter zurück, bevor Sie den Dienst fortsetzen

Selbst wenn "alle Backdoors und Rootkits bereinigt wurden", vertrauen Sie diesem System nicht - installieren Sie es von Grund auf neu.

Aleksandr Levchuk
quelle
23
-1 Server vom Stromnetz trennen? Sie haben gerade die Hälfte Ihrer forensischen Daten verloren!
Josh Brower
@Josh, ich habe meine Antwort angepasst - jetzt ist sie bei der Frage, was zu entfernen ist, neutral.
Aleksandr Levchuk
5
RAM-Forensik (zB / dev / shm) kann hilfreich sein. Ich ziehe es vor, das Netzkabel abzuziehen (aber versuche mich rsynckurz vorher einzuloggen und / oder zu bearbeiten). Wir werden möglicherweise auch häufige VM-Snapshots einführen, damit RAM-Forensik möglich ist. Die Gründe für das Stromkabel sind: (1) Wenn Sie in einem gehackten System Forensik betreiben, treten Sie "über den gesamten Tatort"; (2) Das Root-Kit läuft weiter - es ist nicht so schwer für die Angreifer, beim Ereignis " Network Link Down" etwas auszuführen (z. B. Systemausfall) . Kyle Rankin empfahl in seinem netten Intro to Forensics-Vortrag ( goo.gl/g21Ok ), am Stromkabel zu ziehen.
Aleksandr Levchuk
4
Es gibt keine Einheitsgröße für alle IR-Protokolle. Einige Organisationen müssen das gefährdete System möglicherweise aus irgendeinem Grund noch eine Weile online lassen. Mein Punkt ist, dass es besser ist, ein generisches IR-Protokoll (wie Jakob Borgs oben) zu empfehlen, als eines, das mit "Ziehen Sie den Netzstecker des kompromittierten Servers" beginnt. "
Josh Brower
31

Nach meiner begrenzten Erfahrung sind Systemkompromisse unter Linux in der Regel umfassender als unter Windows. Die Root-Kits enthalten mit größerer Wahrscheinlichkeit das Ersetzen von System-Binärdateien durch benutzerdefinierten Code, um die Malware zu verbergen, und die Barriere für das Hot-Patching des Kernels ist etwas geringer. Außerdem ist es das Heimbetriebssystem für viele Malware-Autoren. Die allgemeine Anleitung besteht immer darin, den betroffenen Server von Grund auf neu zu erstellen, und dies ist aus einem bestimmten Grund die allgemeine Anleitung.

Formatieren Sie diesen Welpen.

Aber wenn Sie es nicht wieder aufbauen können (oder die-Mächte-die-es-sein werden, lassen Sie es nicht wieder aufbauen, obwohl Sie anstrengend darauf bestehen, dass es gebraucht wird), wonach suchen Sie?

Da es sich so anhört, als wäre es eine Weile her, seit das Eindringen entdeckt und eine Systemwiederherstellung durchgeführt wurde, ist es sehr wahrscheinlich, dass die Spuren, wie sie hereingekommen sind, in der Stampede herumgetrampelt wurden, um den Dienst wiederherzustellen. Unglücklich.

Ungewöhnlicher Netzwerkverkehr ist wahrscheinlich am einfachsten zu finden, da dabei nichts auf der Box ausgeführt wird und alles ausgeführt werden kann, während der Server in Betrieb ist und was auch immer getan wird. Vorausgesetzt natürlich, Ihre Netzwerkausrüstung erlaubt das Überspannen von Ports. Was Sie finden, kann diagnostisch sein oder nicht, aber es sind zumindest Informationen. Ungewöhnlicher Datenverkehr ist ein starker Beweis dafür, dass das System immer noch kompromittiert ist und reduziert werden muss. Es könnte gut genug sein, um TPTB davon zu überzeugen, dass eine Neuformatierung wirklich die Ausfallzeit wert ist.

Andernfalls nehmen Sie eine Kopie Ihrer Systempartitionen und hängen Sie sie auf eine andere Box. Vergleichen Sie Inhalte mit einem Server auf der gleichen Patch-Ebene wie der gefährdete. Es sollte Ihnen helfen, das zu identifizieren, was anders aussieht (diese md5sums wieder) und möglicherweise auf übersehene Bereiche auf dem gefährdeten Server hinweisen. Dies ist eine Menge Durchsuchen von Verzeichnissen und Binärdateien und wird ziemlich arbeitsintensiv sein. Es kann sogar arbeitsintensiver sein als eine Neuformatierung / Wiederherstellung, und es kann eine andere Sache sein, TPTB dazu zu bringen, die tatsächlich benötigte Neuformatierung durchzuführen.

sysadmin1138
quelle
2
"Formatieren Sie diesen Welpen." - +1, Weiser Rat. Siehe auch: "Nuke es aus dem Orbit, es ist der einzige Weg, um sicher zu sein."
Avery Payne
31

Ich würde sagen, dass @Robert Moir, @Aleksandr Levchuk, @blueben und @Matthew Bloch in ihren Antworten ziemlich genau passen.

Die Antworten der verschiedenen Poster sind jedoch unterschiedlich - einige sind eher hochrangig und besprechen, welche Verfahren (im Allgemeinen) Sie anwenden sollten.

Ich würde es vorziehen, dies in mehrere separate Teile aufzuteilen. 1) Triage, AKA Wie gehe ich mit den Kunden und den rechtlichen Konsequenzen um und lege fest, wohin ich von dort aus gehen soll ) Reaktion auf Vorfälle 4) Post-mortem-Forensik 5) Korrekturmaßnahmen und Änderungen an der Architektur

(Fügen Sie hier eine Antworterklärung mit SANS GSC-Zertifikat ein.) Aufgrund früherer Erfahrungen würde ich Folgendes sagen:

Unabhängig davon, wie Sie mit Kundenantworten, Benachrichtigungen, rechtlichen und zukünftigen Plänen umgehen, möchte ich mich lieber auf das Hauptproblem konzentrieren. Die ursprüngliche Frage des OP bezieht sich eigentlich nur direkt auf # 2 und # 3. Im Grunde genommen geht es darum, wie Sie den Angriff stoppen und Kunden so schnell wie möglich wieder online stellen können.

Die restlichen Antworten sind großartig und decken eine Vielzahl von bewährten Methoden und Methoden ab, um zu verhindern, dass dies in Zukunft geschieht, und um besser darauf zu reagieren.

Es hängt wirklich vom Budget des OP ab und davon, in welchem ​​Industriezweig sie sich befinden, welche Lösung sie sich wünschen usw.

Möglicherweise müssen sie eine dedizierte SA vor Ort beauftragen. Vielleicht brauchen sie eine Sicherheitsperson. Oder sie benötigen eine vollständig verwaltete Lösung wie Firehost oder Rackspace Managed, Softlayer, ServePath usw.

Es kommt wirklich darauf an, was für ihr Geschäft funktioniert. Vielleicht liegt ihre Kernkompetenz nicht in der Serververwaltung, und es macht keinen Sinn, dass sie versuchen, diese zu entwickeln. Oder vielleicht sind sie bereits eine ziemlich technische Organisation und können die richtigen Einstellungsentscheidungen treffen und ein engagiertes Team auf Vollzeit stellen.

Zachary Hanna
quelle
1
Ja, es kommt darauf an, wir wissen. Zu sagen, dass hilft nicht wirklich viel.
DOK
27

Nachdem wir uns an die Arbeit gemacht und einen Blick auf den Server geworfen hatten, konnten wir das Problem herausfinden. Glücklicherweise wurden die fehlerhaften Dateien an einem Sonntag in das System hochgeladen, wenn das Büro geschlossen ist und außer Protokollen und Cache-Dateien keine Dateien erstellt werden sollten. Mit einem einfachen Shell-Befehl können wir herausfinden, welche Dateien an diesem Tag erstellt wurden.

Alle anstößigen Dateien befanden sich anscheinend auf einigen unserer älteren Zencart-Sites im Ordner / images /. Es scheint, dass es eine Sicherheitslücke gab, die es jedem Idioten ermöglichte, Nicht-Bilder in den Bild-Upload-Bereich im Admin-Bereich hochzuladen. Wir haben die anstößigen .php-Dateien gelöscht und die Upload-Skripte korrigiert, um das Hochladen von Dateien zu verhindern, die keine Bilder sind.

Rückblickend war es ganz einfach und ich habe diese Frage auf meinem iPhone auf dem Weg zur Arbeit gestellt. Vielen Dank für all eure Hilfe.

Als Referenz für jeden, der diesen Beitrag in Zukunft besucht. Ich würde nicht empfehlen, den Netzstecker zu ziehen.

gunwin
quelle
Grant, ich bin froh, dass es für dich reibungslos geklappt hat. Es war etwas Nebensächliches - viel weniger ernst, als viele von uns annahmen. Diese Diskussion brachte mir eine Lektion über Kommunikation bei, gab viele gute Tipps und Denkanstöße zu unanständigen Antworten.
Aleksandr Levchuk
3
Vielen Dank, dass Sie zurückgekommen sind und uns mitgeteilt haben, wie es Ihnen ergangen ist. Wie Sie sehen, hat Ihre Frage eine Menge Diskussionen ausgelöst. Ich bin froh, dass Sie davon nicht allzu sehr betroffen zu sein scheinen und dass Ihre Lösung letztendlich ganz einfach war.
Rob Moir
5
Dies sollte ein Kommentar sein (oder als Text in Ihre Frage aufgenommen werden), keine Antwort auf Ihre Frage.
Techboy
5
@ Techboy: Es scheint, dass er seine SO- und SF-Konten noch nicht zugeordnet hat, sodass er seine Frage nicht bearbeiten kann. @Grant: Sie können Ihre Konten über den Bereich "Konten" auf Ihrer Benutzerseite zuordnen.
Hippo
1
Woher wissen Sie, dass ohne Basiskonfiguration kein Rootkit ausgeführt wird?
Der Unix-Hausmeister
18

Ich habe wenig zu den umfangreichen technischen Antworten beizutragen, aber bitte beachten Sie auch einige davon:

Nichttechnische Maßnahmen:

  • Melden Sie den Vorfall intern.
    Wenn Sie noch keinen Plan für die Reaktion auf Vorfälle haben, scheint dies eine CYA-Technik zu sein, aber die IT-Abteilung ist nicht der einzige und oft nicht einmal der beste Ort, um die geschäftlichen Auswirkungen eines kompromittierten Servers zu bestimmen .
    Geschäftsanforderungen können Ihre technischen Bedenken übertreffen. Sagen Sie nicht "Ich habe es Ihnen gesagt" und die Priorität von geschäftlichen Bedenken ist der Grund, warum Sie diesen kompromittierten Server überhaupt haben. (" Lassen Sie das für den Nachbericht. ")

  • Das Vertuschen eines Sicherheitsvorfalls ist keine Option.

  • Berichterstattung an die lokalen Behörden.
    ServerFault ist NICHT der Ort für Rechtsberatung, dies sollte jedoch in einen Notfallplan aufgenommen werden.
    In einigen Regionen und / oder regulierten Branchen ist es obligatorisch, (bestimmte) Sicherheitsvorfälle den örtlichen Strafverfolgungsbehörden oder Regulierungsbehörden zu melden oder betroffene Kunden / Benutzer zu informieren.
    Unabhängig davon wird weder die Entscheidung zur Berichterstattung noch die eigentliche Berichterstattung ausschließlich in der IT-Abteilung getroffen. Erwarten Sie die Einbeziehung des Managements sowie der Abteilungen für Recht und Unternehmenskommunikation (Marketing).
    Sie sollten wahrscheinlich nicht zu viel erwarten, das Internet ist ein großer Ort, an dem Grenzen wenig Bedeutung haben, aber die Cyber-Kriminalitätsabteilungen, die in vielen Polizeidienststellen existieren, lösen digitale Verbrechen und können die Schuldigen vor Gericht bringen.

HBruijn
quelle
16

Ich denke, es läuft alles auf Folgendes hinaus:

Wenn Sie Ihren Job schätzen, sollten Sie einen Plan haben und ihn regelmäßig überarbeiten.

Wenn Sie nicht planen, ist ein Fehlschlagen geplant, und es ist nirgendwo anders wahrer als in Bezug auf die Systemsicherheit. Wenn <redacted> den Fan trifft, solltest du besser bereit sein, damit umzugehen.

Hier gilt ein anderes (etwas klischeehaftes) Sprichwort: Vorbeugen ist besser als heilen .

Hier wurde eine Reihe von Empfehlungen gegeben, um Experten für die Prüfung Ihrer vorhandenen Systeme zu gewinnen. Ich denke, dies stellt die Frage zum falschen Zeitpunkt. Diese Frage hätte gestellt werden müssen, als das System eingerichtet und die Antworten dokumentiert wurden. Die Frage sollte auch nicht lauten: "Wie können wir Menschen davon abhalten, einzubrechen?" Es sollte lauten: "Warum sollten die Leute überhaupt einbrechen können?" Die Überwachung einer Reihe von Lücken in Ihrem Netzwerk funktioniert nur, bis neue Lücken gefunden und ausgenutzt wurden. Auf der anderen Seite werden Netzwerke, die von Grund auf so konzipiert sind, dass sie nur auf bestimmte Weise auf bestimmte Systeme in einem sorgfältig choreografierten Tanz reagieren, von einer Prüfung überhaupt nicht profitieren und die Gelder werden eine Verschwendung sein.

Fragen Sie sich, bevor Sie ein System ins Internet stellen - muss dies zu 100% auf das Internet ausgerichtet sein? Wenn nicht, dann nicht. Stellen Sie es eventuell hinter eine Firewall, um zu entscheiden, was im Internet angezeigt wird. Noch besser ist es, wenn die Firewall es Ihnen ermöglicht, die Übertragungen (über einen Reverse-Proxy oder einen Pass-Through-Filter) abzufangen und nur legitime Aktionen zuzulassen.

Dies wurde getan - es gibt (oder gab) irgendwo ein Internet-Banking-Setup, das einen Load-Balancing-Proxy für das Internet hat, mit dem sie Angriffe von ihrem Serverpool fernhalten wollten. Der Sicherheitsexperte Marcus Ranum überzeugte sie vom umgekehrten Ansatz, indem er den Reverse-Proxy verwendete, um nur bekannte gültige URLs durchzulassen und alles andere an einen 404-Server zu senden . Es hat den Test der Zeit überraschend gut überstanden.

Ein System oder Netzwerk, das auf einer Standardgenehmigung basiert, ist zum Scheitern verurteilt, sobald ein Angriff erfolgt, den Sie nicht vorausgesehen haben. Durch die Standardverweigerung haben Sie weitaus mehr Kontrolle darüber, was reinkommt und was nicht, weil Sie nichts von innen von außen sehen lassen, es sei denn, es muss verdammt gut sein .

Das alles ist jedoch kein Grund, selbstgefällig zu werden. In den ersten Stunden nach einer Verletzung sollten Sie noch einen Plan haben. Kein System ist perfekt und Menschen machen Fehler.

Aaron Mason
quelle
15

Ein netter Onliner hat mir kürzlich geholfen herauszufinden, wie ein Angreifer ein System kompromittieren kann. Einige Cracker versuchen, ihre Spuren zu verbergen, indem sie die Änderungszeit für Dateien fälschen. Durch Ändern der Änderungszeit wird die Änderungszeit aktualisiert (ctime). Sie können die Uhrzeit mit stat sehen.

Diese eine Zeile listet alle Dateien sortiert nach ctime auf:

find / -type f -print0 | xargs -0 stat --format '%Z :%z %n' | sort -nr > /root/all_files.txt

Wenn Sie also den Zeitpunkt der Kompromittierung ungefähr kennen, können Sie sehen, welche Dateien geändert oder erstellt wurden.


ah83
quelle