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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
mxc — ポリシー駆動型の多層的な分離と封じ込め | Kitploit
ツール/GitHubGitHub/microsoft/mxc
クラウドインフラストラクチャセキュリティ防御ツールコンテナセキュリティ動的分析 (サンドボックス)構成監査セキュリティ仮想化
GitHubmicrosoft/mxc

mxc

ポリシー駆動型の多層的な分離と封じ込め

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Microsoft eXecution Container (MXC)

MXC は、Windows、Linux、macOS 上で信頼できないコード(モデル出力、プラグイン、ツール)を実行するためのサンドボックス化されたコード実行システムです。OS ネイティブのプロセスサンドボックスから完全な VM まで、複数の封じ込めバックエンドを、統一された JSON 構成スキーマと TypeScript SDK の背後で提供します。

[!WARNING] このリポジトリには、Microsoft Execution Containers の早期統合と開発者からのフィードバックを可能にするために公開されたコードの初期プレビューが含まれています。この初期プレビューの基盤となるサンドボックスは現在開発中であるため変更される予定ですが、機能の進化に伴う互換性への影響を最小限に抑えるよう努めます。このリポジトリの MXC SDK によって生成される現在のポリシーが過度に寛容である既知のケースがあり、これはより広く利用可能になる前に対処される予定です。MXC が成熟する間のセキュリティ研究者との連携は歓迎しますが、現在のところ MXC プロファイルはセキュリティ境界として扱われるべきではありません。

機能

  • クロスプラットフォーム: Windows、Linux、macOS をサポートし、プラットフォームに適した封じ込めバックエンドを提供
  • JSON ベースの構成: バージョン管理された JSON スキーマを介して実行パラメータとセキュリティポリシーを定義
  • 複数の封じ込めバックエンド: ProcessContainer、Windows Sandbox、LXC、Bubblewrap、Seatbelt (macOS)、MicroVM (NanVix)、Hyperlight、IsolationSession、WSLC
  • ポリシー駆動型サンドボックス化:
    • ファイルシステムポリシー: 読み取り専用および読み書きパスリスト(Windows では拒否パスはまだサポートされていません)
    • ネットワークポリシー: プロキシサポート(Linux/macOS では協調的)、送信の許可/ブロック、バックエンド依存のホストフィルタリング
    • UI ポリシー: クリップボード、ディスプレイ、GUI アクセス制御
  • 状態認識ライフサイクル: セッションサンドボックス用のマルチステップサンドボックスライフサイクル(プロビジョニング → 開始 → 実行 → 停止 → プロビジョニング解除)
  • TypeScript SDK: ワンショットおよび状態認識 API を備えた @microsoft/mxc-sdk npm パッケージ
  • 診断: トラブルシューティングのためのデバッグロギングと Windows イベントトレーシング (ETW)

ビルド

MXC はネイティブコンテナラッパーと TypeScript SDK を同梱しています。完全な API ドキュメントについては SDK README を参照してください。

プラットフォーム

安定したワンショットバックエンド(processcontainer、bubblewrap、lxc、seatbelt)は実験モードを必要としません。Linux ホストには対応するランタイムもインストールされている必要があります:デフォルトバックエンドには bwrap (Bubblewrap)、lxc バックエンドには lxc ツールセット。実験的バックエンド(windows_sandbox、wslc、microvm、isolation_session、hyperlight)は、SandboxSpawnOptions での { experimental: true } または --experimental CLI フラグが必要です。

Windows processcontainer バックエンドが各 Windows 11 リリース(23H2 / 24H2 / 25H2 / 25H2+)で適用できるファイルシステム、ネットワーク、UI 制限ポリシーの側面については、Windows OS バージョンポリシーサポート を参照してください。

要件

  • Rust ツールチェーン — src/rust-toolchain.toml を介して 1.93 に固定(rustup によって自動選択)
  • Node.js ≥ 18
  • npm(SDK および CLI ビルド用)

プロジェクト構造

root@kitploit:~
src/        Rust ワークスペース(ネイティブバイナリ + 共有ライブラリクレート)
sdk/        TypeScript SDK (@microsoft/mxc-sdk npm パッケージ)
schemas/    JSON 構成スキーマ(安定版 + 開発版)
docs/       ドキュメント(スキーマリファレンス、バックエンドガイド、設計ドキュメント)
tests/      テスト用コラテラル(構成、例、スクリプト)
scripts/    ビルドおよびユーティリティスクリプト

フルビルド

Windows

root@kitploit:~
build.bat                  # 現在のアーキテクチャ用のリリースビルド
build.bat --debug          # デバッグビルド
build.bat --all            # x64 と ARM64 の両方のリリースビルド
build.bat --with-microvm   # NanVix マイクロ VM バイナリを含める

Linux

root@kitploit:~
./build.sh                 # リリースビルド
./build.sh --debug         # デバッグビルド
./build.sh --rust-only     # Rust バイナリのみ、SDK/CLI をスキップ

macOS

root@kitploit:~
./build-mac.sh             # ネイティブアーキテクチャ用のリリースビルド
./build-mac.sh --all       # Apple Silicon と Intel の両方
./build-mac.sh --debug     # デバッグビルド
./build-mac.sh --rust-only # Rust バイナリのみ、SDK をスキップ

すべてのビルドスクリプト:

  1. プラットフォームに適した Rust バイナリをビルド

  2. SDK バンドル用にバイナリを sdk/node/bin/<arch>/(例:x64 または arm64)にコピー

  3. TypeScript SDK をビルド

コンポーネントの個別ビルド

root@kitploit:~
# Rust ワークスペース(src/ から)
cargo build --release --target x86_64-pc-windows-msvc     # Windows x64
cargo build --release --target aarch64-pc-windows-msvc    # Windows ARM64
cargo build --release -p lxc                               # Linux — lxc-exec(LXC と Bubblewrap の両方に使用)
cargo build --release -p mxc_darwin --target aarch64-apple-darwin  # macOS

# SDK(sdk/node/ から)
npm install && npm run build

Lint とフォーマット

root@kitploit:~
# Windows Rust(src/ から)

cargo clippy --workspace --all-targets -- -D warnings

# Linux Rust(src/ から;build.sh のプラットフォーム互換クレートセットに一致)

cargo clippy -p lxc -p lxc_common -p wxc_common -p bwrap_common -p unix_test_proxy --all-targets -- -D warnings

# macOS Rust(src/ から)

cargo clippy -p mxc_darwin -p seatbelt_common --all-targets -- -D warnings

テスト

root@kitploit:~
# Rust ユニットテスト(src/ から)
cargo test --workspace
cargo test -p wxc_common                      # 単一クレート
cargo test -p wxc_common -- config_parser     # テスト名でフィルタリング

# SDK(sdk/node/ から)
npm test                     # ユニットテスト
npm run test:integration     # 統合テスト

# E2E(src/ から)
cargo test -p wxc_e2e_tests

使用方法

MXC は JSON 構成を使用して実行パラメータを定義します。完全なリファレンスについては スキーマドキュメント を参照してください。

ネイティブバイナリ

root@kitploit:~
# ファイルパス
wxc-exec.exe config.json

# Base64 エンコードされた構成
wxc-exec.exe --config-base64 <base64-encoded-json>

# デバッグ出力
wxc-exec.exe --debug config.json

Linux の場合:./lxc-exec config.json macOS の場合:./mxc-exec-mac --experimental config.json

TypeScript SDK

root@kitploit:~
npm install @microsoft/mxc-sdk
root@kitploit:~
import {
  spawnSandboxFromConfig, createConfigFromPolicy,
  getAvailableToolsPolicy, getTemporaryFilesPolicy,
  getPlatformSupport,
} from '@microsoft/mxc-sdk';

if (!getPlatformSupport().isSupported) {
  throw new Error('MXC not available on this host');
}

const tools = getAvailableToolsPolicy(process.env);
const temp  = getTemporaryFilesPolicy();

const config = createConfigFromPolicy({
  version: '0.6.0-alpha',
  filesystem: {
    readonlyPaths:  tools.readonlyPaths,
    readwritePaths: temp.readwritePaths,
  },
  network: { allowOutbound: false },
  timeoutMs: 30_000,
});
config.process!.commandLine = 'python -c "print(\'hello from sandbox\')"';

const child = spawnSandboxFromConfig(config, { usePty: false });
child.stdout!.on('data', (d) => process.stdout.write(d));
child.on('close', (code) => console.log('exit:', code));

SDK は、長期実行サンドボックス用の状態認識ライフサイクル API も提供します:

root@kitploit:~
import {
  provisionSandbox, startSandbox, execInSandboxAsync,
  stopSandbox, deprovisionSandbox,
} from '@microsoft/mxc-sdk';

完全な API ドキュメントについては SDK README を参照してください。

スキーマバージョン

リリース済みの不変の安定スキーマは schemas/stable/ にあり、進行中の開発スキーマ(実験的バックエンド、状態認識ライフサイクル)は schemas/dev/ にあります。現在の安定版および開発版のバージョンは、schemas/schema-version.json で正規に追跡されています。

サポートされている任意のプラットフォームで新しいコードを書く場合は、最新の安定スキーマを選択してください。完全なバージョン管理設計については docs/versioning.md を参照してください。

デバッグ

デバッグコンソールモード

デフォルトでは、ネイティブバイナリはサイレントモードで実行されます — stdin/stdout/stderr はコンテナに直接結合されます。詳細な出力には --debug を使用します:

root@kitploit:~
wxc-exec.exe --debug config.json

完全な診断リファレンスについては docs/diagnostics.md を参照してください。

監査モード(寛容な学習モード)

--audit は、ETL 保持を強制した許可モードでの processContainer.captureDenials に対する互換性ラッパーです。permissiveLearningMode を注入するため、拒否された操作は記録されますが、実行は許可されます。完全な PSEC/V2 学習モード API セットを備えたホストでは、選択された ProcessContainer ランナーは、PLM を起動したり昇格を要求したりせずにネイティブキャプチャを使用します。古い、またはポリシーと互換性のない階層では、ガード付き WPR フォールバックを使用します:wxc-exec.exe は非昇格のままで、特権 WPR ライフサイクルのためだけにセッションスコープの UAC 昇格 PLM ガーディアンを開始し、認証されたローカル名前付きパイプを介して通信します。Windows Sandbox、WSLC、IsolationSession、およびその他すべての封じ込めバックエンドでは拒否されます。

root@kitploit:~
wxc-exec.exe --audit policy.json

成功した非ドライラン監査には、キャプチャメタデータ、実用的な拒否 JSON、および保持された ETL が必要です。CLI はバックエンドが選択したパスをユーザーごとの監査ディレクトリ内の denials.json と trace.etl に再配置し、ETL を再度デコードせずに実用的な JSON からソース構成スナップショットと Adjusted_*.json を生成します。Base64 のみの入力は JSON と ETL を保持しますが、スナップショットまたは調整するソース構成がありません。切り詰められた分析は JSON、ETL、ソーススナップショットを保持しますが、調整済み構成の生成はスキップします。学習済みポリシーの詳細を出力するには --audit-verbose を使用します。

警告: --audit は permissiveLearningMode を注入します — AppContainer の制限は実行期間中適用されません。ポリシー作成にのみ使用してください。processContainer.captureDenials と組み合わせることはできません。寛容なアプリケーション駆動キャプチャには captureDenials.mode: "allow" を使用してください。learningModeLogging と permissiveLearningMode は予約済みの内部機能名であり、processContainer.capabilities では拒否されます。3 つの学習モードフローについては docs/learning-mode/capabilities.md を参照してください。

テレメトリ

MXC は、実行の可観測性のためのオプションの TraceLogging ETW テレメトリをサポートしています。有効にすると、構造化イベント(MXC.Execution および MXC.Error)が Rust tracelogging クレートを介してローカル ETW サブシステムに出力されます。すべてのイベントには、Part C カスタムイベントデータとして共通フィールド(Version、Channel、IsDebugging、UTCReplace_AppSessionGuid)が含まれます。

テレメトリには以下が必要です:

  1. JSON 構成内のトップレベルの "telemetry": { "enabled": true }
  2. Windows でのユーザーごとの明示的なテレメトリ同意
  3. ポリシーが構成されている場合、収集を許可する管理ポリシー

構成フラグは実行ごとの追加のオプトインです。同意を付与したり、管理上のブロックを回避したりすることはできません。該当するすべてのゲートが開いていない限り、テレメトリはオフのままです。MXC は、アプリケーションの同意の代わりとして Windows の診断とフィードバック設定を使用しません。

Windows 以外のプラットフォームでは、すべてのテレメトリ関数は no-op です。

データ収集

本ソフトウェアは、お客様およびお客様による本ソフトウェアの使用に関する情報を収集し、Microsoft に送信する場合があります。Microsoft はこの情報を使用してサービスを提供し、製品とサービスを改善する場合があります。リポジトリで説明されているようにテレメトリをオフにすることができます。本ソフトウェアには、お客様と Microsoft がお客様のアプリケーションのユーザーからデータを収集できるようにする機能もいくつかあります。これらの機能を使用する場合は、Microsoft のプライバシーに関する声明のコピーとともにお客様のアプリケーションのユーザーに適切な通知を提供することを含め、適用される法律を遵守する必要があります。当社のプライバシーに関する声明は https://go.microsoft.com/fwlink/?LinkID=824704 にあります。データの収集と使用についての詳細は、ヘルプドキュメントとプライバシーに関する声明で確認できます。本ソフトウェアの使用は、これらの慣行への同意として機能します。

テレメトリをオフにする方法

テレメトリはデフォルトでオフです。オフのままにするには、実行時に "telemetry": { "enabled": true } を設定しないでください。

構成でテレメトリが有効になっている場合でも、Windows ユーザーの同意が付与され、管理ポリシーが収集を許可しない限り、収集は行われません。

公式ビルドが送信するもの

公式/出荷済みの Microsoft ビルドは、ビルド時に TraceLogging プロバイダーグループ GUID を設定し、テレメトリが有効な場合に UTC パイプラインを介して MXC.Execution および MXC.Error イベントを Microsoft にルーティングします。同じビルド時設定により、イベントの正しい Measures キーワードと Product-and-Service-Usage プライバシータグも選択されるため、テレメトリのルーティングとイベント分類は常に一致します。ローカルおよびオープンソースビルドは、デフォルトでは Microsoft に何も送信しません — 公開ソースにはプロバイダーグループ GUID が含まれていないため、イベントはローカル ETW サブシステムにのみ出力され、UTC の意味を持たないプロバイダーローカルキーワードを使用し、プライバシー分類タグを保持せず、Microsoft の収集パイプラインにルーティングされません。ビルド時に MXC_TELEMETRY_PROVIDER_GROUP_GUID 環境変数を設定する内部ビルドは、Microsoft ルーティングパスを有効にします。

PII は収集されません。イベントには実行メトリクス(期間、バックエンドタイプ、終了コード)と制限付きのエラーカテゴリ(error_type)のみが含まれます。自由形式のエラーメッセージテキストは決して出力されないため、パス、ユーザー名、資格情報がテレメトリを介して漏洩することはありません。SDK を使用してアプリケーションを構築する場合、独自のユーザーに適切なテレメトリ通知を提供する責任があります。

プライバシー情報は https://privacy.microsoft.com および https://go.microsoft.com/fwlink/?LinkID=824704 の Microsoft プライバシーに関する声明にあります。

ドキュメント

貢献

貢献ガイドラインについては CONTRIBUTING.md を参照してください。

ライセンス

詳細については LICENSE.md を参照してください。

ツールをダウンロード
プラットフォームデフォルトバックエンドその他のバックエンド最小ビルド
Windows 11 24H2+(25H2 で検証済み)processcontainerwindows_sandbox、wslc、microvm、hyperlight、isolation_sessionprocesscontainer: 26100 (24H2)
isolation_session: 26340.9212 (Insider Preview)
Linux x64 / ARM64bubblewraplxc、microvm、hyperlight—
macOS ARM64 / x64(スキーマ 0.7.0-alpha 以降)seatbelt——
ドキュメント説明
docs/schema.md完全な JSON 構成スキーマリファレンス
docs/versioning.mdスキーマのバージョン管理と実験的機能のライフサイクル
docs/examples.md注釈付き構成例
docs/host-prep.mdWindows ホストの準備(wxc-host-prep.exe)
docs/diagnostics.md診断ロギングと ETW
docs/sandbox-policy/0.7.0/policy.mdサンドボックスポリシー 0.7.0 仕様
docs/process-container/guide.mdWindows AppContainer / BaseContainer ガイド
docs/lxc-support/lxc-backend.mdLXC バックエンド(Linux)
docs/bwrap-support/bubblewrap-backend.mdBubblewrap バックエンド(Linux)
docs/seatbelt/seatbelt-backend.mdSeatbelt バックエンド(macOS)
docs/windows-sandbox/windows-sandbox.mdWindows Sandbox バックエンド
docs/state-aware-lifecycle/mxc-state-aware-sandbox-api.md状態認識サンドボックスライフサイクル API
docs/telemetry/telemetry.mdTraceLogging テレメトリアーキテクチャ
docs/telemetry/telemetry-consent-design.mdテレメトリ同意契約
docs/telemetry/telemetry-administrative-policy.md管理テレメトリ制御