BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース .NET 3.5 SP1がネットワーク共用から管理アプリケーションを実行

.NET 3.5 SP1がネットワーク共用から管理アプリケーションを実行

Microsoftは.NET Framework 3.5 SP1(リンク)をリリースした。それには以前のバージョンからのセキュリティの変更が含まれ、ネットワーク共用から管理アプリケーションを実行することが可能である。

Microsoftによると、.NET Framework 3.5 SP1の機能は以下のとおりである。

ネットワーク共用からオープンになった管理アプリケーションは、フルトラストで実行することで、ネイティブアプリケーションと同様の振る舞いをする。

過去には、セキュリティの理由からネットワーク共用から管理コードを実行することができなかった。ネットワークロケーションからのセキュリティアタックを 防止するため、初めからその機能は.NETに導入されていた。その機能は、各セキュリティの脅威を解決しない。というのは、非管理のコードがいつでもそういった状況で実行できるからである。

MicrosoftのプログラムマネージャであるBrad Adams氏によって組織されたプール(リンク)は、ネットワーク共用から管理コードを実行できることを多くの人が望んでいることを提示している。 Microsoftは、.NET 3.5 SP1でその機能を可能にする一般的な要求に対応した。

.NETランタイムチームのアーキテクトであるVance Morrison氏は、セキュリティの変更に関してコメントしている(リンク)

われわれは間違いを犯しました。2001年、 われわれはものごとを「デフォルトで確実に」するということにおいては、前衛的であったと信じていました。それゆえに決定を偏らせ、最終的にネットワーク 共用から非管理コードを実行するという穴を埋めると信じていました。また、この決定によってもたらされた痛みを正しく認識していませんでした。

しかし時がたつにつれ、われわれは世間知らずだったと気づきました。非管理コードの振る舞いを変更するという犠牲/利点は、単純に大きすぎます。さらに、 セキュリティが機能するためには、単純でなければならないことがはっきりしてきました。つまり、事例を一様に扱うことを意味します。それゆえに、ネットワークを離れて、実行ファイルの起動を不許可にする場合、管理コードでそれをするような方法をとるのではなく、非管理コードのまったく別の方法をとるべきです。

また、Vance氏はその変更で導入されたセキュリティの危険性をないがしろにしている。

こうすることでセキュリティホールを開放してしまうのではないかと心配している人のために、そうしないようにわれわれは非常に慎重におこないました。基本 となる論理的根拠は、すでにそこに存在しない穴を開放してはいないということです。なぜならWindowsがネットワーク共用から非管理実行ファイルを実行可能にするからです。

暗号方式クラスが専門のCLRチームのソフトウェアエンジニアであるShawn Farkas氏が、新機能の動作方法を説明している(リンク)

この変更の中心となるのは、ネットワークによって起動されたアプリケーションに証拠を割り当てる方法が修正されたことです。LocalInranetの.exe Zoneの証拠を割り当てるというより、ネットワーク共用外で直接.exeが実行される場合、MyComputerの.exe Zoneの証拠を割り当てます。これにより、.exeがLocalIntranetグループよりもむしろ、デフォルトのMyComputerコードグループと適合し、 デフォルトのCASポリシーでは、そのコードグループがFullTrustを許可します。

ネットワークロケーションから管理コードが実行されるのを妨げたい人向けに、Shawn氏は以下のように忠告している。

HKLM\Software\Microsoft\.NETFrameworkレジストリキーで、DWORDレジストリ値、LegacyMyComputerZoneを1に設定することができます。

Shawn氏によると、アセンブリーは以下のシナリオで実行する権利を得るそうである。

  1. ネットワーク共用から直接起動されたすべての管理.exe
  2. .exe自体がロードされたのと同じディレクトリからロードされる.exeのプロセスにあるすべてのアセンブリー

次のシナリオでは、アセンブリーは実行する権利を得ない。

  1. .exeの起動元であるサブディレクトリの共用からロードされたアセンブリー
  2. メインの.exeが起動された共用以外からロードされたアセンブリー
  3. LegacyMyComputerレジストリー値が1に設定されたマシンにロードされるすべてのアセンブリー
  4. 制御としてInternet Explorerにロードされるアセンブリーを含む、CLRにロードされるすべてのアセンブリー
  5. 「真の」MyComputerゾーンから起動されたアプリケーションによって、共用からロードされるすべてのアセンブリー

原文はこちらです:http://www.infoq.com/news/2008/08/.NET-3.5-SP1-Runs-Managed-Code

この記事に星をつける

おすすめ度
スタイル

BT