Frage Wie gehe ich mit einem kompromittierten Server um?


Das ist ein Kanonische Frage zur Serversicherheit - Reagieren auf Bruchereignisse (Hacking)
  Siehe auch:

Kanonische Version
Ich vermute, dass einer oder mehrere meiner Server durch einen Hacker, einen Virus oder einen anderen Mechanismus kompromittiert sind:

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

Originalfassung 

2011.01.02 - Ich bin um 21.30 Uhr auf dem Weg zur Arbeit. an einem Sonntag, weil unser Server irgendwie kompromittiert wurde und zu einem    DOS Angriff auf unseren Provider. Die Server greifen auf das Internet zu   wurde heruntergefahren, was bedeutet, dass über 5-600 unserer Kunden-Websites jetzt sind   Nieder. Nun könnte dies ein FTP-Hack oder eine Schwachstelle im Code sein   irgendwo. Ich bin mir nicht sicher, bis ich da bin.

Wie kann ich das schnell nachverfolgen? Wir haben eine Menge davon   Rechtsstreit, wenn ich den Server nicht so schnell wie möglich zurückbekomme. Jede Hilfe ist   geschätzt. Wir betreiben Open SUSE 11.0.


2011.01.03 - Danke an alle für Ihre Hilfe. Zum Glück war ich nicht die einzige Person, die für diesen Server verantwortlich war, nur der nächste. Wir haben es geschafft   um dieses Problem zu beheben, obwohl es möglicherweise nicht für viele andere in einem   andere situation. Ich werde detailliert beschreiben, was wir getan haben.

Wir haben den Server vom Netz getrennt. Es war Durchführung (Versuch zu   einen Denial-of-Service-Angriff auf einen anderen Server in Indonesien durchführen,   und der Schuldige war auch dort stationiert.

Zuerst versuchten wir herauszufinden, woher der Server kam,   Wenn man bedenkt, dass wir mehr als 500 Seiten auf dem Server haben, haben wir das erwartet   Mondschein für einige Zeit. Mit SSH-Zugriff liefen wir jedoch noch   Befehl, um alle Dateien zu finden, die in der Zeit der Angriffe bearbeitet oder erstellt wurden   gestartet. Zum Glück wurde die beleidigende Datei über den Winter erstellt   Feiertage, die dazu führten, dass nicht viele andere Dateien auf der Website erstellt wurden   Server zu dieser Zeit.

Wir waren dann in der Lage, die beleidigende Datei zu identifizieren, die sich in der. Befand   hochgeladener Bilderordner innerhalb eines ZenCart Webseite.

Nach einer kurzen Zigarettenpause kamen wir aufgrund der Akten zu dem Schluss   Ort, muss es über eine Datei Upload-Funktion hochgeladen worden sein   war ungenügend gesichert. Nachdem wir gegoogelt hatten, fanden wir heraus, dass es da war   eine Sicherheitslücke, durch die Dateien hochgeladen werden konnten, innerhalb der   ZenCart Admin Panel, für ein Bild für eine Plattenfirma. (Die Sektion   das es nie wirklich benutzt hat), dieses Formular einfach nur hochladen hochgeladen   Datei, es hat nicht die Erweiterung der Datei überprüft, und nicht einmal   Überprüfen Sie, ob der Benutzer angemeldet war.

Dies bedeutete, dass alle Dateien hochgeladen werden konnten, einschließlich einer PHP-Datei für   der Angriff. Wir haben die Sicherheitslücke mit ZenCart auf dem infizierten gesichert   Website und entfernte die störenden Dateien.

Der Job war erledigt, und ich war um 2 Uhr morgens zu Hause.


Die Moral   - Wenden Sie immer Sicherheits-Patches für ZenCart oder jedes andere CMS-System an. Wie wenn Sicherheitsupdates veröffentlicht werden, das Ganze   Die Welt wird auf die Schwachstelle aufmerksam gemacht.   - Führen Sie immer Backups durch und sichern Sie Ihre Backups.   - Beschäftige oder organisiere jemanden, der in Zeiten wie diesen da sein wird. Um zu verhindern, dass jemand sich auf einen panische Post auf dem Server verlässt   Fehler.


578
2018-01-02 21:31


Ursprung


Ich weiß, wie du dich fühlst - wir hatten sehr viel Glück mit "hilfreichen" Hackern auf dieser Seite, wo sie uns erzählen, was sie getan haben! Ich freue mich auf gute Antworten auf diese Frage, nur für den Fall, dass wir in Zukunft "nicht so hilfreiche" Gäste bekommen. - Jarrod Dixon♦
Rufen Sie einen Fachmann an, um zu helfen! - marcog
Ich möchte nicht clever oder unsympathisch klingen (ich auch nicht), und natürlich weiß ich nichts über die Einzelheiten Ihrer Situation, aber wenn Sie die einzige Person sind, die für ein 500-600 Site-Setup verantwortlich ist, könnte das passieren 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 innerhalb des Umfangs eines Programmierers, auch wenn es so aussieht. Vielleicht ist das eine Überlegung wert, wenn die Krise vorüber ist. Wie auch immer, gerade jetzt, viel Glück, um die Situation zu lösen. - Pekka 웃
Nehmen Sie nicht unbedingt an, Sie hätten ein vollständiges Kernel-Root-Kit und Ihr Root-Passwort ist kompromittiert. Es ist vielleicht nur ein hinterhältiges Bash / Perl-Skript, und es ist möglich, es zu reinigen, ohne zu formatieren, trotz allem, was der Chor hier anhat ... serverfault.com/questions/639699/ ... - Hayden Thring


Antworten:


Es ist schwer, einen konkreten Ratschlag von dem zu geben, was Sie hier gepostet haben, aber ich habe einen generischen Ratschlag, basierend auf einem Post, den ich vor Jahren geschrieben habe, als ich noch immer daran interessiert war zu bloggen.

Keine Panik

Das Wichtigste zuerst: Es gibt keine "Schnellkorrekturen", außer dass das System von einer Sicherung wiederhergestellt wird, die vor dem Angriff ausgeführt wurde, und dies hat mindestens zwei Probleme.

  1. Es ist schwierig festzustellen, wann das Eindringen stattgefunden hat.
  2. Es hilft dir nicht, das "Loch" zu schließen, das es dir ermöglicht hat, das letzte Mal einzubrechen, oder dich mit den Konsequenzen eines "Datendiebstahls" zu befassen, der vielleicht auch stattgefunden hat.

Diese Frage wird immer wieder von den Opfern von Hackern gestellt, die in ihren Webserver einbrechen. Die Antworten ändern sich sehr selten, aber die Leute stellen immer wieder die Frage. Ich bin mir nicht sicher warum. Vielleicht mögen die Leute einfach nicht die Antworten, die sie bei der Suche nach Hilfe gesehen haben, oder sie können nicht jemanden 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 anders ist als die Antworten, die sie online finden können, und vermissen die 95% der Frage und antworten, wo ihr Fall nahe genug ist als derjenige, den sie online lesen.

Das bringt mich zu der ersten wichtigen Informationsquelle. Ich schätze wirklich, dass Sie eine spezielle einzigartige Schneeflocke sind. Ich weiß es zu schätzen, dass es auch Ihre Website ist, da es sich um Sie und Ihr Unternehmen oder zumindest Ihre harte Arbeit im Namen eines Arbeitgebers handelt. Aber für jemanden von außen, der hereinschaut, ob ein Computer-Sicherheitsmensch das Problem anschaut, um Ihnen oder dem Angreifer selbst zu helfen, ist es sehr wahrscheinlich, dass Ihr Problem zu mindestens 95% mit jedem anderen Fall identisch ist jemals angeschaut.

Nehmen Sie den Angriff nicht persönlich, und nehmen Sie nicht die Empfehlungen, die hier folgen oder die Sie von anderen Menschen persönlich erhalten. Wenn Sie dies lesen, nachdem Sie Opfer eines Website-Hack geworden sind, dann tut es mir wirklich leid, und ich hoffe wirklich, dass Sie hier etwas hilfreiches finden können, aber dies ist nicht die Zeit, Ihr Ego in die Quere zu bringen, was Sie brauchen tun.

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

Keine Panik. Absolut nicht in Eile handeln, und absolut nicht versuchen, so zu tun, als wären die Dinge nie passiert, und überhaupt nicht handeln.

Erstens: Verstehen Sie, dass das Desaster bereits eingetreten ist. Dies ist nicht die Zeit der Verleugnung; Es ist an der Zeit, zu akzeptieren, was passiert ist, realistisch zu sein und Maßnahmen zu ergreifen, 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) ist es mir egal, ob Sie alle oder einige dieser Schritte ignorieren, das liegt bei Ihnen. Aber ihnen richtig zu folgen, wird am Ende alles besser machen. Die Medizin mag schrecklich schmecken, aber manchmal muss man das übersehen, wenn man wirklich will, dass das Heilmittel wirkt.

Verhindern Sie, dass das Problem schlimmer wird, als es bereits ist:

  1. Als erstes sollten Sie die betroffenen Systeme vom Internet trennen. Was auch immer Sie für Probleme haben, wenn Sie das System mit dem Internet verbinden, wird der Angriff nur fortgesetzt. Ich meine das ganz wörtlich. jemanden dazu bringen, den Server physisch zu besuchen und Netzwerkkabel zu entfernen, wenn das nötig ist, aber das Opfer von seinen Räubern trennen, 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 kompromittierten Systeme befinden. Nicht wirklich. Alle Konten. Alle Computer. Ja, du hast recht, das könnte übertrieben sein; Auf der anderen Seite könnte es nicht sein. Du weißt doch nicht, oder?
  3. Überprüfen Sie Ihre anderen Systeme. Achten Sie besonders auf andere Internetdienste und auf solche, die finanzielle oder andere kommerziell sensible Daten enthalten.
  4. Wenn das System personenbezogene Daten enthält, informieren Sie unverzüglich die für den Datenschutz verantwortliche Person (wenn Sie es nicht sind) und fordern Sie eine vollständige Offenlegung. Ich weiß, das ist hart. Ich weiß, das wird weh tun. Ich weiß, dass viele Unternehmen diese Art von Problemen unter den Teppich kehren wollen, aber das Geschäft muss sich damit auseinandersetzen - und dies unter Berücksichtigung aller relevanten Datenschutzgesetze.

So verärgert Ihre Kunden auch sein mögen, wenn Sie ihnen von einem Problem erzählen, werden sie viel ärgerlicher sein, wenn Sie es ihnen nicht sagen, und sie finden es erst heraus, wenn jemand Waren im Wert von 8.000 Dollar mit den Kreditkartendetails verlangt gestohlen von Ihrer Website.

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

Verstehen Sie das Problem vollständig:

  1. Stellen 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 entscheidende Punkt war, an dem ich mich entschied, diesen Artikel zu schreiben. Ich werde nicht auf diesen Posten verlinken, damit Leute ein billiges Lachen bekommen können, aber die wahre Tragödie ist, wenn Leute nicht aus ihren Fehlern lernen.
  2. Untersuchen Sie die "angegriffenen" Systeme, um zu verstehen, wie die Angriffe Ihre Sicherheit gefährdet haben. Machen Sie alles, um herauszufinden, woher die Angriffe stammen, 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 gingen, damit Sie verstehen, welche Systeme bei dem Angriff kompromittiert wurden. Stellen Sie sicher, dass Sie Hinweise befolgen, die darauf hindeuten, dass kompromittierte Systeme zu einem Sprungbrett werden könnten, um Ihre Systeme weiter anzugreifen.
  4. Stellen Sie sicher, dass die bei allen Angriffen verwendeten "Gateways" vollständig verstanden werden, sodass Sie sie möglicherweise ordnungsgemäß schließen können. (Wenn beispielsweise Ihre Systeme durch einen SQL-Injection-Angriff kompromittiert wurden, müssen Sie nicht nur die fehlerhafte Codezeile schließen, in der sie eingedrungen sind, sondern auch den gesamten Code, um festzustellen, ob der gleiche Fehler vorliegt wurde woanders gemacht).
  5. Verstehe, dass Angriffe aufgrund von mehr als einem Fehler erfolgreich sein können. Oft gelingt es den Angriffen nicht, einen großen Fehler in einem System zu finden, sondern mehrere (manchmal geringfügige und triviale) Probleme zusammenzufassen, um ein System zu kompromittieren. Wenn Sie beispielsweise mithilfe von SQL-Injection-Angriffen Befehle an einen Datenbankserver senden, wird die Website / Anwendung, die Sie angreifen, im Kontext eines administrativen Benutzers ausgeführt, und die Rechte dieses Kontos werden als Ausgangspunkt für die Kompromittierung anderer Teile verwendet ein System. Oder wie Hacker es gerne nennen: "Ein weiterer Tag im Büro nutzt die häufigen Fehler, die Menschen machen".

Warum reparierst du nicht einfach den Exploit oder das Rootkit, das du erkannt hast, und legst das System wieder online?

In solchen Situationen besteht das Problem darin, dass Sie das System nicht mehr kontrollieren können. Es ist nicht mehr dein Computer.

Der einzige Weg zu sein sicher dass Sie die Kontrolle über das System haben, ist das System neu aufzubauen. Während es viel Wert ist, den Exploit, der zum Einbruch in das System verwendet wurde, zu finden und zu beheben, kann man sich nicht sicher sein, was das System sonst noch getan hat, nachdem die Eindringlinge die Kontrolle übernommen haben Systeme in ein Botnet, um die Exploits zu patchen, die sie selbst benutzten, um "ihren" neuen Computer vor anderen Hackern zu schützen und 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 es sein muss. Das ist eine gegebene. Wenn diese Website ein gewinnbringender Mechanismus ist, wird der Druck, sie schnell wieder online zu bringen, intensiv sein. Selbst wenn das einzige, was auf dem Spiel steht, der Ruf Ihres / Ihres Unternehmens ist, erzeugt dies immer noch einen großen Druck, die Dinge schnell wieder in Gang zu bringen.

Aber geben Sie sich nicht der Versuchung hin, zu schnell wieder online zu gehen. Ziehe dich stattdessen so schnell wie möglich an, um zu verstehen, was das Problem verursacht hat und um es zu lösen, bevor du wieder online bist, sonst wirst du mit Sicherheit erneut Opfer eines Angriffs werden und dich erinnern: "einmal gehackt zu werden kann als Unglück eingestuft werden; später wieder gehackt zu werden, sieht nachlässig aus. "(mit Entschuldigung an Oscar Wilde).

  1. Ich gehe davon aus, dass Sie alle Probleme verstanden haben, die zu dem erfolgreichen Eindringen geführt haben, bevor Sie diesen Abschnitt überhaupt beginnen. Ich möchte den Fall nicht überbewerten, aber wenn Sie das nicht zuerst getan haben, dann müssen Sie wirklich. Es tut uns leid.
  2. Zahlen Sie niemals Erpressungs- / Schutzgeld. Dies ist das Zeichen für eine einfache Markierung und Sie möchten nicht, dass diese Phrase jemals verwendet wird, um Sie zu beschreiben.
  3. Seien Sie nicht versucht, dieselben Server ohne eine vollständige Neuerstellung wieder online zu stellen. Es sollte viel schneller sein, eine neue Box zu bauen oder den Server aus der Umlaufbahn zu nehmen und eine saubere Installation auf der alten Hardware durchzuführen, als jede einzelne Ecke des alten Systems zu überprüfen, um sicherzustellen, dass es sauber ist, bevor es wieder zurückgelegt wird wieder online. Wenn Sie damit nicht einverstanden sind, wissen Sie wahrscheinlich nicht, was es wirklich bedeutet, um sicherzustellen, dass ein System vollständig bereinigt wird, oder Ihre Website-Bereitstellungsprozeduren sind ein unheilvolles Durcheinander. Vermutlich haben Sie Backups und Testimplementierungen Ihrer Site, die Sie einfach zum Erstellen der Live-Site verwenden können. Wenn Sie dann nicht gehackt werden, ist das nicht Ihr größtes Problem.
  4. Seien Sie sehr vorsichtig bei der Wiederverwendung von Daten, die zum Zeitpunkt des Hacks auf dem System "live" waren. Ich werde nicht sagen: "Mach es nie", weil du mich einfach ignorierst, aber ehrlich gesagt denke ich, dass du die Konsequenzen der Datenerhebung berücksichtigen musst, wenn du weißt, dass du seine Integrität nicht garantieren kannst. Im Idealfall sollten Sie dies aus einer Sicherung wiederherstellen, die vor dem Eindringen erstellt wurde. Wenn Sie das nicht können oder wollen, sollten Sie sehr vorsichtig mit diesen Daten sein, weil sie verdorben sind. Sie sollten sich der Konsequenzen für andere besonders bewusst sein, wenn diese Daten Kunden oder Website-Besuchern gehören und nicht direkt Ihnen.
  5. Überwachen Sie das / die System (e) sorgfältig. Sie sollten dies als einen fortlaufenden Prozess in der Zukunft tun (mehr dazu im Folgenden), aber Sie sind besonders vorsichtig, wenn Sie unmittelbar nach dem Online-Zugriff auf Ihre Website wachsam sind. Die Eindringlinge werden mit ziemlicher Sicherheit zurück sein, und wenn Sie sie wiederfinden können, werden Sie sicher schnell sehen können, ob Sie wirklich alle Löcher, die sie vorher benutzt haben, geschlossen haben, und Sie könnten nützlich sein Informationen, die Sie an Ihre lokalen Strafverfolgungsbehörden weitergeben können.

Verringerung des Risikos in der Zukunft.

Das erste, was Sie verstehen müssen, ist, dass Sicherheit ein Prozess ist, den Sie während des gesamten Lebenszyklus von Entwurf, Bereitstellung und Wartung eines internetbezogenen Systems anwenden müssen, nicht etwas, dass Sie anschließend einige Ebenen über Ihren Code wie billig knacken können Farbe. Um sicher zu sein, müssen ein Service und eine Anwendung von Anfang an als eines der Hauptziele des Projekts konzipiert werden. Mir ist klar, dass das langweilig ist und du alles schon mal gehört hast und dass ich "den Druckmann nicht erkenne", deinen beta web2.0 (beta) Service im Web in den Beta-Status zu bekommen, aber Tatsache ist, dass dies hält sich wiederholen, weil es wahr war, als es das erste Mal gesagt wurde, und es ist noch nicht zur Lüge geworden.

Sie können Risiken nicht eliminieren. Du solltest das nicht einmal versuchen. Was Sie jedoch tun sollten, ist zu verstehen, welche Sicherheitsrisiken für Sie wichtig sind, und zu verstehen, wie Sie die Auswirkungen des Risikos und die Wahrscheinlichkeit, dass das Risiko eintreten wird, steuern und reduzieren können.

Welche Schritte können Sie unternehmen, um die Wahrscheinlichkeit eines erfolgreichen Angriffs zu reduzieren?

Zum Beispiel:

  1. War der Fehler, der es den Benutzern ermöglichte, einen bekannten Fehler im Herstellercode zu beheben, für den ein Patch verfügbar war? Wenn ja, müssen Sie Ihre Vorgehensweise bei der Korrektur von Anwendungen auf Ihren Servern im Internet neu überdenken?
  2. War der Fehler, der es den Benutzern erlaubte, einen unbekannten Fehler im Herstellercode, für den kein Patch verfügbar war, in Ihre Site einzubauen? Ich befürworte ganz sicher nicht den Lieferantenwechsel, wenn dich so etwas beißt, weil sie alle ihre Probleme haben und dir die Plattformen in höchstens einem Jahr ausgehen, wenn du diesen Ansatz nimmst. Wenn Sie ein System jedoch ständig im Stich lässt, sollten Sie entweder zu etwas robusterem migrieren oder zumindest Ihr System so umgestalten, dass empfindliche Komponenten in Watte und so weit wie möglich von feindlichen Augen entfernt bleiben.
  3. War der Fehler ein Programmfehler, der von Ihnen (oder einem für Sie arbeitenden Auftragnehmer) entwickelt wurde? Wenn ja, müssen Sie Ihre Vorgehensweise bei der 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 Codierungs "Standard" aufgefangen werden (zum Beispiel, während Technologie kein Allheilmittel ist, können Sie die Wahrscheinlichkeit eines erfolgreichen SQL-Injection-Angriffs mit gut dokumentierten Codierungstechniken reduzieren ).
  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 möglichst zu erstellen und bereitzustellen? Dies ist eine große Hilfe bei der Aufrechterhaltung eines konsistenten "Baseline" -Zustands auf all Ihren Servern, wodurch die Menge an benutzerdefinierter Arbeit minimiert wird, die bei jedem einzelnen durchgeführt werden muss, und somit hoffentlich die Möglichkeit eines Fehlers minimiert wird. Gleiches gilt für die Bereitstellung von Code - wenn Sie etwas "Spezielles" benötigen, um die neueste Version Ihrer Web-App zu installieren, dann versuchen Sie, es zu automatisieren und sicherzustellen, dass es immer konsistent erfolgt.
  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 "Bereitschaftsdienst" für Ihre Mitarbeiter möglicherweise nicht kosteneffektiv, aber es gibt Unternehmen, die Ihre weborientierten Dienste für Sie überwachen und Sie im Falle eines Problems benachrichtigen können. Sie könnten entscheiden, dass Sie sich das nicht leisten können oder es nicht brauchen und das ist in Ordnung ... denken Sie nur daran.
  6. Verwenden Sie Werkzeuge wie Stolperdraht und Nessus - aber benutzen Sie sie nicht blind, weil ich das gesagt habe. Nehmen Sie sich die Zeit zu lernen, wie Sie ein paar 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. Überlegen Sie, ob Sie Sicherheitsexperten einstellen, um regelmäßig die Sicherheit Ihrer Website zu überprüfen. Vielleicht entscheidest du dich auch, dass du dir das nicht leisten kannst oder es nicht brauchst und das ist in Ordnung ... nimm es einfach in Betracht.

Welche Schritte können Sie unternehmen, um die Folgen eines erfolgreichen Angriffs zu reduzieren?

Wenn Sie sich dafür entscheiden, dass das "Risiko" der unteren Etage Ihres Hauses hoch ist, aber nicht hoch genug ist, um sich zu bewegen, sollten Sie zumindest die unersetzlichen Familienerbstücke nach oben bringen. Recht?

  1. Können Sie die Anzahl der direkt dem Internet zur Verfügung gestellten Dienste reduzieren? Können Sie eine Lücke zwischen Ihren internen Diensten und Ihren internetbezogenen Diensten halten? Dies stellt sicher, dass selbst wenn Ihre externen Systeme kompromittiert werden, die Chancen, dass dies als Sprungbrett zum Angriff auf Ihre internen Systeme verwendet wird, 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; Die offensichtliche ist, dass Menschen keine Informationen von Ihnen stehlen können, die Sie nicht haben, und der zweite Punkt ist, dass je weniger Sie speichern, desto weniger müssen Sie pflegen und programmieren, und so gibt es weniger Chancen für Fehler Ihr Code oder Systemdesign.
  3. Verwenden Sie die "Least Access" -Prinzipien für Ihre Web-App? Wenn Benutzer nur aus einer Datenbank lesen müssen, dann vergewissern Sie sich, dass das Konto, das die Webanwendung verwendet, nur Lesezugriff, keinen Schreibzugriff und vor allem keinen Zugriff auf Systemebene hat.
  4. Wenn Sie wenig Erfahrung mit etwas haben und es nicht zentral für Ihr Unternehmen ist, sollten Sie es auslagern. Mit anderen Worten, wenn Sie eine kleine Website betreiben, die über das Schreiben von Desktop-Anwendungscode und den Verkauf von kleinen Desktop-Anwendungen von der Website spricht, dann überlegen Sie, Ihr Kreditkarten-Bestellsystem an jemanden wie Paypal auszulagern.
  5. Wenn möglich, machen Sie die Wiederherstellung von kompromittierten Systemen zu einem Teil Ihres Disaster Recovery-Plans. Dies ist wohl nur ein weiteres "Katastrophenszenario", dem Sie begegnen könnten, einfach eines mit seinen eigenen Problemen und Problemen, die sich von dem üblichen "Serverfeuer" unterscheiden und von gigantischen Serverfressern überfallen wurden.

... Und schlussendlich

Ich habe wahrscheinlich kein Ende von Dingen gelassen, die andere für wichtig halten, aber die obigen Schritte sollten dir zumindest dabei helfen, Dinge zu klären, wenn du Pech hast, Opfer von Hackern zu werden.

Vor allem: Keine Panik. Denk nach bevor du handelst. Handle entschlossen, wenn du eine Entscheidung getroffen hast, und hinterlasse einen Kommentar, wenn du etwas zu meiner Liste von Schritten hinzufügen musst.


988
2018-01-02 21:46



+1 für einen ausgezeichneten Beitrag, um Leute in eine Richtung zu starten. Ich weiß, wie oft es für Amateur-Server-Admins ist, in diesen Panikmodus zu kommen, wenn sie zum ersten Mal einen "Hack" haben. Es ist ein enorm Fehler an dieser Stelle zu sein, aber es passiert. Die Hoffnung wäre, dass dies nicht zweimal der gleichen Person passieren würde. - Andrew Barber
+1 "... aber das ist nicht die Zeit, dein Ego in die Quere zu bringen, was du tun musst." Dies ist wichtig für Sys Admins manchmal zu verstehen. Egal, wie gut du dich auskennst, es gibt immer die (manchmal bösartigen), die wissender oder schlauer sind als du. - Grahamux
Gute Antwort. Ich bin mir nicht sicher, warum jeder den Schritt "Call Law Enforcement" als optional behandeln. Wenn Sie für die Daten anderer Personen verantwortlich sind (und sich über Rechtsstreitigkeiten Sorgen machen), sollte dies eines der ersten Dinge auf Ihrer Liste sein. - wds
Sehr gut schreiben, nur ein Problem - "machen Sie eine vollständige und offenherzige Offenlegung für alle potentiell betroffenen gleichzeitig." Ehrwürdig, aber nicht immer korrekt. Wenn Sie auf einen Kompromiss reagieren, müssen Sie möglicherweise einige Governance-Ecken kürzen, und Ihr Unternehmen wird Ihnen im Allgemeinen ein wenig Spielraum entziehen, jedoch ... Offenlegung oder nicht, insbesondere wenn es Auswirkungen auf den Datenschutz gibt könnte rechtliche Auswirkungen haben. Es kann besser sein, vorzuschlagen, dass Sie sofort die für den Datenschutz verantwortliche Person (wenn Sie nicht sind) informieren und eine vollständige Offenlegung DRINGEN. - TheoJones
@GilesRoberts-Hosts für virtuelle Maschinen verfügen normalerweise über ein Steuerungsfeld, mit dem Sie die Einstellungen ihrer Gäste ändern und sie 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, und dann mithilfe der Remote Viewing-Tools den Gast nach Belieben untersuchen. - Rob Moir


Es klingt, als wären Sie leicht über Ihrem Kopf; kein Problem. Rufen Sie Ihren Chef an und fangen Sie an, für ein Notsicherheitsbudget zu verhandeln. $ 10.000 könnte ein guter Anfang sein. Dann müssen Sie jemanden (einen PJ, einen Mitarbeiter, einen Manager) dazu bringen, Unternehmen anzurufen, die sich auf die Reaktion auf Sicherheitsvorfälle spezialisiert haben. Viele können innerhalb von 24 Stunden reagieren und manchmal sogar schneller, wenn sie in Ihrer Stadt ein Büro haben.

Sie brauchen auch jemanden, um Kunden zu selektieren; Zweifellos ist es schon jemand. Jemand muss mit ihnen telefonieren, um zu erklären, was vor sich geht, was getan wird, um mit der Situation umzugehen, und um ihre Fragen zu beantworten.

Dann musst du ...

  1. Bleib ruhig. Wenn Sie für die Reaktion auf Vorfälle verantwortlich sind, müssen Sie jetzt höchste Professionalität und Führungsstärke beweisen. Dokumentieren Sie alles, was Sie tun, und halten Sie Ihren Manager und Ihr Führungsteam über wichtige Maßnahmen auf dem Laufenden. Dazu gehört die Arbeit mit einem Response-Team, 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 wissen. Kein Problem. Wenn Sie sich bei Servern anmelden und Daten betrachten, müssen Sie Ihre Grenzen verstehen. Trete sanft. Achten Sie im Verlauf Ihrer Untersuchung darauf, dass Sie nicht auf wichtige Informationen stampfen oder etwas ändern, das später benötigt wird. Wenn Sie sich unwohl fühlen oder vermuten, ist dies ein guter Ort, um zu stoppen und einen erfahrenen Profi zu übernehmen.

  3. Holen Sie sich einen sauberen USB-Stick und Ersatzfestplatten. Sie werden hier Beweise sammeln. Erstellen Sie Sicherungskopien von allem, was Sie für relevant halten. Kommunikation mit Ihrem ISP, Netzwerk-Dumps usw. Auch wenn sich die Strafverfolgungsbehörden nicht einmischen, sollten Sie im Falle eines Gerichtsverfahrens beweisen, dass Ihr Unternehmen den Sicherheitsvorfall professionell und angemessen behandelt hat.

  4. Am wichtigsten ist es, den Verlust zu stoppen. Identifizieren und sperren Sie den Zugriff auf kompromittierte Dienste, Daten und Maschinen. Vorzugsweise sollten Sie ihr Netzwerkkabel ziehen; Wenn Sie nicht können, dann ziehen Sie den Strom.

  5. Als nächstes müssen Sie den Angreifer entfernen und die Löcher 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, indem Sie die Laufwerke von den betroffenen Servern entfernen und eine vollständige Image-Kopie erstellen) und dann alle zurückgelassenen Codes und Prozesse entfernen . Dieser nächste Teil wird sich lumpen, wenn Sie keine Backups haben; Sie können versuchen, den Angreifer per Hand vom 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 Sicherheitslücke zu identifizieren, mit der er eingedrungen ist, Image-Kopien der betroffenen Festplatten zu erstellen und dann die betroffenen Systeme zu löschen und von einer bekannten guten Sicherung neu zu laden. Vertrauen Sie nicht blind Ihrem Backup; verifiziere es! Reparieren oder schließen Sie die Sicherheitsanfälligkeit, bevor der neue Host erneut im Netzwerk angemeldet ist, und schalten Sie ihn anschließend online.

  6. Organisieren Sie alle Ihre Daten in einem Bericht. An diesem Punkt ist die Sicherheitslücke geschlossen und Sie haben etwas Zeit zu atmen. Sei nicht versucht, diesen Schritt zu überspringen; Es ist sogar wichtiger als der Rest des Prozesses. In dem Bericht müssen Sie herausfinden, was schief gelaufen ist, wie Ihr Team geantwortet hat und welche Schritte Sie unternehmen, um zu verhindern, dass dieser Vorfall erneut auftritt. Sei so detailliert wie du kannst; Dies ist nicht nur für Sie, sondern für Ihr Management und als Verteidigung in einem potenziellen Prozess.

Das ist ein himmelhoher Überblick darüber, was zu tun ist; Die meiste Arbeit ist einfach Dokumentation und Backup-Handhabung. Keine Panik, du kannst das Zeug machen. ich stark empfehle dir professionelle Sicherheitshilfe. Selbst wenn Sie damit umgehen können, wird ihre Hilfe von unschätzbarem Wert sein und sie werden normalerweise mit Ausrüstung geliefert, um den Prozess einfacher und schneller zu machen. Wenn Ihr Chef sich auf Kosten der Konkurrenz zurückzieht, erinnern Sie ihn daran, dass er im Vergleich zur Bearbeitung einer Klage sehr klein ist.

Sie haben meine Tröstungen für Ihre Situation. Viel Glück.


199
2018-01-02 22:16



+1 Große Antwort. Es hört sich so an, als hätte das OP keine vordefinierte "Notfallreaktion" und Ihr Posten sollte, neben anderen guten Dingen, darauf hindeuten, dass das eingerichtet wird. - Rob Moir


CERT hat ein Dokument Schritte zum Wiederherstellen von einem UNIX- oder NT-Systemkompromiss das ist gut. Die spezifischen technischen Details dieses Dokuments sind etwas veraltet, aber viele allgemeine Hinweise gelten immer noch direkt.

Eine kurze Zusammenfassung der grundlegenden Schritte ist dies.

  • Konsultieren Sie Ihre Sicherheitsrichtlinien oder das Management.
  • Kontrollieren (den Computer offline schalten)
  • Analysiere das Eindringen, erhalte Logs, finde heraus, was falsch gelaufen ist
  • Reparaturzeug
    • Installieren Sie eine saubere Version Ihres Betriebssystems !!! Wenn das System kompromittiert wurde, können Sie ihm nicht vertrauen, Punkt.
  • Aktualisieren Sie Systeme, damit dies nicht erneut passieren kann
  • Operationen fortsetzen
  • Aktualisieren Sie Ihre Richtlinie für die Zukunft und dokumentieren Sie sie

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

E.1.   Denken Sie daran, dass wenn eine Maschine ist   kompromittiert, alles auf diesem System   hätte geändert werden können, einschließlich   der Kernel, Binärdateien, Datendateien,   laufende Prozesse und Speicher. Im   Allgemein, der einzige Weg, dem zu vertrauen   Maschine ist frei von Hintertüren und   Eindringling Modifikationen ist neu zu installieren   der Betrieb

Wenn Sie kein System wie Tripwire installiert haben, gibt es keine Möglichkeit für Sie, zu 100% sicher zu sein, dass Sie das System aufgeräumt haben.


105
2018-05-08 09:02



Auch dann kann Tripwire mit Kernel-Modulen und dergleichen täuschen. Neu installieren. - reconbot
Die damit verbundene Frage zu wie man in einer Krise reagiert kann hier auch nützlich sein. - Zoredache


  1. Identifizieren das Problem. Lesen Sie die Protokolle.
  2. Enthalten. Sie haben den Server getrennt, also fertig.
  3. Eradizieren. Installieren Sie das betroffene System höchstwahrscheinlich neu. Lösche nicht die Festplatte des gehackten, benutze eine neue. Es ist sicherer, und Sie könnten das alte brauchen, um hässliche Hacks wiederherzustellen, die nicht gesichert wurden, und forensische Untersuchungen durchzuführen, um herauszufinden, was passiert ist.
  4. Genesen. Installieren Sie, was immer benötigt wird, und stellen Sie Backups wieder her, um Ihre Kunden online zu bringen.
  5. Nachverfolgen. Finde heraus, was das Problem war und verhindere, dass es erneut passiert.

64
2018-01-02 21:49





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

Ich betreibe eine Hosting-Firma, die in dieser Situation ein bisschen Hand hält, also beschäftige ich mich mit vielen kompromittierten Maschinen, aber auch mit Best Practice für unsere eigenen. Wir sagen unseren kompromittierten Kunden immer, dass sie sie neu aufbauen sollten, es sei denn, sie sind sich der Art einer Kompromittierung nicht absolut sicher. Es gibt auf lange Sicht keine andere verantwortungsvolle Route.

Sie sind jedoch mit ziemlicher Sicherheit das Opfer eines Script-Kiddy, der eine Startrampe für DoS-Attacken oder IRC-Türsteher oder etwas, das nichts mit den Websites und Daten Ihrer Kunden zu tun hat, haben wollte. Daher können Sie als vorübergehende Maßnahme während der Neuerstellung erwägen, eine schwere ausgehende Firewall auf Ihrer Box einzurichten. Wenn Sie alle ausgehenden UDP- und TCP-Verbindungen blockieren können, die für das Funktionieren Ihrer Websites nicht unbedingt erforderlich sind, können Sie Ihre kompromittierte Box für jeden, der sie von Ihnen entliehen hat, leicht nutzlos machen und die Auswirkungen auf das Netzwerk Ihres Anbieters auf Null reduzieren.

Dieser Prozess kann einige Stunden dauern, wenn Sie dies noch nicht getan haben. Er hat noch nie eine Firewall in Betracht gezogen, könnte Ihnen aber bei der Wiederherstellung Ihres Client-Service helfen auf die Gefahr hin, dem Angreifer weiterhin Zugriff auf Ihre Kundendaten zu gewähren. Da Sie sagen, dass Sie Hunderte von Kunden auf einer Maschine haben, hasse ich kleine Broschüren-Websites 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 darstellen und Ihr System schneller wieder online schalten als die Überprüfung von 600 Websites auf Sicherheitslücken Vor du bringst etwas zurück. Aber Sie werden wissen, welche Daten vorhanden sind und wie bequem Sie diese Entscheidung treffen würden.

Das ist absolut keine Best Practice, aber wenn das bei Ihrem Arbeitgeber noch nicht passiert ist, wackeln Sie mit dem Finger auf sie und fragen nach einem SWAT-Team um Zehntausende von Pfund für etwas, das sie vielleicht für schuldig halten (aber ungerechtfertigt!). ) klingt nicht wie die praktische Option.

Die Hilfe Ihres Internetdienstanbieters wird sehr wichtig sein - einige ISPs Bereitstellen eines Konsolenservers und einer Netzwerkstartumgebung (Plug, aber zumindest wissen Sie, welche Art von Einrichtung Sie suchen), mit der Sie den Server verwalten können, während Sie nicht mit dem Netzwerk verbunden sind. Wenn das überhaupt eine Option ist, fragen Sie danach und benutzen Sie es.

Aber auf lange Sicht sollten Sie eine Systemwiederherstellung planen, basierend auf Roberts Post und einer Prüfung jedes Standortes und seiner Einrichtung. Wenn Sie keinen Systemadministrator zu Ihrem Team hinzufügen können, suchen Sie nach einem Managed Hosting Deal, wo Sie Ihren ISP für sysadminning Hilfe und 24-Stunden-Antwort für diese Art von Sache bezahlen. Viel Glück :)


49
2018-01-03 13:48





Sie müssen neu installieren. Sparen Sie, was Sie wirklich brauchen. Bedenken Sie jedoch, dass alle Ihre ausführbaren Dateien möglicherweise infiziert und manipuliert sind. Ich schrieb folgendes in Python: http://frw.se/monty.py Das erstellt MD5-Summen aller Ihrer Dateien in einem bestimmten Verzeichnis und beim nächsten Start überprüft es, ob etwas geändert wurde und gibt dann aus, welche Dateien geändert wurden und was sich in den Dateien geändert hat.

Dies könnte für Sie nützlich sein, um zu sehen, ob seltsame Dateien regelmäßig geändert werden.

Aber das einzige, was Sie jetzt tun sollten, ist Ihren Computer aus dem Internet zu entfernen.


38
2018-05-08 08:02



Also ... du hast Tripwire implementiert. - womble♦
Ja, stimmt etwas nicht damit? - Filip Ekberg
+1 für das Trennen, analysieren (jemanden dazu bringen, echte Forensik zu machen) und wischen - Oskar Duveborn
Wenn Sie die Wahl zwischen einem anonymen Python-Skript und einer dokumentierten, (etwas) unterstützten, wohlverstandenen Standardlösung haben, hoffen Sie, dass sie sich für die erste entscheiden werden? - tripleee


HINWEIS: Dies ist keine Empfehlung. Meine spezifische Incident Response Protokoll wahrscheinlich nicht gilt nicht unverändert für den Fall von Grant unwin.

In unseren akademischen Einrichtungen haben wir etwa 300 Forscher, die nur rechnen. Sie haben 600 Kunden mit Websites, so dass Ihr Protokoll wahrscheinlich anders sein wird.

Die ersten Schritte in unserer Wenn ein Server ein kompromittiertes Protokoll erhält ist:

  1. Identifizieren, dass der Angreifer Root-Rechte erlangen konnte (erhöhte Privilegien)
  2. Trennen Sie die betroffenen Server. Netzwerk oder Macht? Bitte sehen eine separate Diskussion.
  3. Überprüfen Sie alle anderen Systeme
  4. Booten Sie die betroffenen Server von einer Live-CD
  5. (wahlweise) Greifen Sie die Bilder aller Systemlaufwerke mit dd
  6. Beginnen Sie mit der Post-Mortem-Forensik. Schauen Sie sich Protokolle an, ermitteln Sie den Zeitpunkt des Angriffs, finden Sie Dateien, die zu diesem Zeitpunkt geändert wurden. Versuche die Antwort zu erhalten Wie? Frage.

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

Selbst wenn "alle Backdoors und Rootkits aufgeräumt sind", traue diesem System nicht - von Grund auf neu installieren.


34
2018-05-18 22:36



-1 Trennen Sie den Server von der Stromversorgung? Sie haben gerade die Hälfte Ihrer forensischen Daten verloren! - Josh Brower
@Josh, ich habe meine Antwort angepasst - jetzt ist es neutral auf der Frage was zu trennen ist. - Aleksandr Levchuk
RAM-Forensik (z. B. / dev / shm) kann hilfreich sein. Ich ziehe es vor, das Stromkabel herauszuziehen (aber versuche mich einzuloggen und rsync / proc kurz vorher). Wir könnten auch häufige VM-Snapshots einführen, damit RAM-Forensik möglich wäre. Die Gründe für die Verwendung des Stromkabels sind (1) Wenn Sie forensische Untersuchungen in einem gehackten System durchführen, "betreten Sie den gesamten Tatort"; (2) Das Root-Kit läuft weiter - nicht so schwer für den böswilligen, etwas (z. B. System-Wipe-Out) auszuführen Netzwerkverbindung nach unten Veranstaltung. Kyle Rankin in seinem netten Intro For Forensics Talk (goo.gl/g21Ok) empfohlen, das Netzkabel zu ziehen. - Aleksandr Levchuk
Es gibt keine Einheitsgröße für alle IR-Protokolle - Einige Organisationen müssen das kompromittierte System aus irgendeinem Grund noch eine Weile online halten. (RAM & temp Log Forensik, Interaktion mit den Eindringlingen, etc.) Mein Punkt ist, dass es besser wäre, ein generisches IR-Protokoll (wie Jakob Borgs oben) zu empfehlen, anstatt eines, das mit "Ziehen Sie den Netzstecker des kompromittierten Servers beginnt. " - Josh Brower


In meiner begrenzten Erfahrung sind Systemkompromisse unter Linux tendenziell "umfassender" als unter Windows. Die Root-Kits enthalten viel eher die Möglichkeit, Systembinärdateien durch angepassten Code zu ersetzen, um die Malware zu verbergen, und die Barriere für das Hot-Patchen des Kernels ist etwas niedriger. Außerdem ist es das Home-Betriebssystem für viele Malware-Autoren. Die allgemeine Anleitung ist immer, den betroffenen Server von Grund auf neu zu erstellen, und es ist die allgemeine Anleitung aus einem Grund.

Formatiere diesen Welpen.

Aber, wenn Sie nicht wieder aufbauen können (oder die Mächte, die sein werden, lassen Sie es nicht gegen Ihre anstrengende Beharrlichkeit wieder aufbauen, die es braucht), wonach suchen Sie?

Da es so aussieht, als ob die Intrusion schon eine Weile her ist und eine Systemwiederherstellung durchgeführt wurde, ist es sehr wahrscheinlich, dass die Spuren, wie sie hineingekommen sind, in der Massenpanik überstolpert wurden, um den Dienst wiederherzustellen. Unglücklich.

Ungewöhnlicher Netzwerkverkehr ist wahrscheinlich am einfachsten zu finden, da dies nichts mit der Box zu tun hat und ausgeführt werden kann, während der Server aktiv ist. Angenommen natürlich, Ihre Netzwerk-Ausrüstung ermöglicht Port-Spanning. Was Sie finden, mag diagnostisch sein oder auch nicht, aber es ist zumindest Information. Ungewöhnlicher Verkehr wird ein starker Beweis dafür sein, dass das System immer noch kompromittiert ist und abgeflacht werden muss. Es könnte gut genug sein, um TPTB zu überzeugen, dass eine Neuformatierung wirklich, wirklich, die Ausfallzeit wert ist.

Sollte dies nicht der Fall sein, nehmen Sie eine DD-Kopie Ihrer Systempartitionen und mounten Sie sie in einer anderen Box. Starten Sie den Vergleich des Inhalts mit einem Server auf demselben Patch-Level wie der kompromittierte. Es sollte Ihnen helfen zu erkennen, was anders aussieht (diese md5sums wieder) und möglicherweise auf übersehene Bereiche auf dem kompromittierten Server zeigen. Dies ist eine Menge Durchsuchen von Verzeichnissen und Binärdateien und wird ziemlich arbeitsintensiv sein. Es könnte sogar arbeitsintensiver sein, als eine Neuformatierung / Neuerstellung, und könnte eine andere Sache sein, TPTB zu treffen, um tatsächlich die Neuformatierung zu tun, die es wirklich braucht.


28
2018-01-03 14:31



"Formatiere diesen Welpen." - +1, weiser Rat. Siehe auch: "Nuke es aus dem Orbit, es ist der einzige Weg, um sicher zu sein." - Avery Payne