Skip to main content

supply-chain-scan

Working on RedAmon's supply-chain scanner (offline OSV + GuardDog + retire + trufflehog): the offline OSV database that the scan path does not bootstrap, the world-readable requirement for the hardened scanner, and the soft-error markers that record what was never analysed. Trigger: editing scanners/supply_chain_common/, scanners/supply_chain_analyzer/ or scanners/supply_chain_scan/; touching osv_db_sync.py, osv_runner.py, guarddog_runner.py, deep_recovery.py, or the offline OSV database handling.

Quellinformationen

Repository
samugit83/redamon
Letzte Quellaktivität
10. August 2026 um 11:08
Erkannte Sprache von SKILL.md
Englisch
Sterne
3.106
Forks
646

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
supply-chain-scan
description
Working on RedAmon's supply-chain scanner (offline OSV + GuardDog + retire + trufflehog): the offline OSV database that the scan path does not bootstrap, the world-readable requirement for the hardened scanner, and the soft-error markers that record what was never analysed. Trigger: editing scanners/supply_chain_common/, scanners/supply_chain_analyzer/ or scanners/supply_chain_scan/; touching osv_db_sync.py, osv_runner.py, guarddog_runner.py, deep_recovery.py, or the offline OSV database handling.
license
MIT
metadata
{"author":"redamon","version":"1.0.0","scope":["supply_chain"],"auto_invoke":["Editing the supply-chain scanner or its offline OSV database handling"]}
## When to Use - Changing any of the three supply-chain layers (OSV, GuardDog, retire/trufflehog) or the offline database plumbing. The `supply_chain_common`-must-be-bind-mounted rule is in the [AGENTS.md](../../scanners/supply_chain_scan/AGENTS.md) CRITICAL RULES; this skill is the scanning behaviour. --- ## Critical Rules - **NEVER assume the offline OSV database is populated.** It is filled lazily, per-ecosystem, only on the explicit `--download-offline-databases` step - NOT on every scan and NOT at install time ([scanners/supply_chain_common/osv_db_sync.py](../../scanners/supply_chain_common/osv_db_sync.py)). A scan against an unsynced ecosystem must report it as missing, not crash. - **NEVER `chmod` the OSV DB tighter than world-readable.** The scanner runs hardened and non-root; `osv_db_sync.py` makes the whole tree world-readable/traversable on purpose so the scanner can read it. Restricting it breaks offline scans silently. - **NEVER erase an existing soft-error marker on a failed/invalid analysis.** A package the analyzer never actually inspected is recorded as a `soft_error` ([scanners/supply_chain_common/deep_recovery.py](../../scanners/supply_chain_common/deep_recovery.py)); invalid GuardDog output must be dropped, not allowed to overwrite those markers (regression fixed in commit `c5cd6a16`). - **NEVER run the OSV binary without the `--offline` pairing.** Offline mode uses the `--offline --download-offline-databases` pair; using one without the other either hits the network or reads an empty DB. --- ## Layers | Layer | Runner | Note | | --- | --- | --- | | known vulns | [osv_runner.py](../../scanners/supply_chain_common/osv_runner.py) + [osv_db_sync.py](../../scanners/supply_chain_common/osv_db_sync.py) | offline OSV DB (named volume, lazily synced) | | malicious behaviour | [guarddog_runner.py](../../scanners/supply_chain_common/guarddog_runner.py) | GuardDog heuristics; soft-errors via [deep_recovery.py](../../scanners/supply_chain_common/deep_recovery.py) | | dispatch | [analyzer_dispatch.py](../../scanners/supply_chain_common/analyzer_dispatch.py) | routes a package to the right analyzer | ## Commands ```bash ./redamon.sh supply-chain-sync <ecosystems> # bootstrap the offline OSV DB (separate from scans) ./redamon.sh test unit # supply_chain_* under the root-agent section ``` ## Resources - [docs/readmes/README.SUPPLY_CHAIN.md](../../docs/readmes/README.SUPPLY_CHAIN.md) - the 3-layer architecture and offline DB volume - Related: supply_chain [AGENTS.md](../../scanners/supply_chain_scan/AGENTS.md) CRITICAL RULES (bind-mount `supply_chain_common`)
Auf GitHub ansehen