2026年9月20日
この記事をシェア
情報漏洩のニュースが続いています。事故が起きると、だいたい現場の若手が「とりあえずログを全部見て、怪しいアクセスを洗い出して」と頼まれ、数百万行のアクセスログをgrepしながら夜を明かすことになる。この「ログを見て怪しいものを探す」初動を、AIに肩代わりさせる話です。
この記事は、noteで公開した「文章を書かないAI『Jev』でWebサーバーのログ監査を全自動化する」の無料部分を要約したものです。使うのはChatGPTやClaudeのような文章を書くAIではなく、2026年9月に出た判定専用のAI「Jev」。New Relicからログを取り、Jevに判定させ、AWS WAFのブロックリストに自動登録するまでの完全なソースコードは、note側の有料部分に載せています。
※2026年10月時点の公開情報に基づきます。ログ量とコストの数字は、私がログを見ている国内ECサイトの1週間ぶんの実測値をもとにした試算です。
攻撃は、1行ずつ見ると普通に見える
WAFのマネージドルールが止めるのは、既知の攻撃パターンだけです。実際の攻撃は、1リクエストずつ見ると驚くほど普通に見えます。ブルートフォースの1行はただのログイン失敗(POST /login 401)、ディレクトリスキャンの1行はただの404、クレデンシャルスタッフィングの1行に至っては、ただのログイン成功です。
攻撃は「行」ではなく「パターン」に現れる。そして人間がログを見ないのは、量が多すぎるからです。実ブラウザのページ表示で数えれば平均毎秒1〜2PVのECサイトでも、ボットや静的ファイルを含めるとアクセスログは1日1,340万行を超えます。
Jevは「文章を書かないAI」
Jevは、TypeSafe AIが2026年9月15日に発表したモデルで、同社は「System One Model」と呼んでいます。状態(文字列やJSON)と質問(選択式・採点・真偽の3種類)を渡すと、各選択肢の確率と確信度が返ってくる。かなり雑に言えば、LLM並みの読解力を持った分類器です。Jevそのものの解説は「確度付きIF文」として書いた以前の記事にまとめました。
| 項目 | 値 |
|---|---|
| 価格 | 入力100万トークンあたり$0.042。出力は課金されない |
| コンテキスト | 1リクエスト64kトークン、うちstateは32kまで |
| レート制限 | 80リクエスト/秒、10万トークン/秒 |
| 応答速度 | 公称70〜500ミリ秒 |
選択肢の外は答えないので、ありもしない答えを作ることがありません。文章を生成しないぶん、User-AgentやURLに仕込まれたプロンプトインジェクションの影響も受けにくい。一方で、判定の理由は説明させられず、日本語の精度は英語より落ち、公開から1か月で公称性能の独立した検証もこれからです。
1行だけ見せると、ログイン失敗は「普通」になる
note記事では、pip install から5分で動くサンプルを載せています。アクセスログを3行、1行ずつ「攻撃か、普通か」で判定させた結果がこれです。
attack confidence=1.00 # SQLインジェクションを試して500が返った行
normal confidence=1.00 # 普通の商品ページ閲覧
normal confidence=0.88 # POST /login 401(ログイン失敗)
3行目のログイン失敗を、Jevは「普通」と答えます。これはJevが悪いのではありません。パスワードの打ち間違いなのか、300回目のブルートフォースなのか、1行の中にはその違いを示す情報がそもそも無い。確信度が高いものは自動で処理し、低いものだけを人間や高価なLLMに回す。この使い分けが、Jevを実運用に乗せるときの肝になります。
全部のログを流すと、性能でもコストでも破綻する
「1行ずつ全部投げればいい」「文脈が足りないなら5分ぶんまとめて投げればいい」。どちらも私が最初に試して、やめた方法です。
| 方式 | 月額(試算) | 問題 |
|---|---|---|
| 小型LLMに1行ずつ | 約356万〜747万円 | 文脈がゼロで、一番見つけたい攻撃ほど見逃す |
| Jevに1行ずつ | 約111万円 | 毎秒156回でレート制限の2倍。そもそも投げきれない |
| LLMに5分まとめ | 入らない(分割で約85万〜170万円) | 長文の針探しになり、存在しないIPを答えることもある |
| Jevに5分まとめ | 入らない(分割で約36万円) | 5分で約650万トークン。分割すると文脈が散る |
| 集計してから渡す | 2,000円以下 | 文脈も「攻撃が成功したか」も残る |
1行ずつ投げると、約300トークンの質問文が毎回乗ります。5分ぶんまとめると、4.7万行のうち本当に見つけたいたった1件の GET /.env 200(環境変数ファイルが取られた)がノイズに埋もれる。そしてどちらも、攻撃者が書いた文字列をそのままAIに食わせる設計です。生ログを渡すこと自体が攻撃面になります。
小型LLMはClaude Haiku 5.5とGPT-5.6 Lunaで、2026年10月時点の各社公式価格をもとに試算しています。
渡すのは生ログではなく、集計した結果
月2,000円以下で済む理由は、ログを「渡す」のではなく、ある単位で集計してから渡すからです。数を数えるのはNew Relic側に任せ、Jevには数字の組み合わせを見て「攻撃らしいか」を判断させるだけにします。動かすと、5分おきにこんな結果がSlackに届きます。
| 送信元 | 判定・確信度 | 種別 | 結果 | 取った行動 |
|---|---|---|---|---|
| 203.0.113.45 | malicious 0.94 | 脆弱性スキャン | /.env に200が1件 | 自動ブロック+通知 |
| 192.0.2.77 | malicious 0.91 | ブルートフォース | 全件4xxで拒否 | 自動ブロック+通知 |
| 203.0.113.9 | malicious 0.74 | インジェクション | 500が2件 | 通知のみ(人間が確認) |
297件の404に埋もれた、1件だけの /.env への200を落とさない。確信度が足りないSQLインジェクションは自動ブロックせず、脆弱性が本当にあるかもしれないので人間に届ける。何を単位にし、何を数え、攻撃が成功したかどうかをどう要約に残すか。Jevの判定がどれだけ当たるかは、ほぼこの設計で決まります。
New Relic → Jev → AWS WAF の完全ソースはnoteで
有料部分では、ここで省いた設計と、そのまま動くコードを公開しています。
- 精度とコストを両立させる「集計して渡す」設計の全容
- New Relic NerdGraph APIからNRQLで特徴量を取り出すコード
- Jevへの質問設計と、ブロック/通知/無視の判断ロジック
- DynamoDBで時限管理しながらAWS WAF IPセットに反映するコードと、Lambda+EventBridgeのTerraform一式
公開記念価格:先着30名まで990円(正規価格1,980円)
noteで続きを読む※ 価格は記事公開時点のものです。最新の価格はnoteのページでご確認ください。
確認した資料
- TypeSafe AI 公式サイト — Jevの入力価格(10億トークンあたり$42、100万トークンあたり$0.042)を2026年10月11日に確認。
- note:文章を書かないAI「Jev」でWebサーバーのログ監査を全自動化する — 本記事の元記事。スペック、サンプルの実行結果、コスト試算の詳細を掲載。
- Jevは「確度付きIF文」──TypeSafe AIの新モデルを実務にどう組み込むか — Jevの概要と導入案。
