
OS X 10.7.3 のセキュリティエラーにより、Lion 以前の FileVault ホームディレクトリ暗号化機能をサポートしているシステムでパスワードが漏洩する可能性があります。このセキュリティ上の欠陥は、Apple が 10.7.3 アップデートにデバッグコードを残したことで発生したとみられ、Lion システムで旧来の FileVault サポートが維持され、かつそのようなアカウントでログインした場合にのみ発生します。
FileVault 2(Lionで導入)によるディスク全体の暗号化を使用しているMacシステムは影響を受けません。また、公開されたログイン情報を狙った新たなマルウェアが登場しない限り、公開されたパスワードが悪意のある第三者に取得される可能性は低いでしょう。
このセキュリティエラーは、2月にAppleのフォーラムで「tarwinator」として登録されたユーザーによって最初に報告されたが無視され、今週末、David Emery氏がCryptomeセキュリティメーリングリストにこの問題を説明する投稿をしたことで広く知られるようになった。
エメリー氏は自身の投稿で、パスワードが記載されているログファイルを調べる方法の一つとして、起動したMac OS Xシステムの管理者権限を持つアカウントとシステムへの物理的なアクセスが必要だと指摘しています。ログファイルの閲覧には管理者パスワードは不要です。しかし、ログファイルは暗号化されたホームディレクトリの外にあるため、システムをFireWireディスクターゲットモードで再起動すると、コンピュータを操作できる人なら誰でも別のMacでファイルを読むことができます。Lionシステムの場合は、Lionリカバリモード(再起動後にCommand-Rキーを押し続ける)で再起動し、ターミナル(「ユーティリティ」→「ターミナル」)を起動すれば、パスワードなしでログファイルを閲覧できます。(問題のファイルはUnix/var/logディレクトリにあり、secure.logという名前です。)
これは明らかにコードレビューにおけるエラーです。ファイル内のメッセージはすべて大文字で「DEBUGLOG」と書かれています。開発者は、このような目的でログファイルに送信されるメッセージをコード内に記述することがよくありますが、リリース前にコード内でそれらのメッセージをレビュー対象としてフラグ付けするべきです。また、企業がソフトウェアのアップデートをリリースする際に実施する品質保証(QA)プロセスでは、意図せず残されたデバッグメッセージを検出するはずです。また、今回発生したように、ログ記録コードが誤って残ってしまうリスクがあるため、デバッグによってパスワードが明らかになるというのは不可解です。
Apple社はこの問題に関する問い合わせには応じなかった。
誰が危険にさらされているのか
Appleがパスワードが平文で記録されるのを防ぐパッチをリリースしたとしても、この問題に対する簡単な解決策は存在しません。多少の手間はかかりますが、多くの(おそらくほとんどの)Lionユーザーは影響を受けません。Lionにアップグレードする前にコンピュータでFileVaultを有効にしたことがない場合、またはLionがインストールされたコンピュータを購入した場合は、リスクはありません。Lionを10.7.3にアップデートしていない場合、または10.7.3がインストールされた状態でFileVaultアカウントを持つユーザーとしてログインしたことがない場合も、リスクはありません。
ごくわずかな感染リスクがあったのは、Snow Leopard 以前のリリースで FileVault を使用していたユーザーで、Lion へのアップグレード後に「セキュリティとプライバシー」環境設定パネルを表示した際にプロンプトが表示され、「従来の FileVault を使い続ける」をクリックしたユーザーのみでした。(このような状況でそのパネルを開くと、「古いバージョンの FileVault を使用しています」というダイアログが表示されます。)「従来の FileVault をオフにする」をクリックし、Mac OS X 10.7.3 でシステムを再起動したことがなく、それ以前に保護されたユーザーアカウントにログインしていた場合は問題ありません。(Lion の FileVault 2 はディスク全体を暗号化しますが、前述のとおり、この脆弱性によってパスワードが漏洩することはありません。)
この条件に当てはまる場合、唯一の問題は、保護されたディレクトリへの10.7.3ログインのデバッグ情報を含む「secure.log」ファイルが悪意のある第三者の手に渡り、そのログを使ってパスワードを盗まれる可能性があることです。これは、ファイルにアクセスしようとする誰かが、ログイン中にマシンに物理的にアクセスした場合、またはLionリカバリモードまたはFireWireターゲットディスクモードで再起動できた場合に発生する可能性があります。
Time Machineは、/var/logのログファイルなど、いくつかの既知のファイルをバックアップしないため、Time Machineのバックアップにはリスクはありません。ただし、すべてのファイルをバックアップして同一のコピーを作成するクローンを作成した場合や、ログファイルも含めすべてのファイルをコピーするサードパーティ製ソフトウェアを使用してバックアップを作成した場合は、リスクが生じます。多くのサードパーティ製バックアップパッケージはログファイルを除外しますが、すべてのファイルを除外するわけではありません。
最近の Flashback マルウェアが 60 万台もの Mac に影響を与えたことを考えると、将来悪意のあるソフトウェアが Mac への管理者アクセス権を取得するためにログをスキャンしてデバッグ パスワードを探そうとするのも不思議ではありません。
問題を解決する方法
Appleがこの問題の修正パッチをリリースするまでの唯一の解決策は、システムの再起動後、またはログインアカウントを切り替えるたびに、FileVaultアカウントのパスワードを変更することです。変更されたパスワードは記録されません。また、「セキュリティとプライバシー」パネルからFileVaultへのアクセスを無効にすることもできます。これにより、システムが盗難され、ファイルが取得されるリスクは高まりますが、パスワードが盗まれる可能性は低くなります。
シングルユーザーシステム、または互いのアカウントがハッキングされる心配のないマルチユーザーMacの場合は、より効果的な暗号化とシステム保護のためにFileVault 2を有効にすることもできます。FileVault 2は、各ユーザーのディレクトリを個別に暗号化するわけではないため、同じシステム上の他のユーザーがアクセスできないようには機能しません(アカウントベースの権限では管理者アクセスから保護されません)。ただし、FileVault 2で起動時アクセスが有効になっている1つ以上のアカウントが、パスワードなしでシステムにアクセスできないようにすることはできます。手順については、LionのFileVault 2完全ガイドをご覧ください。
この脆弱性で気がかりなのは、どれだけ多くのMacユーザーがこの脆弱性の影響を受けるかではなく、AppleがOracleのJavaアップデートに対応せず、Mac OS X向けの独自バージョンをタイムリーにリリースしなかった直後に、いかにずさんな対応をしているかということだ。Appleはセキュリティ面で非常に厳しい立場に立たされているが、これは滅多にない状況だ。Appleは対策を強化する必要がある。
編集者注: Time Machine バックアップに関する情報を修正し、クローンおよびサードパーティのバックアップに関する情報を含めるために、2012 年 5 月 8 日午前 8 時 (太平洋標準時) に更新されました。
[グレン・フライシュマンは1995年にUnixのパスワードファイルを盗まれ、それ以来、以前のような人間ではなくなりました。彼はMacworldのシニア寄稿者であり、エコノミストのBabbageブログのライターであり、セキュリティとネットワークに関する数冊の著書も執筆しています。 ]