Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
mxc — Policygesteuerte, mehrschichtige Isolierung und Eindämmung | Kitploit
Tools/GitHubGitHub/microsoft/mxc
Cloud-Infrastruktur-SicherheitDefensivwerkzeugeContainer-SicherheitDynamische Analyse (Sandboxing)KonfigurationsprüfungSicherheitsvirtualisierung
GitHubmicrosoft/mxc

mxc

Policygesteuerte, mehrschichtige Isolierung und Eindämmung

Repository anzeigen
1.3k7012vor 1 TagVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Microsoft eXecution Container (MXC)

MXC ist ein in einer Sandbox ausgeführtes Code-Ausführungssystem zum Ausführen von nicht vertrauenswürdigem Code (Modellausgabe, Plugins, Tools) unter Windows, Linux und macOS. Es bietet mehrere Containment-Backends – von betriebssystemeigenen Prozess-Sandboxes bis hin zu vollständigen VMs – hinter einem einheitlichen JSON-Konfigurationsschema und TypeScript-SDK.

[!WARNING] Dieses Repository enthält eine frühe Vorschau von Code, der veröffentlicht wurde, um eine frühe Integration und Feedback von Entwicklern zu Microsoft Execution Containers zu ermöglichen. Es wird erwartet, dass sich die zugrunde liegenden Sandboxes in dieser frühen Vorschau ändern, da sie sich in laufender Entwicklung befinden. Wir werden jedoch versuchen, die Auswirkungen auf die Kompatibilität zu minimieren, wenn sich die Funktionalität weiterentwickelt. Es gibt bekannte Fälle, in denen die aktuellen Richtlinien, die vom MXC-SDK in diesem Repository generiert werden, übermäßig permissiv sind; dies wird behoben, bevor dies allgemeiner verfügbar gemacht wird. Eine Partnerschaft mit Sicherheitsforschern während der Reifung von MXC ist willkommen, jedoch sollten derzeit keine MXC-Profile als Sicherheitsgrenzen behandelt werden.

Funktionen

  • Plattformübergreifend: Windows-, Linux- und macOS-Unterstützung mit plattformgerechten Containment-Backends
  • JSON-basierte Konfiguration: Definieren Sie Ausführungsparameter und Sicherheitsrichtlinien über ein versioniertes JSON-Schema
  • Mehrere Containment-Backends: ProcessContainer, Windows Sandbox, LXC, Bubblewrap, Seatbelt (macOS), MicroVM (NanVix), Hyperlight, IsolationSession und WSLC
  • Richtlinienbasierte Sandboxing:
    • Dateisystem-Richtlinie: Listen für schreibgeschützte und beschreibbare Pfade (verweigerte Pfade werden unter Windows noch nicht unterstützt)
    • Netzwerk-Richtlinie: Proxy-Unterstützung (kooperativ unter Linux/macOS), ausgehenden Datenverkehr erlauben/blockieren und backendabhängige Host-Filterung
    • UI-Richtlinie: Zugriffskontrollen für Zwischenablage, Anzeige und GUI
  • Zustandsbewusster Lebenszyklus: Mehrstufiger Sandbox-Lebenszyklus (Provision → Start → Exec → Stop → Deprovision) für Sitzungs-Sandboxes
Tool herunterladen
  • TypeScript-SDK: @microsoft/mxc-sdk npm-Paket mit One-Shot- und zustandsbewussten APIs
  • Diagnose: Debug-Protokollierung und Event Tracing for Windows (ETW) zur Fehlerbehebung
  • Erstellung

    MXC wird mit einem nativen Container-Wrapper sowie einem TypeScript-SDK ausgeliefert – siehe SDK-README für die vollständige API-Dokumentation.

    Plattformen

    PlattformStandard-BackendAndere BackendsMindest-Build
    Windows 11 24H2+ (verifiziert auf 25H2)processcontainerwindows_sandbox, wslc, microvm, hyperlight, isolation_sessionprocesscontainer: 26100 (24H2)
    isolation_session: 26340.9212 (Insider Preview)
    Linux x64 / ARM64bubblewraplxc, microvm, hyperlight—
    macOS ARM64 / x64 (Schema 0.7.0-alpha+)seatbelt——

    Die stabilen One-Shot-Backends (processcontainer, bubblewrap, lxc und seatbelt) erfordern keinen experimentellen Modus; Linux-Hosts benötigen zusätzlich die passende Laufzeit: bwrap (Bubblewrap) für das Standard-Backend oder das lxc-Toolset für das lxc-Backend. Experimentelle Backends (windows_sandbox, wslc, microvm, isolation_session, hyperlight) erfordern { experimental: true } in SandboxSpawnOptions oder das CLI-Flag --experimental.

    Informationen dazu, welche Aspekte der Dateisystem-, Netzwerk- und UI-Beschränkungsrichtlinien das Windows-processcontainer-Backend auf jeder Windows-11-Version (23H2 / 24H2 / 25H2 / 25H2+) durchsetzen kann, finden Sie unter Windows-Betriebssystemversions-Richtlinienunterstützung.

    Anforderungen

    • Rust-Toolchain – Version festgelegt auf 1.93 über src/rust-toolchain.toml (automatisch von rustup ausgewählt)
    • Node.js ≥ 18
    • npm (für SDK- und CLI-Builds)

    Projektstruktur

    root@kitploit:~
    src/        Rust-Workspace (native Binärdateien + Shared-Library-Crates)
    sdk/        TypeScript-SDK (@microsoft/mxc-sdk npm-Paket)
    schemas/    JSON-Konfigurationsschemata (stabil + dev)
    docs/       Dokumentation (Schema-Referenz, Backend-Anleitungen, Design-Dokumente)
    tests/      Testmaterial (Konfigurationen, Beispiele, Skripte)
    scripts/    Build- und Hilfsskripte
    

    Vollständiger Build

    Windows

    root@kitploit:~
    build.bat                  # Release-Build für aktuelle Architektur
    build.bat --debug          # Debug-Build
    build.bat --all            # Release-Build für x64 und ARM64
    build.bat --with-microvm   # NanVix-Micro-VM-Binärdateien einschließen
    

    Linux

    root@kitploit:~
    ./build.sh                 # Release-Build
    ./build.sh --debug         # Debug-Build
    ./build.sh --rust-only     # Nur Rust-Binärdateien, SDK/CLI überspringen
    

    macOS

    root@kitploit:~
    ./build-mac.sh             # Release-Build für native Architektur
    ./build-mac.sh --all       # Sowohl Apple Silicon als auch Intel
    ./build-mac.sh --debug     # Debug-Build
    ./build-mac.sh --rust-only # Nur Rust-Binärdatei, SDK überspringen
    

    Alle Build-Skripte:

    1. Erstellen die plattformgerechte Rust-Binärdatei

    2. Kopieren die Binärdatei in sdk/node/bin/<arch>/ (z. B. x64 oder arm64) für die SDK-Bündelung

    3. Erstellen das TypeScript-SDK

    Einzelne Komponenten erstellen

    root@kitploit:~
    # Rust-Workspace (aus 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 (bedient sowohl LXC als auch Bubblewrap)
    cargo build --release -p mxc_darwin --target aarch64-apple-darwin  # macOS
    
    # SDK (aus sdk/node/)
    npm install && npm run build
    

    Lint und Format

    root@kitploit:~
    # Windows-Rust (aus src/)
    
    cargo clippy --workspace --all-targets -- -D warnings
    
    # Linux-Rust (aus src/; entspricht dem plattformkompatiblen Crate-Satz von 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 (aus src/)
    
    cargo clippy -p mxc_darwin -p seatbelt_common --all-targets -- -D warnings
    

    Tests

    root@kitploit:~
    # Rust-Unit-Tests (aus src/)
    cargo test --workspace
    cargo test -p wxc_common                      # Einzelnes Crate
    cargo test -p wxc_common -- config_parser     # Nach Testnamen filtern
    
    # SDK (aus sdk/node/)
    npm test                     # Unit-Tests
    npm run test:integration     # Integrationstests
    
    # E2E (aus src/)
    cargo test -p wxc_e2e_tests
    

    Verwendung

    MXC verwendet eine JSON-Konfiguration zur Definition von Ausführungsparametern. Siehe die Schema-Dokumentation für die vollständige Referenz.

    Native Binärdatei

    root@kitploit:~
    # Dateipfad
    wxc-exec.exe config.json
    
    # Base64-kodierte Konfiguration
    wxc-exec.exe --config-base64 <base64-kodiertes-json>
    
    # Debug-Ausgabe
    wxc-exec.exe --debug config.json
    

    Unter Linux: ./lxc-exec config.json Unter 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));
    

    Das SDK bietet außerdem eine zustandsbewusste Lebenszyklus-API für langlebige Sandboxes:

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

    Siehe SDK-README für die vollständige API-Dokumentation.

    Schema-Versionen

    Veröffentlichte, unveränderliche stabile Schemata befinden sich in schemas/stable/; das in Arbeit befindliche Dev-Schema (experimentelle Backends, zustandsbewusster Lebenszyklus) befindet sich in schemas/dev/. Die aktuellen stabilen und Dev-Versionen werden kanonisch in schemas/schema-version.json nachverfolgt.

    Wählen Sie das neueste stabile Schema für neuen Code auf jeder unterstützten Plattform. Siehe docs/versioning.md für das vollständige Versionierungsdesign.

    Debugging

    Debug-Konsolenmodus

    Standardmäßig laufen native Binärdateien im stillen Modus – stdin/stdout/stderr ist direkt mit dem Container verbunden. Verwenden Sie --debug für ausführliche Ausgabe:

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

    Siehe docs/diagnostics.md für die vollständige Diagnose-Referenz.

    Audit-Modus (Permissiver Lernmodus)

    --audit ist ein Kompatibilitäts-Wrapper über processContainer.captureDenials im Allow-Modus mit erzwungener ETL-Aufbewahrung. Es injiziert permissiveLearningMode, sodass verweigerte Vorgänge aufgezeichnet, aber ausgeführt werden dürfen. Auf Hosts mit dem vollständigen PSEC/V2-Lernmodus-API-Satz verwendet der ausgewählte ProcessContainer-Runner die native Erfassung, ohne PLM zu starten oder eine Erhöhung anzufordern. Ältere oder richtlinieninkompatible Stufen verwenden den abgesicherten WPR-Fallback: wxc-exec.exe bleibt nicht erhöht und startet einen sitzungsbezogenen, UAC-erhöhten PLM-Guardian nur für den privilegierten WPR-Lebenszyklus, der über eine authentifizierte lokale Named Pipe kommuniziert. Es wird für Windows Sandbox, WSLC, IsolationSession und jedes andere Containment-Backend abgelehnt.

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

    Erfolgreiche Nicht-Trockenlauf-Audits erfordern Erfassungsmetadaten, umsetzbare Denials-JSON und ein aufbewahrtes ETL. Die CLI verschiebt die vom Backend ausgewählten Pfade in denials.json und trace.etl im benutzerspezifischen Audit-Verzeichnis und generiert dann einen Quellkonfigurations-Snapshot und Adjusted_*.json aus der umsetzbaren JSON, ohne das ETL erneut zu dekodieren. Nur-Base64-Eingabe behält JSON und ETL bei, hat aber keine Quellkonfiguration zum Snapshot oder Anpassen. Abgeschnittene Analyse behält JSON, ETL und den Quell-Snapshot bei, überspringt jedoch die Generierung der angepassten Konfiguration. Verwenden Sie --audit-verbose, um Details der gelernten Richtlinie auszugeben.

    Warnung: --audit injiziert permissiveLearningMode – AppContainer-Einschränkungen werden für die Dauer der Ausführung nicht durchgesetzt. Nur für die Richtlinienerstellung verwenden. Es kann nicht mit processContainer.captureDenials kombiniert werden; verwenden Sie captureDenials.mode: "allow" für permissive anwendungsgesteuerte Erfassung. learningModeLogging und permissiveLearningMode sind reservierte interne Capability-Namen und werden in processContainer.capabilities abgelehnt. Siehe docs/learning-mode/capabilities.md für die drei Lernmodus-Abläufe.

    Telemetrie

    MXC unterstützt optionale TraceLogging-ETW-Telemetrie für Ausführungsbeobachtbarkeit. Wenn aktiviert, werden strukturierte Ereignisse (MXC.Execution und MXC.Error) über die Rust-tracelogging-Crate an das lokale ETW-Subsystem ausgegeben. Jedes Ereignis enthält gemeinsame Felder (Version, Channel, IsDebugging, UTCReplace_AppSessionGuid) als benutzerdefinierte Part-C-Ereignisdaten.

    Telemetrie erfordert:

    1. Top-Level-"telemetry": { "enabled": true } in der JSON-Konfiguration
    2. Explizite benutzerspezifische Telemetrie-Einwilligung unter Windows
    3. Eine administrative Richtlinie, die die Erfassung erlaubt, wenn eine Richtlinie konfiguriert ist

    Das Konfigurationsflag ist ein zusätzliches Opt-in pro Ausführung; es kann keine Einwilligung erteilen oder einen administrativen Block umgehen. Telemetrie bleibt aus, es sei denn, jedes zutreffende Gate ist geöffnet. MXC verwendet die Windows-Einstellung „Diagnose & Feedback“ nicht als Ersatz für die Anwendungseinwilligung.

    Auf Nicht-Windows-Plattformen sind alle Telemetriefunktionen No-Ops.

    Datenerfassung

    Die Software kann Informationen über Sie und Ihre Nutzung der Software erfassen und an Microsoft senden. Microsoft kann diese Informationen verwenden, um Dienste bereitzustellen und unsere Produkte und Dienste zu verbessern. Sie können die Telemetrie wie im Repository beschrieben deaktivieren. Es gibt auch einige Funktionen in der Software, die es Ihnen und Microsoft ermöglichen, Daten von Benutzern Ihrer Anwendungen zu erfassen. Wenn Sie diese Funktionen verwenden, müssen Sie geltendes Recht einhalten, einschließlich der Bereitstellung angemessener Hinweise an Benutzer Ihrer Anwendungen zusammen mit einer Kopie der Datenschutzerklärung von Microsoft. Unsere Datenschutzerklärung finden Sie unter https://go.microsoft.com/fwlink/?LinkID=824704. Weitere Informationen zur Datenerfassung und -verwendung finden Sie in der Hilfedokumentation und unserer Datenschutzerklärung. Ihre Nutzung der Software gilt als Ihre Zustimmung zu diesen Praktiken.

    So deaktivieren Sie Telemetrie

    Telemetrie ist standardmäßig deaktiviert. Um sie deaktiviert zu lassen, setzen Sie "telemetry": { "enabled": true } nicht für die Ausführung.

    Wenn Telemetrie in der Konfiguration aktiviert ist, erfolgt die Erfassung dennoch nicht, es sei denn, die Windows-Benutzereinwilligung wurde erteilt und die administrative Richtlinie erlaubt die Erfassung.

    Was offizielle Builds senden

    Offizielle/ausgelieferte Microsoft-Builds legen zur Build-Zeit eine TraceLogging-Provider-Gruppen-GUID fest und leiten MXC.Execution- und MXC.Error-Ereignisse über die UTC-Pipeline an Microsoft weiter, wenn Telemetrie aktiviert ist – dieselbe Build-Zeit-Einstellung wählt auch das korrekte Measures-Keyword und das Product-and-Service-Usage-Datenschutz-Tag für die Ereignisse aus, sodass Telemetrie-Routing und Ereignisklassifizierung immer übereinstimmen. Lokale und Open-Source-Builds senden standardmäßig nichts an Microsoft – der öffentliche Quellcode wird ohne Provider-Gruppen-GUID ausgeliefert, sodass Ereignisse nur an das lokale ETW-Subsystem ausgegeben werden, ein providerlokales Keyword ohne UTC-Bedeutung verwenden und kein Datenschutzklassifizierungs-Tag tragen und nicht an eine Microsoft-Erfassungspipeline weitergeleitet werden. Interne Builds, die die Umgebungsvariable MXC_TELEMETRY_PROVIDER_GROUP_GUID zur Build-Zeit setzen, aktivieren den Microsoft-gerouteten Pfad.

    Es werden keine personenbezogenen Daten erfasst. Ereignisse enthalten nur Ausführungsmetriken (Dauer, Backend-Typ, Exit-Code) und eine begrenzte Fehlerkategorie (error_type). Freiform-Fehlermeldungstext wird nie ausgegeben, sodass Pfade, Benutzernamen und Anmeldeinformationen nicht über Telemetrie durchsickern können. Wenn Sie das SDK zum Erstellen von Anwendungen verwenden, sind Sie dafür verantwortlich, Ihren eigenen Benutzern angemessene Telemetrie-Hinweise bereitzustellen.

    Datenschutzinformationen finden Sie unter https://privacy.microsoft.com und in der Microsoft-Datenschutzerklärung unter https://go.microsoft.com/fwlink/?LinkID=824704.

    Dokumentation

    DokumentBeschreibung
    docs/schema.mdVollständige JSON-Konfigurationsschema-Referenz
    docs/versioning.mdSchema-Versionierung und Lebenszyklus experimenteller Funktionen
    docs/examples.mdKommentierte Konfigurationsbeispiele
    docs/host-prep.mdWindows-Host-Vorbereitung (wxc-host-prep.exe)
    docs/diagnostics.mdDiagnoseprotokollierung und ETW
    docs/sandbox-policy/0.7.0/policy.mdSandbox-Richtlinien-Spezifikation 0.7.0
    docs/process-container/guide.mdWindows-AppContainer-/BaseContainer-Anleitung
    docs/lxc-support/lxc-backend.mdLXC-Backend (Linux)
    docs/bwrap-support/bubblewrap-backend.mdBubblewrap-Backend (Linux)
    docs/seatbelt/seatbelt-backend.mdSeatbelt-Backend (macOS)
    docs/windows-sandbox/windows-sandbox.mdWindows-Sandbox-Backend
    docs/state-aware-lifecycle/mxc-state-aware-sandbox-api.mdZustandsbewusste Sandbox-Lebenszyklus-API
    docs/telemetry/telemetry.md

    Mitwirken

    Siehe CONTRIBUTING.md für Richtlinien zur Mitarbeit.

    Lizenz

    Siehe LICENSE.md für Details.

    TraceLogging-Telemetriearchitektur
    docs/telemetry/telemetry-consent-design.mdTelemetrie-Einwilligungsvertrag
    docs/telemetry/telemetry-administrative-policy.mdAdministrative Telemetriesteuerungen