FZ-009 · セキュリティ

promptdecode

人間のレビュアーが見逃す、コードレビュー内の見えないテキストを見つけます。

アルファ 検証 FZ stack隠しテキストの検査オープンソース
promptdeco.deにアクセス ローンチ済み:まだです
ステータス
アルファ
パイプラインの段階
検証
分野
セキュリティ
自律性の目標
レベル4 · 自己最適化
構成技術
稼働中 3 · 計画中 1

課題

Pull Requestやissueに隠されたテキストがコーディングエージェントにマージを指示しても、レビュアーには見えません。

できること

promptdecodeは、隠されたUnicodeテキストをブラウザ内でデコードし、何も送信せずに、その内容を表示します。

しくみ

  1. 任意のテキストを貼り付けると、隠された文字を明らかにし、そのメッセージをデコードします
  2. すべてお使いのブラウザ内で動作し、何も外部に送信しません
  3. 設定スキャナーが、信頼できない入力が到達しうるエージェントのステップがないか、GitHubワークフローを検査します

promptdeco.de で現在無料で利用できます。

エージェントが動く前に、隠された指示を見つけます。

現在デコーダーは今日ブラウザで動作します。promptdecode-core 0.1.0はcrates.ioにあります。スキャナーとGitHub Actionはまだ公開されていません。

目的

自律運用
レビューこそ自動化の対象です。書き込みトークンを持つコーディングエージェントは、人間のレビュアーがすでに承認したプルリクエストを読みますが、両者が読んでいる文書は同じではありません。タグブロック文字、双方向オーバーライド、異体字セレクタは何も表示されないのに、通常どおりトークン化されます。スキャナーは変更のたびにCIで実行し、見つけたものを単に警告するのではなくデコードし、プレーンテキストをプルリクエストに書き戻すことを想定しています。ループにモデルはなく、ランナーの外には何も出ません。
インテリジェンス
必要のないところでは、意図的にモデルを使いません。計画中の2つのエンジンはどちらも決定論的です。1つは信頼できないワークフロー入力を、書き込みトークンを持つエージェントのステップまでたどり、もう1つはリポジトリの内容全体で、名前付きのUnicodeクラスに一致するものを探します。何が怪しいかをモデルに判断させる検出器は、自らのカバー範囲を明言できません。明言できるカバー範囲こそが製品です。
グロース
根拠重視で、そのぶん進みは遅めです。攻撃のブロック率は公表しません。文字レベルの回避率は手法によって大きく変わるため、ひとつの数字では意味をなさないからです。公表するのは、名前付きのUnicodeクラスの一覧に対する決定論的なカバー範囲と、名前付きコーパスにおける特定の誤検知率での再現率で、コーパスとハーネスも公開します。成長は、Actionが登場してからの、週あたりのスキャン対象リポジトリ数です。
技術的な詳細

人間のレビュアーには見えず、言語モデルには完全に読めるテキストを見つけ、デコードします。プルリクエストのタイトル、issue本文、リポジトリ内のファイルに隠された指示が、コーディングエージェントに承認、マージ、コメントを命じることがあり、差分には何の異常も表示されません。現在動くのは2つです。1つはサイト上のデコーダーで、3つの名前付きコードポイントクラス(Unicodeタグブロック、双方向制御文字とオーバーライド、異体字セレクタ)を読み取り、それらがエンコードしたペイロードを復元します。処理はすべて読者のブラウザ内で完結し、何も外部に送信しません。もう1つは設定スキャナーで、信頼できないワークフロー入力を書き込みトークンを持つエージェントのステップまでたどります。ソースから実行でき、リリースはまだありません。残りは設計済みで未実装です。リポジトリ全体でペイロードをデコードするコンテンツエンジン、コマンドラインのスキャナー、GitHub Action、オープンなベンチマークです。公開された一覧にないクラスは検出されません。その一覧が、私たちの主張です。