今回は、いつもの連載から少し離れ、2006年2月に発表された、Safariの外部から送り込まれたシェルスクリプトを自動的に実行してしまう脆弱性について考えてみたい。
今回は、前回の補足として2006年2月20日にドイツのセキュリティ研究者が運営するニュースサイトwww.heise.deにて発表された、Safariの外部から送り込まれたシェルスクリプトを自動的に実行してしまう脆弱性について説明したい。2006年2月はMac OS Xに対する初の実戦的ウイルスが発見されるなど、Mac OS Xのセキュリティにとっては激動の月となった。もっとも、この「実戦的ウイルス」も実体はただのトロイの木馬であり、利用者がダブルクリックしないと感染の拡大もできない技術的には何のひねりもない*ものであった。続いて発表された幾つかのウイルスもWindowsで使われた手法を応用しただけで面白みにも危険性にも欠けるものばかりだった。
そんな「前座」があったため、冒頭に挙げた脆弱性が発表されても「ああ、またか」と思った人が多いのか、いまいち話題になっていない。しかし、この脆弱性はMac OS Xの根幹的な仕組みであるLaunch Servicesに起因する非常に危険な、そして深刻な問題なのである。
この脆弱性は以下の3要因からなる。
1つは、ZIPファイルなどのアーカイブに対して、リソースフォークなどMac OS X独自の情報の格納と復元が可能になったことである。これまで紹介したように、Mac OS X 10.4 Tigerでは拡張属性(Extended Attribute)のサポートとそれに伴うxattr系システムコールが追加され、リソースフォークやHFS特有の情報も拡張属性の一部として扱える。それらシステムコールの恩恵を受け、mv、cp、tar、rsyncなど標準コマンドを通じたファイルの移動やコピーを行っても、そうした情報が保存されることが保証された。
加えて、BAHというアプリケーションが標準搭載となった。これはZIPやCPIO形式のアーカイブ作成やgzipなどの圧縮の適用、およびその展開を行うソフトウェアである。FinderのコンテクストメニューからBAHを呼び出しZIPアーカイブを作成したり、ZIPファイルをダブルクリックして展開したりできる。
このBAHを用いてリソースフォークを持つファイルを含むアーカイブを作成した場合、「__MACOSX」というディレクトリが作成され、その中に「._」から始まる隠しファイルが作成される(図1)。この隠しファイルにはリソースフォークやHFS特有の情報が格納されている。__MACOSXディレクトリに分けて格納することで、WindowsやLinuxなど、そうしたHFS特有の情報が不要な環境では単純に__MACOSXを無視するだけで余計な情報を見ずにすむ*。
一方、BAHは、ZIPアーカイブの展開時に__MACOSXディレクトリを見つけると、その中に隠された情報を本来のファイルに結合、リソースフォークなどを復元する。
つまり、本来MacとはかかわりのないZIPアーカイブであってもリソースフォークやHFS特有の情報は保存されるようになったのだ。
唯一新規性を感じられたのは、感染経路としてiChatを使うというところであろうか。AIMの利用者の可能性もあるので100%とはいえないが、確かにiChatの利用者ならMac OS Xユーザーである可能性が極めて高い。もっとも、このウイルスの作者が、ただ単にWindowsにあるIMを使ったウイルスを参考にしただけかもしれないのだが。
例えば、FATでフォーマットされたFDにMac OS Xから書き込みを行うと、そのファイルと同じ階層に「._」から始まる隠しファイルを作ってしまう。これはほかの環境、特に「.」から始まるファイルを隠しファイルとしないWindows環境から見ると余計なファイルが多くなるため不評であった。
Copyright © ITmedia, Inc. All Rights Reserved.