本文へ移動Lockpick
ドキュメント

ファイアウォールでLockpickを通過させる

ファイアウォールやボット対策がLockpickをブロックする場合は、Signature-Agentヘッダーで署名付きリクエストを通過させてください。

ファイアウォール、ボットチェック、サインインの壁によって、スキャンが止められることがあります。サイトを見る前にそれがブロックした場合、レポートにはブロックされましたと表示され、CloudflareやVercelのボットチェックなど、何が止めたかが記載されます。このレポートは採点されませんが、公開されている記録の確認は続けられ、自動チェックは一時停止してその旨をお知らせします。Deepスキャンの途中でボット対策が働いた場合は、それより前に読み取った内容はレポートに残り、ボット対策が機能していることを示したうえで、下のルールを追加するためのプロンプトをAIエージェント向けに提示します。Lockpickを通過させると、次のスキャンが完了できるようになります。

Lockpickの自己紹介

スキャンは、通常のChromeやEdgeブラウザーと同じヘッダー(ユーザーエージェントを含む)を送るため、スキャンは訪問者と同じようにサイトを見ます。ただし、ユーザーエージェントは何も証明しません。誰でもコピーできるからです。

代わりに、Lockpickはサイトに送るすべてのリクエストにWeb Bot Authで署名します。Web Bot Authは、ボットが自分の身元を証明するための公開標準です。各リクエストには、このヘッダーが付きます。それは、Lockpickの鍵だけが作れる、お使いのドメイン向けの短期間有効な署名です。あわせて、対応する Signature-Input ヘッダーも付きます。

Signature-Agent: "https://bots.lockpick.app"

公開鍵は https://bots.lockpick.app/.well-known/http-message-signatures-directory で公開されています。これらの署名を確認するボット対策は、本物のLockpickのスキャンと、その名前を借りた別のものを見分けられます。Lockpickを検証済みのボットとして登録しているプロバイダーは、お使いのルールがなくても通過させます。お使いのボット対策がまだ対応していない場合、または、お使いのルールがすべてのボットをブロックまたは確認の対象にしている場合は、下のルールを追加してください。

通過を許可する

ファイアウォールまたはボット対策に、Signature-Agent ヘッダーに bots.lockpick.app が含まれる場合にボットチェックとレート制限を省略するルールを追加してください。Lockpickは固定のIPアドレスの一覧からスキャンするわけではないため、アドレスではなく、このヘッダーで許可してください。

  • Vercel. プロジェクトのFirewallで、カスタムルールを追加します。条件は、リクエストヘッダー signature-agent が bots.lockpick.app を含むこと、アクションは Bypass です。ボットへの確認やアクセス拒否を行うカスタムルールより上に置いてください。Attack Challenge Modeは、オンの間は既知のボットを除くすべての訪問者に確認を求めます。カスタムルールではこれを解除できないため、オフにしたあとで改めて確認してください。
  • Cloudflare. カスタムルールを追加します。式は any(http.request.headers["signature-agent"][*] contains "bots.lockpick.app")、アクションは Skip です。Skip では、残りのカスタムルール、レート制限、マネージドルール、Super Bot Fight Mode(有料プラン)を省略します。ルールは一番上に置いてください。無料プランの Bot Fight Mode は、どのルールでも省略できないため、Lockpickを通過させるにはオフにする必要があります。
  • そのほかのファイアウォール。 ヘッダーでボット対策を省略するルールを探してください。ブロックページから配信元がわかる場合、レポートにはAkamai、Imperva、Sucuri、AWS WAF、Azure Front Door、DataDome、PerimeterXの名前が表示されます。どのファイアウォールが応答したか特定できない場合は「ファイアウォール」と書かれます。

CloudflareとVercelのボットチェック

ボットチェックとは、訪問者に待つよう、または人間であることを証明するよう求めるページです。ときには通常の「200 OK」ステータスで返されることもあります。Lockpickは、CloudflareとVercelのボットチェックを、送られてくる目印で認識します。すぐに停止し、突破や回避を試みることはありません。別のアドレスから再試行することもありません。

機密性の高い1つのパスをブロックするファイアウォールは、役目を果たしているだけです。そのため、それだけでスキャンが止まることはありません。Lockpickが公開されるべきでないファイル(/.env や /wp-config.php.bak など)や、よくあるルート(/admin など)を確認し、ファイアウォールがブロックページやチェックページで応答した場合、レポートにはそのパスが保護されていると記録され、スキャンは続行されます。これらの確認が続けて拒否された場合にのみ、Lockpickはホームページを読み直します。ファイアウォールが1分前に提供したページを拒否した場合は、Lockpick自体をブロックしているということなので、スキャンは停止します。Deepでは、こうした機密ファイルの確認を、ルートとAPIの確認のあとに行い、スキャンごとに順序を変えます。また、ホストが配信できるファイルだけを確認します。ビルドの成果物だけが公開される Vercel、Netlify、Shopify や Webflow などのサイトビルダーでは、.env、.git、データベースのダンプ、サーバー側のファイルは確認せず、代わりにお使いのルートを確認します。

サイトへの負荷を抑える仕組み

  • すべてのスキャンには上限があります。Pulseは最大10件、Deepスキャンは最大200件のリクエストです。
  • リクエストは一度にまとめて送らず、間隔をあけて送ります。
  • サイトが「Too Many Requests」(リクエストが多すぎます)を返した場合、失敗が始まった場合、またはアクセスを拒否した場合、スキャンは早めに停止します。
  • 発見したすべてのページについて、robots.txtのルールに従います。Lockpick 向けのルールがあればそれを使い、なければすべてのクローラー向けのルールに従います。
  • 訪問者が開くページと、そのページが読み込むファイルは例外です。訪問者のブラウザーと同じく、robots.txtがクローラーに立ち入りを控えるよう求めている場合でも、スキャンはホームページ、読み込まれるスクリプト、/.well-known/security.txt を読みます。
  • robots.txtを読めない場合、スキャンはそれらだけを読み、ほかのページはすべて省略します。
  • スキャンがサインインしたり、フォームを送信したり、何かを変更したりすることはありません。

このページは役に立ちましたか?

このページの内容