macOS MDM

HackTricksのサポート

macOS MDMについて学ぶ:

基本

MDM (Mobile Device Management) 概要

Mobile Device Management (MDM) は、スマートフォン、ノートパソコン、タブレットなどのさまざまなエンドユーザーデバイスを管理するために利用されます。特にAppleのプラットフォーム(iOS、macOS、tvOS)では、特殊な機能、API、およびプラクティスが関与します。MDMの運用は、商用またはオープンソースの互換性のあるMDMサーバーに依存し、MDMプロトコルをサポートする必要があります。主なポイントは次のとおりです:

  • デバイスに対する集中制御。

  • MDMプロトコルに準拠するMDMサーバーへの依存。

  • MDMサーバーがデバイスにさまざまなコマンドを送信できる能力、たとえばリモートデータ消去や構成のインストール。

DEP (Device Enrollment Program) の基本

Appleが提供するDevice Enrollment Program (DEP) は、iOS、macOS、tvOSデバイスのゼロタッチ構成を容易にすることで、Mobile Device Management (MDM) の統合を効率化します。DEPは登録プロセスを自動化し、デバイスを最小限のユーザーまたは管理者の介入で即座に操作可能にします。主な側面は次のとおりです:

  • デバイスが初回起動時に事前定義されたMDMサーバーに自動的に登録できるようにします。

  • 新しいデバイスに特に有益ですが、再構成中のデバイスにも適用できます。

  • 簡単なセットアップを容易にし、デバイスを組織での使用に迅速に準備します。

セキュリティに関する考慮事項

DEPによる簡単な登録の利点はありますが、適切な保護措置がMDM登録に適切に施されていない場合、攻撃者はこの簡略化されたプロセスを利用して、企業のMDMサーバーに自分のデバイスを登録し、法人デバイスとして偽装する可能性があります。

セキュリティアラート: 簡略化されたDEP登録は、適切な保護措置が施されていない場合、組織のMDMサーバーに認可されていないデバイスの登録を許可する可能性があります。

SCEP (Simple Certificate Enrolment Protocol) とは

  • TLSやHTTPSが普及する前に作成された比較的古いプロトコル。

  • クライアントに証明書署名リクエスト(CSR)を送信し、証明書を取得するための標準化された方法を提供します。クライアントはサーバーに署名された証明書を要求します。

構成プロファイルとは(モバイル構成ファイルとも呼ばれる)

  • Appleの公式の方法でシステム構成を設定/強制するもの。

  • 複数のペイロードを含むファイル形式。

  • プロパティリスト(XMLタイプ)に基づいています。

  • 「起源を検証し、整合性を確保し、内容を保護するために署名と暗号化できます。」Basics — Page 70, iOS Security Guide, January 2018.

プロトコル

MDM

  • APNs(Appleサーバー)+ RESTful API(MDMベンダーサーバー)の組み合わせ

  • デバイスデバイス管理製品に関連するサーバー間での通信

  • MDMからデバイスへのコマンドplistエンコードされた辞書で配信されます

  • すべてHTTPS経由。MDMサーバーは(通常)ピン留めされています。

  • AppleはMDMベンダーにAPNs証明書を認証するために提供します

DEP

  • 3つのAPI: リセラー用1つ、MDMベンダー用1つ、デバイス識別用1つ(未公開):

  • いわゆるDEP "クラウドサービス" API。これはMDMサーバーがDEPプロファイルを特定のデバイスに関連付けるために使用されます。

  • Apple認定リセラーが使用するDEP API。デバイスの登録、登録状態の確認、トランザクション状態の確認に使用されます。

  • 未公開のプライベートDEP API。これはAppleデバイスがDEPプロファイルをリクエストするために使用されます。macOSでは、cloudconfigurationdバイナリがこのAPIを介して通信します。

  • より現代的でJSONベース(plistとは異なる)

  • AppleはMDMベンダーにOAuthトークンを提供します

DEP "クラウドサービス" API

  • RESTful

  • AppleからMDMサーバーにデバイスレコードを同期

  • MDMサーバーからAppleにDEPプロファイルを同期(後でデバイスに配信されます)

  • DEP「プロファイル」には次のものが含まれます:

  • MDMベンダーサーバーのURL

  • サーバーURLの追加信頼された証明書(オプションのピン留め)

  • その他の設定(例: 設定アシスタントでスキップする画面)

シリアル番号

2010年以降に製造されたAppleデバイスは、一般的に12文字の英数字のシリアル番号を持ち、最初の3桁は製造場所を表し、次の2桁は製造年を示し、次の3桁は一意の 識別子を提供し、最後の4桁は モデル番号を表します。

macOS Serial Number

登録と管理の手順

  1. デバイスレコードの作成(リセラー、Apple): 新しいデバイスのレコードが作成されます

  2. デバイスレコードの割り当て(顧客): デバイスがMDMサーバーに割り当てられます

  3. デバイスレコードの同期(MDMベンダー): MDMがデバイスレコードを同期し、DEPプロファイルをAppleにプッシュします

  4. DEPチェックイン(デバイス): デバイスがDEPプロファイルを取得します

  5. プロファイルの取得(デバイス)

  6. プロファイルのインストール(デバイス) a. MDM、SCEP、およびルートCAペイロードを含む

  7. MDMコマンドの発行(デバイス)

ファイル/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbd は、登録プロセスの**高レベルな「ステップ」**と見なすことができる関数をエクスポートします。

ステップ4: DEPチェックイン - アクティベーションレコードの取得

このプロセスのこの部分は、ユーザーがMacを初めて起動したとき(または完全に消去した後)

またはsudo profiles show -type enrollmentを実行したときに発生します

  • デバイスがDEP対応かどうかを判断

  • アクティベーションレコードはDEPの「プロファイル」の内部名です

  • デバイスがインターネットに接続されるとすぐに開始

  • CPFetchActivationRecord によって駆動

  • cloudconfigurationd によって実装され、XPCを介して。デバイスが最初に起動されたときの "セットアップアシスタント" または profiles コマンドは、このデーモンにアクティベーションレコードを取得するために連絡します。

  • LaunchDaemon(常にrootとして実行)

MCTeslaConfigurationFetcher によって実行されるアクティベーションレコードの取得には、Absinthe という暗号化が使用されます

  1. 証明書を取得

  2. 証明書から状態を初期化(NACInit

  3. 様々なデバイス固有のデータを使用(例:IOKit 経由のシリアル番号)

  4. セッションキーを取得

  5. セッションを確立(NACKeyEstablishment

  6. リクエストを作成

  7. データ { "action": "RequestProfileConfiguration", "sn": "" } を送信して https://iprofiles.apple.com/macProfile にPOST

  8. JSONペイロードはAbsintheを使用して暗号化されます(NACSign

  9. すべてのリクエストはHTTPs経由で行われ、組み込みのルート証明書が使用されます

応答は、以下のような重要なデータを含むJSON辞書です:

  • url: アクティベーションプロファイルのためのMDMベンダーホストのURL

  • anchor-certs: 信頼されるアンカーとして使用されるDER証明書の配列

ステップ5: プロファイルの取得

  • DEPプロファイルで提供されたURLにリクエストを送信します。

  • アンカー証明書が提供された場合、信頼性を評価するために使用されます。

  • リマインダー:DEPプロファイルの anchor_certs プロパティ

  • デバイス識別情報を含む、単純な.plist形式のリクエスト

  • 例:UDID、OSバージョン

  • CMSで署名され、DERでエンコードされています

  • デバイス識別証明書(APNSから) を使用して署名されています

  • 証明書チェーン には期限切れの Apple iPhone Device CA が含まれています

![](<../../../.gitbook/assets/image (567) (1) (2) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (

Last updated