mirror of
https://github.com/prompt-security/clawsec.git
synced 2026-06-15 14:31:21 +03:00
b37162a33d
* feat(i18n): add multilingual wiki scaffolding, language switcher, and translation QA pipeline * docs(readme): adopt picoclaw-style multilingual link bar * fix(i18n): repair localized index links and tighten partial-pair QA * ci(i18n): fail on broken markdown links in README/wiki * ci(i18n): add changed-files mode for markdown link checks * i18n(de): use local Argos MT to fill untranslated German sections * i18n(es,fr): fill untranslated sections via local Argos workflow * i18n(ja): fill untranslated sections with scoped local Argos pass * i18n(ko): fill untranslated sections with scoped local Argos pass * fix(i18n): address review feedback --------- Co-authored-by: David Abutbul <David.a@prompt.security>
104 lines
6.0 KiB
Markdown
104 lines
6.0 KiB
Markdown
<!-- AUTO-GENERATED TRANSLATION SCAFFOLD (de)
|
|
Source: ../data-flow.md
|
|
Review status: draft
|
|
-->
|
|
|
|
# Datenfluss
|
|
|
|
Primäre Ströme
|
|
- `Advisory ingestion`: NVD/Gemeinde-Eingänge werden in einen normalisierten Beratungsfeed umgewandelt, signiert, dann für Kunden gespiegelt.
|
|
- `Skill catalog publication`: Freigabevermögen werden entdeckt und in `public/skills/index.json` plus per-skill docs/checksums umgewandelt.
|
|
- `Runtime enforcement`: Suite- und Nanoclaw-Verbraucher laden beratende Daten, passen gegen Fähigkeiten und senden Alarme oder Bestätigungs-Gate aus.
|
|
- Ja. Diese Seite erscheint unter dem `Guides` Abschnitt in `INDEX.md`.
|
|
|
|
Schritt für Schritt
|
|
ANHANG Feed-Produzent Workflow/script holt Quelldaten (`NVD API` oder Ausgabe Payload) ab.
|
|
2. JSON-Transformationslogik normalisiert Schwere/Typ/beeinflusste Felder und dedupliziert durch Beratungs-ID.
|
|
3. Signatur/Checksum-Schritte erzeugen abgelöste Signaturen und Prüfsummen manifestiert.
|
|
4. Bereitstellung von Workflow-Spiegeln signiert Artefakte unter `public/` und `public/releases/latest/download/`.
|
|
5. UI-Verbraucher validieren JSON Shape/Content; Laufzeit-Verbraucher überprüfen zusätzlich Signaturen/Checksums vor vertrauensvollen Feed-Daten.
|
|
6. Die Matcher vergleichen `affected`-Spezifikatoren mit Geschicksnamen/Versionen und senden Alarme aus oder setzen die Bestätigung durch.
|
|
|
|
Eingänge und Ausgänge
|
|
Inputs/Outputs sind in der folgenden Tabelle zusammengefasst.
|
|
|
|
| Typ | Name | Standort | Beschreibung |
|
|
| --- | --- | ---
|
|
| Input | CVE Payloads | `services.nvd.nist.gov/rest/json/cves/2.0` | Source Schwachstellen gefiltert durch ClawSec Keywords. |
|
|
| Input | Community Advisory Issue | `.github/workflows/community-advisory.yml` Event Payload | Maintainer-genehmigte Ausgabe verwandelt in Advisory Record. |
|
|
| Input | Skill release Assets | GitHub veröffentlicht API + Assets | Wird verwendet, um Webkatalog und Spiegel-Downloads zu erstellen. |
|
|
| Input | Local config/env | `OPENCLAW_AUDIT_CONFIG`, `CLAWSEC_*` vars | Controls Feed-Tracking, Unterdrückung und Verifikationsverhalten. |
|
|
| Ausgabe | Beratender Feed | `advisories/feed.json` | Canonical Repository Feed. |
|
|
| Ausgabe | Beratende Signatur | `advisories/feed.json.sig` | Entschlossene Signatur für Feed-Authentizität. |
|
|
| Ausgabe | Skill Katalogindex | `public/skills/index.json` | Runtime Webkatalog verwendet von `/skills` Seiten. |
|
|
| Ausgabe | Release Schecksums/signatures | `release-assets/checksums.json(.sig)` | Integrity manifest for release Konsumenten. |
|
|
| Ausgabe | Hook state | `~/.openclaw/clawsec-suite-feed-state.json` | Verfolgen Sie Scan-Terminal und angezeigte Spiele. |
|
|
|
|
oder Datenstrukturen
|
|
| Struktur | Schlüsselfelder | Zweck |
|
|
--- | --- | ---
|
|
| Beratender Feed-Record | `id`, `severity`, `type`, `affected[]`, `published`_ | Einheit der von UI und Installern verwendeten Risikodaten. |
|
|
| Skill Metadatensatz | `id`, `name`, `version`, `emoji`, `tag` | Katalogzeile für Web-Browsing und Installationsbefehle. |
|
|
| Checksums manifest | `schema_version`, `algorithm`, `files` | Kartendateinamen, die erwartete Verdauungen aufweisen. |
|
|
| Beratender Zustand | `known_advisories`, `last_hook_scan`, `notified_matches` | Verhindert wiederholte Warnungen und Drosseln Scans. |
|
|
| Suppression config | `enabledFor[]`, `suppressions[]` | Gezielte Liste der Skipisten von `checkId` + `skill`.
|
|
|
|
(Diagramme)
|
|
```mermaid
|
|
flowchart LR
|
|
A["NVD + Issue Inputs"] --> B["Transform + Deduplicate"]
|
|
B --> C["advisories/feed.json"]
|
|
C --> D["Sign + checksums"]
|
|
D --> E["public/advisories + releases/latest"]
|
|
E --> F["Web UI fetch"]
|
|
E --> G["Suite/NanoClaw verification"]
|
|
G --> H["Match skills + emit alerts/gates"]
|
|
```
|
|
|
|
Zustand und Lagerung
|
|
| Pfad/Scope | Pfad schreiben |
|
|
--- | --- | ---
|
|
| Canonical Advisories | `advisories/` | NVD + Community Workflows und lokales Populärskript. |
|
|
| Embedded-Beratungskopien | `skills/clawsec-feed/advisories/` und `skills/clawsec-suite/advisories/` | Sync/Packaging-Prozesse und Release-Workflow. |
|
|
| Öffentliche Spiegel | `public/advisories/`, `public/releases/` | Workflow bereitstellen. |
|
|
| Laufzeit Zustand | `~/.openclaw/clawsec-suite-feed-state.json` | Beratender Haken Zustand Beharrlichkeit. |
|
|
| NanoClaw cache | `/workspace/project/data/clawsec-advisory-cache.json` | Host-side Advisory cache manager. |
|
|
| Integritätszustand | `/workspace/project/data/soul-guardian/` (NanoClaw) | Integritätsmonitor Basis-/Auditspeicher. |
|
|
|
|
Beispiel Snippets
|
|
```bash
|
|
# Local feed flow (NVD fetch -> transform -> sync)
|
|
./scripts/populate-local-feed.sh --days 120
|
|
jq '.updated, (.advisories | length)' advisories/feed.json
|
|
```
|
|
|
|
```bash
|
|
# Runtime guarded install uses signed feed paths
|
|
CLAWSEC_LOCAL_FEED=~/.openclaw/skills/clawsec-suite/advisories/feed.json \
|
|
CLAWSEC_FEED_PUBLIC_KEY=~/.openclaw/skills/clawsec-suite/advisories/feed-signing-public.pem \
|
|
node skills/clawsec-suite/scripts/guarded_skill_install.mjs --skill test-skill --dry-run
|
|
```
|
|
|
|
Nicht verfügbar
|
|
- NVD-Ratenlimits (`403/429`) können die Feed-Erfrischung verzögern und Retries/Backoff benötigen.
|
|
- Fehlende oder ungültige abgelöste Signaturen verursachen die Ablehnung von Futtermitteln im fehlgeschlagenen Modus.
|
|
- HTML Fallback-Antworten für JSON Endpunkte können falsche Positive erzeugen, es sei denn, explizit gefiltert.
|
|
- Die Path-token-Fehlerkonfiguration (`\$HOME`) kann die lokale Fallbackpfadauflösung brechen.
|
|
- Unübertroffene öffentliche Schlüssel Fingerabdrücke in Workflows lösen harte CI-Versagen aus.
|
|
|
|
Quellenangaben
|
|
- Berater/feed.json
|
|
- Berater/feed.json.sig
|
|
- Skripte/Popula-lokal-feed.sh
|
|
- Skripte/Popula-lokal-skills.sh
|
|
- .github/workflows/poll-nvd-cves.yml
|
|
- .github/workflows/community-advisory.yml
|
|
- .github/workflows/deploy-pages.yml
|
|
- .github/workflows/skill-release.yml
|
|
- Fertigkeiten/Clawsec-suite/hooks/clawsec-advisory-guardian/lib/feed.mjs
|
|
- Fertigkeiten/Clawsec-suite/hooks/clawsec-advisory-guardian/lib/state.ts
|
|
- Fähigkeiten/Clawsec-suite/hooks/clawsec-advisory-guardian/lib/matching.ts
|
|
- Fertigkeiten/Clawsec-suite/scripts/guarded_skill_install.mjs
|
|
- Fertigkeiten/Clawsec-nanoclaw/lib/advisories.ts
|
|
- Fähigkeiten/Clawsec-nanoclaw/host-services/advisory-cache.ts
|