# Datenverarbeitung und Datenschutz

> Keine Telemetrie, kein stilles Selbst-Update. Die elf Flüsse des npm-Pakets, die Daten von deiner Maschine senden können, je mit Was, An wen, Wann und Einwilligungsgrundlage, und was lokal bleibt.

Canonical: https://bmad-plus.rochetta.fr/de/docs/security/data-handling/
Language: de
BMAD+ version: 0.23.1
Documentation reviewed: 2026-10-19
Author: Laurent Rochetta
License: MIT

BMAD+ Dokumentation › [Sicherheit und Daten](https://bmad-plus.rochetta.fr/de/docs/security/) › Datenverarbeitung und Datenschutz

Diese Seite beantwortet eine Frage: Was kann BMAD+ von meiner Maschine senden, an wen und mit wessen Zustimmung? Die kurze Antwort: Es gibt keine Telemetrie und kein stilles Selbst-Update; elf Flüsse des npm-Pakets können das Netzwerk erreichen oder ein Programm starten, das es tut, und jeder ist an eine Einwilligungsgrundlage gebunden, die du kontrollierst. Die Liste ist kein handgeschriebenes Marketing: Sie wird aus einer Deklaration in der Registry generiert, und vor jedem Release durchsucht der Continuous-Integration-Job den ausgelieferten Quellcode und scheitert, wenn ein Netzwerkaufruf, ein Listener oder ein Prozessstart in der Deklaration fehlt oder ein deklarierter nicht mehr existiert. Der Referenztext ist der Abschnitt Data handling in `SECURITY.md` im BMAD+-Repository; diese Seite spiegelt ihn und erklärt, wie man ihn liest.

> **Hinweis · Was „über ein gestartetes Programm“ bedeutet** In den Tabellen heißt „direkt“, dass ein BMAD+-Skript die Anfrage selbst stellt. „Über ein gestartetes Programm“ heißt, dass BMAD+ ein Werkzeug startet (npm, uv oder pip, git, Codex CLI, Chromium oder einen von dir deklarierten Befehl) und dieses Werkzeug sendet. Das Herunterladen von BMAD+ selbst mit `npx` erledigt npm und ist keiner der Flüsse unten.

<a id="consent-bases"></a>
## Die vier Einwilligungsgrundlagen

**So liest man die Spalte Einwilligung**

| Grundlage | Bedeutung |
| --- | --- |
| opt-out | Es geschieht standardmäßig nach der Projektrichtlinie, und du kannst es abschalten. |
| opt-in | Es geschieht nie, außer du verlangst es mit einer Option, einer Bestätigung oder einer ausdrücklichen Richtlinie. |
| invocation | Es geschieht nur, wenn du (oder dein Assistent auf deine Bitte) den Befehl ausführst, der es tut, mit einer von dir gelieferten Eingabe. |
| credential | Es geschieht nur, wenn du den Schlüssel (oder die URL) gesetzt hast, den der Anbieter braucht; ohne Zugangsdaten wird nichts gesendet. |

<a id="the-eleven-flows"></a>
## Die elf Flüsse, die die Maschine verlassen können

**Flüsse des npm-Pakets (nach SECURITY.md)**

| Fluss | Wie er hinausgeht | Was | An wen | Wann | Einwilligung |
| --- | --- | --- | --- | --- | --- |
| `update-check` (cli) | Über ein gestartetes Programm | Paketname und Kanal (`npm view bmad-plus@latest`) mit den Anfrage-Metadaten von npm: IP-Adresse, User-Agent (npm-, Node.js- und OS-Versionen) und npm-Sitzungs-Header. | registry.npmjs.org (die Richtlinie akzeptiert keine andere Registry) | `bmad-plus update-check`, das die generierten Adapter den Agent einmal pro Sitzung ausführen lassen; die Antwort wird in `.bmad/update-check.json` zwischengespeichert. | opt-out: `bmad-plus update-policy --mode off` stoppt jede Abfrage. |
| `update-apply` (cli) | Über ein gestartetes Programm | Die genau angeforderte Version, mit den Anfrage-Metadaten von npm, um das Paket dieser Version herunterzuladen. | registry.npmjs.org | `bmad-plus update --latest --yes` oder `--auto`, wenn die Projektrichtlinie es erlaubt. | opt-in: Jeder Lauf braucht `--yes` oder den Richtlinienmodus `auto` mit ausdrücklichem Bereich. |
| `python-provision` (cli) | Über ein gestartetes Programm | Die Namen und Versionen in der requirements.txt des Packs, mit den Anfrage-Metadaten des Installers; uv kann auch einen Python-Build herunterladen. | pypi.org und files.pythonhosted.org oder der auf der Maschine für pip oder uv konfigurierte Index; github.com (python-build-standalone-Releases), wenn uv Python herunterlädt. | `bmad-plus install --provision-python` für ein gewähltes Python-Pack. | opt-in: nur mit `--provision-python`; ohne wird keine Umgebung angelegt. |
| `nexus-worker` (cli) | Über ein gestartetes Programm | Mit `codex-exec` gehen die Anweisung der Aufgabe und ihre Eingabedateien (höchstens 1 MiB) an Codex CLI, das sie an den Modellanbieter deines eigenen Codex-Logins sendet. Mit `command` das, was dieser Befehl sendet. | Der in deinem Codex CLI konfigurierte Modellanbieter; wen ein deklarierter Befehl kontaktiert. | `bmad-plus nexus launch` auf einen Plan mit ausdrücklichem Ausführungsvertrag. | invocation: Nichts startet ohne einen von dir geschriebenen Plan und einen ausdrücklichen Start; Shell, Umgebung und beliebige Codex-Flags werden abgelehnt. |
| `nexus-verifier` (cli) | Über ein gestartetes Programm | Was der deklarierte Befehl sendet; er läuft mit einer minimalen Allowlist-Umgebung. | Wen der deklarierte Befehl kontaktiert. | `bmad-plus nexus verify` bei einer Aufgabe eines von dir geschriebenen Plans. | invocation: Der Befehl und sein Hash sind im Plan fixiert; eine geänderte ausführbare Datei wird abgelehnt. |
| `uat-page-results` (core) | Direkt | Der Lauf: Testername, Schrittergebnisse und Notizen. | Der Ursprung, der die Seite ausliefert: `bmad-plus uat serve` auf 127.0.0.1 oder der claude.ai-Artefaktspeicher, wenn die Seite als Artefakt veröffentlicht wird. | Jedes erfasste Ergebnis, wenn die Seite ausgeliefert wird; eine aus einer Datei geöffnete Seite behält Ergebnisse im Browser. | invocation: Der Tester wählt, wie die Seite geöffnet wird; eine aus einer Datei geöffnete Seite sendet nichts. |
| `osint-providers` (osint) | Direkt | Die Recherchenanfrage (Namen, Handles, Stichwörter und URLs zum Gegenstand) und der API-Schlüssel dieses Anbieters, über verifiziertes HTTPS: Der gemeinsame Helfer lehnt jedes andere Schema und jede Weiterleitung weg vom Host des Anbieters ab. | api.apify.com, api.exa.ai, r.jina.ai, s.jina.ai, deepsearch.jina.ai, api.parallel.ai, api.perplexity.ai, api.tavily.com, die von dir konfigurierte Bright-Data-MCP-URL. | Wenn der Agent Shadow oder `volley.py`, das auf die anderen auffächert, bei einer Recherche ein Anbieter-Skript ausführt. | credential: Ein Anbieter wird erst kontaktiert, wenn sein Schlüssel (oder die Bright-Data-MCP-URL) gesetzt ist; das Rechtsgrundlagen-Gate der Phase minus 1 geht dem Profiling einer namentlich genannten Person voraus. |
| `seo-site-fetch` (seo) | Direkt | HTTP-Anfragen für die Seiten der geprüften Website, robots.txt und Sitemap, mit dem vom Audit gewählten User-Agent, von deiner IP-Adresse. | Die Website, die du prüfen lässt (nur öffentliche Adressen). | `seo_fetch.py` und `seo_crawl.py`, von den SEO-Agenten bei einem Audit ausgeführt. | invocation: Nur die von dir genannte URL und ihre internen Links werden abgerufen; private, Loopback- und Link-Local-Adressen werden abgelehnt. |
| `seo-google-apis` (seo) | Direkt | Die geprüfte URL oder der Ursprung und dein `GOOGLE_API_KEY` im Header `x-goog-api-key`, nie in der Anfrage-URL; Weiterleitungen werden nicht verfolgt. | `www.googleapis.com`, `chromeuxreport.googleapis.com`, `searchconsole.googleapis.com` | `seo_apis.py`, in der Performance-Phase eines Audits ausgeführt. | credential: nur wenn `GOOGLE_API_KEY` gesetzt ist; ohne ihn gibt das Skript einen Fehler zurück und sendet nichts. |
| `seo-screenshot` (seo) | Über ein gestartetes Programm | Die Anfragen von Chromium für die geprüfte Seite und die Ressourcen, die ihr eigener Host liefert, mit einem Browser-User-Agent, von deiner IP-Adresse. Drittanbieter-Ressourcen werden blockiert, nicht abgerufen. | Die Website, die du prüfen lässt (nur öffentliche Adressen). | `seo_screenshot.py`, wenn ein Audit Screenshots verlangt. | invocation: nur die von dir genannte URL, mit dem von dir installierten Playwright und Chromium; nicht öffentliche Adressen, andere Hosts und Weiterleitungen weg vom Host werden abgelehnt. |
| `assurance-checks` (cli) | Über ein gestartetes Programm | Was ein deklarierter Prüfbefehl sendet; die CLI selbst sendet nichts. | Wen ein deklarierter Prüfbefehl kontaktiert. | `bmad-plus assurance run` auf einen von dir geschriebenen Fall. | invocation: Nur die in deiner eigenen Fall-Datei gelisteten Befehle laufen, und nur bei einem ausdrücklichen `assurance run`; der Signaturschlüssel wird nie an eine Prüfung übergeben. |

<a id="what-to-do"></a>
## Bewusst weniger tun

**Wenn du begrenzen willst, was die Maschine verlässt**

| Du willst | Tu das |
| --- | --- |
| Überhaupt keine Registry-Abfrage | `npx bmad-plus update-policy --mode off`. Die generierten Anweisungen stellen dann fest, dass die Prüfung aus ist, und setzen die Aufgabe fort. |
| Prüfen ohne Anfrage | `update-check --offline`: Es startet keine Registry-Anfrage und meldet unbekannt. |
| Keine Python-Umgebung | Gib `--provision-python` nicht an. Das SEO-Pack arbeitet dann im Nur-Prompts-Modus. |
| Keine Daten über Nexus an einen Modellanbieter | Schreibe keinen Plan mit `codex-exec` und führe `nexus launch` nicht aus. Der Host-gesteuerte Ablauf sendet selbst nichts. |
| Keine OSINT-Aufrufe | Setze keinen Anbieterschlüssel. Ein Anbieter wird nur kontaktiert, wenn sein Schlüssel gesetzt ist. |
| Kein SEO-Verkehr | Führe kein SEO-Audit aus und lass `GOOGLE_API_KEY` ungesetzt, um die Google-APIs zu überspringen. |
| Eine Abnahmeseite, die niemandem etwas verrät | Öffne die gebaute Seite aus einer Datei, statt sie als Artefakt zu veröffentlichen: Sie behält die Ergebnisse im Browser und sendet nichts. |

<a id="stays-local"></a>
## Was auf der Maschine bleibt

- `npx-launcher` (cli): startet die CLI in derselben Node.js-Programmdatei, bei jedem Lauf von `npx bmad-plus`.
- `python-health` (cli): führt das eigene Python der Umgebung eines Packs isoliert (`-I`) aus, um zu bestätigen, dass seine Module importierbar sind. Wann: `bmad-plus doctor` in einem Projekt mit bereitgestelltem Python-Pack.
- `review-git` (cli): liest das lokale Repository mit git (rev-parse, merge-base, diff, ls-files, show), um einen Review-Scope zu bilden.
- `nexus-git` (cli): liest Repository-Stamm und HEAD-Commit mit `git rev-parse` für Nexus-Pläne und -Läufe.
- `uat-serve` (cli): liefert eine Protokollseite aus und speichert ihre Ergebnisse, hört nur auf 127.0.0.1 und lehnt jeden anderen Host-Header ab.
- `uat-release-gate` (core): führt die projekteigene bmad-plus-CLI mit dem aktuellen Node.js aus, um erfasste Abnahmeläufe zu bewerten, wenn das Projekt das Release-Gate-Skript ausführt.
- `osint-install` (osint): kopiert den OSINT-Agent und die Skills in ein Projekt und führt dann das lokale Diagnoseskript des Packs mit dem System-Python aus, wenn du das Installationsskript des Pakets ausführst.

<a id="maintainer-services"></a>
## Maintainer-Dienste, nicht Teil des Pakets

Das Repository enthält außerdem zwei Dienste, die der Maintainer auf eigenen Servern betreibt: den Audit-360°-MCP-Server (Tools für git, GitHub, Gamma, CI, RAG und Gedächtnis für die Agenten des Maintainers, hinter einem Bearer-Token und einem passwortgeschützten Dashboard) und den Upstream-Monitor (er beobachtet das BMAD-METHOD-Repository und benachrichtigt den Maintainer). Sie sind nicht im npm-Paket, und Nutzer installieren sie nicht. Ihre eigenen Flüsse werden gleich deklariert und vom selben Gate geprüft; `SECURITY.md` listet sie vollständig.

<a id="guarantees"></a>
## Fakten zu Lieferkette und Veröffentlichung

- Sieben Laufzeit-Abhängigkeiten (`@clack/prompts`, `commander`, `design-skill`, `fs-extra`, `js-yaml`, `picocolors`, `semver`). `design-skill` liefert die Skill-Dateien, die BMAD+ bei der Installation kopiert, und einen Linker-Befehl, den BMAD+ nie ausführt.
- Produktions-Abhängigkeiten werden vor jedem Release geprüft; hohe und kritische Befunde blockieren die Veröffentlichung. Gepflegte Python-Anforderungen werden in der CI geprüft und blockieren die Veröffentlichung bei bekannten Befunden.
- Geheimnisse der Projekt-Automatisierung liegen in GitHub Actions Secrets, nie im Code; das lokale Geheimnis-Verzeichnis steht in der gitignore; die Pipeline bereinigt private Verzeichnisse vor der öffentlichen Verteilung.
- npm-Pakete werden aus bereinigten Distributionskopien ohne Eltern-Commit oder Quellverlauf gebaut. Jedes Release behält seine CycloneDX-Produktions-SBOM, sein Archiv und sein Integritätsmanifest als Workflow-Artefakte, und die Registry-Integrität muss dem geprüften Archiv entsprechen, bevor die Website ausgerollt wird.
- Die Veröffentlichung nutzt npm-OIDC-Authentifizierung. npm-Provenance ist nicht aktiviert, weil das private Build-Repository und das Distributions-Repository sich unterscheiden; ein Inventar oder ein Hash ist keine Provenance-Bescheinigung, und das Projekt sagt das.
- Schreib- und Löschvorgänge lehnen Symlinks und Junctions ab. Zugangsdaten stehen nie in URLs (der Google-Schlüssel geht in einen Header). Die Abnahmeseite lädt nichts von einem anderen Ursprung.

<a id="report-a-vulnerability"></a>
## Eine Schwachstelle melden

Nutze das private Melden von Schwachstellen bei GitHub: im Repository, Reiter Security, „Report a vulnerability“ ([Schwachstelle melden](https://github.com/lrochetta/BMAD-PLUS/security/advisories/new)). Die Meldung bleibt zwischen dir und dem Maintainer privat. Wenn du es nicht nutzen kannst, schreibe an `l.rochetta@gmail.com` mit dem Betreff `[SECURITY] BMAD+ - Brief description`. Gib eine Beschreibung, Reproduktionsschritte, eine Auswirkungsabschätzung, die betroffenen Versionen und optional einen Korrekturvorschlag an. Eröffne kein öffentliches Issue, nutze nicht über einen Proof of Concept hinaus aus und veröffentliche nichts vor einem Fix. Gültige Melder werden im Changelog genannt, sofern sie nicht anonym bleiben möchten.

**Reaktionsziele**

| Schwere | Bestätigung | Fix-Ziel |
| --- | --- | --- |
| Kritisch | 24 Stunden | 72 Stunden |
| Hoch | 48 Stunden | 7 Tage |
| Mittel | 7 Tage | 30 Tage |

**Siehe auch**

- [Vertrauen und Eigentum](https://bmad-plus.rochetta.fr/de/docs/security/trust-and-ownership/)
- [Referenz: update-check](https://bmad-plus.rochetta.fr/de/docs/reference/cli-update-check/)
- [Referenz: update-policy](https://bmad-plus.rochetta.fr/de/docs/reference/cli-update-policy/)
- [Nexus und das Prozess-Backend](https://bmad-plus.rochetta.fr/de/docs/concepts/nexus-orchestration/)
- [FAQ](https://bmad-plus.rochetta.fr/de/docs/faq/faq/)

[BMAD+ Dokumentation](https://bmad-plus.rochetta.fr/de/docs/) · [Sicherheit und Daten](https://bmad-plus.rochetta.fr/de/docs/security/)

[Quellcode auf GitHub](https://github.com/lrochetta/BMAD-PLUS)
