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

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

kenchan0130
September 06, 2019

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

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

kenchan0130

September 06, 2019
Tweet

More Decks by kenchan0130

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. 3
    ⾃⼰紹介

    View Slide

  4. Local Administrator
    Password Solution
    4

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. macOSのLocal Administrator
    Password Solution
    9

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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'

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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)

    View Slide

  37. Q & A
    29

    View Slide

  38. THANK YOU

    View Slide