it-swarm.com.de

Ist es üblich, Entwicklern in Organisationen lokalen Desktop- und / oder Active Directory-Administratorzugriff und -Rechte zu gewähren?

Ich arbeite in einem Unternehmen mit mehr als 1000 Mitarbeitern. Wir haben derzeit Programmentwicklungsmitarbeiter, die an webbasierten Projekten arbeiten (ca. 50 Personen).

Vor kurzem hat unsere IT- und Sicherheitsabteilung aus Sicherheitsgründen eine Einschränkung eingeführt, die den lokalen Administratorzugriff auf Computern nicht mehr zulässt. Das gesamte Unternehmen führt Windows-Betriebssysteme sowohl für Workstations als auch für Server aus. Ich stimmte der Entscheidung, den Administrator zu entfernen, voll und ganz zu. Ehrlich gesagt hielt ich dies für längst überfällig (da das Unternehmen sich mit Patientendaten befasst und die Einhaltung der HIPAA-Richtlinien verlangt). Leider glaube ich, dass sie die Entscheidung zu weit gegangen sind. Ich ging davon aus, dass eine Untergruppe oder AD-Gruppe für Benutzer erstellt wird, die zu Recht einen Administratorzugriff benötigen, um ihre Arbeit zu erledigen (EX mein Programmierteam), ähnlich einer Tech-Gruppe, die den Administratorzugriff beibehält. Dies war jedoch nicht der Fall. Die einzige Gruppe erstellte eine bestimmte Administratorgruppe für Netzwerk- und Helpdesk-Mitarbeiter.

Das Hauptproblem ist, dass wir als Webentwickler Programme ausführen, die lokalen Administratorzugriff erfordern und unsere Arbeit leider nicht ausführen können, ohne dass sie als Administrator ausgeführt werden. Beispielprogramme umfassen Visual Studio für die ASP.NET-Webentwicklung, MAMP für die lokale Entwicklung, Composer usw. Ich glaube, der Hauptgrund, warum diese Programme Administratorzugriff benötigen, ist, dass sie lokalen IIS, Befehlszeile usw. ausführen und ändern müssen.

Grundsätzlich wurde kurzfristig mitgeteilt, wann der lokale Administratorzugriff entfernt wurde. Nachdem das Entwicklungsteam ungefähr zwei Tage lang tot im Wasser war, um arbeiten zu können, und ich und andere Teamleiter die IT-Mitarbeiter angeschrien und angeschrien hatten, um eine Lösung zu finden, räumten sie schließlich ein und fanden ein Drittanbieterprogramm, das Funktioniert als Durchgang, sodass die Administratoren die Möglichkeit schaffen, dass bestimmte Programme als Administrator ausgeführt werden, obwohl wir keinen lokalen Administratorzugriff haben.

Leider ist dieses Programm, das wir für den lokalen Administratorzugriff verwenden, unglaublich fehlerhaft und unzuverlässig und stammt nicht aus einer seriösen Quelle, und es scheint nicht viel für Alternativen zu geben. (Ich würde es vorziehen, das von uns verwendete Programm nicht offenzulegen.)

Meine Frage ist, ist es typisch, Programmierern/Entwicklern keinen lokalen Administratorzugriff in einem Unternehmen oder einer Firma zu gewähren? Und wenn dies gängige Praxis ist, wie führen Entwickler dann die Programme aus, die sie als lokaler Administrator benötigen?

Ein bisschen mehr Informationen über unsere Netzwerkumgebung (nicht, dass es sich wirklich um die Frage handelt, von der ich dachte, ich würde sie hinzufügen):

  1. Wir verwenden AppBlocker, um Programme zu blockieren, die nicht in einer genehmigten Liste enthalten sind
  2. Wir verwenden einen E-Mail-Sicherheitsblocker, der beispielsweise das Scannen und Konvertieren von Anhängen in PDF usw. ausführt.
  3. Wir haben mindestens 2 wichtige Antivirenprogramme auf allen Workstations.
  4. Das Netzwerk und seine Server sind sehr getrennt. Benutzer haben nur Zugriff auf bestimmte Server, Ordner und Datenbanken, auf die sie zu Recht Zugriff benötigen.
123
TroySteven

Hier ist ein Datenpunkt eines Softwareunternehmens, das ein Interesse an Sicherheit hat. Ich weiß, dass dies in ähnlichen Organisationen üblich ist.

Es gibt eine Reihe von Netzwerken. Sie sind physisch getrennt und haben einen Luftspalt. Sie verlegen verschiedene farbcodierte Netzwerkkabel.

Jeder Mitarbeiter verfügt über einen Verwaltungscomputer, der über einen Proxy eine Verbindung zum Internet herstellen kann, um E-Mails usw. zu versenden. Alle Benutzer sind streng gesperrt, und es gibt eine strikte Geräte- und Zugriffskontrolle.

Darüber hinaus verfügt jeder Entwickler über eine "Engineering" -Maschine. Dies hat vollen Administratorzugriff und der Benutzer kann tun, was er will. Es ist jedoch nur mit dem Engineering-Netzwerk verbunden (kein Weg zum Internet).

In den meisten Softwareentwicklungskontexten kann dies als extrem angesehen werden. In Organisationen mit widersprüchlichen Anforderungen an hohe Sicherheit und Entwicklerfreiheit ist dies jedoch eine gängige Lösung.

Um Ihre Frage zu beantworten: Ja, es ist üblich, Entwicklern Administratorzugriff zu gewähren. Dies bedeutet jedoch nicht immer Administratorzugriff auf einen Computer, der Probleme mit der Informationssicherheit verursachen kann.

114
Joe

Nach meiner Erfahrung haben Entwickler häufig Administratorzugriff auf ihren eigenen Computern. Es ist auch üblich für sie nicht , Administratorzugriff auf ihren eigenen Computern zu haben. In letzterem Fall werden jedoch in der Regel einige Vorkehrungen getroffen, damit sie ihre Arbeit ohne allzu große Reibung erledigen können.

Eine sehr häufige Möglichkeit ist der Zugriff auf einen Hypervisor auf der Workstation (unabhängig davon, ob es sich um eine Version von VMWare oder Hyper-V handelt, die mit Windows geliefert wird) Spezifische Berechtigungen, die erforderlich sind, um VMs in diesem Hypervisor nach Bedarf zu erstellen und zu zerstören ( Hyper-V / VMWare ), einschließlich der Erstellung von VMs, auf denen sie über Administratorrechte für das Gastbetriebssystem verfügen. In der Regel sind einige dieser VMs langlebig, auch wenn sie nicht ständig ausgeführt werden. In seltenen Fällen muss eine ganze VM von Grund auf neu vorbereitet werden, um das zu tun, was sollte) Seien Sie ein schneller Test für etwas, das Administratorrechte benötigt.

Der Hypervisor kann so konfiguriert sein, dass er den Internetzugang für seine VMs zulässt. Ich habe es in beide Richtungen gesehen, obwohl ich persönlich stark dafür bin, dass der Internetzugang sollte erlaubt ist ... zumindest für die Arten der Entwicklung, mit denen ich am meisten Erfahrung habe. Wenn der Internetzugang gewährt wird, kann und sollte er mindestens so konfiguriert werden, dass VMs in ein dediziertes VLAN gezwungen werden, das vom Rest des Unternehmensnetzwerks getrennt ist. Ich bin nicht sicher, ob dies direkt über Hyper-V oder VMWare erzwungen werden kann, aber Sie können 802.1x an den Ports für viele Netzwerk-Switches verwenden, um den Zugriff auf bestimmte vlans von nicht autorisierten Computern, einschließlich Entwickler-VMs, zu verhindern. Anschließend können Sie Entwicklern ein kleines Tutorial zum Festlegen eines VLAN-Tags in einem VM) geben und sie wissen lassen, welche VLAN-Tags an ihrem Switch-Port zulässig sind. Ich habe auch gesehen, dass dies erzwungen wird durch Schulungen lediglich als Richtlinienedikt und nicht durch technische Maßnahmen mit möglicherweise gelegentlichen freundlichen Audits, um die Einhaltung zu fördern und sicherzustellen, dass Entwickler wissen, dass dies wichtig ist.

Dies fällt natürlich damit zusammen, dass Entwickler Maschinen erhalten, die ausreichend leistungsfähig sind, um mehrere VMs gleichzeitig auszuführen.

70
Joel Coehoorn

Ich arbeite für eine ziemlich große Investment-Management-Firma (~ 6000 Mitarbeiter) und Entwickler sind eine der Gruppen, die wir genehmigen für den lokalen Administratorzugriff. Wir weisen sie an, keine Software zu installieren, da dies durch die lokale Desktop-/Software-Konformität geregelt wird.

Wir haben auch eine Developers AD-Gruppe, mit der Mitglieder die Ausführungsrichtlinie auf ihren Computern ändern können, ohne dass ein lokaler Administrator erforderlich ist.

47
Justin

Nach meiner Erfahrung ist das Zulassen und Nichtzulassen des lokalen Administratorzugriffs ebenso üblich wie schmutzige Problemumgehungen für letztere. - Also sollten Sie sich fragen:

Welche Bedrohung für Ihr Netzwerk wird durch lokale Administratorrechte verschlimmert?

Darauf sollte die Antwort lauten: KEINE - Der Zugriff auf Ressourcen in Ihrem Netzwerk sollte auf Benutzerbasis eingeschränkt werden, völlig unabhängig von der Tatsache, dass dieser Benutzer hat lokalen Root-, Admin- oder MasterOfTheUniverse-Zugriff auf seinem Computer. Wenn der Benutzer das Recht hat, Ihr Netzwerk in die Luft zu jagen, benötigt ein lokaler Virus nicht einmal Administratorzugriff. Er kann lediglich das Benutzerkonto verwenden, um Ihr Netzwerk in die Luft zu jagen. - Und wenn das Benutzerkonto nicht auf etwas in Ihrem Netzwerk zugreifen kann, ändern die lokalen Administratorrechte nichts daran.

Sie sollten darauf vertrauen, dass Ihre Entwickler verantwortungsbewusst mit ihrem eigenen Computer umgehen - und mit einer vernünftigen Sicherheitskonfiguration in Ihrem Unternehmen sollten lokale Administratorrechte nur für eines gefährlich sein: den lokalen Computer. Das einzige Risiko, das Sie durch die Ausgabe eines lokalen Administrators eingehen, besteht darin, dass ein Entwickler seinen eigenen Computer kaputt macht (was er bereits mit einer Tasse Kaffee tun kann).

Nachtrag : Sie sollten Ihren Entwicklern die Möglichkeit einräumen, bei Bedarf lokale Administratorrechte zu verwenden. Dies bedeutet nicht, dass sie ständig mit einem ungesicherten Administratorkonto angemeldet sein sollten, aber Sie sollten darauf vertrauen, dass sie es sinnvoll verwenden, wann immer sie es benötigen - ohne jedes Mal um Erlaubnis zu bitten.

Warum Entwickler lokale Administratorrechte haben sollten

Ihre Entwickler sind Personen, denen Sie die Gestaltung der Kernoperationen Ihres Unternehmens anvertrauen. Die meisten Unternehmen sind heutzutage sehr abhängig von ihrer Software, daher sind Entwickler eine wichtige Ressource, um einen sehr wichtigen Teil Ihres Unternehmens zu gestalten.

Erstens gibt es den Vorteil einer höheren Produktivität, da der Entwickler einfach alles, was er benötigt, auf seinem lokalen Computer konfigurieren, installieren und testen kann. Möglicherweise benötigt er bestimmte Software, Hilfstools oder ungewöhnliche Konfigurationen, um mit bestimmten Aspekten seiner Software zu experimentieren (z. B. seine Software auf einer älteren Version eines Betriebssystems oder mit älteren Treibern/SDK ausführen).

Zweitens gibt es den (meiner Meinung nach noch größeren) Vorteil, Ihren Entwicklern zu zeigen, wie Sie sie schätzen. Sie zeigen ihnen, dass Sie ihnen ihre eigene Maschine anvertrauen - Sie behandeln Ihre Entwickler wie verantwortungsbewusste IT-versierte Leute, die ihre eigene Maschine ohne Babysitter verwalten können. (In vielen Unternehmen, in denen Entwickler keinen lokalen Administrator erhalten, müssen sie für jede Installation/Konfiguration, die sie benötigen, technischen Support oder Sicherheit anfordern. In vielen Fällen wissen diese Mitarbeiter des technischen Supports weniger über die Software als Ihr leitender Entwickler , aber sie müssen immer noch um Dinge betteln, die sie einfach brauchen, um ihre Arbeit zu erledigen, was sehr frustrierend sein kann.)

31
Falco

In meiner Karriere hatten wir mit eher kleinen Unternehmen (weniger als 100 Personen) immer lokale Administratorrechte. Wir haben entweder echte Desktop-Maschinen, die von der IT gewartet werden, aber die Rechte haben, oder wir durften virtuelle Maschinen aller Art haben, die wir vollständig selbst verwaltet haben.

Wenn wir keinen lokalen Administratorzugriff hätten, würden wir alle möglichen schlechten "Lösungen" ausprobieren, was, wie in Ihrem Fall, zu weniger Sicherheit führt. Dies ist einer dieser Fälle, in denen Einschränkungen führen tatsächlich zum Gegenteil ihrer Absicht.

30
Marcel

In einer eher kleinen Abteilung einer größeren Organisation (~ 100 in der Abteilung, ~ 3500 in der vollständigen Organisation) haben wir eine in der Mitte Lösung gewählt:

  • sysadmins verfügte über zwei Konten, eines (kein Administrator, selbst für den lokalen Computer), das für nicht administrative Aufgaben (E-Mail, Dokumentausgabe usw.) verwendet wurde, und eines mit AD-Administratorrechten, die nur für die AD-Verwaltung verwendet werden sollten
  • alle anderen Benutzer hatten nur ein einziges Nicht-Administratorkonto
  • entwicklern (und einigen Hauptbenutzern) wurde ein lokales Konto mit Administratorrechten für lokale Computer bereitgestellt. Es sollte selten verwendet werden, wenn eine lokale Verwaltung erforderlich war.

Die Verweigerung von Administratorrechten für Entwickler führt zu Produktivitätsverlusten, die für jedes Unternehmen unmittelbare Kosten verursachen. Die Wahl, dem primären Konto oder einem sekundären Konto Administratorrechte auf dem lokalen Computer zu erteilen, sollte von der Häufigkeit des Administratorvorgangs abhängen:

  • Wenn mehr als mehrmals am Tag, würde ich empfehlen, das primäre Konto zu verwenden.
  • Wenn weniger als einmal pro Woche, würde ich ein sekundäres Konto verwenden.

Wählen Sie Ihre eigene, wenn Sie dazwischen sind ...

28
Serge Ballesta

Nach meiner Erfahrung bei größeren Organisationen ist es absolut nicht üblich, dass Entwickler die vollen Rechte an etwas anderem als entwicklungsspezifischen Ressourcen haben.

Es scheint, als ob Ihre Organisation an der Grenze zwischen klein und groß liegt, also ...

Es scheint, als wäre es Zeit für Ihr Unternehmen, ausgereiftere Entwicklungspraktiken zu entwickeln.

Um fair zu sein, ist diese Art von Änderung nicht etwas, mit dem Betriebsgruppen Entwicklungsteams überraschen sollten, wie es in Ihrem Fall getan wurde.

Sicherheit und Entwicklerproduktivität müssen sich für Ihr Unternehmen nicht gegenseitig widersprechen. Sie können diesen Konflikt insgesamt vermeiden, indem Sie Ihre Entwicklungsaktivitäten in einem Netzwerk ausführen, das keinen Zugriff auf Ressourcen in Ihrem Kerngeschäftsnetzwerk hat.

Sie entwickeln sowieso nicht gegen Ihre Produktionsanlagen, oder?

Wenn Sie es sind, sollten Sie es nicht sein - es birgt ein erhebliches Risiko für Ihr Vermögen, insbesondere für dessen Verfügbarkeit.

Viel besser ist es, eine komplette Entwicklungsumgebung einzurichten, die wichtige Teile von Funktionen und Datensätzen repliziert (ohne so etwas wie private Informationen über reale Personen in Ihrem Unternehmen preiszugeben). Diese replizierte Umgebung macht die Trennung ziemlich einfach. Ihre Entwickler benötigen die vollständige Kontrolle über Maschinen in dieser Entwicklungsumgebung. Sie benötigen keine vollständige Kontrolle über Assets außerhalb der Entwicklungsumgebung.

Es gibt verschiedene Möglichkeiten, eine separate Entwicklungsumgebung zu implementieren:

  • Vollständig separate Hardware (Workstations, Server, Netzwerkgeräte usw.), die mit dem Internet verbunden ist oder nicht
  • Virtualisierte Umgebungen (einschließlich virtueller Netzwerke); auf Ihrer Hardware oder bei einem Cloud-Dienstanbieter und mit oder ohne Internetzugang gehostet
  • Eine Kombination der beiden oben genannten Ansätze

Sie können auch eine Art Bridge implementieren (wenn Sie noch keinen Dienst verwenden) für jede Freigabe, die Sie in und außerhalb der Entwicklungsumgebung durchführen müssen.

Entwicklungsumgebungen sollten wie die meisten Netzwerke geschützt werden. Werfen Sie nicht einfach Ihren gesamten Code und Ihre Entwicklungsressourcen online, ohne über die Zugriffskontrolle oder grundlegende Sicherheitsmaßnahmen nachzudenken.

Ich habe auch gesehen, dass einige Stellen diesen Schritt weiter gehen und den gesamten Code in einer Umgebung schreiben und dann alles für Integrationstests in einer anderen, vollständig separaten Umgebung erstellen/bereitstellen.

13
John-M

Zunächst müssen Sie lernen, dass es keine Rolle spielt, was "häufig" oder "typisch" ist, weil: normalerweise werden solche Situationen schrecklich gehandhabt. Sie machen den besten Fall für diese Aussage.

Wenn der lokale Administratorzugriff für eine Person (sei es ein Auftragnehmer oder ein Mitarbeiter) erforderlich ist, ist das Sicherheitsteam/die Sicherheitsperson - wer auch immer für diesen bestimmten Bereich verantwortlich ist - verpflichtet, eine Lösung zu finden . Es gibt vielfältige Lösungen: Hier wurde ein isoliertes VLAN erstellt, virtuelle Maschinen und andere wurden benannt.

Es macht keinen Sinn, sich nach der Einrichtung anderer Organisationen zu erkundigen, nur um zu hören, dass "wir auch Administratorrechte auf unseren Computern haben". Sie werden keine Infrastruktur finden, die genau mit Ihrer identisch ist. Das einzige, was zählt, ist, dass das Sicherheitsteam/die Sicherheitsperson eine sichere Lösung plant, die dann von der IT-Abteilung in dieser bestimmten Organisation implementiert wird.

Wenn die implementierte Lösung nicht ordnungsgemäß funktioniert und Sie daher immer noch arbeitsunfähig sind, wenden Sie sich erneut an das Sicherheitsteam/die Sicherheitsperson. Wenn dies nicht funktioniert, wenden Sie sich an Ihren Chef oder Ihren Vertragspartner.

Was Sie gerade tun, ist Geld zu verbrennen und sonst nichts. Wenn die anderen Teilnehmer dieses Spiels dies bis jetzt noch nicht herausgefunden haben, ist es schlecht. Aber es ist gut, wenn du es tust.

11
Tom K.

Das Problem, das Sie tatsächlich haben, ist, dass kompetente IT-Mitarbeiter versuchen, eine Regel ohne Kopf durchzusetzen. Sie haben wirklich nur eine Wahl, geben Entwicklern effektiven Administratorzugriff.

Ich sehe immer wieder, dass derselbe Rat wiederholt wird, der auf eine zweite Maschine hinausläuft, die der Entwickler als Administrator, aber ohne Internet hat. Wenn Sie Schweizer-Käse-Sicherheit haben möchten, ist dies der richtige Weg. Die auf einem typischen Entwicklercomputer installierten Softwarelisten sind normalerweise länger als ein Bildschirm. Viele von diesen haben nur eine Option, um nach Updates zu suchen - das Internet. Sie können sie nicht über die WSU patchen, da die WSU nicht weiß, dass sie existieren.

Die Argumente verstehen Folgendes nicht: Die Verletzung der persönlichen Konten des Entwicklers ist kein Ausgangspunkt. Es ist der Jackpot. Es gibt keinen Grund, sich von dort aus an den Administrator zu wenden. Der Breaker kann die Codebade so ändern, dass Hintertüren eingefügt werden. Es ist nicht viel interessanter, den Administrator für die Entwickler-Box zu gewinnen.

Gegen was verteidigen Sie sich, wenn Sie den Administrator verweigern möchten? Jemand, der auf die Codebasis zugreift? Jemand, der es als Startpunkt benutzt? Wenn Ihr Produktions-LAN nicht vor Ihren Entwicklungsboxen geschützt ist, machen Sie etwas falsch. Die Entwickler installieren Sachen, die sie nicht sollten? Nein. Der Entwickler hat einen Compiler und führt die vom Compiler ausgegebene Code aus. Dies kann genauso gut die Definition der Ausführung nicht genehmigter Software sein.

Ich habe viele, viele Geschichten über die Richtlinie gehört, dass die Entwickler keinen Administrator bekommen, aber die Praxis der IT in die andere Richtung schaut, während die Entwickler die Sicherheitsrichtlinie stürzen. Ich habe viel mehr von der IT gehört, ohne es jemals herauszufinden. Ich habe gehört, dass einige Manager des Entwicklers den Entwicklern gesagt haben, sie sollen die Sicherheitskontrollen umgehen.

Früher oder später lernen Unternehmen, den Entwicklern nur den Administrator zu geben. Die meisten von denen, die dies wahrscheinlich nicht getan haben, ohne es wirklich zu wissen.

Es ist weitaus klüger, den Entwicklern nur den lokalen Administrator auf einer Box zu geben, die mit dem Internet und der lokalen Domain verbunden ist, und bereit zu sein, mit den möglichen Konsequenzen umzugehen. Schützen Sie stattdessen die Produktion. Es gibt weniger Leute, die mit einem hohen Maß an Privilegien auf die Produktion zugreifen sollten, daher ist die Sperrung einfacher, und kompetente Organisationen lernen, dies zu tun.

Aber das plötzliche Wegnehmen eines solchen Administrators führt fast immer zum Verlust der wichtigeren Entwickler. Das willst du nicht.

Da Sie über Windows-Websites sprechen möchten, gibt es eine Anekdote, die die Daten der meisten Menschen überwiegt. Microsoft gibt seinen Entwicklern den lokalen Administrator. Der Hersteller von Windows ist zu dem Schluss gekommen, dass es nicht ausreichend ist, Entwicklern keinen Administrator zu geben, damit es sich lohnt. Deshalb sollten Sie dasselbe tun.

8
Joshua

Ich habe zwei Ansätze gesehen, die funktionieren.

  1. Geben Sie Entwicklern Administratorzugriff auf ihre Computer. Dies ist der einfachste und gebräuchlichste Ansatz. Es ist normalerweise die beste Wahl
  2. Erstellen Sie ein Team in der Organisation, dessen gesamter Job darin besteht, sicherzustellen, dass Entwickler ohne Administratorzugriff arbeiten können. Dieses Team besteht normalerweise aus 3-4 Personen. Sie werden feststellen, dass die Hardwareanforderungen der Entwickler dramatisch steigen, wenn Sie Container und/oder VMs verwenden. Daher sollten Sie das Budget für den Kauf neuer Hardware für alle Entwickler festlegen. Beginnen Sie beim Rollout mit einem Team von Early Adopters und verschieben Sie dann schrittweise alle Ihre Entwickler auf einen Computer ohne Administratorzugriff. Dieser Vorgang dauert mindestens sechs Monate.

Wenn Sie das tun, was Ihr Unternehmen jetzt tut, werden sich Ihre Entwickler etwa einen Monat damit abfinden und dann nach neuen Jobs suchen.

8
UEFI

Dies hängt im Wesentlichen vom Kontext und insbesondere von Ihrem Bedrohungsmodell ab.

In einigen Organisationen ist es üblich, Entwicklern die vollständige Kontrolle über ihre Entwicklungsarbeitsstation zu geben, bis sie ihr eigenes Betriebssystem darauf installieren können.

In einigen Organisationen muss die gesamte Entwicklung in einer Umgebung mit Luftspalt erfolgen, in die keine elektronischen Geräte ein- oder ausgenommen werden können.

Die meisten Organisationen liegen irgendwo zwischen diesen beiden Extremen. Je geschlossener die Entwicklungsumgebung ist, desto weniger produktiv sind Ihre Entwickler und desto wahrscheinlicher ist es, dass Sie Ihr bestes Talent verlieren. Ihr Unternehmen muss die Wahrscheinlichkeit und die Auswirkungen einer gefährdeten Entwicklerarbeitsstation bewerten und feststellen, inwieweit es bereit ist, die Entwicklerproduktivität zu verringern, um dieses Risiko zu verringern.

8
James_pic

Ich habe einige Zeit für ein Unternehmen gearbeitet, das wirklich an Sicherheit glaubt (oder so denken sie).

Hin und wieder organisierten sie eine gesellschaftliche Veranstaltung wie Bowling. Die Teilnahme war kostenlos, aber Sie mussten Ihren Namen zu einer Liste in einer Excel-Datei hinzufügen, die sich in einem freigegebenen Ordner befindet. Dieser Ordner war gesellschaftlichen Ereignissen gewidmet, sonst nichts.

Also willst du Bowling spielen? Sie möchten Ihren Namen zu dieser Liste hinzufügen? Ohhhhhhhhh, Liebes ... Es ist nicht so, dass jeder diese Datei bearbeiten kann, oder? Sie müssen nach den entsprechenden Berechtigungen fragen.

Dies ist das Verfahren:

  • Öffnen Sie die Website des Unternehmens
  • Suchen Sie den Abschnitt mit einigen Modulen, die zum Ausfüllen bereit sind
  • Suchen Sie das Dokument "Release Sheet" und laden Sie es herunter.
  • Druck es
  • Füllen Sie es mit Ihrer Anfrage aus und unterschreiben Sie es
  • Gib es der Sekretärin
  • Die Sekretärin wird alle diese Anfragen am Morgen des folgenden Tages an den Manager weiterleiten
  • Früher oder später wird der Manager es unterschreiben
  • Die Sekretärin wird es Ihnen zurückbringen
  • An dieser Stelle können Sie es scannen
  • Öffnen Sie die Site, die von der IT für die Bearbeitung von Tickets verwendet wird
  • Erstellen Sie ein Ticket, das (erneut) beschreibt, was Sie benötigen, und fügen Sie das gescannte Release Sheet bei. Vergessen Sie nicht, die Dringlichkeit zwischen einer Stunde und zwei Wochen festzulegen.
  • Irgendwann wird es die IT tun (hoffentlich)

Im Durchschnitt würde es 3-4 Tage dauern, bis es fertig ist. In einigen Fällen Wochen. Wirklich effizient, oder? Hey, Sie haben um Zugriff auf einen bestimmten Ordner gebeten, aber vergessen, den Unterordner zu erwähnen? HA! Du hast eine weitere Runde gewonnen! Und rate was? Da sie einen QS-Prozess verfolgten, organisierten sie Dokumente in viel verschiedener Ordner. Wenn ein neuer Kollege kam, konnte er leicht Wochen versuchen, alle erforderlichen Berechtigungen zu erhalten.

Jetzt.

  • Denken Sie, die Manager haben sich die Mühe gemacht, zu überprüfen, was sie unterschrieben haben? Sicherlich nicht. Sie erkannten das Release Sheet und das wars.
  • Denken Sie, dass die Sekretärinnen viel mehr nachgesehen haben? Vielleicht haben sie es versucht, aber können sie wirklich verstehen, welche Auswirkungen es hat, wenn ich Lese-/Schreibrechte für einen bestimmten Ordner auf einem bestimmten Computer erteile? Sicherlich nicht.
  • Denken Sie, die IT hat sich um die Dringlichkeit gekümmert? Sicherlich nicht.

Wozu führte dieser Ansatz? Wenn Sie alles stehlen wollten, was das Unternehmen jemals gemacht hat, müssen Sie nur ein USB-Laufwerk mitbringen und es an Ihren PC anschließen. Kein Zugriff auf diesen Ordner "Confidential_Documents"? Fragen Sie einfach danach, sie werden es unterschreiben. Und wenn es dringend ist? "Hallo, ich brauche das Dokument, aber ich kann nicht darauf zugreifen. Können Sie mir Ihr Passwort geben?"

Dieses "Sicherheitsmodell" war also unglaublich langsam, klobig und frustrierend und schützte ihre Eigenschaften überhaupt nicht, aber zumindest konnte sich niemand leicht mit den Teilnehmern des Bowling-Events anlegen ( obligatorisch xkcd ).

Bitte sei nicht diese Firma. Wie andere gesagt haben: Fragen Sie nicht, ob es üblich ist (es ist), sondern fragen Sie nur, ob es sinnvoll ist. Und die Antwort lautet: Nein, es sei denn, Ihr Unternehmen verbrennt gerne Geld.

Ja und Nein - unsere leitenden Entwickler verfügen über ein separates Administratorkonto, mit dem sie bei Bedarf eine Erhöhung vornehmen und Anwendungen/Updates installieren können. Sie dürfen sich jedoch nicht mit dem Konto am Computer anmelden. Ihr Administratorkonto ermöglicht ihnen auch den Administratorzugriff auf normale Entwicklungscomputer, um schnelleren Support zu bieten, als wenn sie das IT-Team durchlaufen.

Dies alles wird kombiniert mit einer White/Blacklist für Anwendungen, strengen Kennwortrichtlinien, einem Verbot für Wechselmedien, Gateway-Proxys, DLP-Richtlinien, strengen AV-Regeln und vielem mehr. Ihre Maschinen werden routinemäßig überprüft und die Sichtbarkeit des IT-Teams ist hoch.

Persönlich würde ich es vorziehen, wenn die Entwickler keinen lokalen Administratorzugriff haben. Wir könnten die App (s) untersuchen, die eine Benutzerkontensteuerung benötigen (herausfinden, welche Ordner, Registrierungsschlüssel usw. benötigt werden) und die Benutzerkontensteuerung abrufen, aber dies erfordert Zeit und Recherche, und nicht alle Unternehmen verfügen über die Ressourcen, um dies zu tun. Wir treffen sie also auf halbem Weg und erwarten wechselseitiges Vertrauen. Wir verwenden auch mehrere Unternehmensprodukte, um eine Vielzahl von Regeln durchzusetzen, sodass dies eine gewisse Erleichterung darstellt.

5
James

Kurze Antwort: Ja, es ist üblich, dass lokale Administratoren Zugriff auf ausgewählte Gruppen haben, z. B. Entwickler oder IT-Administratoren. Grundsätzlich sind Personen, deren Tagesjob mit Administratorzugriff viel einfacher ist, während der übliche Büroangestellte ihn höchstens einmal im Monat und in der Regel viel weniger benötigt.

Lange Antwort: Es kommt darauf an ...

Für die allgemeine Benutzerpopulation müssen Sie keine vollständige Risikoanalyse durchführen, um zu verstehen, dass der Administratorzugriff ein großes Potenzial für Fehler und kleine Vorteile zum Ausgleich dieses Risikos bietet.

Für Entwickler (und einige andere Gruppen) ist jedoch eine Risikoanalyse auf jeden Fall erforderlich, und eine ordnungsgemäße Entscheidung in dieser Angelegenheit auf der Grundlage der Fakten, Umstände, des Risikoappetits und der Bedrohungssituation des Unternehmens ist erforderlich. Das Verweisen auf "Best Practice" und das Ausführen eines ausgeblendeten One-Size-Fits-All-Move ist eine Ausrede, die in der Regel von den für die Informationssicherheit verantwortlichen Personen verursacht wird, denen die Zeit und/oder das Wissen fehlt, um die Zahlen zu erstellen und zu erstellen eine Risikobehandlungsentscheidung auf der Grundlage von Fakten.

Das bedeutet nicht unbedingt, dass sie falsch sind. Eine vollständige Analyse könnte sehr wohl zu derselben Schlussfolgerung führen.

An dem Punkt, an dem Sie sich befinden, ist das, was Sie schreiben, ein Unbekannter. Sie können eine ordnungsgemäße Risikoanalyse anfordern, indem Sie Ihr Expertenwissen zu den Kosten der Minderungsseite der Gleichung hinzufügen und die Produktivitätsverluste und andere Auswirkungen der aktuellen Maßnahme in Zahlen fassen. Dies muss gegen das Risiko abgewogen werden, das die Personen der Informationssicherheit identifizieren.

Es gibt auch andere Maßnahmen, die damit zusammenhängen. Eine typische Lösung, die ich manchmal empfehle (ich bin von Beruf Informationssicherheitsarchitekt, daher werden mir diese Fragen regelmäßig gestellt), besteht darin, das Entwicklernetzwerk vom normalen Büronetzwerk zu trennen, um den Bereich mit dem höheren Risiko einzuschließen. Härten Sie die Entwicklercomputer ausreichend ab und bestehen Sie auf lokalen Firewalls und einem aktuellen Virenschutz. Sie sind gegen typische Angriffsszenarien in Ordnung. Wenn Ihr Unternehmen von außen exponiert ist, können Sie auch zusätzliche Sensibilisierungstrainings für Entwickler hinzufügen, damit diese nicht so leicht gezielten Angriffen zum Opfer fallen.

Ich habe Entwicklerumgebungen beider Art persönlich überwacht, und mit ein wenig Aufwand können beide dazu gebracht werden, gut zu funktionieren. Nur den Stecker bei einer etablierten Arbeitsweise zu ziehen, war ein schlechter Umgang damit, und das Spiel, an dem Sie beteiligt waren, war zu erwarten. Aber was getan wird, wird getan, und es ist wahrscheinlich klug, sich nicht darauf zu konzentrieren und in die Zukunft zu schauen.

4
Tom

Wir haben dieses Problem mit einem Virtual machine gelöst.

Jeder Entwickler hat ein normales Benutzerkonto ohne Administratorrechte. In diesem Benutzerkonto befindet sich eine virtuelle Maschine ohne Internetzugang. Innerhalb der virtuellen Maschine kann der Entwickler seine Anwendung mit Administratorrechten ausführen.

Auf diese Weise können wir den Internetzugang und wichtige Daten von der Verwendung von Administratorrechten trennen und gleichzeitig die Möglichkeit erhalten, die erforderlichen Programme in einer geschlossenen Umgebung auszuführen.

4
Yannjoel

Ich bin im selben Boot wie Ihre Softwareentwickler. Unser Unternehmen ist kürzlich von Workstations mit Administratorzugriff auf virtuelle Maschinen ohne gegangen. Es hat unseren Workflow so stark beeinträchtigt, dass ich manchmal nichts anderes tat, als Artikel für die IT-Abteilung zu lesen, um etwas als Administrator für mich auszuführen.

Das Management hat sich einen zwei virtuelle Maschinen Ansatz ausgedacht.

Eine unserer virtuellen Maschinen war eine Basisgeschäft Maschine mit E-Mail, Webzugriff und Microsoft Suite. Dies befriedigte das Bedürfnis nach Kommunikation.

Die andere virtuelle Maschine hatte lokale Administratorrechte, war aber vollständig vom Internet getrennt. Auf diese Weise konnten wir nichts auf diesen Computer herunterladen. (Obwohl wir es immer noch von der anderen herunterladen und kopieren konnten.) Wir haben immer noch Zugriff auf interne Websites und haben einige Dinge, die Visual Studio verwendet, auf die Whitelist gesetzt (Nuget, Symbole usw.).

Durch diesen Ansatz war die IT-Abteilung hinsichtlich ihrer Sicherheit zufrieden und gab uns gleichzeitig unseren Administratorzugriff zurück.

Das einzig Negative ist, dass wir unsere Doppelmonitore nicht für nur einen Computer verwenden können, da jeder Computer auf einem eigenen Monitor installiert sein muss. Normalerweise haben wir jedoch nur einen Bildschirm für Code und den anderen für das Surfen im Internet verwendet.

4
Jimenemex

Trennen Sie Ihre Netzwerke

Sie sollten relativ isolierte Umgebungen für Entwicklung, Test, Produktion und Geschäft haben. Dies ermöglicht Ihren Entwicklern, Berechtigungen dort zu haben, wo sie sie benötigen.

Eine ordnungsgemäße Trennung verhindert unbefugte Änderungen, schränkt die Verbreitung von Malware ein und verhindert die Exfiltration von Daten.

Was passiert wo?

Entwicklung

Im Entwicklungsnetzwerk findet die Codierung statt. Entwickler sollten über Administratorrechte verfügen, falls sie Codefragmente testen oder etwas ausführen möchten, ohne es für die Bereitstellung zum Testen/Produzieren zu verpacken.

Auf Computern werden IDEs, Quellrepositorys und vorausgesetzte Apps/Frameworks für Ihre Apps ausgeführt. Ein spezielles Tool für die Zusammenarbeit oder andere dev-spezifische Apps sind sinnvoll.

Testen

Im Testnetzwerk wird kompilierter, versandfertiger Code getestet. Entwickler haben möglicherweise Administratorrechte, aber normale Systemadministratoren sollten Anwendungen bereitstellen.

Bereitstellungen sollten widerspiegeln, was die Administratoren in der Produktion für interne Apps beibehalten. Sie sollten kundenbereite Pakete für externe Apps sein (einschließlich Installationsassistent und digitaler Signaturen, obwohl zu Testzwecken eine separate Signatur verwendet wird, um Unfallfreigaben zu verhindern).

Entwickler benötigen häufig Systemprotokolle und Debug-Zugriff. Dies sind die einzigen Gründe, warum sie über Administratorrechte verfügen sollten. Sie sollten nicht mit Installation, Konfiguration und Tests befasst sein, es sei denn, dies ist unbedingt erforderlich.

Produktion

Im Produktionsnetzwerk bieten Sie Dienstleistungen für Kunden und Partner an. Da ein formeller Bereitstellungsprozess vorhanden sein sollte, gibt es keinen Grund dafür, eine Verbindung zu Ihren Entwicklungs-/Testnetzwerken herzustellen.

Um das Risiko von durch das Internet übertragener Malware und versehentlichen Änderungen zu minimieren, sollten Konten aus den Entwicklungs-/Test-/Geschäftsnetzwerken nach Möglichkeit keinen Zugriff auf die Produktion haben, was in der Praxis zu eingeschränkten Berechtigungen mit gelegentlichen Argumenten führt.

Im Idealfall wäre dieses Netzwerk vollständig isoliert. In der Praxis ist dies jedoch in einer Welt unmöglich, in der Produktionsserver mit Systemen für Vertrieb, Abrechnung, Planung, Netops und Projektmanagement verbunden sein müssen. Gehen Sie dem Ideal so nahe wie möglich. Es ist wirklich alles was wir tun können.

Geschäft

Dies ist das primäre Kommunikationsnetz für das Unternehmen.

E-Mail, Surfen im Internet und Partnerkonnektivität bringen eine Vielzahl von Risiken mit sich. Ihre Entwicklungs-, Test- und Produktionsnetzwerke sollten so weit wie möglich von diesen Risiken isoliert sein.

Details, Details, Details

Es ist möglich, dass Ihre Organisation über Bord gegangen ist. Es ist einfacher, das Pendel vollständig zu schwenken, als sich mit den unzähligen Details zu befassen, die für eine flexible, sichere Netzwerkarchitektur erforderlich sind.

Die Entwickler können mit minimalem Risiko für das Unternehmen Administratorzugriff auf ihre Computer haben, wenn:

  1. Es gibt separate, nicht privilegierte Konten für den Internetzugang
  2. In jeder Umgebung werden eindeutige Konten verwendet
  3. Zwischen den Umgebungen gibt es restriktive Firewall-Regeln/ACLs
  4. Standardmäßige Sicherheitsmaßnahmen wie Firewall, Webproxy, IDS/IPS usw. sind vorhanden

Ihre Entwickler benötigen vier Konten:

  • Unprivilegiertes Entwicklerkonto für den Zugriff auf Ressourcen im Internet (wenn sie nicht aus dem Unternehmensnetzwerk herausspringen möchten, was belastend ist)
  • Privilegiertes Entwicklerkonto zum Konfigurieren von Workstation und Testcode
  • Privilegiertes Testkonto zum Debuggen von Anwendungen
  • Unprivilegiertes Geschäftskonto für E-Mail, Web, Intranet

Wenn Entwickler Validierungs- oder Qualitätssicherungsarbeiten durchführen, benötigen sie möglicherweise auch nicht privilegierte Konten in der Testumgebung.

Entwickler sollten keinen Zugriff auf das Produktionsnetzwerk und keine Administratorrechte im Unternehmensnetzwerk haben. Wenn dies momentan nicht möglich ist, sollten diese Rollen getrennt oder ein strenger Änderungskontrollprozess eingeführt werden.

3
DoubleD

Obwohl MS-Windows NT seit seiner Einführung ein Mehrbenutzersystem war, ist es nicht wirklich einfach, es auf diese Weise zu bedienen, und Entwickler (einschließlich Micosofts) ignorieren immer noch die Idee der Trennung von Berechtigungen. Diese Art der Zugriffskontrolle ist schlecht dokumentiert, wird in der Regel nicht in Schulungen verwendet, ist häufig über die Benutzeroberfläche nur schwer zugänglich, schwer zu überprüfen, es fehlen Muster/Tools für die Anwendung der Trennung.

Fairerweise sehe ich selbst auf Unix/Linux-Systemen viele Entwickler, die die Berechtigungstrennung sowohl für echte Benutzer als auch für Dienste nicht angemessen nutzen. Auf jeder Plattform ist es jedoch noch kontraproduktiver, Hindernisse für die Implementierung von Berechtigungen durch Implementierer zu setzen, als ihnen vollständige (lokale) Administratorrechte zu gewähren.

Obwohl ich wenig über die Entwicklung unter MS-Windows weiß, finde ich es überraschend, dass zum Ausführen von Visual Studio lokale Administratorrechte erforderlich sind. Und wenn der einzige Grund, warum Sie Administratorzugriff benötigen, darin besteht, Dienste zu stoppen/zu starten oder sie neu zu konfigurieren, habe ich nicht viel Verständnis für Sie - möglich, diese Funktion bestimmten Benutzern zur Verfügung zu stellen, ohne sie lokal zu geben Administrator. Eine der großen Änderungen in IIS7 war die Funktion delegierter Administrator . Und es war immer einfach, die Neukonfiguration von Apache, MySQL und PHP zu delegieren.

es gab kurzfristig, wann der lokale Administratorzugriff entfernt wurde

Es hört sich so an, als ob das Sicherheitsteam ein Kompetenzniveau anstrebt, das es nicht liefern kann (dies ist meiner Erfahrung nach sehr Häufig). Sie hätten keine Richtlinienänderung auferlegen dürfen, ohne eine ordnungsgemäße Folgenabschätzung durchzuführen und Minderungsmaßnahmen für Produktivitäts-/Sicherheitsschäden in Betracht zu ziehen.

Wir haben mindestens 2 wichtige Antivirenprogramme auf allen Workstations

Das ist ein sehr naiver Ansatz zum Schutz der Integrität dieser Systeme und zeichnet ein Bild davon, womit Sie sich befassen müssen.

es scheint nicht viel für Alternativen da draußen zu geben

Eine Diskussion darüber zu führen, wird an dieser Stelle wahrscheinlich nicht sehr produktiv sein.

Insgesamt klingt es so, als ob Sie im Wettbewerb mit Ihrem lokalen Sicherheitsteam stehen. Sie verstehen nicht, was Sie für Ihre Arbeit brauchen, Sie verstehen nicht, wie Sie ihre Ziele erreichen können. Und es scheint, dass keine Seite bereit ist zu verhandeln. Kein Standardwerkzeug wird das beheben.

2
symcbean

Es ist nur typisch, dass Entwicklern in Unternehmen, in denen die Entwickler entweder so nutzlos/böswillig sind, dass sie diese Berechtigungen missbrauchen, oder in denen die Abteilung "IT und Sicherheit" von ahnungslosen Idioten geleitet wird, die alle nicht sehen, der Zugriff von lokalen Administratoren verweigert wird ihr innerer Kreis als offensichtliche Sicherheitsbedrohung, um sie schlecht aussehen zu lassen.

Angesichts der Tatsache, dass Ihre Abteilung "IT und Sicherheit" auch zwei Antivirenprogramme vorschreibt, wenn Windows ein perfektes kostenloses Programm enthält, können Sie mit ziemlicher Sicherheit feststellen, wo das Problem in Ihrem Unternehmen liegt, und von dort aus arbeiten.

2
Ian Kemp