開発者のマシンをロックダウンすることは、その価値よりも多くの労力を費やしていますか?[閉まっている]


19

開発者として、また開発チームのIT管理/サポートで働いていたので、完全にロックダウンされた環境から完全に非完全な環境まで、さまざまなタイプの環境に遭遇しました。私の限られたサポート経験では、ロックダウンされていないマシンでサポートする努力は少なく、これは確かに簡単だと感じましたが、もちろんこれはバイアスになる可能性があります。ITサポートの観点から見た見解を知りたいのですが、ロックダウンされていないマシンを持っている開発者をサポートするのは本当に難しいですか?


10
スタックオーバーフローによるサーバーフォールト人口の大規模なプログラマーセグメントを考えると、これは選択バイアスに苦しんでいるに違いない。「ロックダウンしてください!」
ロマンダ09年

回答:


11

開発者のマシンをロックダウンしない最大の問題は、開発するソフトウェアを実行するには完全な管理者権限が必要になることです。開発者のアクセスは、実行する必要がある環境と同じである必要があります。「自己サポート」または「自己インストール」が必要な場合は、管理を行うときに使用する必要がある別の管理者アカウント(Bruce.adminなど)を与えますものですが、日々使用されていません。

彼らの塩に値するまともなUNIX管理者が日常の非管理作業のためにrootアカウントを使用することはないように。


14
私は「要求する」ために罪を犯します。開発者が自然に間違ったことをするという当然の結論のように聞こえます。不必要に高い特権でのみ実行されるソフトウェアの開発は望ましくないということに同意しますが、ITがマシンのロックダウンなどの厳しい対策を講じて特定の開発慣行を実施しようとするべきではないと思います。ITがアプリケーション要件を定義するプロセスの利害関係者であり、社内アプリ向けでなければならない場合は、より低い権限で実行するための要件アプリケーションを開発およびテストする必要があります。
クリスW.レア

しかし、別のアカウントのアイデアにはメリットがあると思います。しかし、私にそれを強制しないでください、それがすべてです。
クリスW.レア

4
Windowsでは、これを逆に行う方が適切です。標準ユーザーの権限で動作するテストアカウントを作成します。テストユーザーアカウントとしてマシン(またはVM)にログインすることにより、アプリケーションをテストできます。
ConcernedOfTunbridgeWells

3
私は、15年にわたる技術テストの経験に基づいて、「必要とする」意見を作成しました。確かに例外はありますが、Windowsのアプリケーションの大部分は最低限の特権のために設計されていません。それは開発者が自然に間違ったことをするからではありません。それは適切に行うのが本当に難しいからです。
ブルースマクロード

1
数千の異なるアプリを使用したが、本当の理由もなく管理者権限が必要だったのはそのうちの5%だけでした。
ミルチャチレア

55

ほとんどの開発者は技術的に賢く、彼らが何をしているかを知っています。多くの場合、多くの専門アプリをインストールする必要があり、これを行うための許可を得なければならず、ITをダウンさせて追加することは、特に大企業で双方にとって非常にイライラすることがあります。

マシンにソフトウェアをインストールすることに関して、彼らが望むことをできるようにすることが最善の方法であることがわかりましたが、サポートされていないもので問題が発生した場合、彼らは自分で対処します。ほとんどの開発者はこれに満足しており、とにかく自分のマシンの世話をすることを好む。

IEとオープンワードのみを使用するようにアカウンティングで誰かをロックダウンすることは問題ありませんが、4種類のブラウザーをインストールする必要があり、問題を解決するためにアプリをすばやくインストールする必要がある開発者にとっては面倒です。

私の経験では、多くの技術知識を持っているため、開発ショップ、ITサプライヤなど、従業員を信頼し、インストールしたいものを決定できる企業は、はるかに幸せであり、ITを煩わせません


10
この回答に複数回投票できる場合は、そうします。私は開発者であり、110%に同意します。+1
クリスW.レア

1
@ cwrea:10%の過剰は何ですか?
setzamora

3
「社内標準」ではないという、私は同意するが、情報セキュリティの観点から非常に厳しいです企業は、アプリケーションをインストールできるようにすることはありません
setzamora

管理者権限を取り去ったばかりなので、30分ごとにサポートにメールを送信して、これを取得するか、この設定を変更します。展開日を確認する一般的なテーマは、通知領域の時間をダブルクリックすることでした。私が今「適切な特権レベルを持っていない」ことのために...それは私を夢中にさせています!

1
「アンインストールしてもサポートされていません」と言っても、それは事実上、開発者になり、ソフトウェアxyzが機能せず、Systems / helpdeskが役に立たないと上司に文句を言います。ボスは仲間に撃shotされ、マネージャー/ディレクター/ VPが次に知っているのは、今すぐ修正するだけではサポートされていないことを気にせずに誰かの首を呼吸していることです。Systems / Helpdeskは、開発者aのランダムプログラムxyzおよび開発者bのランダムプログラムabcをサポートする必要があります。本当に必要な場合は、チャネルに配置します。
ザイファー09年

14

開発者のマシンをロックダウンするメリットについての活発な議論については、このStackoverflowの投稿を参照してください。(免責事項:受け入れられた答えを書きました)。

システム管理者の観点から見ると、実稼働システムへのアクセスは機密性が高いため、業務に必要なユーザーにアクセスを制限する必要があります(これには、アプリケーションのティア3サポート責任を持つ開発者が含まれます)。開発用PCまたは開発用サーバーに対するローカル管理者権限は、運用システムのセキュリティを大きく損なうことはありません。

必要に応じて、マシンの再構築に使用できるイメージを作成します。SQL Serverの開発版、Visual Studio、Cygwin、MikTex、およびその他のアプリを手動でインストールするのは非常に時間がかかります。これらの大きなアプリがインストールされたイメージは、マシンのイメージを大幅に変更する必要がある場合に、かなり価値があります。

開発の観点から見ると、マシンのほとんどの問題を修正でき、通常はネットワークサポートスタッフの助けが必要になるのはごくまれです。過度に制限された環境では、開発者が完全に自分で実行できる作業を行うために、偽の開発サポートトラフィックが生成される傾向があります。

開発者が多くの管理作業を行う必要がある傾向がある別の場所は、開発環境をホストするデータベースサーバーです。ほとんどの開発者は、日常のDBAタスクを簡単に学習でき、とにかくこれに関する実用的な知識を得る必要があります(原則としてIMHO)。開発サーバー上の過度に制限的な管理者アクセスポリシーは、多くの方法で足を踏み入れることができます。

スクラッチ開発ネットワークは、配置できる場合、非常に良いアイデアです。必要に応じて、実稼働サーバーからファイアウォールを作成できます。

  • 開発者が本番環境の構造を簡単に複製できる場合、導入テストの文化を促進し、フープを介さずに統合テストを合成できます。これにより、製品のリリースと展開の品質が向上する傾向があります。

  • 本番環境をエミュレートできることは、本番の展開とサポートの問題に対する認識も高めます。開発スタッフが本番環境でアプリケーションがどのようにサポートされるかを考えることを奨励します。これはおそらくこれを念頭に置いて構築されたアーキテクチャを奨励するでしょう。

  • このネットワークにドメインコントローラーがある場合、メインドメインコントローラーとそのアカウントを信頼するように信頼関係を確立できます。この信頼関係は相反する必要がないため、実稼働ネットワークインフラストラクチャのセキュリティを損なうことはありません。これにより、信頼できない開発ネットワークを使用できますが、開発者はExchangeアカウントやファイルサーバーなどのドメイン認証されたリソースにアクセスできます。

  • 開発者は、フープを飛び越えることなく、実験のための合理的な範囲を持っている必要があります。この作業の経路に政治的障害を置くことは、政治的には便利だが、長期的な(そしてしばしば認識されない)技術的負債を生む絆創膏の解決を促す傾向がある。システム管理者またはサポートアナリストとして、誰がピースを手に入れるかを推測します...

これは、UnixまたはLinux環境での問題ではないことを付け加えます。ユーザーは自分の環境をかなり大きくカスタマイズでき.profileます。自分の/home/bloggsj/binディレクトリの下にあるものをコンパイルしてインストールして、心から喜ぶことができます。「ローカル管理者権限」は主にWindowsの問題ですが、Unixでのルートアクセスが必要なものがまだいくつかあります。


最後の箇条書きについてコメントしたいと思います。セキュリティ対策の本来の意図が何であることを心に留めておいてください-あなたは「政治的障害」に言及はなく、政治的に。すべての組織は、最終的には手紙に従うが、ルールの意図ではない人を獲得するため、あるいは、さらに悪いことに、かつての高貴な政策を強権に変えてしまうため、それは後に別のものに変形する可能性があります。しかし、優れたセキュリティと優れた政治は密接に関連しています。ただし、関係者全員の誠実な努力が必要です。
quux 09年

一般に、合理的に管理されたポリシーは、このタイプの政治的障害を生成しないか、少なくとも乗り越えられないでしょう。しかし、ITポリシー事件・バイ・インシデント開発する傾向があり、常に「合理的」ではない
ConcernedOfTunbridgeWells

8

私が今まで見た中で最も賢明なオプションは(両方の側で-今でも)-単にロック解除れ、サポートされていないものです。彼らに自由を与え、彼らが台無しになれば、彼らが得ることができるのは標準的なイメージで再舞台することだけです...。そのような状況では、何らかの形で「信頼できない」ネットワークにそれらを配置することをお勧めします。

開発者のデスクトップをロックするという(非)感覚に関しては、すべてのロックは生産性を妨げるだけであると確信しています。


2
約20分間のサポートを受けてから、新しいイメージを提供します。私たちにとってはうまくいきます。
プリエサンガ

6

答えは本当に:単純なyesまたはnoの答えはありません。しかし、セキュリティは、少なくとも開発者ユーザーにとっても他のユーザーにとっても重要です。

一方で、はい開発者は技術的にもっと精通している傾向があります。一方、彼らの仕事はしばしばストレスの多い仕事であり、彼らの開発マイルストーンは、自分のシステムを安全な環境として維持するために必要な特別な注意よりも優先される可能性があります。これは開発者の批判ではありません。それは彼らの日々の義務の率直な考慮です。

開発者にシステムへの完全で自由なアクセスを提供する場合は、次の追加の対策を検討する必要があります。

  • 通常の開発者以外の使用のために、通常のユーザーシステムがロックダウンされているのと同じくらいロックダウンされた別のシステムを提供します。
    • フルアクセスの開発マシンを、開発リソースのみにアクセスできる特別なVLANに配置します。
  • 感染したシステムがコードベースを危険にさらすことを防ぐものがあるかどうかを尋ねます。バックドアマシンは悪意のあるハッカーの手で悪性コードをチェックインしたり、コードベースを消去したりできますか?このリスクを軽減するために適切な手順を実行してください。
  • 同様に、開発者がアクセスできるシステムに保持されているビジネスデータを保護するものがあるかどうかを尋ねます。
  • 開発システムのソフトウェアインベントリとセキュリティ監査を定期的に行います。
    • 彼らが何を実行しているかを把握し、この情報を使用して開発システムの再展開イメージを構築します。
    • 遅かれ早かれ、あなたは不注意になり、明らかに危険な、またはまったく仕事に関係のないものをインストールする開発者がいるでしょう。これが発生したときに迅速に警告を送信することにより、開発者コミュニティに、はい、誰かが監視しており、合理的な基準内にとどまる責任があることを知らせることができます。
  • 定期的なマルウェアスキャンを行っていますか?場合によっては、開発者は、オンアクセスAVシステム(常にオンであり、常にすべてのファイルアクセスでスキャンするAVシステム)によって課せられるパフォーマンス税について不満を言うでしょう。夜間のスキャン戦略に移行するか、オンアクセススキャンに対してファイル/フォルダーの除外を作成することをお勧めします。ただし、除外されたファイルが他の方法でスキャンされることを確認してください。
    • 管理者対応の開発者は、すべてのAVスキャンをオフにできますか?これをどのように検出して修正しますか?

開発システムをロックダウンする場合は、次のことを考慮する必要があります。

  • サポートリクエストに迅速に回答するためのサポート能力はありますか?開発者の平均賃金率を考慮し、より速い応答時間のSLAに値するかどうかを尋ねます。1万ドルの開発者(数百万ドルのプロジェクトの鍵となる)を待機させて、従業員1人あたり年間6万ドルのサポートリクエストを処理することはおそらく意味がありません。
  • 開発者向けにサポートするサービスリクエストとサポートしないサービスリクエストについて明確で明確なポリシーがありますか?サポートがarbitrary意的であると感じ始めたら、最終的に痛みを感じるでしょ

いずれにしても、開発者は特別なケースであり、何らかの追加サポートが必要であることを認める必要があります。あなたがこれのために予算を組んでいないなら、問題はたぶん今苦しんでいます...または将来にあります。

サイドノートとして、私は非常によく似た議論がsysadminsで起こるのを見ました。少なくとも2つの異なるジョブで、システム管理者がシステムをロックダウンするか、少なくとも2つのログイン(root / admin特権を持つもの;なしの1つ)を使用するよう提案されたときに、システム管理者が非常にひどく議論しています。多くのシステム管理者は、決してロックダウンされるべきではないと感じており、そのような対策に激しく反対しました。遅かれ早かれ、何らかのロックダウンを嫌う管理者がセキュリティインシデントを起こし、この例は私たち全員に教育的な効果をもたらすでしょう。

以前は、常に管理者権限で実行していたシステム管理者の一人でした。デュアルアカウントに変更を加えて、必要に応じて昇格させたとき、最初の数か月間は非常にイライラしていました。しかし、クラウドのシルバーライニングは、通常のアカウントがユーザーに課したのと同じ制限の下で生きていたときに、管理しているシステムのセキュリティについて多くのことを学んだということでした。それは私をより良い管理者にしました!同じことが開発者にも当てはまると思います。そして幸いなことに、Windowsの世界ではUACがあります。これにより、制限付きユーザーとして実行しやすくなり、必要な場合にのみ昇格できます。

個人的には、だれかが何らかのセキュリティ慣行を上回っているとは思わない。全員(sysadmins、devs、上級管理職を含む)は、十分なセキュリティ手順と監視を受け、彼らをつま先で保つ必要があります。別の言い方をすれば、会社のシステムとデータは保護するだけの価値はないということです。

別の言い方をしましょう。Mark Russinovichがルートキットに取り込めるなら、誰でもできます!


3

少数の開発者がいる場合、開発サーバーを提供するアプローチは可能性がありますが、開発者のフロア全体がある場合は、管理者権限を付与することにはまったく反対です。

問題は、開発者がフロア全体に行き着き、各開発者が何をするかということです。通常、ほとんどの開発者はセキュリティを意識することさえせず、アプリを機能させたいだけです。次に、「開発フェーズが完了しました。開発環境をテスト、プリプロド、およびプロドに複製してください」というリクエストが表示されます。

彼らはまた、ランダムなジャンク(ひどくパッケージ化されたソフトウェア)をインストールする習慣を身につけ、それから他の層の数十台のサーバーにインストールするようあなたに委任します。

ポリシーを非常に単純にします。

  • 開発者は開発環境のルートアクセスを取得できません。
  • 開発者は、開発前のVMwareサーバーへのルートアクセスを取得しますが、サポートはしません。
  • 開発者は、アプリを実行するOSディストリビューションに属するRPMパッケージ、またはFHSおよびLSBに準拠するRPMパッケージを提供する必要があります。
  • どのような状況でも、どのアプリケーションもルートとして実行できません
  • アクセスする必要はありませんsusudoNOシェルアクセスを持つことにロックダウンされます-アプリケーションのユーザーには。(これは、会計/監査用です)。
  • 特権アクセスで実行する必要のあるコマンドは、明示的に要求および承認する必要がありsudoersます。その時点で、コマンドがファイルに追加されます。
    • これらのコマンド/スクリプトはどれも書き込みできません。
    • これらのコマンドによる(直接的または間接的な)スクリプト参照は、それらによって書き込み可能になりません。

上記は何よりも、プロジェクトをテストおよび上記のサーバーに移すとき、許可されるものと許可されないものについて考えさせます。


2

開発者のマシンをロックダウンするには、それ以上の労力が必要です。管理者権限なしではほとんど何もできないため、生産性に深刻な悪影響を及ぼします。もちろん、最終的にはシステムが台無しになりますが、IT部門は開発で使用されるすべてのサードパーティツールをサポートしていません。

したがって、Vincent De Baereが示唆したように、最善のアクションは、イメージからシステムを復元することです。もちろん、環境を復元する必要がありますが、それはITの問題ではありません。N回発生した場合、その人を一種の「ブラックリスト」に入れて、はい、しばらくの間彼の管理者権限を削除できます。

いずれにせよ、環境は、感染した(または台無しになった)マシンが他のマシンにまったく影響を与えないように、またはスパムや何かを送信しないように(つまり、今すぐ)明らかなことを言っているだけです、ごめんなさい)。


1

まあ、それは部分的にあなたが実行している環境(例えば、Linux対Windows)に依存するかもしれません。ただし、Windows環境を想定すると、開発ソフトウェアの一部は動作するために昇格されたアクセス許可を必要とするため、通常、それが価値があるよりも多くのトラブルです。たとえば、Visual Studioには管理者のアクセス許可が必要であることがわかっているため、仕事の必要な部分で誰かがフープを飛び回る利点はありません。

ただし、会社が物事をロックダウンする必要がある場合、最善策は、すべての開発者が自分のシステム上の仮想マシンに夢中になる可能性が高いことです。一部の人はこれをあまり好きではないかもしれませんが、ワールド(たとえば、制限のある通常のデスクトップおよび完全にカスタマイズ可能な環境)。

更新 -Windows側の注意点はもう少しありますが、管理者権限を必要とするVisual Studioは少し時代遅れであり、必要なアクセス許可(PDFファイル)を明示的に設定する方法があります。しかし、私がこれを知っているほとんどの開発者がVisual Studioだけでなく追加のツールを使用する傾向があり、それらのすべてがアクセス許可に関して必要とするものを予測するのが難しいことがあるという点で、これが私のオプションを変更するとは思わない。


MSがVS2005を管理者として実行することを推奨しているのは事実です。しかし、MSの最高のソフトウェアセキュリティ担当者の1人であるMichael Howardは、99%の時間が非管理者として正常に動作していると述べています:blogs.msdn.com/michael_howard/archive/2007/01/04/… ...セキュリティが重要な場合は、管理者以外で実行してみてください。楽しいサプライズがあなたを待っています!
quux

1

制限されたデスクトップ上で仮想マシンを使用するという考え方に同意します。

特に必要がない限り、最高のセットアップは制限付きのLinuxデスクトップで、その上にすべてが自由に使えるvmがあると思います。Linuxはオーバーヘッドを軽減します。vmは必要なものだけでなく、スナップショットやバックアップに復元することもできます。一般的に、さまざまなセットアップが必要ない場合、世界は少し明るく見えます。サポート。


+1 .. VMがそれほど利用されていない理由がわかりません。あなたが言及した目的のためだけでなく、VMを使用することでソフトウェア配布がはるかに簡単になります。

1

私は(自分自身として)自分の機械、つまり意味を完全に制御することを好みます。必要に応じて管理者として実行します。

開発者がコンピューターへのフルアクセスを許可される前に、特別なトレーニングを提供できます。それらにいくつかのルールを設定すると、たまに監査を行い、ベストプラクティスに従っているかどうかを確認できます。

ほとんどの場合、IT管理者/ ITサポートの観点からITインフラストラクチャ、セキュリティ関連のもの、さらに高度な権限で開発しない理由について詳しく知る必要があります。(そして、あなたがそうしないことを確認する方法...)

「コンピューターについて知っおく必要があることすべて知っていると言っても、盲目的に私たちを信用しないでください」;-)

ネットワーク、ドメインおよびアカウントのもの、非開発ツールのソフトウェアインストールなどでそれらをサポートする必要があります。


もう1つ:適切なAVがインストールされていることを確認してください...必要に応じて強制的に...
;

1

私の経験では、ロックダウンされたマシンのみを必要とするユーザーと、管理者アクセスを必要とする他のユーザー(開発者、科学者)の間でほぼ均等に分割されたユーザー人口です。ハイエンドの人々は多くの異なるソフトウェアを使用し、一部は社内、一部は使用しませんでしたが、多くは管理者が実行する必要があり、彼らの仕事は多くのパッケージを使用する必要があったため、人々ができるようにしたそれ自体。

次のプロセスになりました。

  • 標準イメージには、Windows、Office、アンチウイルス、Acrobat、いくつかのユーティリティなどの基本的なツールがありました。
  • 多くのネットワークディスクスペースを用意しました。すべてをネットワーク上に保存できるようにするのに十分です。唯一の例外は、ローカルに留まる必要があるインプロセスビデオファイルでした。
  • スタッフ(上司と相談して)には2つの選択肢がありました。ITがPCを保守し、すべてのインストールと構成を行うか、管理アクセス権を持って自分で行うかです。いずれの場合も、すべてのデータはネットワーク上でバックアップされました。
  • ITがシステムを維持し、システムが停止した場合、インストールに必要なソフトウェアを追加するなど、システムを元の状態に戻しました。
  • 彼らに管理者アクセス権があり、システムが停止した場合、私たちは一見してそれを修正しようとしますが、私たちのコミットメントは彼らを標準イメージに戻すことであり、彼らはそこからそれを取らなければなりません。ローカルデータがある場合は、まずそれを取り除こうとしますが、SLAはできるだけ早く標準のPCを使用できるようにするだけでした。
  • 管理者アクセス権を持つユーザーは誰でも、Windows更新プログラムが機能していることを確認し、ウイルス対策およびマルウェア対策の更新を維持する方法を知る必要がありました。

管理者権限を持つすべてのユーザーを「信頼されていない」VLANに配置したかったのですが、それを達成することはできませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.