「macOS 10.13 High Sierraで導入されたカーネル機能拡張のセキュリティ機能「SKEL」が非管理者でも変更できていいのか?」という話が話題になっています。詳細は以下から。
Appleは2017年年09月にリリースした「macOS 10.13 High Sierra」で、新たにサードパーティ製カーネル拡張(.kext)を管理者の承認なしにロードできないようにする「Secure Kernel Extension Loading (以下, SKEL)」というセキュリティ機能を導入し、開発者に対し初めてkextをロードする際は以下の様にシステム環境設定での承認が必要になることを周知する様に求めていましたが、
A non-admin user in macOS High Sierra can approve a kernel module to be loaded with a single click, without providing their own or an administrator's credentials. Is this expected behavior? pic.twitter.com/fyyfacspix
— Will Dormann (@wdormann) 2018年1月17日
アメリカ国土安全保障省のセキュリティ部門US-CERTで#iamroot問題などmacOS向けの注意勧告を公開しているWill Dormannさんが「非管理者アカウントで、管理者認証なしにSKELの承認が出来たけど、これは正しいの?」とツイートして話題になっています。
機能的には正しい
Dormannさんのツイートは以下の通りですが、実際これはHigh SierraのSKELの仕様通りの動作で、AppleはMacにアクセスできる全てのユーザーに対しカーネル拡張の承認を許可しているため、
- macOS 10.13 High Sierraのシステム環境設定のウィンドウは鍵がかかっているが”Oracle America, Inc.”のkextのロードを[許可]するボタンはこれを無視してクリックできる。
- クリックすると確かにOracle(Virtualbox)のkextがロードされるが、依然として鍵はかかったままであり、管理者認証は無かった。
- 現在のユーザーを確認すると非管理者権限であり、誰でもkextモジュールをロードすることが可能になっている。
Mac のセキュリティを強化するため、macOS High Sierra のインストール時に (またはインストール後に) インストールされるカーネル機能拡張は、ユーザの同意がなければ読み込めなくなっています。これを「User Approved Kernel Extension Loading」と呼んでいます。管理者権限を持っていなくても、どのユーザでもカーネル機能拡張を承認できます。
macOS High Sierra のカーネル機能拡張の変更点について準備を進める – Apple サポート
「また、macOSに管理者権限をバイパスできてしまう不具合が見つかった」といった誤った意見(後にDormannさんが訂正しています)の他に、「この(SKEL)セキュリティ機能に意味はあるのか?」や「管理者権限(南京錠)と[許可]ボタンは関係がなく、誤解を招くGUIだ]といった意見が出ていますが、AppleはmacOS 10.13.2でもSKELの機能アップデートしているので、今後修正されるかもしれません。
More bugs pop up in macOS related to bypassing Admin privs in order to perform administrative level functions.https://t.co/Qv2DUxNdsP
— BleepingComputer (@BleepinComputer) 2018年1月18日
It's been this way since the implementation of that button. No unlock has every been required.
— Nic Lake (@niclake) 2018年1月17日
コメント
ジョブズは説明書がなくても操作できる直感的UIにこだわりを持ってたけど、今のAppleは完全にその思想は失ってるなと思う。iOSもそうだし、今回の件にもその一端が垣間見える。
もしかしたら、これのせいでiamroot問題が起きたんじゃないか?と遠回しに言いたいのかも・・・
複数のカーネル拡張をインストールしたばあい、どうなるんでしょうね。このUI
拒否はできないのかな