1. コードセキュリティガードレールが実際に行うこと
OrcaRouter は、テンプレートピッカーから適用するcode_security プリセット
ファミリーを同梱します。各々は通常のガードレールルール —
ワークスペーススコープ、順序付き、任意のキーにアタッチ可能 — でコード向けに
チューニングされています:
.env / Secret-File Block
.env スタイルのシークレット代入(DATABASE_URL=、
AWS_SECRET_ACCESS_KEY=、API_TOKEN=…)と貼り付けられた複数行の設定ダンプを、
プロバイダに到達する前にブロックします。値ではなく代入の構文で判定します。License Compliance (copyleft)
強いコピーレフトヘッダー — GPL / AGPL / LGPL / SSPL の SPDX タグまたはフル
ライセンス名 — を運ぶリクエストをフラグするため、レビュアーがそのコードを
パーミッシブなコードベースに混ぜても安全か確認できます。flag のみ。
GPL/AGPL Provenance (output)
コピーレフトのプロベナンス署名を運ぶモデルの提案に対する出力ステージの
flag — モデルがコピーレフトの訓練データを生成コードに吐き戻した可能性のある
マーカーです。
Insecure-API Advisory
高リスクのシンク —
eval( / exec( / os.system( / subprocess.run( /
pickle.loads( / child_process.exec( — を参照するとき、セキュリティ
アドバイザリでプロンプトを注記します。非ブロッキング。code_security プリセットは決定的です — 純粋な正規表現、ネットワーク呼び出しなし、
ホットパス上で安全。ネットワーク化されたスキャナ(CVE ルックアップ、SBOM、SAST)は、
プリセットではなく別個の外部接続です。
§3を参照。2. annotate — トラフィックを変えずにモデルに警告する
ガードレールで設定するアクションは、block(呼び出しを拒否、HTTP 400)、 mask(マッチをリダクト)、flag(ログのみ)です。コードセキュリティは内部で 4 つ目の挙動を加えます:annotate で、ブロックもマスクもしません。annotate ルールがマッチすると、ゲートウェイは短いノートを記録し、リレーがそれをシステム アドバイザリとしてアップストリームに注入します — そのためモデルは、例えば *「このリクエストは高リスクの API(コード eval、シェル実行、安全でない逆シリアル化)を 参照しています。より安全な代替を優先してください」*と、応答する前に伝えられ ます。ユーザーのテキストは決して拒否されず、決して書き換えられません。ひとつの具体例
Insecure-API Advisory プリセットをガードレールに適用し、キーにアタッチします。 それから危険なシンクを呼び出すコードを送ります:3. 外部スキャナによる CVE と SBOM 装飾
アドバイザリプリミティブは一般化します。コードセキュリティスキャナを 外部ベンダーとして接続すると、 その発見が同じ annotate パスに乗ります:依存関係 CVE ルックアップ (OSV)
依存関係 CVE ルックアップ (OSV)
リクエストテキストからインポートとマニフェストのピンを抽出し、公開 OSV
脆弱性データベースに対して相互参照します。ヒットはプロンプトを、例えば
*「requests@2.0.0 has CVE-2014-1830 (HIGH). Fixed in 2.20.0.」*で装飾します —
そのためモデルは、使うよう求められたパッケージの既知の脆弱性について伝えられ
ます。無料かつ認証不要なので、API キーフィールドはありません。デフォルトは
annotate です。代わりに flag または block に設定できます。
SBOM と SAST スキャナ
SBOM と SAST スキャナ
SBOM(ソフトウェア部品表)または SAST(静的解析)スキャナを、任意の外部
ベンダーを接続するのと同じ方法で接続します — ベース URL とクレデンシャル、
暗号化保存され読み取り時にマスクされます。各発見は安定したアイデンティティを
運ぶため、すでにトリアージした発見がすべてのリクエストで再発火することはありません。
fail_open を false に
設定してフェイルクローズにします。
4. シークレットとライセンスルールとのペアリング
コードセキュリティガードレールは単独で乗ることはまれです。一般的な形は、いくつかの ルールを持つひとつのガードレールです:| 目標 | ルール |
|---|---|
| 貼り付けられたクレデンシャルを止める | .env / Secret-File Block(block) |
| インラインのシークレット値を捕捉する | Secrets Blocker(block) |
| コピーレフトコードをゲートする | License Compliance(flag) |
| 危険なシンクへ舵を切る | Insecure-API Advisory(annotate) |
5. 設定する(コンソール + ロール)
ここでのすべては、リレーキー経由ではなくコンソールで設定されます。管理ルート (/api/guardrail/*)は sk- リレーキーではなく、あなたのセッション / アクセス
トークンで認証します。読み取り — ガードレールと Matches フィードの一覧 — は
すべてのワークスペースメンバーに開放されています。書き込み(作成 / 編集 / 削除)
とテストサンドボックスには、Developer ロール以上が必要です:サンドボックスは
有料のモデル呼び出しとアウトバウンドのベンダーリクエストを発火し得るため、書き込みと
同様にゲートされます。
ガードレールを作成する
コンソールで Guardrails → New guardrail を開きます。スプリットボタンが
テンプレートライブラリに導きます — 出発点として Code security プリセットを
選びます。
自由に編集する
プリセットはシードであり、ロックではありません。正規表現をチューニングし、
Secrets Blocker ルールを追加し、アクションを変更します。キーにアタッチする前に、
ルールが期待どおりにサンプルテキストに対して発火することを証明するには Test
タブを使います。
発見はワークスペースの Matches フィード(ルールの種類、アクション、ステージ、
detail)に着地します。マッチした部分文字列は、Log raw content がオンのとき
のみ記録されます — デフォルトはオフ、プライバシー保守的な姿勢です。
ロギングとプライバシーを参照。
6. 次にどこへ
- シークレットをブロック — リクエスト 引数内のクレデンシャル値を捕捉する、対をなすルール。
- アクション — block、mask、flag、annotate、 spotlight を詳しく。
- コンプライアンスロガー — すべての コードセキュリティ発見の不変の記録を保持します。
- テストと eval — 出荷前にポリシーが 既知の不正コードを捕捉することを証明します。
- ガードレールリファレンス — 完全なエンジン。
- AI エージェントのセキュリティ — コードセキュリティレールがゼロトラストコントロールスタックのどこにフィットするか。
