AIToday
AIコーディングオープンソースAIHacker News掲載日時: 2026年7月25日 19:00

getdebug 0.4.0、Python AI アプリのセキュリティパターン検出を追加

LINEで送る
getdebug 0.4.0、Python AI アプリのセキュリティパターン検出を追加

3つのポイント

  1. 何が起きたか

    getdebug CLI 0.4.0 がリリースされ、Python向けに正規表現ベースの5つのAIアプリ脆弱性パターン検出器(プロンプトインジェクション、unsafe-role-merge、pii-in-prompt、unbounded-stream、unsafe-tool-output)が追加されました。既存のJS/TS検出機能に並行して提供されます。LLM呼び出しなしで決定論的に動作し、ミリ秒単位で完了、費用はかかりません。

  2. なぜ重要か

    Bandit、Semgrep、vulnhuntrに対するベンチマーク(Simon Willison氏の49ファイルのllm CLIで実施)では、getdebugが6つのAIアプリ固有の脆弱性を検出したのに対し、Banditは1,228件のノイズアラート(ほとんどがpytestのassert_used警告)を返し、Semgrepは3件の汎用検出結果を返したものの、AIアプリ関連の検出はありませんでした。Vulnhuntrはファイル選択時にCLIではなくウェブアプリエントリーポイントを対象とするため、0件を選択しました。LLM呼び出しを行うPythonアプリを提供するチームにとって、getdebugは汎用セキュリティツールでは対応していない領域を埋めます。

  3. 注目点

    getdebugはOllama経由のローカルLLM SAST(無料、端末内)とClaudeベースのホスト型スキャン(有料)もオプションで提供しています。より新しいバージョン(0.5.5)ではより厳密な検出器が導入され、以前は安全とされていたフィクスチャーが重大な問題にフラグ立てされるようになり、ツールのアローリストロジックがさらに厳密化されていることがわかります。ベンチマークコーパスと方法論はGitHub(CodeSecBench)およびgetdebug.dev/benchで公開されており、プルリクエストを受け付けています。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

getdebugはオープンソースセキュリティリンティング環境における本当のブラインドスポットに対処しています。BanditとSemgrepは、それぞれPythonセキュリティと言語横断型SASTに設計された成熟した広く使われるツールで、SQLインジェクション、安全でないデシリアライゼーション、欠落した整合性チェックの検出に優れています。しかし、どちらもLLM固有のリスク、つまりユーザーオブジェクトのプロンプトへのシリアライゼーション、タイムアウトなしのストリーミング、メッセージアレイ内の互換性のないロールフィールドのマージを理解するよう設計されていません。ベンチマークはその汎用性のコストを示唆しています。49ファイルのコードベース上でBanditの1,228件のassert_used警告はほとんどの本番環境ではノイズであり、Semgrepの3件の検出結果は実在していますが汎用的で、AIアプリ固有ではありません。

vulnhuntrはLLM駆動型AIアプリ分析のカテゴリーリーダーとして位置づけられており、LLMを呼び出してエントリーポイントと脆弱性を推測することで異なるアプローチを採用しています。トレードオフはスコープです。ファイル選択はウェブアプリヒューリスティックに基づいており、CLIツールは分析されません。getdebugの正規表現層はウェブであろうとコマンドラインであろうと、LLM SDKと接触するあらゆるPythonで実行することでこれを回避しています。別方向でのトレードオフは、手書きされた正規表現パターンはLLMが推測する可能性のある新しい攻撃対象領域を見落とすことです。ツール設計者はこれを認め、オープンコミュニティからのフィードバックを招待しています。

公開ベンチマーク方法論とオープンソースコーパス(GitHub上のCodeSecBench)は透明性に高い基準を設定しています。simonw/llmの実世界テストでは、getdebugの7件の検出のうち2件は脅威モデルに依存しており(単一ユーザーツール内の2つのCLIユーザー入力間のプロンプトインジェクション)、リクエスト入力ではなくAPIレスポンスを通じてルーティングされるロールマージロジックです。ツールはフラグ立てされたすべてを表示し、チームは.getdebug-ignoreファイル経由でトリアージでき、境界線的なケースを認識しています。これは誤検知の削減と完全性とのトレードオフを優先する立場です。

よくある質問
getdebugはLLM呼び出しなしでAIアプリの脆弱性をどのように検出するのですか?
getdebug 0.4.0は決定論的な正規表現パターンを使用してSDKイディオムに対応します。たとえば、tool_call.input.X参照がsubprocess.run()のshell=Trueシンクに到達する場合や、ユーザー提供の変数を含むシステムロールプロンプトを持つmessagesアレイなどを検索します。これらのパターンはLLM呼び出しを必要とせず、ミリ秒単位で実行でき、費用はかかりません。
vulnhuntrがテストリポジトリで何も検出しなかったのはなぜですか?
vulnhuntrのファイル選択ヒューリスティックはネットワーク公開エントリーポイント(ウェブアプリ)を対象とし、CLIではありません。simonw/llmはコマンドラインツールであるため、vulnhuntrは分析対象ファイルをゼロ件選択しました。これは故障ではなく、getdebugとは異なるターゲット範囲を持つツールです。getdebugはLLMと接触するあらゆるPythonで実行されます。
getdebugはBanditとSemgrepで検出できないものを何を検出しますか?
BanditとSemgrepは両方とも、subprocess.run(shell=True)が安全なパターン(アローリストされた値で呼ばれる、モデル出力ではない)でフラグを立てました。getdebugの正規表現ではtool_call.input.X参照がシンク引数に現れる必要があり、その誤検知を回避します。両ツールは4つの振る舞いカテゴリーを完全に見落としています:pii-in-prompt、unsafe-role-merge、prompt-injection、unbounded-stream。これらはLLM呼び出しアプリ固有のパターンです。
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

関連記事

次の記事へOpenAI の GPT-5.6 Sol、サンドボックステストから脱出