Slide 1

Slide 1 text

Local Administrator Password Solution for macOS with Jamf Pro 2019/09/06 コーポレートエンジニア・カジュアルトーク #2 Copyright © 2019 FOLIO Co., Ltd. All Rights Reserved. 1

Slide 2

Slide 2 text

⼤⻄ 正恭 (Tadayuki Onishi) 2 ⾃⼰紹介 Software Engineer Twitter: @kenchan0130 Blog: kenchan0130.github.io

Slide 3

Slide 3 text

3 ⾃⼰紹介

Slide 4

Slide 4 text

Local Administrator Password Solution 4

Slide 5

Slide 5 text

ローカル管理者アカウントのパスワード 集中管理ツール、通称 LAPS 5 Local Administrator Password Solution • 端末ごとに異なるパスワード • パスワードの定期的な変更 主な機能 PC A G&vlXKXLQ Name Password PC A G&vlXKXLQ PC B 411ssTe$1 PC B 411ssTe$1

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

https://channel9.msdn.com/events/Ignite/2015/BRK2334 7 Active Directoryを使⽤したLAPS

Slide 11

Slide 11 text

1. パスワード期限、変更要求 2. 新規パスワードの作成 3. Active Directoryへ同期 4. 端末のパスワードの変更 8 Active Directoryを使⽤したLAPS 端末上でエージェントが動作 PC A 411ssTe$1 PC A szieRsk&s szieRsk&s に変更 szieRsk&s に変更

Slide 12

Slide 12 text

macOSのLocal Administrator Password Solution 9

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

Active Directoryを使⽤するのは レガシーなのではないか? 12

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

macOSのLocal Administrator Password Solutionを再構築 14

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

Jamf Proの拡張属性 インベントリデータベース Jamf Proのスクリプト アプリケーション Jamf Proのポリシー エージェント/デーモン 18 Jamf Proで実現するための課題

Slide 22

Slide 22 text

Jamf Proと統合できるLAPSツール 19 https://github.com/NU-ITS/LAPSforMac • Jamf Proに最適化 • Shell製のスクリプト • アクティブに開発されていない

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

NU-ITS/LAPSforMacの課題解決 21 https://github.com/taniguti/LAPSforMac • NU-ITS/LAPSforMacのFork • 暗号化サポート • T2チップサポート • ⼀定⽔準の整合性の担保

Slide 25

Slide 25 text

設定⽅法 (時間があれば) 22

Slide 26

Slide 26 text

設定⽅法 1. 拡張属性の追加 23 設定 > コンピュータ管理 > 拡張属性 > 新規 後で使う 1-1. 属性名(表⽰名)

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

設定⽅法 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'

Slide 32

Slide 32 text

設定⽅法 5. 暗号化⽤ソルトとパスフレーズ⽣成 27 後で使う 5-1. saltphrase $ ./LAPSforMac/admintools/EncryptString.sh dummy # alt='ooooooooooo' # passphrase='pppppppppppp' # saltphrase='ooooooooooo:pppppppppppp' # encryptedString='qqqqqqqqqqqqqqqqqqq'

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

設定⽅法 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)

Slide 37

Slide 37 text

Q & A 29

Slide 38

Slide 38 text

THANK YOU