データの修正

データプライバシーを維持するため、Next-Gen WAF はリクエストがプラットフォームのバックエンドに到達する前に、リクエストから機密データを削除します。

選択的なデータ転送および修正

Next-Gen WAF エージェントは、リクエストをローカルでフィルタリングし、リクエストに攻撃が含まれているかどうかを判断します。攻撃または異常としてマークされたリクエストのみが、追加のフィルタリングとサニタイズが行われた後、プラットフォームのバックエンドに送信されます。エージェントは、リクエスト内の潜在的な攻撃または異常を識別すると、攻撃ペイロードを含むリクエストの個別のパラメータと、リクエストの他のいくつかの機密でない部分または無害な部分 (クライアント IP、ユーザーエージェント、URI など) のみを送信します。リクエスト全体がプラットフォームのバックエンドに送信されることはありません。さらに、トークン、認証情報、クレジットカード番号や社会保障番号などの既知のパターンなど、リクエストの特定の部分もバックエンドに送信されることなく、自動的に修正されます。

JSON API ペイロード

Next-Gen WAF は、JSON のキーと値のペアを自動的に解析し、リクエストパラメータのように扱います。以下のサンプルリクエストは、リクエストのコンテキスト内で修正がどのように機能するかを示しています。

最初のリクエスト :

POST /request HTTP/1.1
Content-Length: 72
Content-Type: application/json
Host: api.example.com
{"user":"user@api.example.com","password":"<script>alert(1)</script>mypassword","zip":94089}

Next-Gen WAF に送信されるもの :

POST /request HTTP/1.1
Host: api.example.com
password=

最初のリクエスト :

POST /request HTTP/1.1
Content-Length: 72
Content-Type: application/json
Host: api.example.com
{"user":"user@api.example.com","password":"mypassword","zip":"<script>alert(1)</script>94089"}

Next-Gen WAF に送信されるもの :

POST /request HTTP/1.1
Host: api.example.com
zip=<script>alert(1)</script>

機密性の高いヘッダー

Next-Gen WAF は、リクエストの以下のものを修正します。

  • 明示的な名前:authorizationx-auth-tokencookieset-cookie

  • -token-auth-key-sess-pass-secret を含む名前

  • referer および location からのクエリ文字列

最初のリクエスト :

POST /example?sort=ascending HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0)
Accept: text/html, application/xhtml+xml
Content-Length: 57
Cookie: foo=bar
sensitive=hunter2&foobar=<script>alert(1)</script>&page=3

Next-Gen WAF に送信されるもの :

POST /example HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0)
foobar=<script>alert(1)</script>

機密パラメータ

リクエストに攻撃や異常が含まれており、一般的に使用されるパラメータ名に機密データが含まれている場合、Next-Gen WAF は機密パラメータの内容をすべて修正します。これらのパラメータには以下が含まれます。

  • api_key

  • password

  • passwd

  • pass

  • pw

  • user

  • login

  • loginid

  • username

  • email

  • key

  • id

  • sid

  • token

  • request_token

  • access_token

  • csrfmiddlewaretoken

  • oauth_verifier

  • confirm_password

  • password_confirmation

最初のリクエスト :

POST /example HTTP/1.1
username=<script>alert("jsmith")</script>

Next-Gen WAF に送信されるもの :

POST /example HTTP/1.1
username=[redacted]

コンソールには、どのパラメータが修正されたかが明確に表示されます。修正されたパラメータは黄色で強調された REDACTED という語句に置き換えられます。

修正されたパラメータ。パラメータは黄色で強調された「REDACTED」という語句に置き換えられます。 

機密性の高いパターン

Next-Gen WAF は、既知の機密情報パターンを自動的に修正します。それには以下のようなものが含まれます。

  • クレジットカード番号 : 4111-1111-1111-1111 のような値は 0000-0000-0000-0000 に変わります

  • 社会保障番号 : 078-05-1120 のような値は 000-00-0000 に変わります

  • GUID : 3F2504E0-4F89-41D3-9A0C-0305E82C3301 のような値は 0000000-0000-0000-0000-000000000000 に変わります

  • 銀行口座 (IBAN) 番号 : DE75512108001245126199 のような値は AA00aaaa0000000 に変わります

最初のリクエスト :

POST /example HTTP/1.1
credit_card_example=<script>alert("4111-1111-1111-1111")</script>

Next-Gen WAF に送信されるもの :

POST /example HTTP/1.1
credit_card_example=<script>alert("0000-0000-0000-0000")</script>

コンソール内では、どのパターンが修正されたかが明確に表示されます。修正されたパターンは黄色で強調された REDACTED という語句に置き換えられます。

修正されたパラメータ。パラメータは黄色で強調された「REDACTED」という語句に置き換えられます。 

カスタム修正

上記の修正リストに加えて、リクエストから修正する追加フィールドを指定することもできます。たとえば、パスワードフィールドが password ではなく foobar という名前の場合、そのフィールドを修正対象として指定できます。

重要 : アカウントの修正は、サイト (ワークスペースとも呼ばれる) ごとに100件に制限されます。

カスタム修正の作成

デフォルトではフィルタリングされない機密フィールドがある場合は、カスタムフィールド修正を作成できます。

  1. Next-Gen WAF control panel
  2. Fastly control panel
  1. Next-Gen WAF コンソールにログインします。
  2. Sites メニューから、複数のサイトがある場合はサイトを選択します。
  3. Rules メニューから、Redactions を選択します。

  4. Add redaction をクリックします。

  5. Field name フィールドに、修正するフィールドの名前を入力します。

  6. Field type メニューから、修正するフィールドのタイプを選択します。Request parameter、Request header、または Response header のいずれかを選択します。

  7. Create redaction をクリックします。

カスタム修正の編集

カスタム修正を編集するには、次の手順を実行します。

  1. Next-Gen WAF control panel
  2. Fastly control panel
  1. Next-Gen WAF コンソールにログインします。
  2. Sites メニューから、複数のサイトがある場合はサイトを選択します。
  3. Rules メニューから、Redactions を選択します。

  4. 編集するカスタム修正の右側にある View をクリックします。

  5. Edit redaction をクリックします。

  6. 必要に応じて Field nameField type を変更します。

  7. Update redaction をクリックします。

カスタム修正の削除

  1. Next-Gen WAF control panel
  2. Fastly control panel
  1. Next-Gen WAF コンソールにログインします。
  2. Sites メニューから、複数のサイトがある場合はサイトを選択します。
  3. Rules メニューから、Redactions を選択します。

  4. 削除するカスタム修正の右側にある View をクリックします。

  5. Remove redaction をクリックします。

  6. Delete をクリックして、修正を削除します。

透明性

エージェントがバックエンドに送信する内容を簡単に確認できるように、エージェントとバックエンド間のすべての通信を表示する方法を提供しています。

コンソールでの確認

エージェントがリクエストを正しくフィルタリングおよびサニタイズしていることを確認するため、エージェントから送信されるデータの生ログを提供しています。

  1. Next-Gen WAF control panel
  2. Fastly control panel
  1. Next-Gen WAF コンソールにログインします。
  2. Sites メニューから、複数のサイトがある場合はサイトを選択します。
  3. Agents をクリックします。

  4. Agent IDをクリックします。

  5. Requests タブをクリックします。

  6. データが正しく修正されているか、リクエストを確認します。

エージェントに確認

エージェント自体から直接検証することもできます。これを行うには、debug-log-uploads エージェント設定オプションを設定します。たとえば、フォーマットされた JSON にすべてのエージェントのアップロードのログを記録する場合、以下の行をエージェントの設定ファイル (デフォルトは /etc/sigsci/agent.conf) に追加します。

debug-log-uploads = 2