今回は、macOSのユーザを標準アカウントにして、運用するためのノウハウ、方法を紹介していきます。
みんな管理者という課題
企業でmacOSを管理しているみなさん、管理者権限を付与していませんか?セキュリティの世界では標準アカウントを使用することがベストプラクティスとなっています。
しかし、実際、企業の現場にて社員(とくにエンジニア)に標準アカウント(一般権限)を使ってもらうのは厳しいです。
常に管理者権限を使うことは、リスクが存在します。しかし、業務上、管理者権限が必要な場面があるというのが企業の現状ではないでしょうか。
今回はそんな課題を解決して、管理者権限によるリスクを減らすことを考えていきます。
macOS Enterprise Privilegesとはなにか
これはSAP(えすえーぴー)社が開発したOSSです。
このツールの機能はmacOSユーザを標準アカウント(一般権限)に変更し、管理者権限↔一般権限の切り替えを行うことができます。
なにが良いのか
ではこのツールの何が良いのでしょうか?
一言でいうと管理者権限の使用時間を減らすことで、管理者権限を奪取される機会を減らせるメリットがあります。
管理者権限というのはリスクです。リスクでありながら、今までは、作成したユーザに対してなにかしらの権限(管理者権限、一般権限)を付与して、ずっとその権限で運用するという考え方でした。
しかし、冒頭に書いたように企業の現場にて一般権限で運用するのは難しい。では必要なときだけ、管理者権限に昇格すればよいのでは?という考えにいたります。
管理者権限のリスクは、権限の大きさと権限を持っている時間の2つが関わってきます。そんな2つの変数のうち、権限を持っている時間を短くし、必要なときだけ昇格するというアプローチです。
管理者権限を持つ時間が減る = 管理者権限を奪取される機会が減る = リスクが減るというメリットを得ることができます。
このような考え方は最近、Windowsでも出てきました。Azure AD PIMという機能で権限を切り替えることができます。
お触りしてみる
さて、実際に検証してみましょう。といっても、このツールはgithubで細かく説明がなされてます。
権限を切り替えるには3つ方法があります。
アイコンを使う
Privilegesアイコンをクリックすると、

管理者権限になるか聞かれるので、Request privilegesをクリックします。

そうすると、管理者権限に昇格し、アイコンが黄色くなります。

Toggle Privilegeを使う
管理者権限に時間制限をつけたいときにこの方法を使います。
アイコンでオプションを表示させて、Toggle privilegesをクリックします。
アイコンクリックのときと同様にメッセージが表示され、管理者権限になります。そうすると、時間(分)が表示されます。
この時間が切れたら、自動で一般権限に戻ります。

コマンドラインを使う
管理者になる
# /Applications/Privileges.app/Contents/Resources/PrivilegesCLI --add
User XXXX has now admin rights
一般権限になる
# /Applications/Privileges.app/Contents/Resources/PrivilegesCLI --remove
User XXXX has now standard user rights
運用を考える
このツールを実際に運用していくことを考えてみます。
新規
アプリケーションはキッティング時にインストールしてしまいます。Jamfなどを使うのがよいでしょう。
また構成プロファイルを使っていくつかの設定値を強制できます。
利用
管理者としてはログを確認するぐらいでしょう。このコマンドでログが表示されるので、必要であれば、ログ取得の仕組みを考えます。
log show --style syslog --predicate 'process == "corp.sap.privileges.helper"'
変更
アップデートは毎回パッケージを配布する形になると思います。設定値変更の場合はプロファイルを変更して、配布し直します。
停止
利用停止用にアンインストールのスクリプトを用意しておいてもよいでしょう。再インストールして使いたいという場合もあると思うので、運用場面でインストールする用のスクリプトも用意したほうが良さそうです。
廃止
特に考えることはないでしょう。
このツールで改善してほしいところ
まだ細かいところを検証していませんが、今の時点で3つ課題があります
- アイコンクリックで時間制限ありにしてほしい
- ユーザが設定変更できないようにしたい
- 承認、許可プロセスがほしい
- コマンドラインでも時間制限ありにしてほしい
この4つの機能はどれも欲しい機能です。今のままだと管理者権限使いたい放題になってしまいます。
もし、自分で改善できそうであれば、少し試してみようと思います!