Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Local Administrator Password Solution for macOS...
Search
kenchan0130
September 06, 2019
Technology
0
1.3k
Local Administrator Password Solution for macOS with Jamf Pro / コーポレートエンジニア・カジュアルトーク #2 実例LT
コーポレートエンジニア・カジュアルトーク #2 実例LT (
https://corp.connpass.com/event/143310/
) で発表した資料です。
kenchan0130
September 06, 2019
Tweet
Share
More Decks by kenchan0130
See All by kenchan0130
組織デバイスのための効率的なアプリケーション更新戦略
kenchan0130
0
780
パスワードに関する最近の動向
kenchan0130
1
610
運用していくアプリケーション開発のヒント
kenchan0130
0
370
FOLIO のこれまでの情報セキュリティへの取り組みについて / Scramble! #2 Security
kenchan0130
1
1.5k
運用を続けていくための Scala の書き方 / scala.rookies#1
kenchan0130
3
1.3k
イノベーションを止めずに、端末管理と運用を行う方法 / builderscon tokyo 2018
kenchan0130
14
5.5k
イノベーションを止めずに、端末管理と運用を行う方法 発表ノート付き/ builderscon tokyo 2018
kenchan0130
1
610
教育・企業におけるデバイス管理について
kenchan0130
2
1.5k
教育・企業におけるデバイス管理について 発表ノート付き
kenchan0130
0
580
Other Decks in Technology
See All in Technology
Dify on AWS 環境構築手順
yosse95ai
0
170
オブザーバビリティと育てた ID管理・認証認可基盤の歩み / The Journey of an ID Management, Authentication, and Authorization Platform Nurtured with Observability
kaminashi
2
1.2k
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
260
戦えるAIエージェントの作り方
iwiwi
2
790
だいたい分かった気になる 『SREの知識地図』 / introduction-to-sre-knowledge-map-book
katsuhisa91
PRO
3
1.5k
AI機能プロジェクト炎上の 3つのしくじりと学び
nakawai
0
150
Amazon Athena で JSON・Parquet・Iceberg のデータを検索し、性能を比較してみた
shigeruoda
1
190
re:Inventに行くまでにやっておきたいこと
nagisa53
0
720
アウトプットから始めるOSSコントリビューション 〜eslint-plugin-vueの場合〜 #vuefes
bengo4com
3
1.8k
AI時代、“平均値”ではいられない
uhyo
8
2.7k
Behind Postgres 18: The People, the Code, & the Invisible Work | Claire Giordano | PGConfEU 2025
clairegiordano
0
150
DMMの検索システムをSolrからElasticCloudに移行した話
hmaa_ryo
0
230
Featured
See All Featured
Designing for Performance
lara
610
69k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
We Have a Design System, Now What?
morganepeng
53
7.8k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Gamification - CAS2011
davidbonilla
81
5.5k
The Pragmatic Product Professional
lauravandoore
36
7k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Producing Creativity
orderedlist
PRO
348
40k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Transcript
Local Administrator Password Solution for macOS with Jamf Pro 2019/09/06
コーポレートエンジニア・カジュアルトーク #2 Copyright © 2019 FOLIO Co., Ltd. All Rights Reserved. 1
⼤⻄ 正恭 (Tadayuki Onishi) 2 ⾃⼰紹介 Software Engineer Twitter: @kenchan0130
Blog: kenchan0130.github.io
3 ⾃⼰紹介
Local Administrator Password Solution 4
ローカル管理者アカウントのパスワード 集中管理ツール、通称 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 LAPSが⽣まれた経緯 管理者アカウントパスワードの同⼀化 マルウェアによるPass the
Hash攻撃 PC A Pass12345 PC B Pass12345 Internal Network
• イメージ展開などによるキッティング 効率化 • ヘルプデスク業務効率化 6 LAPSが⽣まれた経緯 管理者アカウントパスワードの同⼀化 マルウェアによるPass the
Hash攻撃 PC A Pass12345 PC B Pass12345 Internal Network
• イメージ展開などによるキッティング 効率化 • ヘルプデスク業務効率化 6 LAPSが⽣まれた経緯 管理者アカウントパスワードの同⼀化 マルウェアによるPass the
Hash攻撃 PC A Pass12345 PC B Pass12345 Internal Network
• イメージ展開などによるキッティング 効率化 • ヘルプデスク業務効率化 6 LAPSが⽣まれた経緯 管理者アカウントパスワードの同⼀化 マルウェアによるPass the
Hash攻撃 PC A Pass12345 PC B Pass12345 Internal Network へへへ、どうせ Pass12345 やろ
https://channel9.msdn.com/events/Ignite/2015/BRK2334 7 Active Directoryを使⽤したLAPS
1. パスワード期限、変更要求 2. 新規パスワードの作成 3. Active Directoryへ同期 4. 端末のパスワードの変更 8
Active Directoryを使⽤したLAPS 端末上でエージェントが動作 PC A 411ssTe$1 PC A szieRsk&s szieRsk&s に変更 szieRsk&s に変更
macOSのLocal Administrator Password Solution 9
10 macOSでLAPSを実現できるのか?
Active Directoryと統合できるLAPSツール 11 https://github.com/joshua-d-miller/macOSLAPS • Active Directoryの属性を使⽤ • Swift製の署名されたバイナリ •
独⾃のデーモンで動作
Active Directoryを使⽤するのは レガシーなのではないか? 12
オンプレミスのActive Directory依存 13 macOSLAPSのペインポイントとなる点 不安定なmacOSのAD Bind
macOSのLocal Administrator Password Solutionを再構築 14
インベントリデータベース アプリケーション エージェント/デーモン 15 LAPSに必要な要素分解 端末に紐付いたパスワードの把握 パスワードの更新と同期 アプリケーションを定期的に端末で実⾏
Appleの端末の管理ツール 16 Jamf Proとは • Appleが提供しているMDMを使い やすくする • エージェントを仕込み、MDMで⼿ が届かない部分を補完(macOS
のみ)
Jamf Proの拡張属性 インベントリデータベース Jamf Proのスクリプト アプリケーション Jamf Proのポリシー エージェント/デーモン 17
Jamf Proの仕組みに当てはめる
Jamf Proの拡張属性 インベントリデータベース Jamf Proのスクリプト アプリケーション Jamf Proのポリシー エージェント/デーモン 18
Jamf Proで実現するための課題
Jamf Proと統合できるLAPSツール 19 https://github.com/NU-ITS/LAPSforMac • Jamf Proに最適化 • Shell製のスクリプト •
アクティブに開発されていない
保存するパスワードが暗号化されていない T2チップ対応が不⼗分 整合性担保率が低い 20 NU-ITS/LAPSforMacのデメリット
NU-ITS/LAPSforMacの課題解決 21 https://github.com/taniguti/LAPSforMac • NU-ITS/LAPSforMacのFork • 暗号化サポート • T2チップサポート •
⼀定⽔準の整合性の担保
設定⽅法 (時間があれば) 22
設定⽅法 1. 拡張属性の追加 23 設定 > コンピュータ管理 > 拡張属性 >
新規 後で使う 1-1. 属性名(表⽰名)
設定⽅法 2. APIユーザーの作成 24 設定 > Jamf Pro ユーザアカウントとグループ >
新規 後で使う 2-1. ユーザ名 2-2. パスワード
設定⽅法 2. APIユーザーの作成 24 設定 > Jamf Pro ユーザアカウントとグループ >
新規 後で使う 2-1. ユーザ名 2-2. パスワード
設定⽅法 3. スクリプトの登録 25 設定 > コンピュータ管理 > スクリプト >
新規
設定⽅法 3. スクリプトの登録 25 設定 > コンピュータ管理 > スクリプト >
新規
設定⽅法 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'
設定⽅法 5. 暗号化⽤ソルトとパスフレーズ⽣成 27 後で使う 5-1. saltphrase $ ./LAPSforMac/admintools/EncryptString.sh dummy
# alt='ooooooooooo' # passphrase='pppppppppppp' # saltphrase='ooooooooooo:pppppppppppp' # encryptedString='qqqqqqqqqqqqqqqqqqq'
設定⽅法 6. ポリシーの登録 28 コンピュータ > ポリシー > 新規
設定⽅法 6. ポリシーの登録 28 コンピュータ > ポリシー > 新規
設定⽅法 6. ポリシーの登録 28 コンピュータ > ポリシー > 新規
設定⽅法 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)
Q & A 29
THANK YOU