BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Silverlight 4のCOM+ オートメーションはセキュリティと移植性に懸念がある

Silverlight 4のCOM+ オートメーションはセキュリティと移植性に懸念がある

原文(投稿日:2010/02/09)へのリンク

Silvelright 4は権限を昇格させたブラウザ外実行 (OOB) アプリケーションとして実行したときにCOM+ オートメーションをサポートする。マイクロソフトはこの機能を企業顧客の要求によるものだとして、SilverlightからOfficeオートメーションを利用する例を挙げた。

最近、SilverlightのプログラムマネージャであるJustin Angel氏がSilverlightアプリケーションでCOM+を使う方法(注: リンク先はSilverlightが必要)を説明した。COM+オートメーションは、権限昇格させたOOB Silverlightアプリケーションだけで動作する。昇格された権限の場合はWindowsコンピュータのコマンドのほとんど全てを実行できるが、完全信頼とは異なり一部に制限がある。例えば、ファイルシステムの読み書きは、マイ ドキュメント、マイ ビデオ、マイ ピクチャといった“マイ” フォルダだけでしかできない。Silverlight 4からCOM+を通じてできることは以下の通りである。

  • コマンドやexeファイルの実行
  • レジストリの読み取り
  • ローカルのODBCへのアクセス
  • ディスクの読み書き (上で述べた制限あり)
  • Officeオートメーション

多くの人たちが、Silverlightはもう一つのFlash Playerであり、動作しているコンピュータに対しては限定されたアクセスしかしないプラグインだと思っているため、COM+アクセスが可能になると聞いてぎょっとした。一つにはこの機能がセキュリティ上の問題を起こすため、もう一つは他のプラットフォームへの移植性を破壊するためである。開発者の中にはWPF Disciplesグループにコメントしたものもいた。

Shawn Wildermuth: この論理については議論の余地がありません。MSがこれをやった理由は理解できますが、それでもこれはめちゃくちゃだと思います。個人的には、WindowsだけのCOMをこのプラットフォームに持ち込むのは悪い考えだと思います。

Marlon Grech, Microsoft MVP for Client App: COM+をSilverlightに持ち込むのはクロスプラットフォームに対する侮辱、「一度書いたらどこでも動く」命題に対する侮辱だという点ではShawnに同意しますが、もしMSがAppleScriptをサポートしたとしても、スパゲッティコードの悪夢に悩まされることにはなるでしょう。それに比べれば……。悪いのは銃ではなくそれを使う人たちですよね? ;-)

Jeremiah Morrill: 私が理解している主要な *概念上の* セキュリティ問題というのは、これによって "信頼レベル" が混ざることです。CoreCLR はこれからも *完全信頼* では *動作しない* のですが、どんなCOMのインスタンスも、仕様上、サンドボックス外で動作します。私が思うに、この点は開発者にもユーザーにも混乱をもたらす可能性があります。片方は想定しているが、もう一方は……と。この混乱は、セキュリティを話題にしているときには、普通はいいことではありません。

COM+ オートメーションと、Silverlightアプリケーションを昇格権限で実行することを、セキュリティ上の問題とみなさないものもいる。なぜなら、OOBアプリケーションを実行するためにはユーザーがインストールをする必要がある上、アプリケーションがローカルのHDDにアクセスしようとする場合は警告が表示されるからである。理論上は他のデスクトップアプリケーションと同じことである――しかし、今回の懸念は、Silverlightはブラウザのサンドボックス上で動作する完全に安全なアプリケーションであり、デスクトップアプリケーションとは違うのだとみなされているという事実から来ていると考えられる。

もう一つの問題は移植性である。COM+が存在しないMacではこの機能はどうなるのか?Angel氏が述べたところによれば、MicrosoftはAppleScriptを使ってMacでCOMをサポートする可能性を調査中であり、“もしMicrosoftがSilverlighth 4のRTM版においてこの機能をMacではサポートしないという決断をしたとしても、それは不可能だったからではありません”とのことだ。Moonlightに関しては、Angel氏は次のように語った:

Moonlightは最初に出荷された時からより高いセキュリティモデルを備えていました。MonoではMoonlightをGtkWidgetでホストすることができ、これによって完全信頼を実現できます。ですから、Silverlightは昇格権限モデルですが、Monoは完全信頼モデルなのです。

ところで、システム管理者であれば、昇格権限を要求するOOBアプリケーションをユーザーがインストールして実行することを防ぐような設定ができる。詳細はグループポリシーの設定を参照のこと。

この記事に星をつける

おすすめ度
スタイル

BT