Smart Shield は、ログを常時監視して攻撃元 IP を自動でブロックする常駐デーモンです。 正規表現によるルールベース検出と、AI (Claude / Gemini) を使ったログ解析を組み合わせ、 SSH・Nginx・Apache への攻撃を未然に止めます。
普段は何もしなくて構いません。攻撃があれば自動で気付き、ブロックし、時間が経てば自動で解除します。
「同じ IP から findtime 秒以内に max_retries 回の失敗」を正規表現で検知し、その場でファイアウォールに DROP を登録します。
定期的に直近ログを Claude / Gemini に投げ、低速スキャンや credential stuffing など、単純ルールに乗らない不審な動きを抽出して ban します。
Linux は iptables、Windows は netsh。Smart Shield 自身はパケットを触らず軽量。落ちてもブロックは効いたまま残ります。
最初は dry_run で起動。実際にはブロックせず「もし本番ならこのタイミングで止めていた」記録だけを残し、誤検知が無いか確認できます。
一定期間に何度も ban された相手は自動で永久 ban に格上げ。手動で --permanent 指定や設定での永久化も可能です。
試行記録・ban・イベントは SQLite に永続化。いつ・誰を・なぜブロックしたかを後から SQL で追跡でき、再起動後も状態を復元します。
片方が拾えなかった相手を、もう片方が拾う。高速なルールと、文脈を読む AI の補完関係です。
サーバが書き出すログを追いかけ、怪しい IP を OS ファイアウォールへ。時間が経てば自動で解除します。
ログの末尾を 1 行ずつ追いかける (ローテーション対応)
ルール / AI の二経路で不審な IP を抽出
whitelist を除外し、OS ファイアウォールに DROP を登録
期限切れの ban を自動で外す (永久 ban は対象外)
アクセスが急増したときも、エラーが増えたときも、原因を素早く切り分け。外部送信ゼロの集計を基本に、「なぜ ban したのか」の説明まで対応します。AI 解説はトグルで ON にできます。
直近ログを末尾読みし、送信元 IP・パス・User-Agent・エラー署名を Python で正確に集計。件数は LLM に数えさせないので、負荷やエラーの原因を素早く特定できます。
デーモン内で常時動き、リクエストレートの急上昇を検知すると自動で diagnose を実行。rate_threshold(req/s) を超えると発火し、cooldown_seconds で再実行を抑えて API コストに天井を設けます。結果はログと SQLite の両方に記録され、後から監査できます。
特定 IP の ban 記録・検知した実ログ行・イベント履歴を表示。ban していない IP なら「Smart Shield 以外に原因がある」と切り分けます。履歴ゼロなら AI を呼ばず API も消費しません。
ウェブサーバ・SSH サーバ・踏み台など、外からアクセスされる側に常駐させます。クライアント PC には入れません。
| 対象ソフト | 拾うログ | 主な検出内容 |
|---|---|---|
| OpenSSH | /var/log/auth.log ほか | パスワード/公開鍵失敗、無効ユーザ、認証中の切断 |
| Nginx | access.log | 401/403 連発、/.env /wp-admin /.git/ 等の探索 |
| Apache | access_log + error_log | 401/403、scanner パス、mod_auth_basic 失敗、mod_security ブロック |
これら以外のソフトも、フィルタを 1 つ書けば同じ枠組みで監視できます。