Aller au contenu principal
POLITIQUES DÉTERMINISTES • EXECUTION FIREWALL

Règles du Pare-feu d'Exécution

Configuration des listes blanches d'outils, plafonds financiers par transaction, blocage SSRF (RFC 1918) et contraintes sur arguments.

Règles du Pare-feu d'Exécution

Règles du Pare-feu d'Exécution (Execution Firewall)

Les règles de sécurité (Execution Boundaries) constituent le cœur défensif de Boundry. Elles définissent avec précision les limites d'autonomie accordées à chaque agent lorsqu'il interagit avec des outils externes (APIs, bases de données, shell, services tiers).

Chaque appel d'outil est évalué de manière déterministe en pré-exécution : aucune instruction n'est transmise aux systèmes sous-jacents si les conditions de sécurité ne sont pas strictement satisfaites.


1. Structure d'une Règle de Sécurité​

Les règles peuvent être configurées directement depuis l'interface Web Boundry ou provisionnées sous forme déclarative (Infrastructure as Code) :

boundry-security-rules.yaml
# 1. Règle de frontière financière avec Quarantaine humaine (HITL)
- id: rule_refund_ceiling_01
name: "Plafond d'autorisation pour les remboursements"
description: "Suspend tout remboursement unitaire supérieur à 500 € pour revue humaine."
agent_scope: ["support-agent-prod", "billing-worker"]
tool_target: "refund_customer"
condition:
field: "arguments.amount"
operator: "GREATER_THAN"
value: 500.00
action: "QUARANTINE" # Options: ALLOW, BLOCK, QUARANTINE, ALERT
severity: "HIGH" # Options: LOW, MEDIUM, HIGH, CRITICAL
enabled: true

# 2. Protection réseau contre les requêtes SSRF et fuites de métadonnées
- id: rule_ssrf_metadata_block
name: "Bouclier anti-SSRF Cloud Metadata"
description: "Interdit formellement les requêtes vers l'IP de métadonnées AWS/GCP/Azure."
agent_scope: ["*"]
tool_target: "http_client"
condition:
field: "arguments.url"
operator: "CONTAINS"
value: "169.254.169.254"
action: "BLOCK"
severity: "CRITICAL"
enabled: true

# 3. Restriction d'exécution par plage horaire
- id: rule_business_hours_only
name: "Fenêtre horaire d'exécution stricte"
description: "Interdit les mutations d'infrastructure en dehors des heures de bureau."
agent_scope: ["infra-devops-agent"]
rule_type: "time_window"
start_time: "08:30"
end_time: "19:00"
action: "BLOCK"
severity: "MEDIUM"
enabled: true

2. Opérateurs de Condition Disponibles​

Le moteur d'évaluation supporte une grammaire complète de prédicats sur les arguments d'outils (arguments.*) ou les métadonnées de session (context.*) :

OpérateurSyntaxe de DéfinitionExemple ConcretDescription Technique
Égalité stricteEQUALSarguments.currency == "EUR"Correspondance exacte de valeur (chaîne, nombre ou booléen).
DifférenceNOT_EQUALSarguments.environment != "production"Rejette ou isole une valeur spécifique.
Comparateurs numériquesGREATER_THAN, LESS_THAN, GTE, LTEarguments.amount > 1000Évaluation arithmétique de plafonds financiers ou de volumes.
Liste blanche (Allowlist)IN_LISTarguments.domain IN ["api.stripe.com", "slack.com"]Autorise exclusivement les cibles déclarées dans la liste.
Liste noire (Denylist)NOT_IN_LISTarguments.table NOT_IN ["credentials", "billing_tokens"]Interdit l'accès à des ressources sensibles identifiées.
Recherche de motifCONTAINS, NOT_CONTAINSarguments.query CONTAINS "DROP TABLE"Détecte la présence d'une chaîne ou d'une sous-instruction.
Expression RégulièreREGEX_MATCHarguments.path REGEX_MATCH "^/var/log/[a-zA-Z0-9_-]+\.log$"Validation stricte par expression rationnelle sécurisée (ReDoS-safe).

3. Les 4 Actions de Décision​

Lorsque les conditions d'une règle sont satisfaites, Boundry applique immédiatement l'action programmée :

  1. BLOCK Rejet Ferme : L'exécution est interrompue sur-le-champ. Le Sensor lève une exception BoundryBlockException dans le runtime de l'agent et consigne une alerte de sécurité.
  2. QUARANTINE Suspension & Quarantaine (HITL) : L'exécution de l'outil est mise en pause. Une notification d'alerte est expédiée sur le tableau de bord ou par Webhook (Slack / PagerDuty). Un opérateur humain peut approuver ou refuser l'exécution en un clic.
  3. ALERT Surveillance Passive : L'outil s'exécute normalement, mais l'événement est annoté comme suspect dans le registre d'audit pour revue ultérieure.
  4. ALLOW Autorisation Prioritaire : Règle d'exemption explicite permettant de déroger à une politique de sécurité plus large.

4. Pipeline d'Évaluation en Cascade​

L'évaluation des règles s'effectue dans un ordre rigoureux et optimisé pour garantir un temps de réponse minimal :

[Requête d'outil entrante]


[1. Vérification d'Allowlist d'Outil] Outil non autorisé ? OUI : Rejet immédiat (403)
AUTORISÉ

[2. Protection Réseau SSRF] Cible interne/metadata ? OUI : Rejet immédiat (403)
SAFE

[3. Détection d'Injection de Prompt] Payload hostile ? OUI : Quarantaine / Blocage
SAFE

[4. Filtre DLP & Caviardage] Masquage PII / Secrets (`[REDACTED]`)


[5. Évaluation des Plafonds Métier] Règle QUARANTINE ? OUI : Suspension HITL (202)
CONFORME

[Action Exécutée avec Succès (200 OK) + Scellement Cryptographique HMAC]

5. Exemples Concrets d'Application​

Scénario A : Protection d'un Outil Shell / Terminal​

- name: "Interdiction des commandes système critiques"
tool_target: "bash_executor"
condition:
field: "arguments.command"
operator: "REGEX_MATCH"
value: "(?i)(rm\\s+-rf|chmod\\s+777|chown|mkfs|curl\\s+.*\\|\\s*bash|nc\\s+-e)"
action: "BLOCK"
severity: "CRITICAL"

Scénario B : Quarantaine sur Requêtes SQL Massives​

- name: "Suspension des exports massifs"
tool_target: "sql_query"
condition:
field: "arguments.limit"
operator: "GREATER_THAN"
value: 5000
action: "QUARANTINE"
severity: "HIGH"

Liens Utiles​