週末2日で4,700行の防御コードを書き、3万9,000件超のユーザーアカウントから1万5,000件以上のスパムを一掃した——そんな実戦記がZDNETに掲載されました。

技術ジャーナリストのDavid Gewirtz氏は、自サイトとWordPress向けセキュリティプラグインの開発者として、大規模なユーザー登録スパムに直面しました。対策にはAnthropicのClaude CoworkとOpenAI Codexを組み合わせ、診断から実装・テスト・デプロイまでを48時間以内に完了しています(参考)。

この記事では、攻撃の中身、AIの役割分担、ChatGPT Plus(月20ドル)の使用量と料金感、そして実際の成果を整理します。

この記事でわかること

  • スパマーが突いた8つの登録経路の弱点
  • Claudeが診断・Codexが実装するタッグ運用の流れ
  • 週末の開発で消費したトークン数とクレジット換算
  • 4,700行のコード追加とデータベース掃除の結果

ユーザー名欄に暗号資産の誘導文を埋め込む攻撃

攻撃は2026年6月初旬から本格化しました。スパマーはWordPressのユーザー名欄に偽ドメインや「残高確認」「出金」「BTC送金」「要対応」といった暗号資産関連の文言を詰め込み、新規ユーザー登録の通知メールとしてサイト管理者の受信箱を埋め尽くしました。

Gewirtz氏は有料の登録スパム対策製品を導入していましたが、効果は限定的でした。彼が開発するWordPressセキュリティプラグインに自前の対策を組み込み、Gmailのスパム画面をCodexに渡して緩和ルーチンを生成させたところ、1時間以内に攻撃は沈黙しました。

しかし6月末、攻撃は再燃します。ホスティング事業者から、データベースに3万9,314件のユーザーアカウントと72万3,799件のユーザーメタレコードが蓄積していると通知が届きました。登録のバウンスが数千件規模で続き、ユーザー管理画面は読み込めない状態に。放置すればサーバー利用そのものが危ぶまれる事態でした。

Claude Coworkが見つけた8つの抜け道

再発後の対策は、Claude Coworkによる診断から始まりました。Gewirtz氏はChatGPT Plus(月20ドル)のCodex利用枠を温存するため、コードを書かない分析・レビューはClaude側に任せる方針を取ります。

Coworkにサイトを調査させた結果、約40分で8つの脆弱性が特定されました。目立ったのは、ユーザー登録ページにCAPTCHAがあっても、特定URL経由ではCAPTCHAなしで登録リクエストを送れる点です。ほかにも、機械生成らしいユーザー名や不正なメール形式の検知、ハニーポット、MXレコード検証、StopForumSpamブロックリスト照合といった既存防御をすり抜ける経路が複数ありました。

続いてサイトのデータベースをエクスポートし、Coworkにスパムアカウントの特徴を洗い出させました。スパマーはプロフィールのURL欄ではなく自己紹介(bio)欄にリンクを埋め込んでいる傾向も判明しています。Coworkはプラグインに追加すべき機能を整理し、Codex向けの実装プロンプトも作成しました。初稿のプロンプトはサーバーを破壊しうる内容だったため、Gewirtz氏が指摘して修正させています。AIの出力は、特に他AIへの指示文は必ず人間が検証する必要があります。

Codexが担った3つの防御システム

https://openai.com/codex

実装はOpenAI Codexに集中させました。主な追加は次の3系統です。

  1. スパム検知シグナルの強化 — 登録データからスパムらしさを判定する指標を増やす
  2. 全経路への登録CAPTCHA — 標準の登録フォームに加え、REST API、XML-RPC、admin-ajax、カスタム登録フォームなど公開されている登録経路すべてにCAPTCHAを適用
  3. 多段階のスパムアカウント掃除ツール — 上記シグナルでスパム判定し、ブラウザ上で再開可能なバッチ処理と削除UIを新設

土曜日は12時間、日曜日は8時間以上を投入しました。Codexは土曜に2回利用上限に達し、新機能の「Reset Usage(使用量リセット)」を3回使って各45分程度の追加作業時間を確保しています。このリセット機能は2026年6月11日にOpenAIが公開したもので、PlusやProの対象ユーザーに付与されるボーナス枠です(参考)。

日曜はローカル環境にデータベースのコピーを移し、掃除ツールのテストに2時間規模の実行を繰り返しました。StopForumSpamへの照会を含むため、1回のテストに約2時間かかるとのことです。日曜午後には新ビルドをサーバーへアップロードし、以降アカウントスパムは確認されていません。

月20ドルのPlusプランでどこまで回せたか

Gewirtz氏によると、週末のCodexセッション全体で約1億6,680万トークンを消費しました。API料金に換算すると約146ドル相当、クレジット換算では約3,651クレジットです。ChatGPT Plusに含まれる短時間枠は約500クレジット分で、残り約3,100クレジット分は追加購入か上位プランへの移行が必要だったとCodex自身が試算しています。

OpenAI広報は、Proプラン(月100ドル)がPlusより5倍または20倍高いレート制限を持つと説明し、特定プロジェクトから導いた「4万クレジット」という数字を固定保証として読んではいけないと補足しました。Gewirtz氏の試算では、PlusからProへ月80ドル上げるか、追加クレジット約124ドル分を買うかの比較になります。いずれにせよ、サーバー存続を守る観点では十分に妥当なコストです。

結果として、Gewirtz氏は追加課金なしで週末の作業を完遂しました。月額120ドル(Claude Max 100ドル+ChatGPT Plus 20ドル)の既存契約の範囲内です。以前の大規模開発では一時的にChatGPT Pro(月200ドル)へ上げた経験があり、今回はPlusのまま限界まで使い切った形です。

数字が示すインパクト

Codexによる実装だけでも、追加4,700行・削除170行・純増4,530行、138個の新関数が生まれました。CSSやHTML、検証コード、UI作業はこの行数に含まれていません。

データベース掃除の結果は次のとおりです。

  • ユーザーアカウント:3万9,314件中15,069件を削除
  • ユーザーメタレコード:72万3,799件中275,567件を削除

経験豊富なフルタイムエンジニアなら25〜45営業日、ClaudeのDB分析を加えるとさらに4〜5日かかる規模の仕事を、週末に圧縮した計算です。Codexは複数回エラーを出し、Claudeは破壊的なプロンプトを一度生成、別の場面では3時間の誤った調査に走りました。AIに任せきりではなく、Gewirtz氏が常に監視し、ClaudeとCodexを交互に動かしながら「Codexへの分析依頼文を書いて」「Claudeに渡す調査を考えて」と相互に指示を出した点が、成功の前提になっています。

一人きりのインシデント対応からの変化

Gewirtz氏は過去、サーバー攻撃のたびに単独で対処してきたと振り返っています。外部コンサルに頼めば高額になるし、友人に助けを求めても状況説明に日数かかる。今回はCodexとCoworkが数分で文脈を把握し、診断・開発・テスト・デプロイまで伴走したと述べています。週末を丸ごと防衛作業に費やし、ストレスは大きかったものの、サイバー攻撃対応で「実際に楽しかった」と感じたのは初めてだと締めくくっています。

WordPressサイト運営者にとっての示唆は明確です。スパム攻撃は一度封じても再燃し、登録フォーム以外のAPI経路を狙う。AIコーディング支援はデモを超え、緊急時の実装パートナーとして機能しうる。ただし料金枠の管理、AI出力の検証、人間による最終判断は欠かせません。Gewirtz氏の事例は、その条件を満たしたうえでの現実的な成功例として参照に値します。