Control Taxonomy — Vocabulaire normalisé NeuralWall
Référence canonique des identifiants (enums, clés, zones) utilisés dans les fiches. Toute fiche DOIT n'employer que les identifiants définis ici pour ses champs machine. ⚠️ Amendé par ADR-0005 (2026-06-18) : la prose d'une fiche (
title,description,rationale,threat_model) PEUT désormais nommer une marque/produit ; l'annexe §10 reste une cross-référence utile, plus une interdiction. Seuls les identifiants machine restent agnostiques (snake_case, stables).
Conventions
- Identifiants (valeurs d'enum, clés) :
snake_caseanglais, stables dans le temps. Ce sont des identifiants machine — ils ne se traduisent pas. - Prose : libre (FR pour l'instant).
- Marques (ADR-0005) : autorisées dans la prose d'une fiche. Les identifiants machine (app_id, enums, zones) restent agnostiques. Le mapping vendor (§10) est une cross-référence.
- Posture par défaut : next-gen. On identifie l'application (L7), pas juste un port. Un contrôle par port seul est un fallback à justifier explicitement.
1. Identification applicative (application)
Le critère primaire de matching. On décrit l'application, le port n'est qu'un indice.
| Champ | Type | Description |
|---|---|---|
app_id |
string (snake_case) |
Identifiant normalisé de l'app (ex. ssl, web_browsing, dns, kubernetes_api). |
category |
enum | Voir ci-dessous. |
default_ports |
array | Ports/protocoles attendus (tcp/443), à titre indicatif/contrôle de cohérence. |
depends_on |
array[app_id] |
Apps qui doivent être autorisées pour que celle-ci fonctionne (ex. dns, ssl). |
risk |
enum 1..5 |
Niveau de risque applicatif (1 = faible, 5 = critique). |
category (enum) :
networking · infrastructure · business_systems · collaboration ·
general_internet · media · saas · remote_access · database ·
identity · unknown
Note :
unknown(trafic non identifié L7) est traité comme un signal, pas comme une app légitime. Une fiche qui autoriseunknowndoit le justifier (rationale).
2. Identité (identity)
Optionnel mais recommandé pour les règles internes/sortantes.
| Champ | Type | Description |
|---|---|---|
user |
array[string] | Utilisateurs spécifiques. |
user_group |
array[string] | Groupes (annuaire). Préféré aux users individuels. |
device_posture |
enum | unmanaged · managed · compliant · any. Conformité du poste si applicable. |
3. Zones (zones)
Abstraites. Une fiche décrit le rôle de la zone, pas un nom d'interface vendor.
Set recommandé (extensible via custom: préfixe) :
trust · untrust · dmz · guest · vpn · management · internal ·
internet · cloud · ot (réseaux industriels) · any
zones:
source: [trust]
destination: [dmz]
4. Direction (direction)
inbound · outbound · internal (intra-zone est↔ouest) · lateral (segmentation fine)
5. Service / Port (service)
Complément de application, pas substitut. Renseigner pour le contrôle de cohérence
et les rares cas où le L7 n'est pas identifiable.
| Champ | Type | Exemple |
|---|---|---|
protocol |
enum | tcp · udp · icmp · any |
ports |
array[string] | ["443", "8443"] |
app_default |
bool | true = utiliser les ports par défaut de l'app (recommandé). |
6. Action (action)
| Valeur | Sémantique |
|---|---|
allow |
Autorise (et applique les profils de sécurité, §7). |
deny |
Bloque avec réponse selon défaut vendor. |
drop |
Bloque silencieusement, aucune réponse à l'émetteur. |
reset |
Envoie un TCP RST (variantes vendor reset_client/reset_server/reset_both optionnelles). |
Règle d'or :
allowSANS profils de sécurité associés (§7) est un anti-pattern. Une ficheallowsans threat prevention doit le justifier.
7. Profils de sécurité (security_profiles)
Le cœur "next-gen". S'appliquent aux règles allow. Chaque profil expose une
action normalisée et, le cas échéant, un seuil de sévérité.
Actions communes (enum profile_action) :
default · alert · allow · block · drop · reset
Seuil de sévérité (enum severity, quand pertinent) :
informational · low · medium · high · critical
| Clé canonique | Rôle | Champs |
|---|---|---|
antivirus |
Détection malware sur flux (HTTP, SMTP, FTP…). | action |
c2_protection |
Anti-spyware / anti-botnet / command-and-control. | action, min_severity |
ips |
Protection vulnérabilités / signatures d'exploit (IPS). | action, min_severity |
url_filtering |
Filtrage web par catégories + listes + anti-phishing d'identifiants. | voir §7.1 |
file_control |
Blocage/inspection par type de fichier. | block_types[], direction |
sandboxing |
Détonation cloud de fichiers/liens inconnus. | enabled, file_types[] |
dns_security |
Filtrage DNS, sinkhole des domaines malveillants. | action, sinkhole |
dlp |
Data filtering / prévention de fuite (motifs sensibles). | patterns[], action |
sandboxingest le terme canonique pour la détonation cloud. Les équivalents vendor (WildFire, Threat Emulation, Capture ATP, Inline Cloud Analysis…) vivent en §10.
7.1 url_filtering (profil complet)
| Champ | Type | Description |
|---|---|---|
block_categories[] |
array[enum] | Catégories bloquées. |
alert_categories[] |
array[enum] | Catégories loggées sans blocage. |
allow_list[] |
array[string] | URLs/domaines explicitement autorisés. Priment sur les catégories. |
block_list[] |
array[string] | URLs/domaines explicitement bloqués. Priment sur les catégories. |
uncategorized_action |
enum {allow, alert, block} |
Décision pour les sites non catégorisés / unknown. block = posture de durcissement. |
credential_phishing |
enum {disabled, alert, block} |
Bloque la soumission d'identifiants d'entreprise vers des sites non fiables. |
Catégories normalisées (extrait, set extensible) :
malware · phishing · c2 · newly_registered_domain · parked ·
proxy_avoidance · unknown · adult · gambling · hacking ·
grayware · compromised · cryptomining · dynamic_dns
Dépendance au déchiffrement (§8). Sans
ssl_forward_proxy, le firewall ne voit que le domaine (SNI), pas l'URL complète : le filtrage par chemin et lacredential_phishingprotection sont dégradés. Une fiche posant unurl_filteringriche avecdecryption: nonesur du trafic chiffré doit le justifier (le linter le relève).
8. Déchiffrement (decryption)
| Champ | Type | Description |
|---|---|---|
mode |
enum | none · ssl_forward_proxy (sortant) · ssl_inbound_inspection (entrant, serveurs exposés) · ssh_proxy. |
exclusions |
array | Catégories/apps exclues (raisons légales/techniques). |
exclusions[] (enum recommandé) :
health · finance · government · legal · cert_pinned_app
Le déchiffrement conditionne l'efficacité de §7 : sans
ssl_forward_proxy, l'AV/IPS/ sandboxing voient un flux chiffré opaque. Une fiche qui posemode: nonesur du trafic sortant à risque doit le justifier.
9. Journalisation (logging)
| Champ | Type | Description |
|---|---|---|
log_start |
bool | Log au début de session (rare, debug). |
log_end |
bool | Log en fin de session (défaut recommandé : true). |
log_forwarding |
bool | Transfert vers SIEM/collecteur. |
profile |
string | Nom logique du profil de forwarding (résolu côté NeuralWall). |
10. Annexe — Mapping vendor (non normatif)
Cross-référence canonique ↔ marques (couche de traduction NeuralWall + page /vendors).
Amendé par ADR-0005 : nommer une marque dans la prose d'une fiche est désormais permis ;
cette annexe reste la référence de mapping, plus une interdiction.
| Canonique | Palo Alto | Fortinet | Check Point |
|---|---|---|---|
application (app_id) |
App-ID | Application Control | AppWiki / App Control |
c2_protection |
Anti-Spyware | Botnet C&C / Anti-Botnet | Anti-Bot |
ips |
Vulnerability Protection | IPS | IPS |
antivirus |
Antivirus | Antivirus | Anti-Virus |
url_filtering |
URL Filtering (PAN-DB) | Web Filter | URL Filtering |
url_filtering.credential_phishing |
Credential Phishing Prevention | (anti-phishing Web Filter) | (via URL Filtering / Zero Phishing) |
file_control |
File Blocking | DLP / File Filter | Content Awareness |
sandboxing |
WildFire / Inline Cloud Analysis | Sandbox / FortiSandbox | SandBlast Threat Emulation |
dns_security |
DNS Security | DNS Filter | — / via Anti-Bot |
dlp |
Data Filtering / Enterprise DLP | DLP | Content Awareness / DLP |
decryption: ssl_forward_proxy |
SSL Forward Proxy | SSL/SSH Deep Inspection | HTTPS Inspection (Outbound) |
decryption: ssl_inbound_inspection |
SSL Inbound Inspection | (profil deep-inspection serveur) | HTTPS Inspection (Inbound) |
action: reset |
reset-client/server/both | (deny + RST) | reject |
action: drop |
drop | deny | drop |
Mappings indicatifs, à compléter/valider par version d'OS (PAN-OS, FortiOS, R8x). La granularité fine (ex. variantes de reset) reste optionnelle côté fiche.