« 2011年4月のコミックス | メイン | 帰省してきました(1) »

2011年4月24日 (日)

 Adobe Reader Xをインストールすると「保護モード」の影響でOffice文書にPDFオブジェクトが貼り付けられなくなる件

長いタイトルですが、同様の事象で困っている方の検索に引っかかりやすくするためなのでご容赦を。

2009年にGumblarが猛威を振るって以降、情報システム管理者の頭痛の種はMicrosoftからAdobeに移った感があります。
Windows UpdateからSUS、WSUSへと、Microsoft系セキュリティパッチの集中管理の仕組みが整備されてきたのとは対照的に、(インターネットに接続するほとんどのPCにインストールされているであろう)Adobe ReaderやFlashといったソフトウェアは、システム管理者によるコントロールの仕組みが未だに整っているとはいえない状況なのです。
特に困るのが、自動アップデートの通信をInternet Explorerのセッションを介さずに独自で行おうとすること。
企業などの組織で導入されている認証プロキシの環境下では、認証の処理ができずにアップデートが正常に動作しないことが良くあるのです。

そんなお行儀の悪いAdobeのソフトですが、セキュリティ情報のページを見ていただければわかる通り、本当にひどい有様です。
Adobe ReaderやFlash Playerの項目を見てみてください。
セキュリティアップデートのあまりの多さに呆れてしまいますよ。
こんな脆弱性だらけのソフトが、自動アップデートも正常に働かない状態で、社内のほとんどのPCにインストールされているなんて……考えるだけでもぞっとしますね。
(もちろん、実際の環境では、自動アップデートの通信をキャプチャしてプロキシを越えられるように設定してあげるほか、個々のPCだけでなくプロキシサーバ上でもウイルススキャンをするなどの対策を行っているわけですが)

さて、そんなAdobeの切り札として登場した(かどうかは定かではないですが)のが、Windows版Adobe Reader Xに搭載された「保護モード(protect mode)」です。
これは、Adobe Readerの処理を一種のサンドボックス内で動作させることにより、たとえ脆弱性を突かれてもシステムに直接悪影響を及ぼせないようにするというもの。
サンドボックスという考え方は古くからあり一見妥当な対策に思えますが、実は運用上かなり厄介な問題を抱えているのです。

そんなわけで、ようやくタイトルの問題について。

Adobe Reader Xをインストールした環境で、Office(Word・Excel・PowerPoint)の [挿入] - [オブジェクト] メニューからPDFファイルを挿入しようとすると、以下のようなエラーダイアログが表示されて処理に失敗します。
(環境によって表示されるメッセージは様々なようです)

Windows 7 + Office 2003 SP3

Adobe_Reader_X_1.jpg

Windows 7 + Office 2007 SP2

Adobe_Reader_X_2.jpg

他のPCでOfficeファイルに挿入済みのPDFオブジェクトも、同様の事象で開くことができません。
これって企業ユースでは結構クリティカルな問題だと思うのですが、国内ではあまり騒ぎになっていないようです。
Adobe Reader Xを導入している企業がまだ少ないのか、オブジェクトとしてPDFファイルを挿入するような使い方をあまりしていないので問題にならないのかはわかりませんが……。

「保護モード」のログ機能を使ってみると、オブジェクトを挿入するときに発生するレジストリへのアクセスやイベントが片っ端からブロックされているのが分かります。
(Officeのバージョンによって詳細は若干異なる模様)
つまり、Adobe Reader Xの「保護モード」は、Office上でオブジェクトを挿入したり、挿入されているオブジェクトを開いたりするときに背後で行われている処理を、「不正な操作」とみなしてしまっているわけです。
通常こういった機能を実装する場合は、ホワイトリスト等によって正常な処理までブロックしてしまわないように留意するものですが、Adobeはそんなことはお構いなしのようです。

この問題は当然「保護モード」を無効にすれば解決するのですが、システム管理者としては以下の2点が課題となります。

  1. ユーザの操作なしで「保護モード」を無効にするためにはどうすればよいか(一時しのぎ)
  2. 「保護モード」を有効にしつつ、OfficeでPDFオブジェクトを扱えるようにするにはどうすればよいか(恒久対策)

「保護モード」は [編集] - [環境設定] メニューから無効にできますが、これを社内のユーザ一人一人にやってもらうのは容易ではありません。
また、人手で対応してもらうと、恒久対策を打つ際に「保護モード」を有効に戻す操作が漏れてしまう恐れがあります。
そんなわけで、できるだけレジストリ操作等で自動管理したいのですが、これに関する日本語の情報がほとんど見つかりませんでした。
仕方ないので米国のAdobeのサイトをあさり、ようやく見つけた技術情報がこちら。

上記のPDFの資料によると、「保護モード」のオンオフは、以下のレジストリ値でコントロールできます。(「2.2.3 Enabling Protected Mode via the registry」を参照)

HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\10.0\Privileged\bProtectedMode

DWORD値として0を設定すると「保護モード」が無効に、1を設定すると有効になります。
なお、上記のドキュメントにもありますが、デフォルトではこのレジストリ値は存在しないので、Adobe Reader Xのインストールの有無をチェックして自動でレジストリ値を設定するような処理を行う場合は注意が必要です。

次に恒久対策ですが、「2.2.6 Policy configuration」の説明と「保護モード」のログを組み合わせて設定ファイルを作成すれば対処可能のようです。
しかし、OSによる違い(XP・Vista・7および32bit・64bit)や、Officeのバージョンによる違い(2003・2007・2010)、を考慮して設定ファイルを作成するヒマがないので、現状手つかず。
設定ファイルをAcroRd32.exeと同じフォルダに置かなければならないという仕様も、集中管理しにくい感じですし。
当面は、Adobeが「保護モード」のデフォルト設定の改善を図るか、どなたかえらい人が設定ファイルを作成してくれるのを待ちたいと思います(笑)。

とはいえ、最近のAdobeは生意気にも「Windows版Adobe Reader Xは『保護モード』のおかげで脆弱性の影響を受けないから、6月14日のクォータリーアップデートまでWindows版のパッチはリリースしない」などと言っているので、「保護モード」を無効にする運用は早くやめたいんですよね。
どうせAdobeは動かないだろうから、代わりにMicrosoftのOfficeサポートに怒鳴り込めば回避用設定ファイルをくれたりしないだろうか……。

投稿者 yone : 2011年4月24日 20:50

コメント

コメントしてください




保存しますか?