Frage Remote Linux Admin Berater - Best Practice [geschlossen]


Wir engagieren einen Berater in Indien als unseren Linux-Administrator. Wir kennen ihn nicht gut und er benötigt Root-Zugriff auf alle unsere Server, um seinen Job zu erledigen (einschließlich eines Sicherheitsaudits).

Was ist die beste Vorgehensweise, um einen externen Berater für solche Arbeiten zu gewinnen, sodass wir vor bösartigen Aktivitäten geschützt sind?

Danke im Voraus.


18
2018-02-08 00:37


Ursprung


Wenn Sie jemandem nicht vertrauen, geben Sie ihm keinen Zugriff auf Ihre Server. Zeitraum. Stellen Sie jemanden ein, dem Sie vertrauen können. - EEAA
Du kannst nicht darüber nachdenken, ob es sich um eine Aktion handelt, die von höheren Spielern verordnet wird, und du nach Munition / guten Argumenten dafür suchst? - Matt
LOL ... Ist das eine gute Idee? - ewwhite
Wenn Sie jemandem Root-Zugriff auf Ihre Server geben, haben Sie absolut keine Möglichkeit, sich systematisch vor bösartigen Aktivitäten auf den Rechnern zu schützen, auf die die Person Root-Zugriff hat. - Craig
Hoffe, Sie haben gute Offline-Backups - CaffeineAddiction


Antworten:


Nicht. Du bist auch in großer Gefahr Unbeholfenheit wie Bosheit von dem, was ich von der typischen Art gesehen habe, mit der Unternehmen damit umgehen.

Ich würde sagen, da ist es wahrscheinlich großartig Systemadministratoren da draußen in Indien, aber der Weg viele Unternehmen machen Dinge schrecklich.

Wenn du durch einen Body Shop gehst, wirst du wahrscheinlich einen ziemlich großen Schnitt machen, und viele von ihnen werden ihre Angestellten wahrscheinlich nicht richtig überprüft haben. Ich habe mit drei gesprochen, von denen ich für und gearbeitet habe keiner von ihnen haben irgendwelche technischen Interviews gemacht.

Also, wenn Sie jemanden aus der Ferne einstellen müssen, um Himmels willen, interviewen Sie ihn dich selbst und stelle sicher, dass er seine Arbeit kennt. Die Systemadministration ist viel zu wichtig, um jemandem blindlings zu übergeben

Jetzt, da ich den "Inkompetenz" -Teil davon behandelt habe,

Verwaltung ist eine ziemlich breite Phrase. Und jemand mit Root-Zugriff kann das tun etwas. Jetzt, persönlich Ich denke, ein Konto für den Administrator zu erstellen und ihm die Möglichkeit zu geben, sich selbst über sudo zu erhöhen, ist eine bessere Idee (die Ihr Konfigurationsverwaltungssystem handhaben sollte, wenn Sie viele Server haben). Das gesagt, sogar das vertraut auf ein gewisses Maß an Vertrauen. Es gibt so viele Geschichten über den bloßen Schaden, den ein verstimmter Systemadministrator anrichten kann. Ändern Sie alle Ihre Passwörter? Sicher Sie könnten schließlich einsteigen, aber es ist nicht trivial, und es würde wahrscheinlich mehr kosten als Sie sparen.

Betrachten Sie also ein lokales. Wenn nicht, bedenke jemanden, den du hast hat sich selbst überprüft und haben direkt angestellt.


54
2018-02-08 01:22



Ich habe es schwer genug, privilegierten Zugang zu gewähren der Typ eine Tür von mir runter geschweige denn jemand 12 Zeitzonen entfernt. Ich schäme mich, dass irgendjemand das sogar als eine Option betrachten würde. - EEAA
Wenn Sie durch einen Body Shop gehen, werden Sie nicht einmal wissen, wer wirklich diese Root-Zugangsdaten besitzt. Sie haben keine Garantie, dass die Person, die heute an Ihren Systemen arbeitet, die gleiche Person ist, die morgen daran arbeitet. Sie haben keine Garantie, dass diese Leute nicht wortwörtlich Ihre root-level-Passwörter im Klartext per E-Mail versenden (ich habe es viel zu oft gesehen), und so weiter. - Craig
Niemand sollte sich als root in eine moderne Linux-Distribution einloggen. Der root-Account sollte nicht einmal ein Passwort haben. Stattdessen sollte es Benutzer geben, die haben su Autorität, sich selbst zur Wurzel zu erheben. Wenn jemand sagt, dass er "root access" braucht, sollten sie das verlangen. Wenn diese Person sagt, dass er das "root password" benötigt, ist er nicht dazu in der Lage, die Aufgabe zu erledigen. - Monty Harder
@MontyHarder meinst du (bestimmte) Benutzer sollten haben sudo Autorität, sich selbst zur Wurzel zu erheben? Wenn nicht, könnten Sie Ihre Best Practices für die Verwendung skizzieren su sich zu root zu erheben, ohne ein Root-Passwort zu haben und zu verteilen? - MadHatter
@MontyHarder das macht sehr viel Sinn, es ist einfach nicht das, was du beim ersten Mal gesagt hast; sudound su sind zwei völlig verschiedene Dinge. Danke fürs klarstellen. - MadHatter


Wie bereits erwähnt, tun Sie dies nicht.

Der einzige Weg, wie Sie sich schützen können, ist, etwas zu tun:

  1. Bestehen Sie darauf, dass der Berater ein Konfigurationsmanagementsystem Ihrer Wahl verwendet.
  2. Der Berater schreibt Konfigurationsverwaltungsmanifeste für die Aktionen, die Sie vervollständigen müssen.
  3. Der Berater wird die Manifeste auf einem Testsystem testen.
  4. Wenn dies abgeschlossen ist, wird der Consultant die Konfiguration an ein Code-Repository übergeben.
  5. Alle Änderungen werden von einem Mitglied Ihrer Mitarbeiter überprüft oder ein anderer Berater, der absolut keine Beziehung zu dem ersten hat und keine Möglichkeit hat, mit ihnen Kontakt aufzunehmen.
  6. Sobald die Änderungen abgemeldet sind, werden sie von Ihnen oder einem Ihrer Mitarbeiter auf den Server angewendet. Der ursprüngliche Berater sollte nicht habe Zugriff auf jedes deiner Systeme.

Es sollte klar sein, dass dies ein sehr ungeschickter und ineffizienter Prozess ist, aber wenn Sie darauf bestehen, Arbeit von einer nicht vertrauenswürdigen Person anzunehmen, ist dies eine Möglichkeit, mit den Dingen umzugehen.

Wie ich jedoch empfehle, sind Sie viel besser dran, eine bekannte, vertrauenswürdige Person einzustellen.


32
2018-02-08 01:29



Warum nicht? Ich arbeite remote und verwalte rund 300 dedizierte Server. Innerhalb einer Stunde kann ich alles zerstören, wenn ich will. Aber natürlich würde ich das nicht tun, selbst wenn ich gefeuert werde. Ich bin verantwortlich für die Erstellung von Backups, habe höchste Privilegien (nicht nur ich, einige von uns), und wir können jederzeit bösartig werden. Der Grund, warum wir das nicht tun - ist Moral und Ethik. Wir lieben Firma und Angestellte und unsere Arbeit im Allgemeinen. Hauptsache hier ist, jemandem zu vertrauen und moralische Person für diesen Job zu finden. - fugitive
@fugitive Du sprichst von einer anderen Situation. Ich nehme an, dass Sie von der Firma, für die Sie sich interessieren, vertrauenswürdig sind, andernfalls hätten Sie Ihnen nicht die Berechtigungen gewährt, die Sie haben. Im Falle des OP ist es klar, dass sie diesem Berater nicht vertrauen, weshalb ich empfohlen habe, dieser Person keine Erlaubnis für irgendwelche wichtigen Systeme zu geben. - EEAA
Nun, Vertrauen muss verdient werden. :) - fugitive


Was ist die beste Vorgehensweise, um einen externen Berater für solche Arbeiten zu gewinnen, sodass wir vor bösartigen Aktivitäten geschützt sind?

Aus rechtlicher Sicht: Sorgfaltspflicht im Vorfeld und strenge Vertragsstrafen.

Sie beginnen mit den üblichen guten Einstellungspraktiken, die auch bei der Einstellung von Vor-Ort-Mitarbeitern (und / oder Dienstleistern) gelten, einschließlich der Überprüfung des bereitgestellten Lebenslaufs, der Anforderung von Bildungsabschriften und Zertifizierungsnummern, Überprüfung und Aufruf ihrer Referenzen, Interviews, vielleicht sogar eine Hintergrundprüfung oder Sicherheitsüberprüfung usw.

Dann bewirb dich Die Karotte: Fair Value zahlen, attraktive Arbeit bieten, tolle Kollegen, gute Arbeitsbedingungen und Sozialleistungen etc. (Wer billig kauft, kauft zweimal.)

Und der Stock: verletze die Bedingungen deines Arbeitsverhältnisses / Dienstvertrages und wir werden unsere Anwälte an dir krank machen und dich bankrott machen!

Sch sch sch 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 sch 100 100 100 100 sch sch sch 100 sch sch sch 100 100 100 sch sch sch 100 sch sch sch 100 100 sch sch sch 100 dieser

Sobald Sie sich für eine Einstellung entscheiden:

  • klare Richtlinien und Richtlinien, Menschen sollten sich bewusst sein, was sie tun sollten und was nicht.
  • es gilt das Prinzip des minimalen Zugangs, es ist für Menschen schwierig (versehentlich oder absichtlich) Dinge zu tun, die sie nicht tun sollten. Für den typischen Systemadministrator bedeutet dies oft noch vollständigen Zugriff, aber ein Sicherheitsprüfer sollte beispielsweise keinen vollständigen Administratorzugriff benötigen, sondern einfach die vorhandenen Administratoren bitten, in seinem Auftrag ein Skript auszuführen, das die Details sammelt, die er für seinen Bericht benötigt. Ein solches Skript kann vorab einfach überprüft werden.
  • vertraue, aber überprüfe. Einfach die vorhandenen Mitarbeiter die Arbeit eines neuen Tischlers überprüfen lassen und wie immer Audit-Informationen sammeln.
  • usw. usw.

Diese Frage Details, die ich normalerweise von meinen Kunden zu tun bekomme, um einen Fernzugriff für mich zu schaffen, was auch für Sie ein guter Ausgangspunkt sein könnte.


10
2018-02-08 09:45



"Wer billig kauft, kauft zweimal" Oder Elefanten. Obwohl ich darüber nachdenke, bin ich mir nicht sicher, ob das besser oder schlechter ist als Affen. - α CVn
Nur um hinzuzufügen, könnte der "Stick" -Teil Ihrer Antwort schwerer durchzusetzen sein, wenn sich die andere Partei in einem anderen Land befindet. Sie sollten zuerst einen sachkundigen / erfahrenen Anwalt konsultieren, um zu sehen, welche Möglichkeiten Sie haben, falls etwas schief geht. - user121391
Außerdem ist die Durchsetzung nach einem Vorfall wahrscheinlich mehr als nur die Arbeit mit einer Partei, der Sie vertrauen können. Aus dem gleichen Grund gibt es Menschen, denen Sie absolut vertrauen können, zu denen Sie nicht automatisch neigen würden, und Menschen, denen Sie instinktiv gegenübertreten, denen Sie wahrscheinlich überhaupt nicht vertrauen sollten. - Craig


Es gibt eine systemische Methode, sich selbst zu schützen, die ich nicht erwähnt habe.

Hosten Sie Ihre Linux-Instanzen als VMs auf einem Virtualisierungs-Hypervisor (VMware, XenServer, Hyper-V usw.).

Geben Sie dem Remoteadministrator keinen administrativen Zugriff auf den Hypervisor. Der Remote-Administrator würde nur Root-Zugriff auf die VM selbst erhalten.

Implementieren Sie ein Hypervisor-basiertes Backup-System (Unitrends, Veeam, vSphere Data Protection usw.)

Halten Sie mindestens einen Snapshot pro Tag für jede Linux-VM bereit und gehen Sie so weit zurück, wie Sie es für nötig halten.

100 100 sch sch dieser sch sch sch sch 100 sch sch sch 100 sch sch sch sch 100 sch sch sch sch 100 sch sch sch sch sch sch sch dieser dieser sch sch sch sch sch sch sch sch sch sch sch sch sch sch zwischen sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch dieser

Wenn Sie diese Dinge tun, haben Sie Backup-Snapshots jeder Linux-Instanz, über die der Remote-Administrator keine Kontrolle hat. Wenn der Remote-Administrator absichtlich oder unabsichtlich etwas Falsches macht, können Sie immer eine Sicherung von der Hinkeness einhängen, um zu bewerten, was passiert ist, und möglicherweise einen sauberen Zustand wiederherstellen.

Dies ist kein Beweis für einen Hypervisor-Seitenkanalangriff, der möglicherweise von einer VM aus bereitgestellt werden kann, auf die der Angreifer Root-Zugriff hat.

Wenn Ihre Backups nicht rechtzeitig zurückreichen, schützt dies Sie nicht.

Sie müssen jedem, der die Kontrolle über Ihren Hypervisor und die Backup-Infrastruktur hat, gründlich vertrauen.

Wenn Sie dies in der Cloud tun (AWS, Azure usw.), unterscheiden sich die Implementierungsdetails, aber das allgemeine Konzept wäre dasselbe.

Teilen Sie im Wesentlichen die Verantwortlichkeiten zwischen den Parteien, die keine Geschäftspartner sind, zusätzlich dazu ein, nur Personen einzustellen, denen Sie vertrauen.


7
2018-02-08 22:11



Wenn Sie das alles erledigt haben, sind Sie bereits der Systemadministrator und Sie beauftragen einen entfernten Lakaien oder PJ. - Criggie
Nicht völlig. Sie verwalten nur den Hypervisor und die Backups. Was zugegebenermaßen nichts ist. Aber es ist auch nicht unbedingt die gleiche Kompetenz oder Verwaltungsaufwand. Es besteht die Möglichkeit, dass Sie, wenn Sie virtualisieren (wir sind), eine andere Person oder Personen haben, die für das verantwortlich sind, was auch immer auf den einzelnen VMs passiert. - Craig
Obwohl die allgemeine Idee gut ist, hilft sie nur gegen Inkompetenz / Fehler (gelöscht die Produktionsdatenbank usw.), nicht gegen Bosheit (es sei denn, Sie überprüfen jeden Tag jede Änderung und vergleichen den Inhalt der Änderungen, im Wesentlichen ein tägliches vollständiges Audit). Auch kann der Schaden nicht mit technischen Dingen zusammenhängen, so können beispielsweise Kundendaten oder abgegriffene Geschäftsgeheimnisse nicht auf diese Weise enthalten sein, da sie nur reaktiv sind. - user121391
@ user121391: Ich kann nicht wirklich widersprechen, vor allem mit dem Problem der Datenexfiltrierung. Sobald die Daten genommen sind, ist es völlig außerhalb Ihrer Kontrolle. - Craig


Gib ihm sein eigenes Benutzerkonto. Finde dann genau heraus, wozu er Zugang braucht und gewähre nur diesen Zugang, aber sonst nichts. Wenn er beispielsweise einen Apache-Webserver neu konfigurieren muss, verwenden Sie eine ACL, um ihm Schreibzugriff auf die Apache-Konfigurationsdateien zu geben und ihn zu konfigurieren sudo um ihn den Apache-Dienst neu starten zu lassen, aber keine anderen Befehle als root auszuführen. Wie immer, bewahren Sie Backups von allem auf, auf das Sie ihm Zugriff gewähren (in diesem Fall Ihre Apache-Konfigurationsdateien).


-1
2018-02-09 07:56



Die Berechtigung zum Konfigurieren und Neustarten eines Apache, der als root ausgeführt wird, gibt im Wesentlichen Root-Rechte aus. Es ist einfach genug, eine willkürliche Binärdatei durch den Apache-Prozeß ausführen zu lassen, z. um Protokolle darauf zu leiten. Stellen Sie Apache besser so ein, dass es als Nicht-Root ausgeführt werden kann und weiterhin an privilegierte Ports binden kann. Das ist, was ich tat in dieser Situation in der Vergangenheit. - MvG