Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Local Administrator Password Solution for macOS with Jamf Pro / コーポレートエンジニア・カジュアルトーク #2 実例LT

8fd1ae6548d5ab14139c8d8032b76ee1?s=47 kenchan0130
September 06, 2019

Local Administrator Password Solution for macOS with Jamf Pro / コーポレートエンジニア・カジュアルトーク #2 実例LT

コーポレートエンジニア・カジュアルトーク #2 実例LT (https://corp.connpass.com/event/143310/) で発表した資料です。

8fd1ae6548d5ab14139c8d8032b76ee1?s=128

kenchan0130

September 06, 2019
Tweet

Transcript

  1. Local Administrator Password Solution for macOS with Jamf Pro 2019/09/06

    コーポレートエンジニア・カジュアルトーク #2 Copyright © 2019 FOLIO Co., Ltd. All Rights Reserved. 1
  2. ⼤⻄ 正恭 (Tadayuki Onishi) 2 ⾃⼰紹介 Software Engineer Twitter: @kenchan0130

    Blog: kenchan0130.github.io
  3. 3 ⾃⼰紹介

  4. Local Administrator Password Solution 4

  5. ローカル管理者アカウントのパスワード 集中管理ツール、通称 LAPS 5 Local Administrator Password Solution • 端末ごとに異なるパスワード

    • パスワードの定期的な変更 主な機能 PC A G&vlXKXLQ Name Password PC A G&vlXKXLQ PC B 411ssTe$1 PC B 411ssTe$1
  6. • イメージ展開などによるキッティング 効率化 • ヘルプデスク業務効率化 6 LAPSが⽣まれた経緯 管理者アカウントパスワードの同⼀化 マルウェアによるPass the

    Hash攻撃 PC A Pass12345 PC B Pass12345 Internal Network
  7. • イメージ展開などによるキッティング 効率化 • ヘルプデスク業務効率化 6 LAPSが⽣まれた経緯 管理者アカウントパスワードの同⼀化 マルウェアによるPass the

    Hash攻撃 PC A Pass12345 PC B Pass12345 Internal Network
  8. • イメージ展開などによるキッティング 効率化 • ヘルプデスク業務効率化 6 LAPSが⽣まれた経緯 管理者アカウントパスワードの同⼀化 マルウェアによるPass the

    Hash攻撃 PC A Pass12345 PC B Pass12345 Internal Network
  9. • イメージ展開などによるキッティング 効率化 • ヘルプデスク業務効率化 6 LAPSが⽣まれた経緯 管理者アカウントパスワードの同⼀化 マルウェアによるPass the

    Hash攻撃 PC A Pass12345 PC B Pass12345 Internal Network へへへ、どうせ Pass12345 やろ
  10. https://channel9.msdn.com/events/Ignite/2015/BRK2334 7 Active Directoryを使⽤したLAPS

  11. 1. パスワード期限、変更要求 2. 新規パスワードの作成 3. Active Directoryへ同期 4. 端末のパスワードの変更 8

    Active Directoryを使⽤したLAPS 端末上でエージェントが動作 PC A 411ssTe$1 PC A szieRsk&s szieRsk&s に変更 szieRsk&s に変更
  12. macOSのLocal Administrator Password Solution 9

  13. 10 macOSでLAPSを実現できるのか?

  14. Active Directoryと統合できるLAPSツール 11 https://github.com/joshua-d-miller/macOSLAPS • Active Directoryの属性を使⽤ • Swift製の署名されたバイナリ •

    独⾃のデーモンで動作
  15. Active Directoryを使⽤するのは レガシーなのではないか? 12

  16. オンプレミスのActive Directory依存 13 macOSLAPSのペインポイントとなる点 不安定なmacOSのAD Bind

  17. macOSのLocal Administrator Password Solutionを再構築 14

  18. インベントリデータベース アプリケーション エージェント/デーモン 15 LAPSに必要な要素分解 端末に紐付いたパスワードの把握 パスワードの更新と同期 アプリケーションを定期的に端末で実⾏

  19. Appleの端末の管理ツール 16 Jamf Proとは • Appleが提供しているMDMを使い やすくする • エージェントを仕込み、MDMで⼿ が届かない部分を補完(macOS

    のみ)
  20. Jamf Proの拡張属性 インベントリデータベース Jamf Proのスクリプト アプリケーション Jamf Proのポリシー エージェント/デーモン 17

    Jamf Proの仕組みに当てはめる
  21. Jamf Proの拡張属性 インベントリデータベース Jamf Proのスクリプト アプリケーション Jamf Proのポリシー エージェント/デーモン 18

    Jamf Proで実現するための課題
  22. Jamf Proと統合できるLAPSツール 19 https://github.com/NU-ITS/LAPSforMac • Jamf Proに最適化 • Shell製のスクリプト •

    アクティブに開発されていない
  23. 保存するパスワードが暗号化されていない T2チップ対応が不⼗分 整合性担保率が低い 20 NU-ITS/LAPSforMacのデメリット

  24. NU-ITS/LAPSforMacの課題解決 21 https://github.com/taniguti/LAPSforMac • NU-ITS/LAPSforMacのFork • 暗号化サポート • T2チップサポート •

    ⼀定⽔準の整合性の担保
  25. 設定⽅法 (時間があれば) 22

  26. 設定⽅法 1. 拡張属性の追加 23 設定 > コンピュータ管理 > 拡張属性 >

    新規 後で使う 1-1. 属性名(表⽰名)
  27. 設定⽅法 2. APIユーザーの作成 24 設定 > Jamf Pro ユーザアカウントとグループ >

    新規 後で使う 2-1. ユーザ名 2-2. パスワード
  28. 設定⽅法 2. APIユーザーの作成 24 設定 > Jamf Pro ユーザアカウントとグループ >

    新規 後で使う 2-1. ユーザ名 2-2. パスワード
  29. 設定⽅法 3. スクリプトの登録 25 設定 > コンピュータ管理 > スクリプト >

    新規
  30. 設定⽅法 3. スクリプトの登録 25 設定 > コンピュータ管理 > スクリプト >

    新規
  31. 設定⽅法 4. パスワードの暗号化 26 後で使う 4-1. Jamf ProのAPIユーザパスワードのsaltphrase 4-2. Jamf

    ProのAPIユーザのencryptedString 4-3. 端末の管理者アカウントの初期パスワードのsaltphrase 4-4. 端末の管理者アカウントのencryptedString $ git clone https://github.com/taniguti/LAPSforMac.git $./LAPSforMac/admintools/EncryptString.sh "YOUR_JAMF_API_USER_PASSWORD" # alt='xxxxxxxxx' # passphrase='yyyyyyyyyy' # saltphrase='xxxxxxxxx:yyyyyyyyyy' # encryptedString='zzzzzzzzzzzzzzzzzzzzzzzzz' $ ./LAPSforMac/admintools/EncryptString.sh "YOUR_DEVICE_ADMIN_USER_INITIAL_PASSWORD" # alt='xxxxxxxxx' # passphrase='yyyyyyyyyy' # saltphrase='xxxxxxxxx:yyyyyyyyyy' # encryptedString='zzzzzzzzzzzzzzzzzzzzzzzzz'
  32. 設定⽅法 5. 暗号化⽤ソルトとパスフレーズ⽣成 27 後で使う 5-1. saltphrase $ ./LAPSforMac/admintools/EncryptString.sh dummy

    # alt='ooooooooooo' # passphrase='pppppppppppp' # saltphrase='ooooooooooo:pppppppppppp' # encryptedString='qqqqqqqqqqqqqqqqqqq'
  33. 設定⽅法 6. ポリシーの登録 28 コンピュータ > ポリシー > 新規

  34. 設定⽅法 6. ポリシーの登録 28 コンピュータ > ポリシー > 新規

  35. 設定⽅法 6. ポリシーの登録 28 コンピュータ > ポリシー > 新規

  36. 設定⽅法 6. ポリシーの登録 28 コンピュータ > ポリシー > 新規 Jamf

    ProのAPIユーザ名 (2-1) Jamf ProのAPIユーザの暗号化済みパスワード (4-2) 端末の管理者アカウント名 端末の管理者アカウントの暗号化済み初期パスワード (4-4) 拡張属性名 (1-1) Jamf ProのAPIユーザパスワードのソルトとパスフレーズ (4-1) 端末の管理者アカウント初期パスワードのソルトとパスフレーズ (4-3) 拡張属性に保存するパスワードの暗号化ソルトとパスフレーズ (5-1)
  37. Q & A 29

  38. THANK YOU