SaaS

Escrow Buddyを使ってFileVaultのリカバリーキーを再発行してみる

はじめに

どーもみなさんこんにちは。ねもてぃです。

今回は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をベースに設定について準備していきます。IntuneWorkspace 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-InLast 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
ポイント

ドキュメントでは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」から「鍵を表示」となり、なにもせずとも新しくリカバリーキーが収集できたことが確認できます!やったね!

おわりに

実はブログを書きながら検証を進めていたのですがなにもひっかかるポイントなく上手くいきました。あとからリカバリーキーを取得するのってエンドユーザーに作業をお願いしなければならず、地味にめんどくさいなぁと思ってたのでこれはいいですね!簡単な設定で実現できるのでこのようなケースがあった場合は試してみるといいと思います!

それでは!

ねもてぃ(nemotea)

2020年10月入社。デバイスチーム所属。
前職ではAppleデバイスとMDM周りのエンジニアをしていました。
漫画・アニメとお酒が好きなギタリストです。