macOSのセキュリティ機能:Gatekeeperについて
Gatekeeperは、macOSに組み込まれたセキュリティ機能であり、ダウンロードされたアプリケーションが実行される前に検証を行うことで、
マルウェアの侵入を未然に防ぐ役割を担っています。この機能は、特にユーザーが意図せず
マルウェアを実行してしまうリスクを低減することに重点を置いています。
Gatekeeperの仕組み
Gatekeeperは、ファイルのダウンロード時に「検疫フラグ」と呼ばれる属性を付与し、そのフラグを基にアプリケーションの検証を行います。具体的には、以下のステップで動作します。
1.
ファイルのダウンロードと検疫:
Webブラウザやメールクライアントなどのアプリケーションがファイルをダウンロードする際に、特定の拡張ファイル属性(検疫フラグ)がファイルに追加されます。このフラグは、Gatekeeperがファイルの安全性を検証するための重要な手がかりとなります。
ただし、
BitTorrentクライアントのような一部のダウンローダーでは、このフラグが付与されない場合があります。
また、Xprotectというシステムが、アプリケーションに検疫フラグを強制的に付与するケースもあります。
2. アプリケーションの実行検証:
ユーザーが検疫フラグの付いたアプリケーションを開こうとすると、システムは実行を一旦停止し、以下の項目を確認します。
ブラックリスト: 既知のマルウェアや安全でないソフトウェアを識別するためのブラックリストを参照し、アプリケーションがリストに登録されていないか確認します。ブラックリストは定期的に更新され、登録されている場合は実行を拒否し、ごみ箱への移動を推奨します。
コード署名: アプリケーションが
Appleまたは認定された開発者によってコード署名されているかを確認します。署名されたコードとコンテンツが一致しているかどうかも検証します。
コード署名の要件が満たされない場合、アプリケーションの実行は拒否されます。
3. 実行の許可:
ファイル検疫とGatekeeperの検証を通過したアプリケーションは、通常の実行が許可されます。一度検証を通過したアプリケーションは、再度の検証は行われません。
Gatekeeperの設定
Gatekeeperの設定は、システム設定の「プライバシーとセキュリティ」パネルから行えます。設定オプションには、以下のものがあります。
許可するアプリのダウンロード元:
App Store
App Storeと認定された開発者
すべてのソース
コマンドラインユーティリティspctl:
より詳細な設定やカスタムルール、個別または一括のアクセス許可の制御が可能です。また、Gatekeeperを無効にするオプションも提供されています。
Gatekeeperのオーバーライド
Gatekeeperの検証をオーバーライドするには、いくつかの方法があります。
システム設定でのポリシー変更:
システム設定の「セキュリティとプライバシー」パネルから、より緩やかなポリシーに切り替えることができます。
コンテキストメニューからの実行:
アプリケーションを右クリックし、コンテキストメニューから「開く」を選択することで、特定のアプリケーションの実行を許可できます。
spctlでの設定:
コマンドラインユーティリティspctlを使用して、特定のアプリケーションの実行を許可できます。
パスのランダム化
macOS Sierra以降では、「パスのランダム化」という機能が導入されています。
開発者は、ディスクイメージに署名することで、バンドルされたファイル全体の整合性を保証できます。これにより、攻撃者がディスクイメージを改ざんし、マルウェアを混入させることを防ぎます。
アプリケーションバンドルはランダムな隠しパスから実行されるため、ファイルの位置に関連する外部ファイルへのアクセスが制限されます。
ただし、アプリケーションが署名されたインストーラーパッケージやディスクイメージから作成された場合、またはユーザーが手動で別のディレクトリに移動させた場合には、この機能は無効になります。
Gatekeeperの有効性と課題
Gatekeeperは、マルウェア対策において一定の有効性を持つ一方で、実装レベルではいくつかの課題も指摘されています。
最初の実行時のみの検証:
Gatekeeperは、アプリケーションが最初に開かれたときのみ、開発者の証明書を検証し、マルウェアリストを参照します。一度検証を通過したマルウェアは、その後は検知されません。
検疫フラグの依存:
Gatekeeperは、検疫フラグを持つアプリケーションのみを検証します。このフラグはシステムではなく、ダウンロード元のアプリケーションによって付与されるため、フラグが付与されない場合、Gatekeeperはトリガーされません。
BitTorrentクライアントなど、一部のアプリケーションは検疫フラグを付与しないことが知られています。
証明書の盗難リスク:
開発者の証明書を取得するための登録プロセスや、証明書の盗難リスクが指摘されています。攻撃者が証明書を盗み、
マルウェアに署名することで、Gatekeeperをすり抜ける可能性があります。
外部ファイルの悪用:
アプリケーションと共に配布される外部ファイル(
ライブラリや
JavaScriptを含むHTMLファイルなど)は、Gatekeeperの検証対象外です。攻撃者はこれらのファイルを改ざんすることで、署名されたアプリケーションの脆弱性を悪用する可能性があります。
まとめ
Gatekeeperは、macOSのセキュリティにおいて重要な役割を果たしていますが、完璧ではありません。ユーザーは、セキュリティ設定を適切に管理し、常に最新のセキュリティ情報を確認することが重要です。
関連事項
システム整合性保護
サンドボックス (セキュリティ)