Aller au contenu

Sécurité : ce que le code garantit

Garantie Où dans le code Test
Confirmation humaine avant toute action ; les outils dangereux (listés, ou annotés destructiveHint par leur serveur MCP) ne sont jamais auto-confirmés, même en mode performance ou avec -y lyra/core/constants.py (DANGEROUS_TOOLS, DESTRUCTIVE_TOOLS), lyra/daemon/actions.py (_should_skip_confirmation) tests/unit/test_confirm_prompt.py
Arguments validés par liste blanche avant tout script shell (noms de VM, chemins, commentaires) scripts/async_mcp_wrapper.py, lyra/core/validation.py tests/unit/test_async_wrapper_validation.py
Lecture de l'état réel avant d'agir (read-first) lyra/core/validation.py (validate_vm_existence) tests/unit/rules/
Scripts privilégiés copiés en root et autorisés un par un dans sudoers.d, jamais de sudo global installer/core/steps/mcps.py tests/installer/test_mcps_sudoers.py
Secrets hors de config.yaml (fichier secrets.yaml en 0600, jeton GitHub jamais écrit sur disque) secrets.yaml.example, installer/core/gitauth.py tests/installer/test_gitauth.py
Aucun chemin personnel ni adresse privée dans le dépôt garde-fou CI (workflow) tests/unit/test_paths.py
Versions vérifiables : tag signé, uv.lock contrôlé en CI, chaque wheel et sdist publié avec sbom.json (CycloneDX) et deux attestations Sigstore (provenance, SBOM) .github/workflows/release.yml, procédure gh attestation verify <wheel> --owner amineutron
Local par défaut : aucune sortie réseau sans configuration explicite docs/user/DATA_FLOWS.md vérification par grep décrite dans le document

Signaler une faille : politique de sécurité.

Ce qui est capté, ce qui est gardé et ce qui sort de la machine est détaillé dans Flux de données.