セキュリティ

Microsoft PurviewエンドポイントDLPでマイナンバーの操作を追跡しSplunkでログを確認してみた

こんにちは、臼田です。

みなさん、DLPしてますか?(挨拶

今回はMicrosoft PurviewのエンドポイントDLPにてマイナンバーを扱うファイルに関する操作を追跡し、検出した内容をSplunkに取り込んでどのような情報を扱えるか確認してみます。

概要

Microsoft PurviewではエンドポイントDLPの機能で様々な機密情報の扱いを追跡し、動作をコントロールできます。今回は操作をブロックせず、追跡するのみでどこまで確認できるかを試します。

Microsoft Purviewでのマイナンバーの扱いについては下記が参考になります。

Microsoft PurviewエンドポイントDLPでマイナンバーを検出する仕様と動作を確認してみた – CloudNative Inc. BLOGs

合わせて、ログをSplunkで取り込みどのようなデータが確認できるかも見ていきます。

やってみた

今回のステップは下記のとおりです。

  • DLPポリシー作成
  • マイナンバーの検出
  • Splunkの取り込み
  • ログの確認

なお、Microsoft Purviewのセットアップなどは省略します。

DLPポリシー作成

マイナンバーの検出のために利用する機密情報の種類はマネージドで存在しているため、それを利用したDLPポリシーを作成します。

データ損失防止画面のポリシーから「ポリシーの作成」を押します。

前まで無かったのですが、ポリシー作成画面に行く前に選択肢が出てくるのでデバイスについて扱う左の選択肢を選びます。

ポリシーのテンプレートは使わず、カスタムポリシーを選択します。

適当な名前や必要に応じて説明を入れて次へ。

割当対象に管理単位を利用する場合にはこちらを選択します。今回は検証目的で利用しないためそのまま次へ進みます。

適用する場所を選択します。エンドポイントDLPとしては「デバイス」のみですが必要な範囲があれば追加して問題ありません。この場では検証目的のため「編集」から対象ユーザーやデバイスを絞り込みました。

絞り込みできたことを確認し次へ。

ポリシーはカスタマイズするためこの選択肢のままで次へ。

DLPのルールを作成していきます。「ルールを作成」を押します。

適当な名前を入力し、マイナンバーを検出するための「条件」を設定します。「条件の追加 -> コンテンツに含まれている」を選択します。

「追加 -> 機密情報の種類」を選択し、検索欄で「japan」で絞り込んで「Japanese My Number Personal」を選択して「追加」します。

続いて検出の設定です。「操作」にて「処理の追加 -> デバイスでアクティビティを監査または制限する」を押します。

「デバイスでアクティビティを監査または制限する」の設定で、一通りの設定を「監査のみ」にしていきます。

ここがメインです。「特定のアクティビティに制限を適用する」にて各アクションを「監査のみ」とします。

アプリのアクセス制御についても同様に「監査のみ」とします。

その他の設定はデフォルトのままとして「保存」します。

設定されたルールが確認できます。次へ。

ポリシーをすぐに反映するために「ポリシーをすぐに有効にする」を選択して次へ。

確認画面が出るので最後に「送信」します。

これでDLPポリシーの設定が完了しました。対象デバイスに配信されるのを待ちます。

マイナンバーの検出

デバイスに配信したポリシーが反映されたら実際にマイナンバーを含むファイルを操作してみます。

検出のさせ方や検出ロジック、実際のテストファイルなどは前述のブログにありますので割愛します。

検出させた結果がこちらです。アクティビティエクスプローラーにてDLP rule matchedなど操作内容の検出を確認できます。

今回はRDPからクリップボードでコピーしたアクションが「アクティビティタイプ」として検出され、ファイル名なども確認できます。

アクティビティとしてはDLP rule matched以外にもFile copied to cloudなどのアクティビティも記録されています。

Splunkの取り込み

Microsoft PurviewとSplunkを連携する場合はSIEM ソリューションでのコミュニケーション コンプライアンスの使用 | Microsoft Learnに情報があるMicrosoft Office 365用 Splunk アドオンを利用できます。

今回はAWS環境でSplunk Enterpriseを立ててログを取り込みます。EC2作成画面でマーケットプレイスからAMIを選択できるのでこれを構築します。

構築後の使用方法はAWS Marketplace: Splunk Enterpriseの使用手順などを確認してください。

Install – Splunk Add-on for Microsoft Office 365を参考にSplunk上でアドオンをインストールします。

インストール後の設定はConfigure an integration application in Azure AD – Splunk Add-on for Microsoft Office 365を参照します。連携には証明書かシークレットが必要です、今回は手順簡素化のためクライアントシークレットを作成して権限を振ります。

必要な権限はドキュメントに記載がありますが、Splunk Add-on for Microsoft Securityの記事も参考になります。

クライアントシークレットを作成して権限を振ったらSplunk側でテナントの設定を入れていきます。

問題なく連携したらInputで取り込み設定を行います。Content TypeでDLP.Allを取り込むように設定します。

これで設定は完了です。

ログの確認

それでは取り込まれたログを確認していきましょう。

適当にクエリしても良いですが、ここではこのようにクエリして対象を絞ります。

sourcetype="o365:management:activity"| spath Workload | search Workload=Endpoint

下記のように検出したログが取り込まれていることが確認できました。

しかし取り込まれているのはDLP rule matchedのアクティビティのみで、他のFile copied to cloudなどのアクティビティは取り込み対象ではないようです。

ログのフォーマットは下記のようになっています。

{
  "EndpointMetaData": {
    "SensitiveInfoTypeData": [
      {
        "SensitiveInfoTypeId": "12345678-aaaa-bbbb-cccc-1234567890ab",
        "Count": 1,
        "Confidence": 85,
        "SensitiveInfoTypeName": "Japanese My Number Personal",
        "SensitiveInformationDetailedClassificationAttributes": [],
        "SensitiveInformationDetectionsInfo": {
          "DetectedValues": [
            {
              "Name": "999999999999",
              "Value": "個人番号\r\n999999999999"
            },
            {
              "Name": "999999999999",
              "Value": "個人番号\r\n999999999999"
            }
          ]
        }
      }
    ],
    "SourceLocationType": 1,
    "Platform": 1,
    "Application": "rdpclip.exe",
    "FileExtension": "txt",
    "DeviceName": "Contoso-Device-01",
    "MDATPDeviceId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "Sha1": "1111111122222222333333334444444455555555",
    "Sha256": "1111111122222222333333334444444455555555666666667777777788888888",
    "EnforcementMode": 1,
    "TargetPrinterName": "",
    "TargetDomain": "",
    "TargetFilePath": "N/A",
    "FileSize": 26,
    "FileType": "TEXT",
    "RMSEncrypted": false,
    "Hidden": false,
    "EndpointOperation": "FileCopiedToRemoteDesktopSession",
    "DlpAuditEventMetadata": {
      "DlpPolicyMatchId": "00000000-0000-0000-0000-000000000000",
      "EvaluationTime": "2025-12-21T14:36:12.4585182+00:00"
    },
    "EAv2Enriched": true,
    "IsViewableByExternalUsers": false,
    "TargetUrl": ""
  },
  "EvidenceFile": {
    "StorageName": "",
    "FullUrl": ""
  },
  "SensitiveInfoDetectionIsIncluded": true,
  "PolicyDetails": [
    {
      "PolicyId": "88888888-4444-4444-4444-121212121212",
      "PolicyName": "マイナンバー追跡ポリシー",
      "Rules": [
        {
          "RuleId": "99999999-9999-9999-9999-999999999999",
          "ManagementRuleId": "99999999-9999-9999-9999-999999999999",
          "RuleName": "マイナンバー追跡ルール",
          "RuleMode": "Enable",
          "Severity": "Low"
        }
      ]
    }
  ],
  "IncidentId": "abcdef12-3456-7890-abcd-ef1234567890",
  "ObjectId": "C:\\Users\\DlpUser\\Desktop\\my_number_test.txt",
  "UserId": "dlpuser@contoso.com",
  "ClientIP": "203.0.113.10",
  "Id": "abcdef12-3456-7890-abcd-ef1234567890",
  "RecordType": 108,
  "CreationTime": "2025-12-21T14:36:25",
  "Operation": "DlpRuleMatch",
  "OrganizationId": "11111111-2222-3333-4444-555555555555",
  "UserType": 0,
  "UserKey": "ffffffff-ffff-ffff-ffff-ffffffffffff",
  "Workload": "Endpoint",
  "CorrelationIdentity": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "Version": 1,
  "Scope": 1
}

特に下記項目が重要です。

  • $.UserId: 実行ユーザー (UserId)
  • $.PolicyDetails[0].PolicyName: 検知ポリシー名 (PolicyName)
  • $.EndpointMetaData.EndpointOperation: 操作アクティビティ (EndpointOperation)
  • $.ObjectId: 対象ファイルパス (ObjectId)

他にも検出したデータの詳細からどのような内容であったか詳細を確認できます。

データのスキーマはOffice 365 マネージメント アクティビティ API のスキーマ | Microsoft Learnも参考になりますが、細分化されているので詳細を把握するならMicrosoft Learn MCP Server の概要 | Microsoft Learnの活用を推奨します。

これらを利用してダッシュボードを整備したりできると思いますが、今回はここまでとします。

まとめ

Microsoft PurviewのエンドポイントDLPにてマイナンバーの操作を検出して、Splunkからそのログを確認しました。

アドオンを利用することでAPIなどを意識せずログデータを取得できました。監視したい内容に合わせて活用できそうです。

臼田 佳祐

AWSとセキュリティやってます。普段はクラスメソッドで働いてます。クラウドネイティブでは副業としてセキュリティサービスの検証とかやってます。