Administratorbenutzern erlauben, sich als andere Benutzer anzumelden

11

Halten Sie es für eine gute Praxis, eine Möglichkeit zu implementieren, die es einem Administrator ermöglicht, sich unter Umgehung des Kennworts als anderer Benutzer anzumelden? Dies kann durch ein Hauptkennwort oder eine Funktion innerhalb der Benutzerverwaltung "Als dieser Benutzer anmelden" implementiert werden.

Administratoren fordern eine solche Funktion an, um beispielsweise versuchen zu können, ein gemeldetes Problem zu reproduzieren oder um zu überprüfen, ob Zuschüsse in Ordnung sind.

Dan McGrath
quelle
9
Im Allgemeinen ist es in der Sicherheitstechnik keine gute Idee, Benutzern die Anmeldung als freigegebenes Konto (oder als Konto anderer Personen) zu ermöglichen, selbst wenn ihre Berechtigungen identisch sind. Die Authentifizierung sollte ein von der Autorisierung getrennter Prozess sein. Wenn Aufgaben unter separaten Benutzerkonten ausgeführt werden, sind sie dafür verantwortlich .
xmm0
1
+1 nach Mehrdad Afshari. Ich erschrecke jedes Mal, wenn ich Leute so über Admin sprechen höre.
Dan McGrath
2
@Mehrdad Afshari und @Dan McG, das ist alles gut und wahr, aber was schlagen Sie vor, wenn ein Administrator in einer alltäglichen Situation Zugriff auf ein Benutzerkonto benötigt ? Bitten Sie den Benutzer, seine Anmeldeinformationen einzugeben? Es kommt sehr häufig vor, dass Sie zum Überprüfen oder Reproduzieren eines Problems die Einstellungen eines bestimmten Benutzers überprüfen müssen, insbesondere wenn die Konten an komplexe Rechte und andere Einstellungen gebunden sind, die mit einem neutralen Konto nicht 1: 1 reproduziert werden können.
Pekka
4
Du siehst es falsch. Wenn der Administrator eine Benutzereinstellung überprüfen muss, müssen wir bessere Tools entwickeln, um diese Diagnoseinformationen vom Benutzer zu erhalten. Beispiel: Wenn Ihre App unter Windows abstürzt, möchten Sie, dass ein MS-Administrator in Redmond RDPing in Ihrem Benutzerkonto Daten auscheckt, oder möchten Sie eine hochautomatisierte Methode zum Zurücksenden der erforderlichen Informationen an diese (nach Ermessen des Benutzers). ?
Dan McGrath
2
@ Dan: Der Kunde ist möglicherweise nicht bereit, dafür zu bezahlen.

Antworten:

15

Nein überhaupt nicht. Dies verstößt gegen die Aufgabentrennung.

Es verursacht auch Chaos, wenn man sich auf Protokolle verlässt, um Benutzeraktionen anzuzeigen.

Wenn Sie solche Dinge wirklich überprüfen müssen, sollte der Administrator auch über Dummy-Testkonten verfügen, die wie die Benutzer eingerichtet sind. Auf diese Weise können sie bestätigen, dass Zuschüsse usw. zuerst für den Testbenutzer korrekt funktionieren.

Abgesehen davon sollten Administratoren nicht immer alle Rechte erhalten, die ein Benutzer hat. Beispielsweise kann ein Benutzer gültige Gründe haben, Kreditkartennummern in einem System anzuzeigen. Ein Administrator sollte nicht; Diese Daten sind nicht Teil ihrer Arbeit. Dies ist wiederum auf die Aufgabentrennung zurückzuführen.

Minimieren Sie Ihre Gefährdung, indem Sie die Gewährung unangemessener Rechte minimieren. Dies sollte auch Administratoren einschließen ...

Dan McGrath
quelle
1
Während Sie gültige Punkte haben, glaube ich nicht , die Antwort ganz so klar ist - in einigen Fällen ist die beste Lösung.
Sleske
11

Unter dem Gesichtspunkt der Sicherheit und sauberen Programmierprinzipien ist dies keine gute Idee. Aber es kann für den Administrator eine enorme Bequemlichkeit in der täglichen Arbeit sein, weshalb ich dafür bin, wenn es gut implementiert ist.

Für mich müsste eine gute Implementierung die folgenden Anforderungen erfüllen:

  • Das System meldet Sie als den betreffenden Benutzer an, umgeht jedoch die Kennwortauthentifizierung, wenn Sie als Administrator angemeldet sind.

  • Das System erkennt durch ein Flag, dass dies nicht Benutzer x ist, sondern ein Administrator, der als Benutzer x angemeldet ist. Jede Protokollierungsfunktion würde den Unterschied widerspiegeln.

  • Es gibt keine Möglichkeit, von der Benutzeranmeldung zurück zur Administratorebene "auszubrechen".

Dies kann die Sicherheit tatsächlich verbessern, da der Administrator nicht nach den Anmeldeinformationen der Benutzer suchen und diese verwenden muss, was in der Realität häufig aus den im OP genannten Gründen der Fall ist: Auf dem Konto des Benutzers muss etwas überprüft, getestet usw. werden .

Pekka
quelle
8

Wie immer ... kommt es darauf an. Es gibt keine einfache Antwort und beide Systeme werden in der Praxis verwendet (z. B. Windows: Der Administrator kann sich nicht als Benutzer anmelden, ohne das Kennwort zurückzusetzen, im Vergleich zu Linux: Der Administrator kann sich als lokaler Benutzer mit anmelden su).

Es ist klar, dass es die sicherere Option ist, dem Administrator nicht zu erlauben, sich als anderer Benutzer anzumelden. Sie müssen also entscheiden, ob der zusätzliche Komfort (das Debuggen von Problemen, die nur für einen bestimmten Benutzer auftreten) das Risiko überwiegt. Wenn Sie sich für die Implementierung einer solchen Option entscheiden, stellen Sie sicher, dass eine strenge Protokollierung erfolgt, damit ein Administrator (oder jemand, der ein Administratorkennwort erhalten hat) seine Spuren nicht verbergen kann.

Alternativ können Sie das von Windows verwendete Muster verwenden: Ein Administrator kann sich nicht als anderer Benutzer anmelden, aber ein Administrator kann das Kennwort eines Benutzers zurücksetzen. Auf diese Weise kann ein Administrator Zugriff erhalten, aber der Benutzer weiß immer , dass jemand auf sein Konto zugegriffen hat.

Heinzi
quelle
Nitpick: Melden Sie sudosich nicht als lokaler Benutzer an, sondern führen Sie nur einen Prozess als Benutzer aus (a la Window's "Als Benutzer ausführen "). Verwenden Sie, um sich als lokaler Benutzer anzumelden su. Ansonsten stimme ich zu.
Sleske
@sleske: Natürlich, danke, dass du das entdeckt hast. Fest.
@sleske: nicht unbedingt anschauen sudo -i.
Liori
Die Idee einer 'Login-Shell' hat mehr mit dem Verhalten der shausführbaren Datei zu tun als mit den erteilten Berechtigungen. su - userund sudo -u user shden gleichen Zugang gewähren; Der Unterschied besteht darin, dass shverschiedene Startskripte ausgeführt werden.
Jpaugh
3

Nun, phpBB3 verfügt über eine Funktion zum Testen der Benutzerberechtigungen für Administratoren, die sehr hilfreich ist. Außerdem können Sie das Benutzerkonto nicht wirklich stören, sondern nur die Erfahrung erhalten, die sie basierend auf ihren Berechtigungen gemacht haben.

Das Anmelden als jemand anderes bringt jedoch eine Reihe von Problemen mit sich, wie andere bereits erwähnt haben.

back2dos
quelle
1

Ja, eine solche Funktionalität kann problematisch sein, aber manchmal gibt es keinen anderen Weg, so dass es notwendig sein könnte.

Einige Beispiele:

  • Unter Unix / Linux ist diese Funktionalität vorhanden ( su - <username>die das gleiche Ergebnis wie die Anmeldung dieses Benutzers liefert, jedoch kein Kennwort für root erfordert).
  • Die Anwendung, an der ich arbeite, hat dies auch und ist wichtig für das Debuggen von Problemen mit den persönlichen Einstellungen eines Benutzers (von denen unsere App viele hat).

Wie bereits erwähnt, gibt es häufig keine andere praktische Möglichkeit, das Problem eines Benutzers zu beheben, wenn komplexe Einstellungen vom angemeldeten Benutzer abhängen (Umgebungsvariablen, Pfade, persönliche Einstellungen in einer Anwendung).

Protokollierung / Überwachung: Die Verwendung dieser Funktionalität sollte natürlich protokolliert werden. Ansonsten müssen Sie Ihrem Administrator vertrauen, um ihn nicht zu missbrauchen. Dies gilt jedoch generell für Administratoren.

Wenn Sie Ihre Administratoren stärker einschränken müssen, benötigen Sie eine Art MAC-System (obligatorische Zugriffskontrolle) ohne "echten" Administrator. Das ist möglich, aber viel komplizierter, also ist es ein Kompromiss.

sleske
quelle