[Decision D12] Adopter le modèle de menace et les quality gates de test #13
Labels
No labels
Agent/Autonomous OK
Agent/Demeter
Agent/Hermes
Agent/Human
Agent/Needs Review
Area/API
Area/Auth
Area/CLI
Area/Data
Area/Docs
Area/Infra
Area/UI
CI/Failing
CI/Flaky
CI/Green
CI/Needs Runner
CI/Needs Workflow
Compat/Backward Compatible
Compat/Breaking
Compat/Migration
Deploy/Ansible
Deploy/Blocked
Deploy/Homelab
Deploy/Needs Config
Deploy/Needs Secret
Deploy/Ready
Deploy/Rollback
Kind/Bug
Kind/Chore
Kind/Design
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Refactor
Kind/Security
Kind/Spike
Kind/Testing
Ops/Backup
Ops/Incident
Ops/Maintenance
Ops/Monitoring
Ops/Upgrade
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Priority
Someday
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Risk
Critical
Risk
High
Risk
Low
Risk
Medium
Security/Auth
Security/Disclosure
Security/Hardening
Security/Secret
Size
L
Size
M
Size
S
Size
XL
Size
XS
Stack/Ansible
Stack/Docker
Stack/Forgejo
Stack/Hermes
Stack/Node
Stack/Postgres
Stack/Python
Stack/Systemd
Status
Abandoned
Status
Blocked
Status
In Progress
Status
In Review
Status
Need More Info
Status
Ready
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
2027a/auroscope#13
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
MODE: DECISION
Statut
Proposé. Réponse puis go explicite avant clôture.
Question
Quel adversaire AURoscope prétend-il arrêter, quels risques restent assumés et quelles preuves sont obligatoires avant v1 ?
Frontières proposées
Hostiles : dépôts/recettes/fichiers Git, metadata/comments/fixtures, upstreams, contenu modèle et fournisseur LLM. Trusted mais versionnés/testés : Paru/Pacman/makepkg/Git. L’humain décide. Un autre processus du même UID est un risque partiellement mitigé; un compte utilisateur compromis est hors garantie. Pacman seul franchit normalement sudo/root.
Menaces majeures
Symlink/traversal, prompt injection, substitution après revue, replay d’approbation, cache binaire, terminal escapes, PATH/editor/config, secrets/sudo, concurrence Pacman, cleanup escape, Git helpers, partial upgrades, exfiltration LLM et corruption SQLite.
Tests obligatoires proposés
Unit/fuzz
Argv, formats Paru, manifestes byte-safe, règles, JSON LLM, transitions, XDG, escaping; fuzz paths/parsers/allocations.
SQLite
Migrations, FK, claim concurrent, WAL/busy timeout, crash après claim, quick_check, backup/restore/rétention.
Contrats exécutables
Chaque couple Paru/Pacman supporté : sélection stdout/stderr,
--order, hook cwd/env/ordre/cache, skipreview, signaux/TTY/exit, Pacman print/lock.Sécurité
Mutations commit/fichier/mode/symlink/untracked, inode swap, replay/expiry/double claim, prompt injection/schema bomb, crash à chaque transition, marqueurs prouvant aucune exécution de PKGBUILD pendant inspection.
E2E Arch jetable
Repo-only, mixte repo/AUR, upgrade avec defer/reject, sélection native, différentiel, échecs, annulations, cache altéré, migrations/cleanup, packaging AURoscope. Jamais la workstation réelle.
Recommandation
Adopter ces frontières et exiger les preuves d’intégration réelles avant de qualifier v1.
Réponse attendue
Accepte/amende menaces, exclusions ou gates. ADR/clôture uniquement après ton go.
Documentation
Protocole automatique de décision
GO DECISIONn’autorise ni code de production ni plan d’implémentation; ce travail doit avoir son propre ticketMODE: EXECUTION.On cherche uniquement à donner des indices à l'utilisateur pour éviter des attaque par chaîne d'approvisionnement via le AUR. Attention à ne pas faire de sur-ingéniérie et a limiter le scope a ça. On a pas besoin de se protéger de la machine locale. Sa sécurité est la responsabilité de l'utilisateur
Ticket classé comme décision humaine. La discussion continue ici, mais aucune implémentation ni ADR accepté ne sera produit tant que Mathieu n’aura pas publié exactement
GO DECISIONdans un commentaire distinct.Tu as raison : la proposition initiale débordait largement le besoin produit. Elle mélangeait la détection d’indices de compromission AUR avec le durcissement général de la machine et du moteur d’exécution.
Je vois trois niveaux possibles :
Ma recommandation actuelle est B, avec des gates v1 volontairement courts :
Je retirerais des gates v1 les protections contre processus local hostile, inode swap, replay d’approbation, corruption/backup SQLite, concurrence Pacman, PATH/editor, cleanup escape et durcissement général de sudo. On conserve seulement les tests de robustesse nécessaires au fonctionnement de l’application, sans les présenter comme une garantie contre une machine locale compromise.
Autrement dit, AURoscope fournit une aide à la revue contre le risque de chaîne d’approvisionnement AUR; ce n’est ni une sandbox, ni un antivirus, ni une frontière de sécurité locale. Cette recommandation reste en discussion et ne vaut pas acceptation de la décision.
GO DECISION
Décision D12 consignée et vérifiée.
ADR-0013 — AUR supply-chain threat model and v1 test gates7dc5813af2f0f8La documentation limite désormais explicitement le modèle de menace aux entrées hostiles de la chaîne d’approvisionnement AUR et fixe les quatre gates v1 acceptés. La machine locale et le compte utilisateur restent hors garantie. Aucun code de production ni plan d’implémentation n’a été créé.
Vérifications :
git diff --check, résolution de tous les liens Markdown locaux, signatures Git SSH valides, branches distantes et tête de PR relues via Git/API.