問題:セキュリティのデッドロック新しいVPNやVirtualBoxのような仮想化ツール、あるいはFocusriteオーディオインターフェース用の専用ドライバーをインストールし終えたところだとします。すべてが順調に見えますが、ある執拗なシステムアラートによって作業が中断されてしまいます。
System Extension Blocked. A program tried to load new system extension(s). Allow in Security & Privacy preferences.
アプリがアプリケーションフォルダに入っていても、実質的に機能停止状態です。macOSがソフトウェアを隔離したのです。これは不具合ではありません。許可されていないコードがシステムの核心部に入り込まないようにするための、macOSの意図通りの動作です。
なぜmacOSはソフトウェアをブロックするのか?macOS High Sierra以降、Appleは**User-Approved Kernel Extension Loading (UAKEL)**を導入しました。基本的には、レガシーなKernel Extension (KEXT)であれ、モダンなSystem Extensionであれ、サードパーティ製の拡張機能は実行前に管理者による明示的な許可を必要とします。
Appleは現在、カーネル空間で動作しカーネルパニック(システムクラッシュ)を引き起こす可能性のあるKEXTから、ユーザー空間で動作するより安全な「System Extension」への移行を進めています。しかし、承認プロセスはどちらも同様に厳格です。 Appleはここで3つのことを優先しています。
- 安定性: カーネル拡張内のたった1行の不良コードが、Mac全体をクラッシュさせる可能性があります。- セキュリティ: カーネルレベルのアクセス権を持つプログラムは、データに対する完全な可視性を得てしまいます。- 意図: Appleは、バックグラウンドスクリプトではなく、あなた自身がこの深いレベルのアクセスを許可したことを確認したいと考えています。## 30分以内の修正:標準的な承認手順ポップアップが表示されたばかりであれば、修正は通常すぐに行えます。しかし、放置しないでください。設定からオプションが消える前に拡張機能を承認できる時間は、わずか30分という短い窓口しかありません。
- Appleメニューをクリックし、システム設定を開きます。- プライバシーとセキュリティに移動します。- セキュリティセクションまで下にスクロールします。- 「デベロッパ "[デベロッパ名]" のシステムソフトウェアの読み込みがブロックされました。」というプロンプトを探します。- 許可をクリックします。- 管理者パスワードを入力し、プロンプトが表示された場合はすぐに再起動します。拡張機能は次回の起動まで有効になりません。## 「許可」ボタンが見当たらない場合の対処法特に30分のタイマーを過ぎてしまった場合、「許可」ボタンが隠れてしまうことがよくあります。強制的に再表示させる方法は以下の通りです。
1. 手動でロードをトリガーするターミナル経由で拡張機能をロードしようとすることで、macOSに30分のカウントダウンを再開させることができます。次のように入力してください。
# パスを実際の .kext ファイルへのパスに置き換えてください
sudo kmutil load -p /Library/Extensions/ExampleApp.kext
DropboxのようなモダンなアプリやLuluのようなファイアウォールを使用している場合は、アプリの「設定」や「ヘルプ」メニューを開いて「ヘルパーを再インストール」オプションを探してみてください。
2. リモートデスクトップの障害TeamViewer、AnyDesk、またはApple画面共有を使用している場合、macOSは「許可」ボタンのクリックを無視します。これは、リモートの攻撃者が自分自身に権限を付与するのを防ぐためです。ボタンをクリックするには、有線またはBluetoothマウスを使用して、Macの前に物理的に座っている必要があります。
3. Appleシリコン (M1/M2/M3/M4) のセキュリティポリシー最近のMacでは、古いKernel Extensionに対して単に「許可」をクリックするだけでは不十分です。まずリカバリモードでセキュリティレベルを下げる必要があります。
- Macを完全にシステム終了します。- 「起動オプションを読み込み中」と表示されるまで電源ボタンを押し続けます。- オプション > 続けるを選択します。- ユーティリティ > 起動セキュリティユーティリティに移動します。- システムドライブを選択し、セキュリティポリシー...をクリックします。- 低セキュリティを選択し、「確認済みのデベロッパから提供されたカーネル拡張機能のユーザ管理を許可」にチェックを入れます。- 再起動し、プライバシーとセキュリティの設定に戻って、最後に許可をクリックします。## プロのヒント:拡張機能のステータスを確認する修正が完全に反映されたか100%確信したいですか?ターミナルで真実を確認できます。 モダンなSystem Extensionの場合:
systemextensionsctl list
[activated enabled] を探してください。[waiting for user] と表示されている場合は、承認が完了していません。
レガシーなKernel Extensionの場合:
kmutil inspect -a | grep -v com.apple
これにより、Apple独自のドライバーを除外し、Macで現在認識されているサードパーティ製のドライバーのみを表示します。エラーフラグなしでアプリがリストにあれば、準備完了です。

