連載をフォローDCOMはやっぱり危険,IE/Officeを遠隔から操作できる(上)日経バイト2003.07.22コピーしましたPR2002年7月,筆者はDCOMの危険性を検証するツール「IE'en」を公開した。Explorer(IE)にネットワーク経由で接続し,そのIEが現在表示しているWebページのURLや,Webサイトに対して送信したパスワードなどの情報が取得できることを明らかにした。RegisterがIE'enを取り上げたこともあり,ツールを公開した直後からこのツールを実現するためのテクニックについての問い合わせが殺到した。今回,IE'enが利用しているテクニックを,ソースコードを交えて解説したいと思う。この解説は,悪意のあるプログラムの作成を支援することを意図していない。実際,IE'enで利用しているテクニックは何ら特別なものではない。米Microsoft社が公開しているDCOMとIEに関する技術情報を参照するだけで,このようなツールを簡単に作成することができることを示し,改めてパスワードの重要性を訴えたいと考えている。DCOMを利用してリモートから操作できるプログラムはIEだけではない。Officeもまたリモートから操作可能であることを実演し,DCOMの両刃の剣的なマイナス面を訴えた。本記事では,Officeに対するリモートからの呼び出しについても,簡単に紹介しようと思う。IE'enはhttp://www.securityfriday.com/ToolDownload/IEen/ieen_doc.htmlからダウンロードできる。IE'enの最新バージョンはVer0.5である(2003年3月現在)。2002年7月に初めて公開したIE'enは,いくつかのアンチウイルス・ベンダにより危険なプログラムの指定を受けた。最新バージョンのIE'enは,今のところウイルス定義ファイルに登録されていないようだが,ダウンロードして実験する際は注意が必要である。DCOMの基本モデルDCOMとは最初に,DCOMとは何かについて簡単に説明しておく。COM)とは,Microsoftが提唱するネットワーク分散型アプリケーションを実現するためのアプリケーション・プロトコルである。DCOMはDCE-RPCをベースに開発され,COMプログラミング・モデルにより作成されたプログラムをネットワーク経由で呼び出す機能を提供する。Modelの略で,Microsoftが提唱するコンポーネント・オリエンテッドなアプリケーション開発を実現するためのプログラミング・モデルである。オブジェクト指向において,プログラム・コードの再利用は最も重大な目標の一つである。COMでは,再利用可能なコードをCOMコンポーネントとして管理する。COMコンポーネントは,IDLにより定義されたプログラミング・インタフェースを実装する。Languageの略で,コンポーネントが実装するメソッドを,プログラミング言語に依存しない形で表現する(リスト1[拡大表示])。COMコンポーネントが実装するインタフェースは,COMインタフェースと呼ばれる。COMコンポーネントを利用するアプリケーションは,このインタフェースを介して同じPC上にインストールされたCOMコンポーネントを呼び出す(図1[拡大表示])。COMコンポーネントに実装されたコードを修正する場合,このコンポーネントを利用するアプリケーション全体をアップデートする必要はない。コンポーネントだけをアップデートすれば対応できる。分散COM構成ユーティリティからDCOMを有効にする。DCOMで使用できるアプリケーションのリスト。写真2と同じツールを使って閲覧できるネットワーク分散型アプリケーションを実現するため,MicrosoftはCOMプログラミング・モデルを拡張した。それがDCOMである。DCOMは,あるPC上のアプリケーションが,別のPCにインストールされたCOMコンポーネントをネットワーク経由で呼び出す機能を提供する。このときアプリケーションはネットワーク上のCOMコンポーネントと通信するための特別なコードを必要としない。アプリケーションはそのCOMコンポーネントがローカルにインストールされているのと同じように呼び出すことができる(図2[拡大表示])。各COMコンポーネントは,レジストリ「¥HKEY_CLASSES_ROOT¥CLSID」の配下に登録されている。Regedit.exeなどでこのキーを開いてみると,たくさんのCOMコンポーネントが登録されていることが分かる(写真1[拡大表示])。Windowsシステムは,これら無数のCOMコンポーネントから構成されていると言っても過言ではない。98以降のすべてのWindowsで,デフォルトでサポートされている。4.0もDCOMをサポートしているが,デフォルトのNTに搭載されているDCOMは正常に動作しないようだ。3以降をインストールすると,正常に動作するようになる。2000やXPではDCOMがデフォルトで有効になっているが,98やMeでは有効になっていない。DCOMを利用するためには,分散COM構成ユーティリティを使用して手動で有効にする必要がある。分散COM構成ユーティリティは,DCOMの機能を設定するためのツールである。コマンドプロンプトからDCOMCNFG.exeと入力することで起動できる。2000以前のOSの場合は,「規定のプロパティ」タブにある「このコンピュータで分散COMを使う」チェック・ボックスをオンにするとDCOMが有効になる(写真2[拡大表示])。XPでは,このツールのGUIが大きく変更された。左ペインから「マイコンピュータ」を選択し,マウスを右クリックして現れるメニューから「プロパティ」を選ぶと,「規定のプロパティ」タブが表示される。このツールを使用すると,DCOMで使用できるアプリケーションのリストを表示できる(写真3[拡大表示])。表示されたリストを眺めると,IEが存在するのが分かる。そのほか,サウンドレコーダーやワードパッドなどあまりネットワーク経由で呼び出して利用するとは思えないプログラムもリストに存在する。Officeがインストールされているなら,WordやExcelもリストに現れる。IEもOfficeもCOMコンポーネントであり,呼び出し元のプログラムと別のプロセスで動作することが可能なコンポーネントとして構成されている。これらのコンポーネントはDCOMを使用して,ネットワーク経由で呼び出すことができる。Modelの略」です。おわびして訂正します。現場の負担軽減を!医療界でのAWS活用法500万社が導入。き》データサイエンティスト育成で定評のある大阪ガスと、データ分析の専門家が共同で開発した特別プログラ...SEのための「システム営業力」養成講座SEとして仕事をする方が、顧客や経営層に対する提案力や会話力を身につけるための講座です。情報銀行の成り立ち、事例、現状課題やその行方を網羅。経営戦略である以上、「会計」の知識やスキルが欠かせません。