2016-05-29

PDFファイルで作るお手軽マルウェア

iCloud同期を使おうとした私に対し、iBooksがプレビューの使用を強要する事件の原因を探っていたところ、さらに奇怪な別の現象を発見してしまった。

OS X El Capitan 10.11.5 で次の手順を実行すると怪現象を楽しめる。

  1. テキストエディットを起動する。
  2. 新規書類を作成する。
  3. キーボードから test と打ち込む。
  4. 「ファイル」>「PDF として書き出す...」を選択する。
  5. デスクトップにファイル名 test.pdf として保存する。
  6. プレビューでtest.pdfを開く。
  7. 正常に表示されることを確認したら閉じる。
  8. Safariでtest.pdfを開く。
  9. 正常に表示されることを確認したら閉じる。
  10. Finderでtest.pdfを選択し、「ファイル」>「情報を見る」メニューを選択する。
  11. ファイルの情報ウインドウが表示される。
  12. 「このアプリケーションで開く:」のプルダウンメニューから「Safari」を選択する。
  13. 情報ウインドウを閉じる。
  14. Finderでtest.pdfを開く(ダブルクリックする)。

さて、ここでユーザーが期待する正常な動作とはどのようなものだろうか? 当然、

「Safariのウインドウ内にtest.pdfファイルの内容が表示される」

であろう。

ところが実際には、

“test.pdf”は、開発元が未確認のため開けません。

“セキュリティ”環境設定でインストールが許可されているのは、Mac App Store と確認済みの開発元からのアプリケーションのみです。

と、謎の警告が表示されて開けない。

これは OS X のセキュリティ機能のひとつである Gatekeeper による警告で、このファイルがインターネットからダウンロードされた、有害なコードを含むアプリケーション(マルウェア)ではないかと疑っているのである。

いやいやいやいや、だから、このファイルはインターネットからダウンロードしたものでも、ましてやアプリケーションですらないんだが、OS Xの隠された呪法によって悪質なソフトウェアを呼び覚ましてしまったのか。

アップルのサポートに電話して、自分で作ったPDF書類がマルウェアかもしれないと言われて開けなくなるんだけど、呪われているんでしょうか? と質問したところ、エンジニアに調べさせるからしばらく待ってねってことになったので、待ってる間にこちらでも原因を調べてみた。

前述の再現手順で OS X Yosemite 10.10.5 でも同様の現象が起きる。

OS X Mavericks 10.9.5, OS X Mountain Lion 10.8.5, Mac OS X Lion 10.7.5 では、手順が微妙に異なるものの、同様の現象を再現可能。

Mac OS X Leopard 10.6.8, Mac OS X Snow Loepard 10.5.8 ではこの現象は起きない(10.7.5が出る前のバージョンはGatekeeperを搭載していない)。

これらの観測をもとに、さらに詳しく調査した結果、怪現象は、プレビューがファイルに付加する拡張属性 com.apple.quarantine と、「このアプリケーションで開く:」を設定した際にFinderが付加するリソースフォーク(これも拡張属性)の相乗効果により発生すると断定。どちらか片方だけなら問題は起きない。

プレビューに限らず、サンドボックス化されたアプリケーションから書き出されたファイルは隔離状態の拡張属性がセットされるようなので、PDFファイルに限らず同様の現象が起きる。

別のアプリケーションで開くように設定しただけで、あらゆるファイルがマルウェアと疑われてしまう。これでは「このアプリケーションで開く:」機能が存在する意味がないではないか。

マルウェアを見逃してしまうのは困るが、逆に、明らかに安全なファイルをマルウェアかもしれないと警告(誤検出)するのは、「狼が来たと嘘をつく少年」のごとく、OS Xのセキュリティシステムへの信頼を失わせることにもなりかねない。改善なさってはいかがでしょうかね、アップルさん。


2016-06-30 アップルから回答があり、問題がある点は認知してもらえたようなので、修正されるのを楽しみに待つことにする。

0 件のコメント:

コメントを投稿