このプロジェクトについて
Laravel Scanner Guardは、Laravelアプリケーション向けのComposerパッケージで、フレームワークのルーターに到達する自動化された脆弱性スキャナーのトラフィックを識別してブロックします。/wp-admin、/wp-login、/.git/config、/phpmyadmin、/wp-jsonといった一般的なプローブパスを対象とし、IPごとの繰り返しヒットをカウントして、設定可能なしきい値に達するとBANを発行します。BANされたIPには即座に応答(デフォルトでは404)を返し、フレームワークの完全な起動、ルーティング、ビューレンダリングのコストを回避します。
このパッケージはscanner-guardルートミドルウェアエイリアスを登録し、開発者が手動でミドルウェアグループまたは特定のルートに適用します。設定にはban_threshold、ban_window、ban_duration、scanner_paths(fnmatch形式のワイルドカード)、response_statusが含まれます。Laravel起動前にnginx/PHP-FPM層で失敗する、存在しない.phpファイルへのリテラルリクエストは明示的に対象外です。これらにはnginxのtry_files修正が必要です。
オプションのASNブロックリストにより、GeoIP解決をlaravel-visitor-fingerprintのip_apiまたはmaxmindドライバーに委譲して、ネットワーク全体(例:AS16276/OVH)を完全にブロックできます。ブロックリストが空の場合、GeoIPルックアップは発生せず、レイテンシはゼロです。
すべてのBANは、reason、matched_value、hit_count、banned_at、expires_atを含む監査行をscanner_guard_bansに書き込みます。データベースにはIPのソルト付きハッシュのみが保存され(生のアドレスは保存されません)、生のIPはnginxエクスポート用にban_durationと同じTTLで別途キャッシュされます。export-denylist Artisanコマンドは、アクティブなBANをnginxのdeny行として書き出し、オプションで毎日の自動同期が可能です。
このパッケージは3つのドライバーをサポートします:database(デフォルト、監査証跡と統計付き)、http(HMAC署名付きJSON POSTでBANを中央アプリに転送し、ハブアンドスポーク構成を可能にする)、cache(BANのみ、永続化なし)。日次集計統計(bans_count、hits_total、reason_stats、top_matched_values)はBAN時に記録され、BAN行の削除後も保持されます。aggregate-and-pruneコマンドは統計を照合し、期限切れのBANを削除し、保持期間(デフォルト90日)を適用し、デフォルトで毎日自己スケジュールされます。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.