こんにちは。セキュリティチームの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は、以下の階層で構成されます。
- Entity: ルールの中で機密データを識別するための部品。
- Data Identifier(データ識別子):定型フォーマットを持ち、単純な正規表現のみでは表現できないようなデータ種別。(マイナンバー、クレジットカード番号など)
- Dictionary(辞書):多くを列挙し、重みづけを持たせたりできるキーワードや正規表現のリスト。(都道府県名リスト、製品名リストなど)
- DLP Rule: 1つ以上のEntityを組み合わせ、検知ロジック(AND/OR、近接条件、マッチ数のしきい値、重大度)を定義。
- File Profile: 対応するファイルタイプ、ハッシュ値、パスワード保護や暗号化の有無などのファイル属性を定義。
- DLP Profile: 複数のDLPルールと、File Profileを束ねる。
- 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ルールの作成
- Policies > DLP > DLP Rulesを開き、New Rule をクリックします。
- 「Entity」画面では、「TINs」のキーワードで検索して、事前定義識別子
Personal TINs (JP; all)と、Corporate TINs (JP; all)の2つを選択します。
- 「EXACT MATCH」画面は何も変更せず「NEXT」をクリックします。
- 「ADVANCED OPTIONS」画面では、「RULE EXPRESSION」項目で、初期値の「P0 AND P1」から「P0 OR P1」に設定して、「NEXT」をクリックします。
- 「CONTENT」画面では何も変更せず「NEXT」をクリックします。
- 「SEVERITY THRESHOLD」画面では、重要度ごとのしきい値(何回検知した際にその重要度でアラートを出すかの設定)を設定します。まずは Lowを「1」 など低めに設定して検知状況を確認し、運用しながら調整するのがおすすめです。
参考:Select a Severity Threshold
2. DLPプロファイルの作成
- Policies > DLP > New Profile を開きます。
- FILE PROFILES画面ではFILE PROFILEを何も指定せずに「NEXT」をクリックします。
- 今回は特定のファイルタイプのみに絞るなどのFILE PROFILEで条件を設定しないため、選択しません。
- CONTENT RULES画面で、前手順で作成したマイナンバー検知用DLPルールを選択し、任意の名前をつけてポリシーを作成します。
3. Real-time Protectionポリシーへの適用
- 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をご利用されている皆様の運用の一助になれば幸いです。