Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
flar — 軽量なCLIツール。AIコーディングエージェントを隔離されたBubblewrapサンドボックス内で実行し、ファイルシステム、ネットワーク、認証情報を厳格に分離することで、プロンプトインジェクションやサプライチェーン攻撃から保護します。 | Kitploit
ツール/GitHubGitHub/swelljoe/flar
特権昇格コンテナセキュリティIDS/IPS回避ネットワークセキュリティペネトレーションテストDevSecOpsサプライチェーンセキュリティAIセキュリティ
GitHubswelljoe/flar

flar

軽量なCLIツール。AIコーディングエージェントを隔離されたBubblewrapサンドボックス内で実行し、ファイルシステム、ネットワーク、認証情報を厳格に分離することで、プロンプトインジェクションやサプライチェーン攻撃から保護します。

リポジトリを見る
51116日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

flar

FLARはFast Light Agent Restrictorです。garsと呼ばれる岩の上で動作します。

Goで書かれたシンプルで軽量なCLIツールで、Claude Code、Antigravity、Codex、Copilot、ReasonixといったコーディングエージェントCLIを、隔離されたBubblewrap(bwrap)サンドボックス内で安全に実行するためのものです。

Antigravity CLI riding in a flar

目的は、複雑な設定なしに即座にAIエージェントをbubblewrapで囲み、現在作業中のプロジェクトのみにアクセスを制限することです。これにより、プロンプトインジェクションや、エージェントが十分な検証なしに(または不運にも)ライブラリをプロジェクトに取り込む際のサプライチェーン問題から保護します。アクセス可能な機密情報は、エージェント自身の認証情報とそのプロジェクトのチャット履歴だけです。

ほとんどのエージェントには「サンドボックス」機能がありますが、それはかなり脆弱で、エージェント自身がアクセス可能な範囲を拡大できます。そしてもちろん、サプライチェーンの脆弱性はエージェントのサンドボックスの対象外です。flarはエージェントに対して完全に影響を受けず、サプライチェーン攻撃の爆発半径を厳密に制限します。

Bubblewrapは非常に十分にテストされており、積極的にメンテナンスされています。Flatpackや他の多くのプロジェクトで軽量コンテナとして使用されています。flarのテストははるかに不十分で、私が数日間使用した程度です。

特徴

  • Bubblewrapサンドボックス: クリーンなルートディレクトリ(tmpfs)を使用して、非特権ユーザ名前空間でエージェントを実行します。システムパス(/usr、/bin、/lib、/lib64など)はホストから読み取り専用でマウントされ、コンテナイメージの管理なしにホストパッケージがすぐに利用可能になります。
  • 厳格なファイルシステム分離: 対象のプロジェクトディレクトリのみが読み書き可能でバインドマウントされます。ホストのホームディレクトリの残りは隠蔽され、SSHキー、シェル設定、個人ファイルをプロンプトインジェクション攻撃から保護します。
  • ネットワークサンドボックス:
    • 隔離モード(デフォルト): ネットワーク名前空間は共有されません。インターネットアクセスは、ホスト側のHTTP/HTTPSプロキシをトンネリングし、ホストでDNSルックアップを行い、ローカル/ループバックIPアドレスへのトラフィックをフィルタリングします。
    • ポートフォワーディング: サンドボックス内に特定のポートをホストのlocalhostにマッピングすることで、ローカルサービス(例:データベース、llama.cppモデル)を選択的に公開します。
    • ホストモード: 制約なしにアクセスできるよう、ホストのネットワーク名前空間を共有するオプション。
  • 危険なバイパスオプション: エージェントが実行時に承認の中断なしに実行されるよう、フラグ(Claude/agyでは--dangerously-skip-permissions、Codexでは--dangerously-bypass-approvals-and-sandbox)を自動的に注入します。-askで無効化可能。
  • 設定コピー: ホストの認証情報(~/.claude/、~/.codex/、~/.gemini/、またはGitHub CLI設定など)をサンドボックスホームディレクトリ内にマウントされる一時ディレクトリに自動的にコピーし、ホストの設定ファイルには触れません。
  • セッション永続化と再開: 安全と判断された場合(現在はClaude CodeとReasonix)、サンドボックス内で開始された会話がホストに書き戻されるため、--resume/--continueが実行間で機能します。現在のプロジェクトにスコープされるため、他のプロジェクトの履歴がサンドボックスに入ることはありません。それ以外の場合、特定のエージェントとプロジェクトに対して初めてflarを実行したときに履歴がフォークされます。セッション永続化と再開を参照してください。
  • キーリングブリッジ(agy): Antigravity CLIはOAuthトークンをファイルではなくOSのキーリングに保存します。flarはその1つのシークレットだけを抽出し、サンドボックス内でプライベートなインプロセスSecret Serviceを介して提供します。これにより、エージェントはキーリングの残りを公開せずに認証されます。認証情報を参照してください。

ビルドとインストール

依存関係

ホストシステムにbwrap(Bubblewrap)がインストールされていることを確認してください。

root@kitploit:~
# Fedora/RHEL
sudo dnf install bubblewrap

# Debian/Ubuntu
sudo apt install bubblewrap

コンパイルとインストール

ソースからflarをビルドするには:

root@kitploit:~
go build -o `flar` .

インストールするには:

root@kitploit:~
mv `flar` ~/.local/bin/

使い方

プロジェクトフォルダでflarを実行するか、パスを指定します:

root@kitploit:~
flar [flags] [path/to/project] [extra agent args/prompts...]

フラグ

  • -m: 実行するエージェントを指定(claude、codex、agy、copilot、reasonix)。デフォルトでは、利用可能なホスト設定または環境変数をチェックします。
  • -ask: 権限/承認をスキップしない(エージェントに許可を求めるように強制)。
  • -network: ネットワークモード:isolated(デフォルト)またはhost。
  • -allow-port: 隔離ネットワークサンドボックスを介して特定のローカルTCPポート(例:8080、11434)を許可します。複数指定可能。
  • -v: 詳細ログ出力を有効にする。

設定ファイル(.flar.json)

プロジェクトごとに<project>/.flar.json、またはグローバルに~/.config/flar/config.jsonでオプションを設定できます:

root@kitploit:~
{
  "agent": "claude",
  "ask": false,
  "network": "isolated",
  "allow_ports": [5432, 11434]
}

認証情報

設定の一時コピーのみがマウントされるため、エージェントは元のファイルに触れることなく、既存のホストセッションを使用して認証された状態で実行されます。ほとんどのエージェントはセッションをファイルに保存しており、flarが直接コピーします:

  • Claude: ~/.claude/(.credentials.jsonを含む)および ~/.claude.json(オンボーディング状態とアカウントIDを保持するトップレベルファイル)。両方が必要です。認証情報のみでは、Claudeはサンドボックスを新規インストールと見なしてログインを促します。
  • Codex / Copilot: ~/.codex/、~/.copilot/、およびGitHub CLI設定。

Antigravity(agy)のキーリング

agyは例外で、トークンをファイルに保存しません。OSキーリングに保持し、D-Busセッションバス経由のfreedesktop Secret Service APIで読み取ります。サンドボックスにはセッションバスがないため、単純な設定ではauthentication failed or timed outで失敗します。

flarはこれを特別に処理します:

  1. ホスト側で、secret-toolを使用してagyトークン(キーリングアイテムservice=gemini, username=antigravity)のみを抽出し、一時設定ディレクトリ内の0600ファイルに書き込みます。
  2. サンドボックス内で、プライベートUnixソケット上で最小限の自己完結型Secret Service(flar --internal-secretsvc)を実行し、DBUS_SESSION_BUS_ADDRESSでポイントします。その1つのトークンのみを提供し、それ以外は何も提供しません。

エージェントは自分のトークンにのみアクセスでき、キーリングの残り(ブラウザのパスワード、他のアプリのシークレットなど)にはアクセスできません。実装はD-Busワイヤプロトコルを直接話すため、サンドボックス内にgnome-keyringやdbus-daemonは不要です。

要件と注意点:

  • ホスト側の抽出には、ホストにsecret-tool(libsecret)がインストールされている必要があります。存在しない場合やトークンが見つからない場合、flarはブリッジをスキップし、agyは通常のログインプロンプトにフォールバックします。
  • 認証されたエージェントは、定義上、自分のトークンを読み取ることができます。プロンプトインジェクション攻撃により、トークンが流出する可能性があります。これは認証された状態で実行することに固有の問題です。キーリングブリッジは、露出をキーリング全体ではなくその1つのトークンに制限します。

セッション永続化と再開

サンドボックスは設定の一時コピーをマウントするため、エージェントがそこに書き込んだものは通常、終了時に消えます(実行した会話も含む)。flarは各エージェントのトランスクリプトストレージをホストにバインドバックし、セッションを永続化して後で再開できるようにすると同時に、他のプロジェクトの履歴がサンドボックスに入らないようにします。

  • Claude: トランスクリプトはプロジェクトごとのディレクトリ(~/.claude/projects/<project-slug>/)に保存されます。flarは現在のプロジェクトのディレクトリのみをホストからコピーされた設定にバインドするため、claude --resumeはこのプロジェクトのセッションのみを表示します。注意点として、履歴に保存されたプロンプトインジェクションがリスクになる可能性があります。作業中のプロンプトインジェクションを含むセッションを再開すると、flarの外でclaudeを実行した場合に爆発半径が無限に大きくなります。利便性がリスクを上回ると考えています。そのようなリスクのあるプロジェクトでは、常にflar内で実行してください。

  • Codex CLI: Codexはトランスクリプトを~/.codex/sessions/の日付ベースのディレクトリに保存し、グローバルのstate_5.sqliteでインデックス化します。両方とも各スレッドのcwdを記録しますが、ディスク上のディレクトリはプロジェクトを混在させます。flarは各ワークスペースに$XDG_STATE_HOME/flar/codex/<project-slug>/の下にシャドウCodexホームを与え、その変数が設定されていない場合は~/.local/state/flar/codex/<project-slug>/にフォールバックします。初回使用時に、一致するトランスクリプトファイル、SQLite行、プロンプト履歴エントリのみでそのホームをシードします。その後、シャドウホームがとしてマウントされるため、新しいセッションはで他のプロジェクトを露出させることなく永続化されます。

root@kitploit:~
~/.copilot/.flar/<project-slug>/

初回使用時に、flarはそのシャドウホームを、保存されたcwdが現在のワークスペースと一致するセッションのみでシードし、該当するSQLite行と一致するsession-state/ディレクトリの両方をコピーします。その後、シャドウホーム全体がサンドボックス内で~/.copilotとしてバインドマウントされるため、copilot --continueはこのワークスペースのセッションのみを再開でき、新しいセッションはそこに安全に永続化されます。

  • Antigravity(agy): Copilotと同様に、プロジェクトで初めてflarを実行したときにセッションが「フォーク」され、flarの外で実行されるagyと共有されなくなります。

agyは会話をディスク上でプロジェクトごとに分離しません。すべてのプロジェクトのすべての会話が、~/.gemini/antigravity-cli/(conversations/、brain/、implicit/)下の1つのフラットストアに、UUIDのみでキー付けされて保存され、所有ワークスペースは不透明な会話ブロブの内部に記録されます。新しさのインデックス(cache/last_conversations.json)は各ワークスペースを最新の会話にマッピングし、agy --continueはそれをたどります。

そのストアをそのままサンドボックスにバインドすると、サンドボックス化されたagyが--continue、インタラクティブピッカー、または明示的な--conversation <ID>を介して異なるプロジェクトに属する会話を再開でき、そこに貼り付けられた内容が漏洩する可能性があります。これを防ぐため、flarは各ワークスペースに独自のスコープ化ストアを与えます:

root@kitploit:~
~/.gemini/antigravity-cli/.flar/<project-slug>/

このディレクトリは、サンドボックス内のconversations/、brain/、implicit/、history.jsonl、およびcache/last_conversations.jsonにバインドマウントされます。したがって、プロジェクトAで開かれたサンドボックスはプロジェクトAの会話のみを表示できます。新しいセッションはスコープ化ストアに蓄積され、次回の実行で再開可能です。

プロジェクトで初めてflarがagyを実行したとき、そのプロジェクトのスコープ化ストアを既存のホスト履歴からシードします。ただし、agy自身がこのワークスペースに帰属すると判断した会話のみです(これはプレーンテキストのlast_conversations.jsonとhistory.jsonlから判断され、会話ブロブを解析することはありません)。その一度限りのシード後、スコープ化ストアは独立します。新しいセッションはスコープ化ストアのみに存在し、後のホスト側の変更は取り込まれません。

  • Reasonix: Claude Codeと同じです。Reasonixは各プロジェクトの履歴を独自のサブディレクトリに保持するため、Claude Codeと同じ方法でバインドマウントでき、同じ注意点があります。

認識しておくべき結果:

  • Copilot CLI: agyと同様に、スコープ化シャドウホームは初期シード後、プロジェクトごとの別世界になります。Copilotをflarの外で開始したセッションは後でflarに取り込まれず、flarの内で開始したセッションはホストのグローバルCopilotストアではなく、スコープ化シャドウホームに保存されます。
  • flarの外でagyを開始したセッションは(初期シードを除き)flarの内側では見えず、その逆も同様です。これは意図的です。flarのagy履歴は別のプロジェクトごとの世界です。
  • Codexも同じルールに従います。一度限りのシード後、ラップされたCodexとラップされていないCodexの履歴は独立します。
  • agy自身のインデックスが現在のワークスペースに帰属しなかった会話は、設計上シードされません。安全なデフォルトは、他のプロジェクトのデータを露出するリスクを避けるためにそれを保留することです。
  • エージェント所有の.flar/ディレクトリは互換性のために設定コピーから除外され、flar所有の状態は$XDG_STATE_HOME/flar/(または~/.local/state/flar/)にあり、エージェント管理の設定ディレクトリの外にあります。

ネットワークセキュリティとローカルポート

隔離ネットワークモードでは、エージェントの環境はホストネットワークインターフェースに直接アクセスできません。

  • インターネットアクセス: HTTP_PROXYおよびHTTPS_PROXY環境変数を使用して、HTTP/HTTPSリクエスト(クラウドLLM(AnthropicやGeminiなど)への接続など)に対して自動的に機能します。
  • ローカルホスト制限: プロキシを介したlocalhostまたはループバックIPへのリクエストはブロックされます。
  • ローカルサービスの公開: エージェントがローカルデータベースやローカルLLM(例:Ollama on 127.0.0.1:11434)にアクセスできるようにするには、-allow-port 11434またはallow_ports設定を使用してポートを指定します。セキュアなループバックフォワーダーがサンドボックス内で127.0.0.1:11434をバインドし、トラフィックをホストにプロキシします。
ツールをダウンロード
~/.codex
codex resume --all
  • Copilot CLI: Copilotは再開可能なセッションを~/.copilot/の下の2つのグローバルな場所に保存します:SQLiteインデックス(session-store.db)と、各セッションにつきsession-state/<session-id>/の下の1つのディレクトリ。SQLite行は所有するcwdを持ち、各状態ディレクトリは同じセッションIDでキー付けされます。ホストストアをそのままバインドすると、サンドボックス化されたCopilotにすべてのプロジェクトのセッションが公開されるため、flarは各ワークスペースに独自のシャドウCopilotホームを与えます: