

# ウェブアプリケーションにハニーポットリンクを埋め込む (オプション)
<a name="embed-the-honeypot-link-in-your-web-application-optional"></a>

「[ステップ](step-1.-launch-the-stack.md) 1. スタックを起動する」で **Activate Bad Bot Protection** パラメータで `yes` を選択した場合、CloudFormation テンプレートは、低インタラクションの本番稼働用ハニーポットにトラップエンドポイントを作成します。このトラップは、コンテンツスクレーパーや悪質なボットからのインバウンドリクエストを検出して迂回することを目的としています。有効なユーザーは、このエンドポイントにアクセスできません。

このコンポーネントは、ハニーポットメカニズムに加えて、Application Load Balancer (ALB) または Amazon CloudFront への直接接続をモニタリングすることで、不正なボットの検出を強化します。ボットがハニーポットをバイパスして ALB または CloudFront とやり取りしようとすると、システムはリクエストパターンとログを分析して悪意のあるアクティビティを特定します。不正なボットを検出すると、その IP アドレスを抽出して AWS WAF ブロックリストに追加し、以降のアクセスを防ぎます。不正なボット検出は、構造化されたロジックチェーンを介して動作し、脅威に対して包括的に対応します。
+ HTTP フラッド保護 Lambda ログパーサー – フラッド分析中にログエントリから不正なボットの IP を収集します。
+ スキャナーとプローブ保護 Lambda ログパーサー – スキャナー関連のログエントリから不正なボットの IP を特定します。
+ HTTP フラッド保護 Athena ログパーサー – クエリ実行全体でパーティションを使用して、Athena ログから不正なボットの IP を抽出します。
+ スキャナーとプローブ保護 Athena ログパーサー – 同じパーティショニング戦略を使用して、スキャナー関連の Athena ログから不正なボットの IP を取得します。
+ フォールバック検出 - HTTP フラッド保護およびスキャナーとプローブ保護の両方が無効になっている場合、システムは Log Lambda パーサーにより、[WAF ラベルフィルター](https://docs.aws.amazon.com/waf/latest/developerguide/waf-labels.html)に基づいてボットアクティビティをログに記録します。

以下の手順のいずれかを使用して、CloudFront ディストリビューションからのリクエストのハニーポットリンクを埋め込みます。

## ハニーポットエンドポイント用の Amazon CloudFront オリジンを作成する
<a name="create-a-cloudfront-origin-for-the-honeypot-endpoint"></a>

CloudFront ディストリビューションでデプロイされるウェブアプリケーションには、この手順を使用します。CloudFront では、`robots.txt` ファイルを含めることで、ロボット排除規約を無視するコンテンツスクレイパーやボットを識別できます。次の手順に従い、非表示のリンクを埋め込み、`robots.txt` ファイルで明示的に禁止します。

1. [AWS CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/)にサインインします。

1. 「[ステップ 1 スタックを起動する」で構築したスタックを選択します](step-1.-launch-the-stack.md)。

1. **[出力]** タブを選択します。

1. **[BadBotHoneypotEndpoint]** キーから、エンドポイント URL をコピーします。
   + 動作パス (`/ProdStage`)

1. ハニーポットを指すコンテンツにこのエンドポイントリンクを埋め込みます。このリンクを人間のユーザーから隠します。例として、次のコードサンプルを参照してください: `<a href="/behavior_path" rel="nofollow" style="display: none" aria-hidden="true">honeypot link</a>`。

1. ウェブサイトのルートにある `robots.txt` ファイルを変更して、次のようにハニーポットリンクを明示的に禁止します。

```
User-agent: <*>
        Disallow: /<behavior_path>
```

**重要**  
リクエストは WAF **BadBotRuleFilter** によってブロックされるため、CloudFront でのパス登録は必要ありません。ログで自動的に収集されるソリューション。**ログパーサー** Lambda による処理。この簡略化されたアプローチでは、追加のエンドポイント設定を必要とせずに WAF ログを直接使用するため、ログ分析による不正なボット検出プロセスがより効率的になります。

**注記**  
どのタグ値がウェブサイト環境で機能するかを確認するのはユーザーの責任です。ご使用の環境でタグ値を監視しない場合は、`rel="nofollow"` を使用しないでください。ロボットのメタタグ設定の詳細については、「[Google 開発者ガイド](https://developers.google.com/search/reference/robots_meta_tag)」を参照してください。ウェブサイトのルートにある `robots.txt` ファイルを変更して、次のようにハニーポットリンクを明示的に禁止します。

## ハニーポットエンドポイントを外部リンクとして埋め込む
<a name="embed-the-honeypot-endpoint-as-an-external-link"></a>

**注記**  
これらのルールは、ウェブリクエストの発信元のソース IP アドレスを使用します。トラフィックが 1 つ以上のプロキシまたはロードバランサーを通過する場合、ウェブリクエストの発信元には、クライアントの発信アドレスではなく、最後のプロキシのアドレスが含まれます。

次の手順は、ウェブアプリケーションに使用します。

1. [AWS CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/)にサインインします。

1. 「[ステップ 1 スタックを起動する」で構築したスタックを選択します](step-1.-launch-the-stack.md)。

1. **[出力]** タブを選択します。

1. **[BadBotHoneypotEndpoint]** キーから、エンドポイント URL をコピーします。

   ```
   <a href="<BadBotHoneypotEndpoint value>" rel="nofollow" style="display: none" aria-hidden="true"><honeypot link></a>
   ```
**注記**  
この手順では、`rel=nofollow` を使用して、ハニーポット URL にアクセスしないようロボットに指示します。ただし、リンクは外部に埋め込まれているため、`robots.txt` ファイルを含めてリンクを明示的に禁止することはできません。どのタグがウェブサイト環境で機能するかを確認するのはユーザーの責任です。ご使用の環境で `rel="nofollow"` を監視しない場合は、使用しないでください。