Sollten Entwickler Administratorrechte auf ihrem PC haben?

135

Sollten Entwickler über Administratorrechte auf ihrem PC verfügen oder ist ihnen der Zugriff durch Power-User ausreichend?

Einige Kommentare:

  • Wenn sie eine neue Anwendung ausprobieren möchten, die installiert werden muss, können sie sie auf einer virtuellen Maschine ausprobieren und später vom Netzwerkadministrator beauftragt werden, sie für sie zu installieren. Glaubst du, das würde funktionieren?
  • Gibt es etwas, das ein Entwickler auf seinem PC tun muss, für das Administratorrechte erforderlich sind?

Wir sind ein Team von 5 Entwicklern und erstellen Webanwendungen

Craig HB
quelle
116
Wenn ich in einen Job eintreten und feststellen würde, dass ich keine Administratorrechte für meinen Computer habe, würde ich am nächsten Tag nicht zurückkommen. Machen Sie Ihren Entwicklern das Leben leichter und nicht schwerer.
Annakata
29
Diese Frage wird unter Auswahlverzerrungen leiden - es gibt Zeiten, in denen Entwicklercomputer gesperrt werden sollten, aber diese Art von Antwort wird auf einer für Entwickler bestimmten Website niemals hochgestimmt.
Romandas
5
Seltener als man denkt. In den meisten Fällen handelt es sich bei dem zugrunde liegenden Problem um sensible Daten. Beispielsweise verhindern die Schweizer Gesetze zur Vertraulichkeit von Banken, dass Entwickler tatsächliche Kundendaten sehen (die Kontenabstimmung bleibt dem Leser als Übung überlassen). In diesem Fall besteht das Problem nicht darin, die Maschinen zu sperren, sondern bereinigte Datensätze für die Entwicklungsarbeit bereitzustellen. Die meisten anderen Situationen sind entweder behördliche Anforderungen (z. B. Arbeiten mit Verschlusssachen) oder eigennützige CYA.
ConcernedOfTunbridgeWells
12
Ich frage mich, wie sich die gleiche Frage auf ServerFault entfalten würde ... (@romandas)
Ben Mosher
4
@ BenMosher: Hier ist Ihre Antwort: serverfault.com/questions/232416/…
kmote

Antworten:

228

Die Antwort ist ja'. Entwickler müssen mit Systemkonfigurationen friggen, um Elemente zu testen, Software zu installieren (wenn nichts anderes, um den Installationsprozess von allem zu testen, was sie gerade entwickeln), sich in der Registrierung umzusehen und Software auszuführen, die ohne Administratorrechte nicht richtig funktioniert (nur um einige Punkte aufzulisten). Es gibt eine Vielzahl anderer Aufgaben, die für die Entwicklungsarbeit von wesentlicher Bedeutung sind und für die Administratorrechte erforderlich sind.

Angesichts der Tatsache, dass Entwicklungsmitarbeiter nicht unbedingt über Root-Zugriff auf Produktionssysteme verfügen, beeinträchtigen Administratorrechte auf einem lokalen PC die Sicherheit von Produktionssystemen nicht wesentlich. Es gibt fast keinen legitimen betrieblichen Grund, den Administratorzugriff auf lokale PCs für Mitarbeiter zu beschränken, die diese für ihre Arbeit benötigen.

Der wichtigste Grund für die Bereitstellung des Administratorzugriffs ist jedoch, dass das Einrichten einer kompromittierten oder zweitklassigen Entwicklungsumgebung eine Nachricht an Ihre Entwicklungsmitarbeiter sendet:

„Wir schätzen Ihre Arbeit so wenig, dass wir bereit sind, Ihre Fähigkeit, Ihre Arbeit ohne guten Grund zu erledigen, erheblich zu beeinträchtigen. Tatsächlich sind wir sehr glücklich, dies zu tun, um unseren eigenen Arsch zu bedecken, den Launen der kleinen Bürokratie nachzugeben oder weil wir einfach nicht belästigt werden können. Das ist einfach der beste Fall. Der schlimmste Fall ist, dass wir wirklich die Art von Kontrollfreaks sind, die es als unser Recht ansehen, Ihnen zu sagen, wie Sie Ihren Job machen und was Sie tun oder nicht tun müssen. Mach mit dem aus, was dir gegeben wurde, und sei dankbar, dass du überhaupt einen Job hast. '

Im Allgemeinen ist die Bereitstellung eines zweitklassigen (geschweige denn grundlegend fehlerhaften) Arbeitsumfelds für Entwicklungsmitarbeiter ein Rezept für die natürlichen Folgen der Verärgerung Ihrer Mitarbeiter - Unfähigkeit, kompetente Mitarbeiter zu halten, hohe Fluktuation, schlechte Arbeitsmoral und schlechte Lieferqualität. Es ist einfach unverantwortlich, sich die Mühe zu machen, dies zu tun - insbesondere, wenn es einen Anflug von bürokratischer Laune gibt.

Denken Sie daran, dass Ihre Fluktuation nicht nur Kosten für den Austausch des Personals verursacht. Die schwerwiegendsten Kosten für die Fluktuation sind, dass die meisten, die hier bleiben, das Totholz sind, das keinen besseren Job bekommen kann. Dies beeinträchtigt im Laufe der Zeit die Fähigkeiten der betroffenen Abteilungen. Wenn Ihre Branche nahe genug ist, können Sie sich auch einen Namen machen.

Zu beachten ist, dass Administratorrechte für die Entwicklung auf Unix-OID- oder Mainframe-Systemen weitaus weniger ein Problem darstellen als unter Windows. Auf diesen Plattformen kann ein Benutzer in seiner eigenen Domäne weitaus mehr tun, ohne systemweite Berechtigungen zu benötigen. Sie werden wahrscheinlich immer noch Root- oder Sudo-Zugriff für Entwickler wünschen, aber wenn Sie diesen nicht haben, werden Sie viel seltener unter die Füße geraten. Diese Flexibilität ist ein bedeutender, aber weniger bekannter Grund für die anhaltende Beliebtheit von Unix-abgeleiteten Betriebssystemen an Informatikschulen.

ConcernedOfTunbridgeWells
quelle
3
Es gibt einen Unterschied, ob Sie Administratorrechte haben und alles mit Administratorrechten ausführen :) Viele Entwickler benötigen natürlich Administratorrechte. Es ist jedoch nicht zuletzt ein Privileg, alles interaktiv mit Administratorrechten auf einem lokalen System auszuführen. Es öffnet sich für Angriffe auf Produktionssysteme, auf die der Entwickler Zugriff hat, und ein kompromittierter lokaler PC gewährt jedem Angreifer den gleichen Zugriff. Das ist einfacher als man denkt. Sicherheit ist ein Schicht-auf-Schicht-Problem, das geringste Privileg pro Prozess und ein Problem mit der Benutzerschulung. Die Sicherheit jedes Geräts zu respektieren ist der einzige Weg: vimeo.com/155683357
Oskar Duveborn
Ich bin ein Befürworter der Gewährung lokaler Administratorrechte an Entwickler, aber die Aussage, dass "Administratorrechte auf einem lokalen PC die Sicherheit von Produktionssystemen nicht wesentlich beeinträchtigen", hängt von Ihrer Umgebung ab. Die meisten IT-Mitarbeiter sind besorgt darüber, dass Sie Software installieren, die Malware / Viren enthält, die sich im gesamten Unternehmen verbreiten können, oder wenn jemand Ihren lokalen Computer kompromittiert und Sie vertrauliche Datendateien lokal oder in einer lokalen Datenbank gespeichert haben. In einer perfekten Welt hat kein Entwickler Zugriff auf HIPAA / PCI-Datendateien und alle Entwicklerdatenbanken werden sauber gesäubert, aber wir wissen, dass dies nicht der Fall ist.
L_7337
87

Entwickler sollten die vollständige Kontrolle über die von ihnen verwendete Maschine haben. Die meisten Debugging-Tools erfordern Administratorrechte, um sich an die Laufzeit der von ihnen erstellten Anwendung anzuschließen.

Außerdem laden Entwickler häufig neue Dinge herunter und probieren sie aus. Das Hinzufügen zusätzlicher Schritte, z. B. die Notwendigkeit, dass ein Netzwerkadministrator vorbeikommt und etwas für sie installiert, frustriert den Entwickler einfach und macht der Person des Netzwerkbetreibers schnell das Leben zur Hölle.

Das heißt, sie sollten ein Administrator auf IHRER Box sein, nicht das Netzwerk.

Nicht ich
quelle
5
Das größte Problem, auf das ich bei Entwicklern mit Administratorrechten gestoßen bin, ist, dass Sie die Rechte, die Sie an Ihren lokalen Computerressourcen haben, für selbstverständlich halten. So viele beschissene Softwareergebnisse - schreibt in C: \ Programme, schreibt in HKLM usw. Vielleicht auf Ihrer Workstation, aber Sie müssen testen, wo Sie es nicht tun.
SqlRyan
4
@rwmnau: Das gilt nicht für die Webentwicklung. Außerdem tritt das Problem ziemlich schnell auf, wenn die Qualitätssicherung unter normalen Berechtigungen durchgeführt wird.
NotMe
2
Das Bereitstellen von VMs und Anmeldungen von Entwicklertests ohne Administratorrechte ist eine gute Möglichkeit, um zu testen, ob Software mit normalen Benutzerberechtigungen ausgeführt wird.
ConcernedOfTunbridgeWells
Software, die mit solchen Nur-Administrator-Berechtigungen veröffentlicht wird, hat einen extrem schlechten (oder keinen) QS-Prozess durchlaufen. Die Software sollte in realen Umgebungen getestet werden, daher sollte die Qualitätssicherung sie frühzeitig erkennen und das Problem, das sonst von Entwicklern übersehen wird, würde behoben. Richtig?
2
@rwmnau - Jeder Entwickler, der sein Geld wert ist, ist sich dessen vollkommen bewusst, aber die Antwort ist nicht, seine Entwicklungsmaschine zu sperren. Sie sollen eine Testumgebung erhalten, in der sie ihr Projekt nach Belieben bereitstellen können, um diese Probleme zu lösen.
Spencer Ruport
48

Ja und nein.

Ja, das spart viel Zeit bei der Systemunterstützung.

Nein, Ihre Benutzer haben es nicht, also rechnen Sie nicht damit.

Wir entwickeln mit Administratorrechten und testen ohne. Welches funktioniert richtig.

Toon Krijthe
quelle
11
Meine Frau musste auf ihrem Computer für ein Nicht-Administratorkonto argumentieren, damit sie sicherstellen konnte, dass die Benutzer tun konnten, was sie konnte. Ihre Richtlinie ist genau richtig (und daher positiv bewertet).
David Thornley
1
Genau, dev sollte admin haben, test und QA sollte user haben.
Dr. Watson
Ich kann dir nicht mehr zustimmen! Der Administratorzugriff eignet sich hervorragend für die Entwicklung, aber die meisten Benutzer haben ihn nicht (wenn Sie Unternehmenssoftware entwickeln ... Die IT sperrt die Dinge normalerweise ziemlich gut).
Pulsehead
18

Lokaler Administrator ja, aus allen oben genannten Gründen. Netzwerkadministrator Nein, da sie unweigerlich in Netzwerkverwaltungsaufgaben einbezogen werden, weil "sie können". Entwickler sollten sich entwickeln. Die Netzwerkadministration ist eine ganz andere Aufgabe.

Nick Van Brunt
quelle
15

Entwickler müssen normalerweise Dinge tun, die die durchschnittliche Person nicht tun würde, und sollten daher normalerweise über Administratorkonten verfügen. Sie durch unangenehme Reifen hüpfen zu lassen, verschwendet ihre Zeit und demoralisiert sie. In Hochsicherheitssituationen kann es Ausnahmen geben, aber wenn Sie jemandem mit einem Administratorkonto nicht vertrauen können, können Sie seinem Code sicher nicht vertrauen.

Sie sollten auch über ein verfügbares Konto mit derselben Berechtigung wie ihre Benutzer verfügen (mehr als ein Konto, wenn der Benutzerpool unterschiedliche Berechtigungsstatus hat). Andernfalls entwickeln sie möglicherweise nur etwas Cooles, stellen es bereit und stellen dann fest, dass es für die Benutzer nicht funktioniert.

Es gibt auch zu viele Möglichkeiten, Computer mit Administratorkonten zu vermasseln (ja, ich habe es getan). Die IT-Abteilung benötigt eine Richtlinie, nach der sie den Computer eines Entwicklers neu abbildet, wenn sie ihn nicht schnell reparieren kann. An einem Ort, an dem ich einen Vertrag abgeschlossen hatte, musste ich eine Kopie dieser Richtlinie unterschreiben, um mein Administratorkonto zu erhalten.

Dies ist eine ziemlich Windows-spezifische Antwort. Unter Linux und anderen Unix-y-Systemen können Entwickler häufiger nur mit Benutzerkonten auskommen, benötigen häufig kein anderes Konto zum Testen (wenn sie ein Konto haben, mit dem sie sudo können, wissen sie, wann sie es verwenden das sudo, aber sie benötigen möglicherweise eines mit denselben Gruppenberechtigungen) und können dem Betriebssystem sehr leicht unglaublichen Schaden zufügen, sodass dieselbe IT-Richtlinie erforderlich ist.

David Thornley
quelle
4
"In Hochsicherheitssituationen kann es Ausnahmen geben, aber wenn Sie jemandem mit einem Administratorkonto nicht vertrauen können, können Sie seinem Code sicher nicht vertrauen." - das ist ein toller Gedanke, danke!
Benutzer
Sie können dem Code in keiner Weise vertrauen: Sie sollten für alles Peer-Review-Code erstellen. Und ich denke, das ist auch für Installationen sinnvoll: Lassen Sie jemanden die Software, die er installieren möchte, einer Peer-Review unterziehen.
Tim
10

Ja, Half-Life 1 (und alle zugehörigen Mods: Counter-Strike, Tag der Niederlage usw.) benötigen Administratorrechte (zumindest für den ersten Lauf, glaube ich), um unter Windows NT, 2000, XP usw. ordnungsgemäß zu funktionieren .

Und welche Art von Entwickler spielt Counter Strike zur Mittagszeit nicht? (eine beschissene sicher)

fortran
quelle
10

Nachdem ich den Schmerz ertragen habe, mich ohne Administratorrechte auf dem Computer entwickeln zu müssen, kann meine Antwort nur Ja sein, es ist wichtig.

Jason
quelle
8

Absolut! Wie sonst würde ich den Download-Manager installieren, um Filme nachts herunterzuladen?

Manchmal müssen Entwickler wirklich Dinge installieren oder etwas im System ändern, um eine Idee zu testen. Es ist unmöglich, wenn Sie den Administrator jedes Mal anrufen müssen, wenn Sie etwas ändern müssen.

Ich habe auch meine persönliche Beobachtung, dass einige Admins dazu neigen, alles Mögliche festzuschrauben, um auch kleine Dinge täglich von ihnen abhängig zu machen, also ... was, um ihren Job zu sichern? die anderen User verärgern? Habe keine Antwort. Aber gesunder Menschenverstand wird hier nicht gesehen.

Das letzte Mal, als es ein Problem mit meinem PC gab, nahm ich aktiv an der Wiederherstellung des Systems teil und machte einige Vorschläge, die im Team mit dem Administrator zusammenarbeiteten, oder so dachte ich ... Der Administrator wurde sehr wütend und beschuldigte mich, versucht zu unterrichten ihn oder definieren die Regeln neu. Ich nehme an, es war nur sein Ego, da er unter anderen Kollegen in unserem Zimmer nicht so cool gesehen wurde.

Benutzer
quelle
Ich kann nicht mehr zustimmen. Nach 6 Jahren als Systemingenieur ist es schmerzhaft, den Helpdesk anrufen zu müssen, um etwas zu reparieren.
Matthew Whited
8

Die Antwort ist, Entwickler sollten 2 Maschinen haben !!

  • Eine Entwicklungsversion mit Administratorrechten und ausreichender Leistung, Speicher, Bildschirmgröße und Portabilität sowie ADMIN-Berechtigungen. Die Antivirensoftware des Unternehmens ist geladen, kann jedoch vom Entwickler konfiguriert werden, wenn dies mit einer Richtlinie für die automatische Wiederherstellung erforderlich ist.

  • Ein Unternehmen, das über Unternehmenslast, Richtlinien, Benutzerrechte ohne Administratorrechte usw. verfügt. Entwickler können dieses für Anwendungen im Release-Modus für Unit-Tests verwenden, da einige Entwickler die unangenehme Angewohnheit haben, alle Unit-Tests mit Administratorrechten durchzuführen.


quelle
9
Tolle Idee ... aber die meisten Unternehmen geben Ihnen nicht einmal eine "gute" Maschine, die zwei vermietet.
Matthew Whited
1
Sie können den zweiten Computer in einer VM mit dem Standard-Build ausführen. Dies ist besonders nützlich, wenn das Entwicklungsnetzwerk in eine eigene Domäne unterteilt ist. Eine separate Produktions-VM in der Hauptdomäne ermöglicht den Entwicklern den Zugriff auf Netzwerkressourcen.
ConcernedOfTunbridgeWells
5

Wenn Sie die Frage umkehren, wird es meiner Meinung nach einfacher, sie zu beantworten. Sollen wir Administratorberechtigungen von Entwicklern entfernen? Was ist der Gewinn?

Aber tatsächlich denke ich, dass die Antwort von Ihrem Kontext, Ihrer Umgebung abhängt. Kleine Startups haben eine andere Antwort als die ISO-zertifizierte Regierungsbehörde.

Ed Guiness
quelle
5

Ja, aber sie müssen sich der Einschränkungen bewusst sein, denen ihre Benutzer beim Ausführen von Software in einer eingeschränkteren Umgebung ausgesetzt sind. Entwickler sollten einfachen Zugriff auf "typische" Umgebungen mit begrenzten Ressourcen und Berechtigungen haben. In der Vergangenheit habe ich die Bereitstellung von Builds auf einem dieser "typischen" Systeme (häufig eine VM auf meiner eigenen Workstation) als Teil des Erstellungsprozesses integriert, damit ich immer ein schnelles Gefühl dafür bekommen konnte, wie die Software auf einem Endsystem funktioniert. Maschine des Benutzers.

Programmierer sind auch dafür verantwortlich, die festen Regeln für das Schreiben von Software für Benutzer ohne Administratorrechte zu kennen. Sie sollten genau wissen, auf welche Systemressourcen sie immer zugreifen dürfen (oder dürfen). Sie sollten die APIs kennen, die zum Erwerb dieser Ressourcen verwendet werden.

"Es funktioniert auf meiner Maschine" ist niemals eine Entschuldigung!

John Cromartie
quelle
5

Als Systemadministrator bin ich alles für Entwickler, die lokale Administratorrechte auf ihren Workstations haben. Wenn möglich, ist es keine schlechte Idee, die meisten Dinge mit einem Standardkonto auf Benutzerebene zu erledigen und dann ein anderes Administratorkonto zu verwenden, um Änderungen vorzunehmen, Apps zu installieren usw. Oft können Sie Sudo oder Runas verwenden, um das zu erreichen, was Sie wollen, ohne sich zu protokollieren aus. Es ist auch hilfreich, uns daran zu erinnern, durch welche Sicherheitsrisiken die Endbenutzer bei der Freigabe für die Produktion springen müssen.

Nebenbei bemerkt ist es auch ratsam, ein [sauberes] System oder eine (saubere) VM (s) zu haben, damit Sie die Dinge richtig testen können und nicht aufgrund von Systemoptimierungen in das Szenario "Es sieht auf meinem System gut aus / funktioniert gut" geraten.

atom255
quelle
3

Kein Power User

Erstens ist Power User im Grunde genommen ein Administrator. Wenn Sie also einen Benutzer auf Power User beschränken, erhöht sich die Sicherheit des Systems nicht. Sie können auch Administrator sein.

Melden Sie sich interaktiv als normaler Benutzer an

Zweitens benötigt ein Entwickler natürlich Administratorzugriff auf seinen Entwicklercomputer (und Server und zweite Boxen usw.), aber natürlich sollte sich während der normalen Entwicklung oder des normalen Testens niemand interaktiv als Administrator anmelden. Verwenden Sie für diese und die meisten Anwendungen ein normales Benutzerkonto.

Sie möchten ernsthaft keinen Browser, Plugin, IM, E-Mail-Client usw. als Administrator ausführen.

Normalerweise melden Sie sich auch nicht als Root bei Ihrer Linux-Box an, selbst wenn Sie wahrscheinlich Root-Zugriff haben, wenn Sie ihn benötigen.

Verwenden Sie ein separates persönliches Administratorkonto

Stellen Sie dem Entwickler ein separates persönliches Administratorkonto für seinen Computer zur Verfügung (vorzugsweise ein Domänenkonto), das auch ein gültiger Administrator auf anderen Entwicklungs- / Testservern und Boxen ist, auf die diese Person Administratorzugriff benötigt.

Verwenden Sie "Ausführen als" und in Vista + UAC, um eine Eingabeaufforderung anzufordern oder anzufordern und die Administratoranmeldeinformationen für Aufgaben und Prozesse nur bei Bedarf einzugeben. PKI mit Smartcards oder ähnlichem kann die Belastung bei der häufigen Eingabe von Anmeldeinformationen erheblich verringern.

Jeder ist glücklich (oder ?;)

Dann Audit-Zugriff. Auf diese Weise gibt es eine Rückverfolgbarkeit und eine einfache Möglichkeit, herauszufinden, wer die Terminaldienstesitzungen auf einem bestimmten Entwicklungs- / Testserver verwendet, auf den Sie gerade zugreifen müssen ...

Zugegeben, es gibt definitiv Entwicklungsarbeiten, für die niemals lokale Administratorrechte erforderlich sind - wie bei den meisten Webentwicklungen, bei denen die Bereitstellung auf einem separaten Server oder einer virtuellen Maschine getestet wird und bei denen Cassini oder was auch immer für das lokale Debuggen verwendet wird, als normaler Benutzer tatsächlich gut funktioniert.

Oskar Duveborn
quelle
2
Sie sagen: Erlauben Sie ihnen nicht, sich als Administrator anzumelden, sondern geben Sie ihnen die Schlüssel für den Fall, dass sie etwas tun müssen, das dies erfordert. Ich habe den gleichen Mist auf der MS-Website in Bezug auf UAC gelesen, und es zeigt einen völligen Mangel an wirklicher Rücksicht auf die hundert Dinge, die ein Entwickler an einem Tag tut.
NotMe
2
Die Benutzerkontensteuerung wurde eingerichtet, um zu verhindern, dass normale Menschen sich in den Fuß schießen. Wenn ein Entwickler dies tut, schäme dich für ihn. Wenn er es kontinuierlich tut, muss er eine andere Arbeit finden.
NotMe
Wenn Sie ihnen die Schlüssel geben, "erlauben" Sie ihnen tatsächlich, sich als Administratoren anzumelden. Es ist nur so, dass es nie eine gute Idee ist, dies für alltägliche Aufgaben zu tun. Warum die Leute das immer noch für normal oder notwendig halten, nur weil sie Geeks, Programmierer oder Admins sind, ist mir ein Rätsel.
Oskar Duveborn
Wenn Sie jemals gesehen haben, was ein moderner Systemadministrator an einem Tag tut, werden Sie feststellen, dass der Bedarf an Administratorzugriff und der Eingabe alternativer Anmeldeinformationen weitaus höher ist als bei jedem Hardcore-Codierer auf Systemebene. Sie melden sich immer noch nicht als Administratoren für alltägliche Aufgaben an und sind in Ordnung.
Oskar Duveborn
Normalerweise melden Sie sich nicht als Root bei einem Unix-System an, selbst wenn Sie es verwalten. Warum sollten Sie dies auf einem Windows-System tun, selbst wenn Sie Entwickler sind? Das macht keinen Sinn. Das Ausführen aller zufälligen Apps wie Skype oder so weiter mit hohen Systemberechtigungen ist, gelinde gesagt, unwissend - Sie erhöhen nur Apps, die dies benötigen.
Oskar Duveborn
3

Ich arbeite hauptsächlich in der * nix-Welt und dem Standardmodell, das es Entwicklern gibt, in einem normalen, nicht privilegierten Benutzerkonto zu arbeiten, mit der Möglichkeit (über sudooder su), bei Bedarf zu Administratorrechten zu eskalieren.

Ich bin mir nicht sicher, wie die entsprechende Windows-Anordnung aussehen würde, aber dies ist meiner Erfahrung nach das ideale Setup:

  • Einerseits bietet die Verfügbarkeit von Administratorrechten bei Bedarf dem Entwickler bei Bedarf die volle Macht über seine Workstation.

  • Andererseits geht die Windows-Software seit langem davon aus, dass alle Benutzer über Administratorrechte verfügen, so dass viele Programme nicht für Benutzer ohne Administratorrechte ausgeführt werden. Viele der Sicherheitsprobleme von Windows ergeben sich direkt aus dieser impliziten Anforderung, dass alle Benutzer Administratoren sein müssen, um den Computer zuverlässig verwenden zu können. Dies muss sich ändern, und der effektivste Weg, um sicherzustellen, dass Ihre Software für Benutzer ohne Administratorrechte ausgeführt wird, besteht darin, dass Ihre Entwickler sie selbst als Benutzer ohne Administratorrechte ausführen.

Dave Sherohman
quelle
Ich glaube nicht, dass ich in den letzten 5-10 Jahren auf eine Geschäftsanwendung gestoßen bin, die nicht als normaler Benutzer ausgeführt werden kann. Als ich ein BOFH war und alle Benutzer an diesem Ort seit ~ 2001 gezwungen waren, alles als normale Benutzer auszuführen - keine Administratorrechte wurden delegiert und es funktionierte gut und vereitelte eine Menge Malware dieser Zeit. In neueren Windows-Versionen werden auch automatische Shims angewendet, wenn eine solche Legacy-App ausgeführt wird (was in einer Sandbox zum Narren gehalten wird), und in meiner täglichen Entwicklungsarbeit wird so ziemlich nur Visual Studio jemals erhöht, wenn ich eine Verbindung herstellen muss zu anderen Prozessen zum Debuggen.
Oskar Duveborn
3

[Entschuldigung Englisch ist nicht meine Muttersprache, mein Bestes geben :)] Nun,

Persönliche Erfahrung (ich bin ein C ++ / SQL-Entwickler):

In meinem vorherigen Job war ich Administrator meiner Windows-Maschine. Ich hatte auch dbo (nicht dba) Rechte für Datenbanken, einschließlich Produktionsumgebungsdatenbanken. In zweieinhalb Jahren mit 8 Leuten, die diese verrückten hohen Rechte haben ... hatten wir nie Probleme. Tatsächlich haben wir viele Probleme gelöst, indem wir db manuell aktualisiert haben. Wir konnten viele Dinge für Hotfixes und Entwickler sehr schnell erledigen.

Jetzt habe ich den Job gewechselt. Ich habe es geschafft (viel zu weinen), Administrator meiner Windows-Maschine zu sein. Der Dev-Server ist jedoch ein Red Hat-Server, mit dem wir über ssh eine Verbindung herstellen. Der Versuch, Qt zu installieren, war eine Qual, Quoten-, Platz-, Ausführungs- und Schreibrechte. Wir gaben schließlich auf und baten den Administrator, dies für uns zu tun. 2 Wochen später ist noch nichts installiert. Ich werde sehr schnell beim Lesen von Zeitungen und beim Schlagen von Alt + Tab.

Ich habe nach Administratorrechten gefragt, da nur der Entwickler meiner Software diesen Computer verwendet.

-> Antwort: "Wenn es Prozesse gibt, müssen Sie nicht tun, was Sie wollen. Es muss einmal in prod einwandfrei laufen."

-> Ich versuche einem nicht-technischen Manager zu erklären: "Ich werde in Produktions- oder UAT-Umgebungen keinerlei Administratorrechte haben. Aber meine Entwicklungsmaschine ist anders. Wenn ich Stühle anstelle von Software bauen würde, würden Sie mir sagen, dass ich das kann." Ich gebe uat ein ausführbares Paket, das ich möchte, weil meine Werkstatt wie der Ort aussehen soll, an dem der Stuhl verwendet wird. Die Bibliotheken und Werkzeuge, mit denen ich sie erstellt habe, sind für den Endbenutzer oder für ihn unsichtbar der Typ, der das Paket installiert. "

Ich warte heute noch. Ich habe eine Lösung gefunden, eine Entwicklungsumgebung geöffnet, gehe zu deinem Lieblings-Online-Richter und fordere dich selbst heraus. Wenn jemand auf Ihren Bildschirm schaut, sieht er Sie beim Programmieren. ;)


quelle
2

Sie können dies auf zwei Arten beantworten. Ja und nein, oder es kommt darauf an. - Kann ich vager sein ...

Es hängt davon ab, ob sie ihre Arbeit erledigen müssen. Wenn dies der Fall ist, erteilen Sie ihnen Verwaltungsbefugnisse über ihren Computer. Wenn nicht, dann nicht. Nicht für jede Softwareentwicklung muss ein Techniker über Administratorrechte verfügen.

Ja und Nein hängt von Ihrer Ansicht ab. Einige Ingenieure betrachten ihren Computer als ihre Domäne und sie sind die Regeln ihrer Domäne. Andere wollen die Verantwortung nicht.

Ich habe in einem Unternehmen gearbeitet, in dem ich keine Administratorrechte hatte, und wann immer ich etwas tun musste, das Administratorrechte erforderte, musste ich den Helpdesk anrufen, und sie gewährten mir temporäre Administratorrechte, bis ich neu startete. Das war manchmal ein Schmerz, aber so war es, also lebte ich damit. Ich habe auch an Orten gearbeitet, an denen ich die vollen Administratorrechte für meinen Computer habe. Das war großartig, bis auf die Zeit, in der ich eine Software installiert habe, die das Betriebssystem abgespritzt hat, und meinen Computer zum Helpdesk bringen musste, damit sie die Festplatte neu abbildeten.

Ich persönlich bin der Meinung, dass ein Ingenieur Administratorrechte für seinen Computer haben sollte, aber mit dem Verständnis, dass ein neues Baseline-Image neu geladen werden kann, wenn er es vermasselt, und er alles verliert, was seit der ursprünglichen Baseline getan wurde. Ich glaube jedoch nicht, dass jeder in einem Unternehmen Administratorrechte für seinen Computer haben sollte. Buchhaltung, Verwaltungsassistenten und andere Abteilungen müssen diese Rechte nicht wirklich haben, daher sollten sie nicht gewährt werden.

Kennzeichen
quelle
Ich war einmal ein Auftragnehmer für ein Unternehmen, bei dem ich, um Administratorrechte zu erhalten, eine Bestätigung unterschreiben musste, dass die IT-Mitarbeiter nicht länger als zehn oder fünfzehn Minuten damit verbringen würden, meinen Computer zu reparieren, und dann ein vollständiges Löschen und erneutes Löschen durchführen würden -Bild. Es schien mir fair.
David Thornley
Einverstanden. Mit großer Macht kommt große Verantwortung.
CraigTP
2

ht tp: //msdn.microsoft.com/en-us/library/aa302367.aspx

Nach meiner Erfahrung ist immer ein Kompromiss zwischen uns (Programmierern) und ihnen (Sicherheit) erforderlich. Ich gebe zu (obwohl ich es hasse), dass der obige Microsoft-Artikel einen Wert hat. Da ich seit Jahren Programmierer bin, habe ich die Schmerzen erlebt, die ich brauchte, um einfach einen anderen Debugger zu installieren, nur um mich zu ärgern, kann ich nicht. Es zwang mich, kreativ darüber nachzudenken, wie ich meine Arbeit erledigen kann. Nach Jahren des Kampfes gegen unser Sicherheitsteam (und mehrerer Diskussionen) verstehe ich, dass es ihre Aufgabe ist, alle Bereiche, einschließlich meines Desktops, zu sichern. Sie zeigten mir die täglichen Schwachstellen, die selbst in der einfachsten Quicktime-App auftreten. Ich kann ihre Verwirrung jedes Mal sehen, wenn ich ein schnelles Dienstprogramm installieren oder meinen lokalen IIS optimieren möchte, damit ich ein ernstes Sicherheitsproblem verursachen kann. Ich habe das nicht ganz verstanden, bis ich sah, dass ein anderer Entwickler in die Dose ging. Er versuchte zu debuggen und schaltete Symantec aus, um Hunderten von Menschen Viren zuzuführen (und sie dann zu GEBEN). Es war eine Katastrophe. Als ich mit einem der "Secheads" (Sicherheitsleute) darüber sprach, was passiert ist, konnte ich sehen, dass er nur sagen wollte: "Hab es dir gesagt ...".

Ich habe gelernt, dass unsere Sechsten (zumindest meine) nur unser Unternehmen schützen wollen. Die gute Nachricht ist, dass wir einen Kompromiss gefunden haben und ich meine Arbeit erledigen kann und die Secheads mit unserem sicheren Netzwerk cool sind!

Glaubensbekenntnis


quelle
1

Ja, wenn Sie möchten, dass die Pentester oder einige erfahrene böswillige Benutzer bei der Gefährdung Ihrer Domain Fuß fassen.

dh Kompromiss auf niedriger Ebene> Finden Sie, wo der Administrator -> Mimikatz -> Erhöhen Sie die Berechtigungen -> Domain-Administrator.

Also nein, normale Benutzer sollten keine Administratoren sein.

Microsoft hat außerdem angegeben, dass die Benutzerkontensteuerung keine Sicherheitsgrenze darstellt. Verwenden Sie sie daher nicht als solche. Es gibt verschiedene reale Umgehungsstraßen für die Benutzerkontensteuerung.

Wenn sie als Teil ihrer Jobrolle Administrator benötigen, geben Sie separate lokale Domänenbenutzerkonten für Domänen an, die nur für die Installation von Software verwendet werden (mit Administratorrechten nur auf ihrem eigenen Computer), niemals für die allgemeine Verwendung oder den Internetzugang. Dies sollte eine strengere Kennwortrichtlinie haben (z. B. mindestens 15 Zeichen). Hierfür sollte die Runas-Funktionalität verwendet werden.

Jede Umgebung, in der normale Benutzerkonten Administrator sind, ist ein Rezept für eine Sicherheitskatastrophe.

SilverlightFox
quelle
0

Wow, diese Frage wird sicherlich einige interessante Antworten eröffnen. Als Antwort zitiere ich das oft verwendete - "Es kommt darauf an" :)

In kleinen Unternehmen ist dies möglicherweise nur eine Frage der Pragmatik. Die Entwickler sind wahrscheinlich auch die technisch versiertesten, daher ist es für sie sinnvoll, ihre eigenen Maschinen zu verwalten.

Persönlich bin ich ein Fan des "Administratorkontos", das bei Bedarf verwendet werden kann - dh "Ausführen als ..." (ich habe festgestellt, dass dieser Ansatz später im Prinzip der Benutzerkontensteuerung sehr ähnlich war).

Wenn Sie Desktop-Software entwickeln, ist es für Entwickler keine schlechte Idee, innerhalb der Grenzen zu arbeiten, die die Endbenutzer erfahren werden - dh eingeschränkte oder eingeschränkte Rechte. Wenn Sie die Software unter eingeschränkten Rechten erstellen, besteht eine gute Chance, dass Sie dieselben Probleme haben, mit denen Ihre Zielbenutzer bei denselben Berechtigungen konfrontiert sind.

Wenn Sie jedoch ein gutes Testlabor und / oder ein anständiges QS-Team haben, kann dies ein strittiger Punkt sein - insbesondere, wenn Sie eine halbwegs anständige ALM-Praxis haben.

Also endlich - ich entwickle mich ohne UAC, hauptsächlich weil ich mir und meinen Fähigkeiten vertraue. In einer Teamumgebung würde ich darüber abstimmen. In größeren Organisationen haben Sie möglicherweise nicht diese Freiheit. Die Unternehmensadministratoren haben oft das letzte Wort :)

RobS
quelle
0

In meinem Unternehmen haben Entwickler, Ingenieure und mein Chef (Eigentümer des Unternehmens) lokale Administratorrechte. Mein Chef hat auch das Netzwerkadministrator-Privileg, nur für den Fall, dass ich von diesem eigensinnigen Bus getroffen werde (oder kündige). Alle anderen werden eingesperrt.

Als Systemadministrator hat mir dieses Setup von Zeit zu Zeit ein wenig Kummer bereitet, insbesondere wenn nicht genehmigte Software installiert wird. Ich habe jedoch einen Entwicklerhintergrund und verstehe, dass Power-User mehr Kontrolle über ihre Umgebung haben müssen. Daher bin ich bereit, gelegentlich auftretende Eigenheiten oder Probleme in Kauf zu nehmen. Ich führe routinemäßige Sicherungen ihrer Workstations durch - nur für den Fall.

Übrigens hatte ich mehr Probleme damit, dass der Chef an Dingen herumgebastelt hat als mit irgendjemand anderem. Ein bisschen wie die alte Frage: "Wo sitzt ein Elefant? Wo immer er will!" Aber in einer kleinen Firma, in der er im Wesentlichen der "Backup" -Sysadmin ist, gibt es nicht viel Auswahl.

Mike
quelle
-1

Dies hängt von den Fähigkeiten des Entwicklers ab und davon, ob er Berater ist oder nicht.

Ich halte es für vernünftig, dass ein erfahrener und vertrauenswürdiger Entwickler das Recht hat, mit seinem PC zu tun, was er will, solange dies seine Produktivität nicht beeinträchtigt.

Manrico Corazzi
quelle
6
Warum würden Sie einem Berater und nicht einem regulären Mitarbeiter die Hände binden? Machen sie nicht beide den gleichen Job? Erwarten Sie weniger von dem Berater, obwohl Sie wahrscheinlich mehr dafür bezahlen? Das klingt wirklich dumm. Wenn ein
Entwickler
-1

Niemand unter Windows XP sollte ein Administratorkonto für den täglichen Gebrauch verwenden, und in Vista, wenn Sie ein Administrator sein müssen, muss mindestens die Benutzerkontensteuerung aktiviert sein. Insbesondere Webentwickler und andere Entwickler, die mit Internet Explorer im Internet surfen.

Was Sie tun können, ist, dass Entwickler ihr reguläres Benutzerkonto verwenden, ihnen jedoch ein zweites Konto zuweisen, das ein Administrator auf ihrem PC ist, damit sie es nach Bedarf verwenden können (Ausführen als). Ich weiß, dass sie Webentwicklung sagten, aber für die Windows-Entwicklung sollte Ihre Software mit einem regulären Benutzerkonto getestet werden, nicht als Administrator.

Bratch
quelle