BakeLens/crust

🌟 Open Source AI Agent Security Infrastructure — intercepts and blocks dangerous agent behaviors before they happen. Just one command! Join us to build safer Human-AI Symbiosis!

Crust – AIエージェント向けローカルセキュリティゲートウェイ

何であるか – Crustは、AI駆動のコーディングアシスタント(または任意のLLMバックエンドツール)とLLMプロバイダーの間に配置されるオープンソースでローカル実行型のプロキシです。エージェントが実行するすべてのツール呼び出し(ファイル読み取り、シェルコマンド、ネットワークリクエストなど)を監視し、シークレットを漏洩させる可能性やホストを損傷する可能性のあるアクションをブロックします。

なぜ重要か – 現代のAIエージェントは開発者のコードや資格情報と同じマシン上で実行されます。モデルが騙された場合(プロンプトインジェクション、悪意ある出力など)、.envファイル、SSH鍵、ブラウザクッキー、さらには危険なシェルコマンドの実行を試みる可能性があります。CrustはOSに到達する前にこれらの呼び出しをインターセプトし、ユーザーのデータをデバイス内に留め、エージェントのコード変更を一切必要としません。


動作方法

エントリポイント コマンド 保護対象
HTTPプロキシ crust start OpenAI互換APIのフォワードプロキシとして動作。リクエストペイロード(会話履歴)とレスポンス(ツール呼び出し)からシークレット、危険なコマンド、パストラバーサルなどをスキャン。
MCP stdioゲートウェイ crust wrap -- <cmd> Model Context Protocol (MCP)サーバーをラップし、tools/callおよびresources/readメッセージをインターセプト。
MCP HTTPゲートウェイ crust wrap -- <cmd> ストリーミング可能なHTTP MCPサーバーのリバースプロキシ。
ACP stdioプロキシ crust wrap -- <cmd> Agent Client Protocol (ACP)エージェント(例:JetBrains AI、VS Code拡張)をラップし、ファイルシステムやターミナル操作をブロック。
自動検出 crust wrap -- <cmd> 子プロセスがMCPまたはACPを話しているかを検出し、適切なフィルタを適用。

すべてのエントリポイントは 17ステップ評価パイプライン を共有しており、マイクロ秒単位で実行されます:

  1. 自己保護(エージェントがCrustを無効化できないように)
  2. 入力のクリーニング
  3. Unicode正規化
  4. 隠蔽検出
  5. DLPシークレットスキャン
  6. パス正規化
  7. シンボリックリンク解決
  8. ルールマッチング(42の組み込みルール、51のDLPパターン) 9–17. その他のチェック(サイズ制限、TLS強制、ログ記録など)

すべての判断は暗号化されたローカルストアにログ記録され、ログ自体はOSのキーリングによって保護されています。


クイックスタート(デスクトップ)

# macOS / Linux / BSD
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/BakeLens/crust/main/install.sh)"
# Windows (PowerShell)
irm https://raw.githubusercontent.com/BakeLens/crust/main/install.ps1 | iex
# Docker(オプション)
 docker compose up -d   # または手動でビルド/実行

次にプロキシを起動します:

crust start          # デフォルトで 0.0.0.0:9090 でリッスン
crust status         # 動作中の確認

ゲートウェイはモデル名からLLMプロバイダーを自動検出するため、既存のAPIキーを変更する必要がありません。


エージェントの接続(例)

エージェントのベースURLを http://localhost:9090/v1(一部のクライアントでは http://localhost:9090)に設定します。READMEにはClaude Code、OpenAI Codex CLI、Cursor、JetBrains AI、Continue、Aiderなど、数十種類の対応ツールがリストされています。OpenAI互換クライアントであれば、同じ環境変数が有効です:

export OPENAI_BASE_URL=http://localhost:9090/v1   # または ANTHROPIC_BASE_URL など

Crustはリクエストを転送し、ルールエンジンを適用し、安全なツール呼び出しのみをプロバイダーに許可します。


モバイル / iOS統合

CrustはiOS 15+アプリに埋め込めるSwiftパッケージ CrustKit を提供しています。3種類の統合スタイルがあります:

  1. ローカルリバースプロキシ – デバイス上で小さなHTTPプロキシを実行し、AI SDKをそれへ接続。
  2. URLProtocolCrustURLProtocol を登録することで、任意の URLSession が自動的にエンジンを通過(ゼロ構成)。
  3. 直接評価engine.evaluateAsync(...) を直接呼び出して手動チェック。 同じルールセット(7つのモバイル固有のロックルールを含む)が連絡先、写真、キーチェーン、クリップボードの読み取り、危険なURLスキーム、Bluetooth/NFC、バイオメトリクスAPI、アプリ内購入などを保護します。

組み込み保護ルール

  • 42のセキュリティルール(39個ロック済み、3個ユーザー無効可能):資格情報、システム認証ファイル、シェル履歴、ブラウザデータ、パッケージレジストリトークン、Git資格情報、永続化メカニズム、モバイルPII、キーチェーン、クリップボード、URLスキーム、ハードウェアアクセス、暗号ウォレットなど。
  • 51のDLPパターン:実際のAPIキー、トークン、PEM形式の秘密鍵、BIP-39マネーモニックなどを認識。
  • ルールはプレーンなYAML(security.yaml)とGoコードで定義され、監査や拡張が容易。
  • 本プロジェクトは、人気のあるAIアシスタント(Cursor、GitHub Copilot、Claude Code、OpenAI Codexなど)に影響を与える 84件の実世界CVE に対する検証を主張しています。

カスタムルールとプラグイン

  • カスタムルールcrust add-rule my-rules.yaml でYAMLファイルを追加。ホットリロードをサポートしており、変更は即座に反映。
  • プラグイン – オプションの後段フィルタで、隔離されたプロセスで実行。改行区切りJSONで通信可能。任意の言語で記述可能。3回の失敗後に回路ブレーカーが動作し、不正なプラグインを無効化。
  • Pythonによる例プラグインは、ファイルアクセスを許可する前にプロジェクトディレクトリのサンドボックスを強制する方法を示しています。

Crust自体のセキュリティポジション

  • localhostでのみリッスン。外部ネットワークへの暴露なし。
  • エージェントはゲートウェイを無効化または再構成できない(ハードコードされた事前フィルタ)。
  • シークレットとログはOSキーリングと暗号化SQLite DBに保存。
  • LLMプロバイダーへのすべてのトラフィックはTLS 1.2+を使用。
  • CIでは、gosec、semgrep、fuzzテスト(46ターゲット)、govulncheck、gitleaksをすべてのコミットで実行。

参加方法

  • Go 1.26+でソースからビルド(go build .)。
  • プルリクエストで新しいセキュリティルールやプラグインを貢献。
  • GitHubのイシュー追跡システム、または SECURITY.md に記載された非公開開示プロセスを通じてバグやセキュリティ問題を報告。

ライセンス

Crustは Elastic License 2.0 の下でリリースされており、使用、変更、配布を許可しますが、競合サービスとして提供することを制限しています。


結論 – Crustは、AIエージェントが誤って(または悪意を持って)シークレットを漏洩したり、破壊的なコマンドを実行したり、特権リソースにアクセスしたりすることを防ぐ、コード変更なしで即座に使えるローカル実行型のシールドを提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト