MacのGatekeeperを無効にする方法

MacではGatekeeperというプロテクトにより、ダウンロードされたアプリケーションはApp Storeからダウンロードされたものか、あるいは開発元の検証が可能なもののみ実行可能なようにアプリケーションの実行に制限がかかっている。

Gatekeeperを無効にすると署名チェックなどの全ての機能が停止し、どのようなアプリケーションであっても実行可能になる

本記事ではこのGatekeeperを無効にし、どのようなアプリケーションであってもmacOSで実行する方法を紹介する。

なお、Gatekeeperの無効化はダウンロードされたアプリケーションに完全に無防備になり、マルウェアなどに曝される危険性が一段と高まるため、注意して行なって頂きたい。

Gatekeeperとは?

Gatekeeperとは前述の通りmacOSのプロテクトであり、ダウンロードされたアプリケーションが実行された際、署名のチェック、ローカルセキュリティポリシーのチェック、マルウェアのスキャンなどを自動で行なっている。

そのため、悪意のあるアプリケーションと認識されたものや、開発元の検証ができない(署名がない)アプリケーションは実行不可となっている。

更にmacOS Catalinaではターミナルから実行するアプリケーションにもGatekeeperがチェックするようになったため、一段とアプリケーションの起動要件が厳しくなっている。

なお、Gatekeeperはあくまでダウンロードされたアプリケーション向けのプロテクトであり、自分で作成したアプリケーションやスクリプトの実行時の開発元の検証とは関係ない。

Gatekeeperの無効化で停止するセキュリティ機能

Gatekeeperの無効化で停止するセキュリティ機能の詳細は下記の通り。

  • 署名のチェック
  • アプリケーション起動時のマルウェアのスキャン
  • ローカルセキュリティポリシーのチェック
  • 非Quarantineアプリケーションとファイルのチェック(macOS Catalina以降では初回だけではなく起動する度にチェック)
  • ターミナルからのアプリケーションの起動時のチェック(macOS Catalina以降)

前述のようにGatekeeperの無効化はダウンロードされたアプリケーションにおいて上記のようなセキュリティ関連の機能が全て停止するため、マルウェアに曝される危険が高まる。

Gatekeeper無効化の手順

1. ターミナルでコマンドを実行

下記のコマンドを実行するとGatekeeperが無効化される。

sudo spctl --master-disable

パスワードの入力を求められたら管理者パスワードを入力してエンターキーを押そう。

2. セキュリティとプライバシー設定でGatekeeperの無効化を確認する

続いてシステム環境設定の「セキュリティとプライバシー」を開き「一般」の項目をクリックしてみよう。

すると新たに「すべてのアプリケーションを許可」というオプションが表示されるのでチェックを付けると、以降はダウンロードされたアプリケーションのGatekeeperによるチェックが一切無効になる。

3. 元に戻す場合

元に戻す場合は下記コマンドを実行する。

sudo spctl --master-enable

コマンドを実行したら改めてシステム環境設定の「セキュリティとプライバシー」の項目を開き直そう。

上記のように「すべてのアプリケーションを許可」というオプションが消え、デフォルトの状態に戻っていればGatekeeperが再度有効になっている。

開発元が検証できないアプリケーションの実行はQuarantine拡張属性の削除でも可能

前述したようにGatekeeperの無効化はリスクが高すぎるため、アプリケーション毎に個別にプロテクトを無効にする「Quarantine拡張属性の削除」の方がセキュリティ的にはまだリスクは低い。

Macアプリを開いた際の警告ウィンドウをオフにする方法

ただ、Gatekeeperの近年のプロテクト強化により「Quarantine拡張属性の削除」だけではアプリケーションが依然として実行できないことがあるため、その場合は本記事の方法で完全にGatekeeperを無効にするしかない。

まとめ

今までの記事では年々強化されるmacOSのプロテクトに苦言を呈してきたが、最近はMacを狙ったマルウェアの被害も増加傾向にあるため、本記事をまとめる中でプロテクトの強化も致し方ないのかもしれないと感じた。

余談であるがGatekeeperにはバージョンが存在し、下記記事でGatekeeperのバージョン確認方法をまとめている。

macOSのGatekeeperのバージョンを確認する方法