コンピュータへの攻撃方法は3つあります。物理的にアクセスする、ネットワーク経由で攻撃する、ユーザーを騙して実行すべきでない操作を実行させる、といったものです。Macは、この3つのうち2つに対しては、十分に保護されています。
強力なパスワードを使用し、FileVaultでハードディスクを暗号化すれば、侵入できるのは高度な技術を持つ攻撃者だけです。最新のMacは、直接的なネットワーク攻撃に対して十分なセキュリティを備えており、脆弱性が露呈した場合でも、複数のアンチエクスプロイト機能を組み合わせることで、攻撃者の侵入をはるかに困難にします(少なくともMac OS X 10.7 Lionでは)。つまり、物理的攻撃とネットワーク攻撃の両方に対して、Macユーザーはほぼ万全のセキュリティ対策を講じていると言えるでしょう。
しかし、3つ目の種類の攻撃はどうでしょうか?これは少々厄介です。私たち人間は、たとえどんなに偏執的な人間であっても、策略の餌食になる可能性があるからです。この問題に対する有効な解決策は、これまでありませんでした…
OS X 10.8 Mountain Lionには、Gatekeeperと呼ばれる革新的なセキュリティ技術が搭載されています。これは、攻撃者がユーザーを騙して悪意のあるソフトウェアをインストールさせる能力を劇的に低減する、オペレーティングシステムのセキュリティにおける新たな大きな進歩です。将来のマルウェアの蔓延を防ぐ鍵となる可能性があります。
私たちは最も弱いリンクです— かつては、インターネットの暗い場所にさえ近づかなければ安全だと人々に言っていましたが、最近は危険がどこにでもあります。攻撃者は、どんなに警戒心の強い人でもあらゆる脅威を識別できないことを知っており、高度な技術を使って私たちを騙し、コンピューター上で悪意のあるソフトウェアを実行させようとします。
これまで、悪質なダウンロードから身を守る良い方法は多くありませんでした。Mac OS XもWindowsも、既知のマルウェアのブラックリストを管理し、ブラウザに警告を表示することで、危険なものをダウンロードするのを防いだり、少なくともダウンロードしてしまった場合には警告を発したりしています。サードパーティ製のウイルス対策ツールは、ブラックリスト方式を可能な限り拡張し、膨大な数の有害なものをブロックするライブラリを提供していますが、今では毎日数万(本当に!)もの悪質なソフトウェアの亜種が登場している現状では、善玉側が勝つことは到底不可能です。
実際、悪質なソフトウェアが日々大量に出現しているため、ほとんどのエンタープライズ向けアンチウイルスベンダーは逆のアプローチを採用し、承認されたソフトウェアのみの実行を許可するホワイトリストツールを提供しています。これにより、デスクトップはスーパーマックス刑務所よりも厳重にロックダウンされます。これはビジネス環境では有効かもしれませんが、家庭ユーザーにとっては全く現実的ではありません。
結局のところ、私たちの多くは、あらゆる場所から常にソフトウェアをインストールしています。Mac App Storeやお気に入りのベンダーといった信頼できるソースからダウンロードしますが、それでも多くの人が見慣れない場所からツールを入手してしまうことがあります。信頼できる場所からのみダウンロードするように心がけていても、悪意のある人物は私たちを巧みに騙し、プログラムだとさえ気づかないソフトウェアを実行させてしまうのです。
iOSがAndroidや他の汎用OSと比べてセキュリティ問題がはるかに少ないのは、このためです。ユーザーはアプリをApp Storeからのみダウンロードできます(もちろん、セキュリティ上の脆弱性を悪用する必要があるジェイルブレイクは不可)。これらのアプリは専用のプライベートサンドボックスにロックされ、Appleによる簡単な審査を受けます。このシステムは完璧ではありませんが(特に、承認プロセスが正当な開発者の圧倒的多数に影響を与えるため)、これまでのところ、悪意のあるソフトウェアの蔓延を防いでいます。よりオープンなモデルであるAndroidは、セキュリティ攻撃をはるかに多く受けています(研究者らは最近、10万台以上のデバイスで構成されるAndroidベースのボットネットを発見しました)。AndroidおよびSymbianユーザーの中には、携帯電話にウイルス対策ソフトウェアをインストールしている人もいます。
Mac App Storeは、アプリケーションの制限は少ないものの、安全性という点ではMacユーザーにiOSのような体験を提供しています。ソフトウェアは審査済みで、万が一何か問題が発生した場合には簡単に無効化できます。2012年3月1日以降、すべての新規アプリはサンドボックス化が義務付けられ、悪意のあるアプリや新たなセキュリティ脆弱性をもたらすアプリがMacに与えるダメージを軽減します。Mac App Storeはインターネットよりもはるかに安全な情報源ではありますが、iOSのように他の場所からソフトウェアをインストールすることを阻むものはありません。Mac App Storeのあらゆる制限を考慮すると、Macで実行するすべてのソフトウェアの最終決定権をAppleに委ねる日が来ることはおそらくないでしょう。
ここで Gatekeeper が登場します。
Gatekeeperがゲームを変える— GatekeeperはOS X 10.8 Mountain Lionの新機能で、Macの多様な使い方を考慮しながら、iOSと同等のセキュリティをMacに提供するように設計されています。Gatekeeperは、Appleが過去数バージョンのMac OS Xで導入してきた一連のテクノロジー、Mac App Store、そしてAppleが開発者に(無料で)提供する新しい認証情報を統合しています。
システム環境設定のセキュリティ パネルの新しい設定を介して Gatekeeper と対話し、ダウンロード元に基づいて実行を許可するアプリケーションを制限できます。
- Mac App Store:これらのアプリケーションは Apple によって審査され、サンドボックス化されており (Mountain Lion がリリースされる頃には使用される予定です)、コードはデジタル署名されているため、OS X はマルウェアによって変更されたかどうかを検出できます。
-
Mac App Storeおよび特定された開発者: Appleは、Apple Developer Programに登録されている開発者に対し、直ちにデジタル証明書の発行を開始します。開発者はこれらの証明書を使用して、自ら配布するアプリケーションに署名することができます。これらのアプリケーションはAppleによる審査を受けませんが、悪意のある活動が検出された場合、Appleは証明書を取り消し、当該開発者による今後のインストールをブロックすることがあります。
-
どこでも:好きなコードを自由に実行できます。
3つのオプションのどれを選んでも、任意のアプリケーションの実行を手動で許可できます。Appleは、ミスや不要なクリックスルーを防ぐために、よく設計されたユーザーインターフェースを提供しています。そのため、2番目のオプション(Mac App Storeと確認済みの開発元)を選択し、他のアプリケーションは安全であることが確実に確認できる場合にのみ実行を許可するのが最善でしょう。
OS Xに初めて、私たち自身を守るツールが組み込まれました。少なくとも、それを必要とする、あるいは望む人は、自分自身から守られます。Gatekeeperは、Macユーザー、特に十分な情報に基づいた判断を下すための高度な知識やスキルを持たないユーザーが、悪意のあるアプリケーションをインストールする可能性を劇的に低減します。
完全な保護を実現するために、Gatekeeperは軽量なホワイトリスト、軽微なマルウェア対策ブラックリスト、そしてソフトウェアの信頼性を判断する2つのオプションを組み合わせています。それぞれについて順に見ていきましょう。
Gatekeeperの仕組み— 10.5 Leopardで初めて追加されたファイル隔離機能をベースに、Gatekeeperはダウンロードされたすべてのアプリケーションを初回実行前にチェックします。アプリケーションがユーザーの設定に合致し、改ざんされていないこと(デジタル署名されている場合)、そしてAppleのリストに掲載されている既知のマルウェアに感染していない場合にのみ、アプリケーションの実行を許可します。
この最後の部分は、私が言及したマルウェア対策のブラックリスト化のほんの一部です。ここではあまり変更されていませんが、最も蔓延していて厄介なマルウェアを Apple が自動的に識別できるようにすることは理にかなっています。
Gatekeeperのホワイトリスト方式は、多くのコンシューマー向けウイルス対策ツールの仕組みとは正反対です。既知の悪質ソフトウェアをブラックリスト化して問題を未然に防ぐのではなく、ホワイトリスト方式では、安全であると合理的に保証できるソフトウェアのみを許可します。言い換えれば、Gatekeeperは、エンタープライズ向けウイルス対策企業が採用している厳格なホワイトリスト方式の一歩先を行くものですが、限られたソフトウェアに制限されるべきではないホームユーザーが求める使いやすさも維持しています。
そして、開発に対する厳しい管理のおかげで、Apple が他のどのオペレーティング システム ベンダーよりもうまく逃れることができるホワイトリスト化の鍵は、Mac App Store の信頼できるソフトウェア リポジトリと、デジタル署名による信頼できる開発者の識別の組み合わせです。
Gatekeeperの最も厳しい設定では、Mac App Storeからダウンロードしたアプリケーションのみをインストールできます。これらのアプリケーションはAppleによる手動審査を受け、サンドボックス化とコードサイニングを採用しているため、最も信頼できるアプリケーションです。これは、不正なアプリケーションが紛れ込まないという意味ではありませんが、万が一紛れ込んだ場合は、高い確率で検出され、Appleに報告され、Mac App Storeから削除される可能性があります。アプリは引き続きシステムに残りますが、Appleが昨年MacDefenderに対して行ったように、セキュリティアップデートで削除される可能性があります(「セキュリティアップデート2011-003でMacDefenderマルウェアに対応」、2011年5月31日参照)。
中間の設定では、識別された開発者のアプリケーションもインストールできます。これらのコードはレビューやサンドボックス化は行われませんが、事後の改ざんの可能性を排除するためにコード署名されています。Apple Developer IDはApple Developer Programの登録メンバーに紐付けられているため、悪意のあるアプリケーションが発行された場合、その開発者が特定されます。そして、悪意のあるアプリケーションが発見された場合、Appleは直ちにそのデジタル証明書をブラックリストに登録し、残りのユーザーを保護します。繰り返しになりますが、システムを悪用して悪意のあるアプリケーションを発行する者が今後も現れることは間違いありませんが、大規模に発生する可能性は以前よりもはるかに低くなっています。(ローカル証明書のブラックリストは1日に1回更新されます。)
最後に、設定に関わらず、いつでも好きな時に好きなものをインストールするための手動プロセスが残っています。これらのアプリケーションは、最も一般的な悪質なソフトウェアを検出するために、マルウェアブラックリストのチェックを受けます。
Gatekeeperの最も重要な側面の一つは、そのユーザーインターフェースです。一度設定を選択すると、設定に違反するソフトウェアをインストールしようとしない限り、アラートに悩まされることはありません。信頼できないソースからソフトウェアをインストールしようとした場合でも、アラートはクリックしてインストールするオプションを表示しません。アラートを読まずに(あるいは理解せずに)クリックすることは、セキュリティ設計上の重大な欠陥です。そのため、このオプションを排除することで、Gatekeeperの有効性と価値は飛躍的に向上します。
それでもアプリケーションをインストールしたい場合は、Control キーを押しながらクリックし、コンテキスト メニューから手動で有効にする必要があります。(Apple から、私のテスト システムは公式プレビュー リリースとは異なるワークフローを使用しているため、正確なプロセスを示すことはできないと警告されました。)
多くの人が、Appleが一般ユーザーのセキュリティ向上のため、Mac App Storeアプリケーションのみのインストールを許可するオプションをいつか提供するだろうと予想していました。他の報道関係者やセキュリティ専門家と話した際、私はこの機能、特に複雑なソフトウェアをめったに使わない友人や家族にとっては非常に嬉しい機能だとさえ言いました。しかし、このような要件は、Mac App Storeのサンドボックス要件を満たせないソフトウェアを開発している開発者や、Mac App Storeでの販売を望まない開発者にとって不利に働くでしょう。開発者IDオプションの追加は、こうした懸念に直接対処し、柔軟性と制御性の適切なバランスを実現します。
Gatekeeperが役に立たない領域もいくつかあります。CDやDVD、USBドライブ、Macに接続されたその他の物理メディア上のアプリケーションはチェックされません。ダウンロードされたアプリケーションのみを検査します。また、Gatekeeperは完全な実行可能アプリケーションのみをチェックするため、Webブラウザで実行される悪意のあるFlashゲームやJavaアプレットからは保護されません(ただし、Macはデフォルトで両方とも無効になっています)。
Gatekeeperが重要な理由— 現在、Macにおける悪質ソフトウェアの最大の発生源はトロイの木馬プログラムです。Windowsの最新バージョン(Windows VistaおよびWindows 7)でさえ、自己複製型ウイルスは大幅に減少しています。Windowsで初めて導入され、現在ではMac OS Xでも標準となっている脆弱性対策機能のおかげで、現代のオペレーティングシステムは数年前と比べてもはるかに悪用されにくくなっています。確かに悪用されることはありますが、そのためにははるかに高度なスキルが必要であり、むしろ無防備なユーザーを騙す方がはるかに容易になっています。
1年前の「Appleのセキュリティの過去が未来を決定づける」(2011年1月27日)で書いたように、消費者である私たちにとって最大のセキュリティリスクは、攻撃者が私たちを騙して被害に遭わせるために用いる手法がますます巧妙化していることです。オペレーティングシステムベンダーは、私たちが金融データを悪意のある人物に直接メールで送信したり、偽のウェブサイトにユーザー名とパスワードを渡したりするのを防ぐことはほとんどできませんが、攻撃者が私たちのコンピュータを乗っ取ることをはるかに困難にすることはできます。
ここでGatekeeperの出番です。攻撃者はGatekeeperの回避策や、悪質なソフトウェアをインストールさせる新たな方法を見つけるでしょうが、Gatekeeperがあれば、広範囲に及ぶ攻撃を極めて困難にすることができます。Gatekeeperは攻撃者の自動化能力を低下させ、攻撃コストを増加させ、結果として彼らの経済的優位性を低下させます(そして信じてください、マルウェアが依然として存在する主な理由は、盗んだり稼いだりできる金銭のためです)。マルウェアは今後も出現しますが、GatekeeperはOS Xの他のセキュリティ機能と連携して、少数のユーザー以上に影響を与えるマルウェアに遭遇する可能性を劇的に低減します。
いつか、もしかしたら近い将来、誰かが Mac App Store に悪質なアプリをアップロードしたり、開発者 ID で署名された悪質なアプリをインターネットにこっそり流したりして、メディアが騒ぎ立てて無邪気さの終わりを宣言することになるだろう。
しかし、それは問題ではない。なぜなら、ニュースの見出しになる攻撃はすべて阻止された攻撃だからだ。メディアの騒ぎの裏には、一時的なニュースがいくつかあるだろうが、流行病は起こらないだろう。
Securosis.com で Gatekeeper に関する技術的な詳細をいくつか書きました。