はじめに
どーもみなさんこんにちは。ねもてぃです。
今回はNetflix社からオープンソースで提供されているmacOS用ツールである「Escrow Buddy」について触ってみようと思います。
なにができるようになるのか
すでにFileVaultが有効になっているMacをあとから手動でMDMに登録した場合など、リカバリーキーをMDM側で管理できていないケースなどがあると思います。その場合はFileVaultの再有効化やスクリプトを使用して再発行するなど、エンドユーザーに対応してもらう必要がありました。「Escrow Buddy」を使うことで、エンドユーザーの手を介することなく自動的に再発行ができるようになったので、今後のオペレーションが楽になることが見込まれます。
自動デバイス登録でちゃんと全Macのリカバリーキー取得できてるよ!!!って人は特に必要ないと思います。
Escrow Buddy is なに
Escrow Buddy は、MDM 管理者が MDM に有効なエスクロー キーがない Mac 上で新しい FileVault 個人回復キーを生成してエスクローできるようにする macOS 認証プラグインです。
Escrow Buddy(GitHub) を日本語訳
Netflix はオープンソースの Escrow Buddy を提供しています。これにより、セキュリティ チームと IT チームが MDM 内のすべての Mac に有効な FileVault 回復キーを確保できるようになります。
Escrow Buddy: An open-source tool from Netflix for remediation of missing FileVault keys in MDM を日本語訳
Mac管理者がちょっと便利になるかもしれないツールって感じです。(雑)
要件とか
- MDMの要件
- FileVaultリカバリーキーのエスクローをサポート
- Filevaultリカバリーキーのエスクロー設定をした構成プロファイルの配布
- パッケージのインストール
- シェルスクリプトの実行
- Macの要件
- MDMに登録されたmacOS 10.14.4 Mojava 以降
Jamf ProとかIntuneとかWorkspace ONEとかであれば大丈夫です。
準備
ここではJamf Proをベースに設定について準備していきます。IntuneやWorkspace ONEもドキュメントが用意されているので適宜ご確認ください。
(Intuneの方が後から手動登録しているケースが多い気がするので需要ありそうだったな・・・と思いつつ・・・)
構成プロファイルの配布
FileVaultリカバリーキーをエスクローするための構成プロファイルを配布する必要があります。これは標準的な設定なのでどの会社さんもやってるとは思いますが、一応記載します。すでに作成、配布済みであれば新たに作る必要はないです。
- 構成プロファイル > セキュリティとプライバシー > FileVault にて下記を設定
- 個人所有のリカバリーキーのエスクロー:ON
- 暗号化の方法:リカバリーキーを自動的に暗号化/複号
- エスクローの場所の説明:Jamf Proや会社名など任意の値
リカバリーキーが取得できていないSmart Computer Groupの作成
Smart Computer Groupにて下記を条件としたグループを作成します。
- Criteria
FileVault 2 Partition Encryption State
is
Encrypted
- and
FileVault 2 Individual Key Validation
is not
Valid
これでFileVaultが有効になっているがリカバリーキーが取得できていないグループが作成されます。登録時の状況などでタイミングを調整したい場合はLast Check-In
やLast Enrollment
のCriteriaを随時追加してください。
Escrow Buddyの配布と設定
Escrow Buddyの配布設定をします。
- pkgファイルのダウンロードページよりEscrow.Buddy-x.x.x.pkgをダウンロードし、Jamf Proにアップロードします。
- Escrow Buddy配布の&次回ログイン時にリカバリーキーを再発行する設定用のポリシーを作成します。
- Generalペイロード
- 表示名:(任意の名前)
- トリガー:Recurring Check-in
- 実行頻度:Once per computer
- パッケージ
- 先ほどアップロードしたEscrow.Buddy-x.x.x.pkg
- ファイルとプロセス
- コマンドを実行に下記コマンドを指定
defaults write /Library/Preferences/com.netflix.Escrow-Buddy.plist GenerateNewKey -bool true
- コマンドを実行に下記コマンドを指定
- Scope
- 先ほど作ったリカバリーキーが取得できていないSmart Computer Group
- Generalペイロード
ドキュメントではEscrow Buddy.pkgの配布用のポリシーとリカバリーキーの収集設定を有効化するポリシーをわけて記載されていますが、今回は一緒にしてしまっています。定期的に再実行させたい場合や、なんらかの理由で一度収集したはずのリカバリーキーが無効になってしまった場合に自動的に再取得したい場合はポリシーをわけ、ファイルとプロセスペイロードにてコマンドを実行するポリシーのみを実行頻度:毎週などに設し、定期実行するように構成してください。
また、再発行されるタイミングは「次回ログイン時」であることに注意してください。
※)MDMにリカバリーキーがアップロードされるタイミングも異なる点、ご注意ください。(SecurityInfo MDMコマンドが実行されるタイミング)
動作確認
ポリシー実行前の状態
FileVaultによるディスクの暗号化は行われておりますが、リカバリーキーがUnknownとなっています。リカバリーキー未収集のSmart Computer Groupに追加されていることも確認できます。
ポリシーが実行されたことを確認して再ログインしてみる
チェックインをトリガーにしているのでしばらく待つか、Mac側のターミナル.appにてsudo jamf policy
を実行し、ポリシーが実行されたことを確認します。
再ログインまたは再起動をしてみます。前述の注意書きの通り、この時点ではまだアップロードされないため、SecurityInfo MDMコマンドが実行されるのを待つか、Mac側のターミナル.appにてsudo jamf recon
を実行し、SecurityInfoコマンドが実行されたことを確認します。
ここまで確認できた状態でインベントリのディスク暗号化をみてみると・・・
個人用リカバリーキーの表示が「Unknown」から「鍵を表示」となり、なにもせずとも新しくリカバリーキーが収集できたことが確認できます!やったね!
おわりに
実はブログを書きながら検証を進めていたのですがなにもひっかかるポイントなく上手くいきました。あとからリカバリーキーを取得するのってエンドユーザーに作業をお願いしなければならず、地味にめんどくさいなぁと思ってたのでこれはいいですね!簡単な設定で実現できるのでこのようなケースがあった場合は試してみるといいと思います!
それでは!