◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止しました。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止しました。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/高度な活用
⬡ 高度な活用/2026-07-26上級

セキュリティ特化モデルを個人開発の監査に組み込む — 抽出層と、再提出されない指摘の指紋設計

外向きリクエストのシンクを AST で抽出し、モデルの指摘を再現可否だけで採用する三層のセキュリティ監査設計を解説します。指摘の重複を防ぐ指紋方式は4種類を実測し、粗い指紋が安全な実装まで巻き込んでしまう衝突の再現例も含めて丁寧に整理しました。

セキュリティ8静的解析ASTGemini API250設計パターン

✦ プレミアム記事

Agent Studio が自動生成する /api-proxy バックエンドに SSRF の欠陥があり、2026年7月1日より前に作成した Web アプリは再生成して再デプロイすることが推奨されている、という告知を読んだとき、私は手を止めました。

該当するかどうかを判断する材料が、自分の側に何もなかったからです。

2014年から個人開発を続けているうちに、手元の小さなサービスは少しずつ増えました。どれが「外から渡された URL をそのまま取りに行く」経路を持っているのか、記憶では答えられません。grep で requests.get を数えると数十件出てきて、そのうち何件が本当に危ないのかは、結局一件ずつ読むまで分かりませんでした。

Gemini 3.5 Flash Cyber のように、脆弱性の発見・検証・修正パッチ作成へ用途を絞った軽量モデルが出てきたことで、この作業を機械に寄せる余地は確実に広がりました。ただ、私が最初に組んだ「リポジトリを丸ごと渡して危ないところを教えてもらう」構成は、二週間で運用が止まりました。止まった理由と、そこから組み直した三層構成、そして一番手こずった「指摘の指紋」の設計を残しておきます。

数値はすべて手元のフィクスチャと実在のコードツリーで測ったものです。再現手順もそのまま載せています。

丸ごと渡す構成が二週間で止まった理由

最初の実装は素朴でした。変更のあったファイルをまとめてモデルへ送り、「SSRF に該当する箇所を挙げてください」と頼み、返ってきた指摘を Issue にします。動きはしました。動きはしたのですが、三つの理由で続きませんでした。

一つ目は、同じ指摘が何度も戻ってくることです。コメントを一行足しただけの差分でも、モデルは同じ関数を再び「危険」として挙げます。台帳を作って重複を弾こうとしたところ、その台帳の鍵の作り方そのものが本題になりました(後半で詳述します)。

二つ目は、確信度を判断材料に使えないことです。「high / medium / low」を返してもらう形にしていましたが、同じ入力を三回投げると high と medium が入れ替わります。閾値を引いた瞬間、閾値が意味を失いました。

三つ目は費用です。差分が小さい日でも、周辺の文脈を添えると入力トークンは膨らみます。指摘の大半が既知の再提出なのに課金だけは毎回発生する、という構図になりました。この手の「呼び出し単位の会計が合わない」問題については、Gemini API の usageMetadata で本番アプリのコストを記録する で扱った記録の取り方が土台になります。

止まった後で気づいたのは、私がモデルに「探索」と「判定」を同時に任せていたことでした。探索は機械の得意分野ですが、判定を任せると、判定の根拠が毎回揺れます。

三層に分ける — 抽出・仮説・検証

組み直した構成は次の三層です。

層担当出力揺れるか
抽出自前の AST スキャナ候補シンクの一覧と指紋揺れません(決定的)
仮説モデル再現手順と修正パッチの案揺れます(許容)
検証自前のハーネス採用 / 却下の二値揺れません(決定的)

肝は、揺れる層を真ん中だけに閉じ込めることです。モデルには「ここが危ないか」を尋ねず、「これが危ないとしたら、どう再現し、どう直すか」を出してもらいます。危ないかどうかの最終判断は、その再現手順が実際に走るかどうかだけで決めます。

モデルの自己申告を採用条件から外すと、モデルを差し替えても運用が壊れません。私は仮説層をインターフェース越しに呼ぶ形にして、汎用の Flash 系と用途特化のモデルを同じ台帳で比べられるようにしています。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦外向きリクエストのシンクを AST で抽出する約90行のスキャナ。4,016 ファイルを 28.2 秒(7.0ms/file)で走査した実測付き
✦行番号ベースの指紋が、コメント追加と変数リネームだけで 8 件中 8 件を新規として再提出した計測と、その修正版
✦指紋を粗くすると追跡率は 7/7 に上がる代わりに、許可リスト付きの安全な実装が脆弱な実装を 1 件吸収して消す衝突の再現手順
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ 高度な活用2026-09-24
Gemini に「合っていますか」と聞くのをやめ、答えを伏せたまま分類し直してもらう設計に変えました
自分で付けたラベルの確認を Gemini に頼むと、頷く答えが返りがちです。確認型・反論指示型・伏せ型の三つを比べて伏せ型を選んだ理由と、答えが漏れる経路の塞ぎ方、食い違いだけを人が見る振り分けのコードまで書き残します。
⬡ 高度な活用2026-09-14
BLOCK_NONE を入れても結果が変わらないとき — Gemini のブロックを閾値で動かせるかどうかの見分け方
安全フィルタで止まったとき、閾値を緩めて直る場合と、何をしても直らない場合があります。返ってきたレスポンスのどこを見て、その境目を先に判定するかをまとめました。
⬡ 高度な活用2026-09-05
長い動画を Gemini に辿らせるとき、見つける問いと「無い」を確かめる問いは別々に投げています
9月1日に来たエージェント的動画理解では、どこを観るかをモデル自身が決めます。見つける問いには効きますが、映り込みが無いことの確認には被覆の保証がありません。問いの形で処理モードを分ける判断と、被覆を自分で担保する実装を書き残します。