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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Cordon — Linux上で制限されたファイルシステムビュー内で任意のコマンドを実行する | Kitploit
ツール/GitHubGitHub/vishnunandan555/cordon
汎用ユーティリティコンテナセキュリティ動的分析 (サンドボックス)スクリプトと自動化構成監査セキュリティ仮想化ネットワークセキュリティDevSecOpsサプライチェーンセキュリティArchived
GitHubvishnunandan555/cordon

Cordon

Linux上で制限されたファイルシステムビュー内で任意のコマンドを実行する

23ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る

Cordon

⚠️ プロジェクト非推奨

本プロジェクトの開発は停止しています。同じアイデアに取り組み、より良いソリューションを構築した別の開発者がいたためです。
代わりに以下を強くお勧めします: Fence by Use-Tusk。

注: このリポジトリは元々 FOSS HACK 2026 のために作成されましたが、残念ながら期限内に完成させることができませんでした。
しかし、Hackathena '26 で類似のプロジェクトを構築し、3位賞を受賞しました!
興味があれば、そのリポジトリはこちらにあります: A56-A5/lion。

Cordon は Linux 上でコマンドを制限されたファイルシステムビュー内で実行します。Linux 名前空間(bubblewrap 経由)を使用して、プロセスに不要なものすべて(ホームディレクトリ、SSH 鍵、AWS 認証情報など)を隠蔽しつつ、コマンドがその仕事を遂行できるようにします。

root@kitploit:~
cordon run --net=allow -- npm install
cordon run -- bash setup.sh
cordon run --profile python -- pip install -r requirements.txt

root 権限は不要。コンテナも不要。バックグラウンドで動作するデーモンもありません。


なぜ?

npm install や pip install を実行すると、そのコードはあなたの完全なユーザー権限で実行されます。~/.ssh/id_rsa を読み取り、サーバーに流出させ、あなたが所有するファイルを変更することができます。これらすべてが、単にパッケージをインストールしているように見える間に行われます。

これは被害妄想ではありません。実際に発生しています:

Cordon の答え: コードが悪意を持っていても、プロセスに本来見るべきでないものを見せないようにします。


仕組み

各 cordon run は新たに隔離された環境を作成します:

  • /usr、/bin、/lib は 読み取り専用 でマウントされます — プログラムは動作しますが、システムを壊すことはできません
  • プロジェクトディレクトリは 書き込み可能 です — npm install は node_modules/ を作成し、ビルドは動作します
  • src/ が存在する場合は 読み取り専用 — ソースファイルがこっそりと書き換えられることはありません
  • ~/.ssh、~/.aws、HOME — デフォルトでは 全くマウントされません
  • ネットワークはデフォルトで オフ、または --net=allow で組み込みのドメイン許可リストプロキシを介してフィルタリングされます

プロセスが終了すると、サンドボックスは消えます。何も残りません。

プロキシ

--net=allow モードは、ランダムな localhost ポート上で組み込みの Rust HTTP/HTTPS プロキシを起動し、環境変数(HTTP_PROXY、https_proxy、npm_config_proxy など)を介してサンドボックスに注入します。CONNECT トンネルをインターセプトし、転送前に許可リストに対して各ドメインをチェックします。

デフォルトの許可リストには registry.npmjs.org、pypi.org、crates.io、github.com が含まれます。リストにないものは、たとえパッケージの postinstall スクリプトがホームに電話しようとしても、403 が返されます。

root@kitploit:~
# npmjs.org とその CDN にのみ到達 — それ以外は不可
cordon run --net=allow -- npm install

# プライベートレジストリ用のドメインを追加
cordon run --net=allow --domain my.internal.registry -- npm install

Seccomp

オプションでシステムコールフィルターを追加できます:

root@kitploit:~
# ptrace、kexec_load、mount、perf_event_open、process_vm_* をブロック
cordon run --seccomp basic --net=allow -- npm install

# 厳格な許可リスト — 既知の安全なシステムコールのみ
cordon run --seccomp strict -- python3 untrusted.py

これは第二の防御線です。何かがファイルシステム制限を突破しても、ptrace を呼び出して別のプロセスにアタッチしたり、perf_event_open でサイドチャネル攻撃を行うことはできません。


インストール

root@kitploit:~
git clone https://github.com/LORDv1shnu/Cordon
cd Cordon
bash install.sh        # リリースバイナリをビルド → ~/.local/bin/cordon

または手動で:

root@kitploit:~
cargo build --release
cp target/release/cordon ~/.local/bin/

bubblewrap がインストールされている必要があります:

root@kitploit:~
sudo apt install bubblewrap    # Ubuntu/Debian
sudo dnf install bubblewrap    # Fedora
sudo pacman -S bubblewrap      # Arch

インストール後の初回実行:

root@kitploit:~
cordon scan    # システムを一度スキャン(約30秒)、~/.config/cordon/system.toml を書き込み
cordon check   # 健全性チェック — すべての準備ができていることを確認

使い方

root@kitploit:~
# 基本
cordon run -- echo "hello"
cordon run --net=allow -- npm install
cordon run --net=allow -- pip install -r requirements.txt
cordon run --net=full -- curl https://example.com   # 制限なし(フィルタリングなし)

# Seccomp
cordon run --seccomp basic --net=allow -- npm install

# GUI アプリ
cordon run --gui -- code .
cordon run --gui --optional audio_pipewire --optional dbus_session -- discord

# 組み込みプロファイル(一般的なランタイム用に事前設定済み)
cordon run --profile node -- npm install
cordon run --profile python -- python3 script.py
cordon run --profile rust -- cargo build

# ブロックされているものをデバッグ
cordon run --trace -- node server.js              # strace ラッパー、拒否されたパスを報告
cordon add --from-trace ~/.config/cordon/logs/last-trace.log  # 不足しているパスを一括追加

# リソース制限(systemd が必要)
cordon run --mem 512M --cpu 2.0 --timeout 60 -- npm install

# ドライラン / 詳細出力
cordon run --dry-run -- npm install               # bwrap コマンドを表示、実行しない
cordon run --verbose -- npm install               # 実行時に各 bwrap 引数を表示

プロジェクト設定 (cordon.toml)

root@kitploit:~
cordon init                            # Cargo.toml / package.json / pyproject.toml を自動検出
cordon set --net=allow                 # フラグを永続化し、毎回入力しなくて済むようにする
cordon add /path/to/assets --mode ro   # サンドボックス内に追加のパスを公開
cordon edit                            # $EDITOR で cordon.toml を開く

検査とデバッグ

root@kitploit:~
cordon check               # ヘルスチェック: bwrap、名前空間、AppArmor、モジュール
cordon doctor              # より詳細: カーネルバージョン、ディストリの癖、正確な修正提案
cordon status              # system.toml に現在何が入っているかを表示
cordon list                # 次回実行時にアクティブになるすべてのマウントを表示
cordon log --errors        # 最後の実行のログを表示、エラーのみ
cordon syscalls --preset basic   # 各 seccomp プリセットがブロックする内容を表示

プロファイルと移植性

root@kitploit:~
# 名前付きプロファイル(~/.config/cordon/profiles.toml に保存)
cordon profile create ci-node --net=allow --optional ld_so_cache
cordon run --profile ci-node -- npm test

# 再現可能な環境用のロックファイル
cordon lock update          # すべてのマウントパスを SHA-256 → cordon.lock
cordon lock verify          # ドリフトがないか確認

# サンドボックス設定をチームと共有
cordon export > sandbox.json
cordon import sandbox.json

シェル連携

root@kitploit:~
# タブ補完
cordon completions zsh > ~/.zfunc/_cordon

# 透過ラッパー — "npm" を常にサンドボックス内で実行するようにする
cordon wrap npm
cordon wrap pip
npm install                # 実際には以下を実行: cordon run -- npm install "$@"
cordon unwrap npm

# マニュアルページ
cordon man | man -l -

設定レイヤー

4つの設定ファイルがあり、順に適用されます:

CLI フラグは常に優先されます。cordon.toml は名前付きプロファイルより優先されます。バイナリ組み込みの core.toml は実行時に変更できません。


終了コード

bwrap およびシェルと同じ規則です。


制限事項

Cordon はコンテナでも、ウイルス対策ソフトでも、SELinux や AppArmor の代替でもありません。ファイルシステムの可視性とネットワークアクセスを制限するものであり、マルウェアを検出しようとするものではありません。カーネルの脆弱性を持つものがあれば、突破されるでしょう。目標はサプライチェーン攻撃をかなり困難にすることであり、不可能にすることではありません。

また、現在は Linux x86_64 と aarch64 のみ対応です。bubblewrap が必要です。


技術

Rust で構築。名前空間には bubblewrap、BPF フィルターコンパイルには seccompiler、CLI には clap、構造化ログには tracing を使用。ドメインフィルタリングプロキシはゼロから純粋な Rust で記述されています(外部のプロキシツールは不使用)。

→ COMMANDS.md — 完全なフラグリファレンス
→ SCANNER_LOGIC.md — システムスキャナーの仕組み
→ MODULE_INFO.md — すべてのソースファイルの説明


AI アシスタンス(Gemini)を使用して構築。アーキテクチャ、セキュリティモデル、設計決定は著者の成果です。

ツールをダウンロード
攻撃影響
LiteLLM (2024)悪意のある PyPI パッケージが pip install 時に SSH 鍵と環境変数を読み取り
xz-utils (2024)インストール中の make ステップを介してビルド時バックドアが注入された
event-stream (npm, 2018)侵害された npm パッケージが Bitcoin ウォレットをこっそりと盗んだ
SolarWindsビルド/アップデートパイプラインを通じたサプライチェーン攻撃
レイヤー場所誰が書き込むか
core.tomlバイナリにコンパイル済み実行時に編集不可(改ざん防止)
system.toml~/.config/cordon/cordon scan
profiles.toml~/.config/cordon/cordon profile create
cordon.tomlプロジェクトディレクトリcordon init / cordon set / cordon add
コード意味
0成功
1cordon 内部エラー
2CLI の誤った使用法
125サンドボックス設定失敗(bwrap が見つからないなど)
126コマンドは見つかったが、サンドボックス内で実行不可
127サンドボックス内でコマンドが見つからない
Nサンドボックス化されたプロセスから転送