コンテンツにスキップ

機密データ検出

API Discoveryは、お客様のAPIによって消費および転送される機密データを検出し、強調表示します。これにより、暗号化、トークナイゼーション、その他のセキュリティ制御を適用してデータ漏洩や安全でないチャネル、不正なシステムへの機密データ送信を防止することが可能です。本記事では、この機能の使用方法と設定方法について説明します。

Wallarmの機密データ検出は、包括的なデフォルト設定により、すぐにご利用いただけます。また、非常にカスタマイズ性に優れており、既存の検出プロセスを微調整したり、お客様独自のデータタイプを追加して検出することが可能です。

デフォルトでの検出

デフォルトでは、API Discoveryは以下の種類の機密データを検出します:

  • IPアドレスやMACアドレスなどの技術データ

  • シークレットキーやパスワードなどのログイン認証情報

  • 銀行カード番号などの金融データ

  • 医療ライセンス番号などの医療データ

  • フルネーム、パスポート番号、SSNなどの個人を特定できる情報(PII)

Wallarm Console内で、API DiscoveryConfigure API DiscoverySensitive dataに移動して、各種類に対して提供されるデフォルトのsensitive data patternsのリストをご確認ください。

機密データ検出のカスタマイズ

企業固有のニーズやGDPR、HIPAA、PCI DSSなどの業界特有の規制に完全に準拠するために、API Discoveryは検出プロセスの微調整機能を提供します(ただし、NGINX Node 5.0.3またはNative Node 0.7.0以上が必要です)。

カスタマイズにより、企業固有のデータ保護義務に対応することが可能です。さらに、独自または特殊な機密データ要素がデータフロー内に存在する場合、これらを正確に識別するためのカスタム正規表現を定義でき、大いに役立ちます。

機密データ検出は一連のsensitive data patternsを用いて設定されます。各パターンは、特定の機密データとその検出設定を定義します。API Discoveryにはデフォルトのパターンが用意されていますが、Wallarm Console内のAPI DiscoveryConfigure API DiscoverySensitive dataにて、デフォルトのパターンを変更したり、お客様独自のパターンを追加することが可能です。

デフォルト(初期設定)のパターンは変更または無効化でき、必要に応じて迅速に初期設定へ復元することが可能です。また、お客様独自のパターンは作成、変更、無効化、削除をいつでも行うことができます。

信頼スコア

パターンとコンテキストワードを利用して機密データ検出を設定できます。パターンやコンテキストワードに対して0.1から1.0の間の信頼スコアを選択し、この表現との一致または機密データの隣にある文字列や単語の存在が実際に機密データの存在を意味するかの確信度を指定します。より実際のエンティティを検出し、誤検知を減らすために、適切なスコアを使用してください。

信頼スコアが0.3に達するか、それ以上の場合、機密データが検出されます。具体的には、コンテキストワードのスコアが合算され、パターンからは最大のスコアが採用されます。詳しくは下記の例をご参照ください。

実際のトラフィックデータに適用した後、信頼スコアを調整することを推奨します。

パターンベースの検出

PCRE形式の正規表現を使用して、想定される機密データ値に一致させます。正規表現を使用することで、検出の精度が大幅に向上します。異なる信頼スコアを持つ複数のパターンを使用することができ、いずれかに一致した場合、機密データが検出されます。

パターンは固定長のトークン、ID、およびURIに適しています。

Context words

Wallarmは、パターンに一致する疑わしい機密データの周囲の単語を確認します。コンテキストワードが見つかると、結果の信頼スコアが向上します。コンテキストは、URLパス、クエリパラメータ名、JSONキー、その他の隣接パラメータから取得されます。

API Discovery – Settings - Sensitive data

例えば、上記の画像では、以下の場合に機密データが検出されます:

  • JWTまたはAWS access key IDのパターンに一致すれば、即座に検出されます。

  • AWS key (weak)に一致した場合、それ単体では「はい」と判定されません(スコアが0.1で、閾値0.3に満たないためです)。

  • しかし、コンテキストワードaccess(0.1)とapi(0.1)が加わると、合計が0.3となり、機密データが検出されます。

  • authを必須としてマークした場合、状況が変わり、authが存在しない場合、提示されたaccessapiのスコアは無視され、パターンのスコアを向上させることができなくなります。

コンテキストワードのみベースの検出

パターンなしでコンテキストワードのみを指定した場合、Wallarmはこれらの単語の存在に基づいて機密データの有無を判定します。信頼スコアの合計が大きいほど、そのパラメータが記述された機密データを含む可能性が高まります。

一部のコンテキストのみでの検索では、いくつかの単語をmandatory(必須)として宣言する必要があります。必須の単語が値のコンテキストに存在しない場合、そのパラメータは機密データを含みません。

例: personal_name

コンテキストワード:

  • name

  • first

  • middle

「middle_name」と一致させる必要がありますが、「name」や「middle」だけでは一致しません。そのため、nameには0.1のスコアを設定し、単体での一致を防ぎます。しかし、middleには「middle_name」が強い組み合わせであるため、大きなスコア0.5を設定する必要があります。

「name」なしでmiddleのみが検出されるのを防ぐため、nameをエンティティの必須項目としてマークします。nameが見つからない場合、機密データは検出されません。

API Discovery – Settings - Sensitive data - Creating custom pattern