正規表現は不要! Netskope DLPでマイナンバー検知

こんにちは。セキュリティチームのta2ya(たつや)です。

今回は、お客様からの「NetskopeのDLPでマイナンバーを検出できるポリシーの作成方法が知りたい」というお問い合わせへの対応から学んだ、「Netskope DLPのReal-time Protectionでのマイナンバー検出」について検証をした結果をお話しします。

本記事の要点は以下のとおりです。

  • Netskopeには日本のマイナンバー(個人番号・法人番号)向けの事前定義識別子 Personal TINs (JP; all) / Corporate TINs (JP; all) が用意されており、カスタム正規表現は不要
  • ハマりどころは以下
    • DLPルールのRULE EXPRESSIONは検出したい要件に演算子の指定を合わせる(デフォルトでは自動的にAND評価になる)

本記事では、実際の検証結果をもとに、設定方法とハマりどころを紹介します。

前提知識:マイナンバーの仕様

マイナンバー制度には以下の2種類の番号が存在します。

  • 個人番号(マイナンバー): 12桁の数字。末尾1桁は検査用数字(チェックデジット)で、算出方法は総務省令で定められています。
  • 法人番号: 国税庁が指定する13桁の数字。こちらもチェックデジット(先頭1桁)を持ちます。

動作確認する観点では「単なる12桁/13桁の数字列」との区別が課題になります。

Netskope DLPの構成要素

Netskope DLPは、以下の階層で構成されます。

  1. Entity: ルールの中で機密データを識別するための部品。
    • Data Identifier(データ識別子):定型フォーマットを持ち、単純な正規表現のみでは表現できないようなデータ種別。(マイナンバー、クレジットカード番号など)
    • Dictionary(辞書):多くを列挙し、重みづけを持たせたりできるキーワードや正規表現のリスト。(都道府県名リスト、製品名リストなど)
  2. DLP Rule: 1つ以上のEntityを組み合わせ、検知ロジック(AND/OR、近接条件、マッチ数のしきい値、重大度)を定義。
  3. File Profile: 対応するファイルタイプ、ハッシュ値、パスワード保護や暗号化の有無などのファイル属性を定義。
  4. DLP Profile: 複数のDLPルールと、File Profileを束ねる。
  5. Real-time Protection / API Data Protection Policy: プロファイルをトラフィックやSaaSテナントに適用し、Alert/Blockなどのアクションを実行。

上記の5つの要素の関係性を図示化したものが以下となります。

複数の構成要素が存在するため、各構成要素がそれぞれ検知可能な状態になっていないと、当然ですが最終的にDLPアラートとして検知できない状態となります。

DLPアラートが期待通りに検知されない場合、Entityから順に各構成要素を見直してみましょう。

マイナンバー検知に使う事前定義識別子

事前定義識別子の一覧は、DLPルール新規作成画面でカテゴリごとに確認できます。

Policies > DLP > DLP Rules > Rules

「TYPE」が「predefined」のものが事前定義識別子となります。

マイナンバー関連では、以下の識別子が該当します(識別子名は検証時点のもの)。

対象事前定義識別子名
個人番号(マイナンバー)Personal TINs (JP; all)
法人番号Corporate TINs (JP; all)

※ TIN = Taxpayer Identification Number(納税者番号)。

マイナンバーの事前定義識別子にはハイフン、ドット、スペース区切り、区切り無しなどのものも用意されていますが、(JP; all)が全てを包含しているので、今回のNetskope DLPルールによるマイナンバー検出の検証時には「Personal TINs (JP; all) 」、「Corporate TINs (JP; all)」の識別子を用いています。

なお、Netskopeは3,000以上の事前定義データ識別子を提供しており、133か国の個人識別情報に対応しています。

参考: Netskope One DLP データシート(PDF)

"Described content matching uses over 3,000+ predefined data identifiers and personal identifiers specific to 133 countries,

検証のためのマイナンバーダミーデータに関して

実在するマイナンバーを入力してテストするわけにはいかないため、今回はサポートへ問い合わせをし、マイナンバーのダミーデータを提供してもらいました。

事前準備

検証対象アプリのDLP対応アクティビティの確認

検出テストを実施するアプリが、DLPでどの種別のアクティビティに対応しているかをApp Catalogにて確認しておきましょう。今回はSlackを確認しました。

設定手順

1. DLPルールの作成

  1. Policies > DLP > DLP Rulesを開き、New Rule をクリックします。
  2. 「Entity」画面では、「TINs」のキーワードで検索して、事前定義識別子 Personal TINs (JP; all) と、Corporate TINs (JP; all) の2つを選択します。
  3. 「EXACT MATCH」画面は何も変更せず「NEXT」をクリックします。
  4. 「ADVANCED OPTIONS」画面では、「RULE EXPRESSION」項目で、初期値の「P0 AND P1」から「P0 OR P1」に設定して、「NEXT」をクリックします。
  5. 「CONTENT」画面では何も変更せず「NEXT」をクリックします。
  6. 「SEVERITY THRESHOLD」画面では、重要度ごとのしきい値(何回検知した際にその重要度でアラートを出すかの設定)を設定します。まずは Lowを「1」 など低めに設定して検知状況を確認し、運用しながら調整するのがおすすめです。

参考:Select a Severity Threshold

2. DLPプロファイルの作成

  1. Policies > DLP > New Profile を開きます。
  2. FILE PROFILES画面ではFILE PROFILEを何も指定せずに「NEXT」をクリックします。
    • 今回は特定のファイルタイプのみに絞るなどのFILE PROFILEで条件を設定しないため、選択しません。
  3. CONTENT RULES画面で、前手順で作成したマイナンバー検知用DLPルールを選択し、任意の名前をつけてポリシーを作成します。

3. Real-time Protectionポリシーへの適用

  1. Policies > Real-time Protection > New Policy > DLPで、作成したDLPプロファイルを割り当てたポリシーを作成します。
    Webカテゴリ向けポリシーでは Upload / Post などアップロード系アクティビティを対象にします。弊社での検証時は、以下のアクティビティをテストしました。
    • Post:Slackへのメッセージ投稿
    • Upload:Slackへの添付ファイルアップロード

4. 検知結果の確認

Incidents > DLPから、どのユーザーが・どのアプリで・どのアクティビティで(Post / Uploadなど)、どのポリシーに合致したか、ヒットしたカウント数などを確認できます。

さいごに

思わぬところで何度かつまずき、時間を取られてしまいましたが、NetskopeのDLPポリシー構造や識別子、演算子などの要素を捉え直す良い機会となりました。

今回はSlackで検証しましたが、他の対応アプリでも応用できるかと思います。

他のアプリで確認される際には、必ずApp CatalogでDLPに対応しているアクティビティ種別を確認しましょう。

このブログが、Netskopeをご利用されている皆様の運用の一助になれば幸いです。

この記事をシェア