QL/docs/exceptions_v3.md

76 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Exceptions et anomalies — Nomenclature Qualys V3 SANEF
Suivi des cas où la règle V3 produit un résultat incorrect (faux positif/négatif) et nécessite un ajustement de la QQL ou du nommage. À traiter par batch lors des cleanups Qualys.
## Légende statut
- 🔴 **À fixer** : action attendue côté Qualys (modif règle QQL) ou côté SANEF (renommage)
- 🟡 **Workaround** : contournement appliqué dans l'app décodeur ou doc, fix Qualys pas encore fait
- 🟢 **Résolu** : règle V3 modifiée, plus de souci
---
## Exceptions
| # | Date | Tag | Asset / Pattern | Problème | Cause technique | Pourquoi / Impact | Fix appliqué | Statut | Date résolu |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 2026-04-22 | `ENV-TST` | `svp*` (Superviseur Péage) | Postes Windows 11 Client tagués Test | Préfixe `sv*` matche `svp*` | **Faussait le KPI patching Test** : ~100 postes SVP comptés comme serveurs Test → reporting incorrect (180 au lieu de ~83 vrais serveurs Test). Risque de perdre les vrais serveurs Test dans la masse et de prioriser à tort le patching côté postes utilisateurs. | Exclusion `and not asset.name:svp*` appliquée à la QQL Qualys + `gen_xlsx.py` | 🟢 | 2026-04-22 |
| 2 | 2026-04-22 | `EQT-SRV` | `svp*` | Postes workstation détectés comme serveurs physiques | Préfixe `s*` matche `svp*` | **Faussait l'inventaire serveurs physiques** : KPI "EQT-SRV" gonflé artificiellement par les ~100 SVP, qui ne sont ni des serveurs ni dans le scope patching serveurs. Faux positifs en reporting infra. | Exclusion `and not asset.name:svp*` appliquée à la QQL Qualys + `gen_xlsx.py` | 🟢 | 2026-04-22 |
| 3 | 2026-04-24 | `POS-BI` | `VPAPTAPSH1.SANEF.GROUPE` (Win 10) | Workstation taggée POS-BI | Préfixe `vpapt*` dans QQL POS-BI matche aussi `vpapta*` (Apta gestion = POS-GES) | **Confusion périmètre métier** : un poste utilisateur apparaît dans le périmètre BI alors qu'il est métier Gestion (Apta Talend). Tableau de bord BI faux + ambiguïté pour les responsables BI/Gestion. | 1) Ajout `and operatingSystem.category2:"Server"` à POS-BI<br>2) Exclusion `vpapta*` de POS-BI (= POS-GES) | 🟢 | 2026-04-24 |
| 4 | 2026-04-24 | Tous les `POS-*` | Tous assets | Postes de travail susceptibles d'être tagués POS-* à tort | Les règles QQL POS-* ne filtraient pas par OS Server | **Pollution générale des KPI métier** : le périmètre métier (Trafic, Péage, BI, Gestion, FluxLibre, Infra) devient ambigu si des postes utilisateurs y entrent. Les chefs de projet ne savent pas qui est responsable de quoi. Le scope patching/sécurité serveurs devient difficile à isoler. | Ajout `and operatingSystem.category2:"Server"` à toutes les règles POS-* | 🟢 | 2026-04-24 |
| 4b | 2026-04-24 | Tous les `ENV-*` | Tous assets | Workstations avec préfixe v*/s*/l* hors svp* pourraient être tagués ENV-* | Les règles QQL ENV-* filtraient uniquement sur préfixe nom, pas sur category2 OS | **Cohérence du parc serveur** : ENV (PRD/REC/PPR/TST/DEV) ne doit catégoriser QUE les serveurs (le poste de travail d'un dev n'est pas "ENV-DEV"). Sinon les counts SLA/cycle de vie sont biaisés. | Ajout `and operatingSystem.category2:"Server"` à toutes les règles ENV-* | 🟢 | 2026-04-24 |
| 5 | 2026-04-24 | `OS-LIN-SRV` | Ubuntu / Oracle Linux / SUSE / Rocky / Alma / Fedora / Amazon Linux | App montre 723 vs Qualys 730 (-7) | Décodeur app ne reconnaissait que `red hat`, `centos`, `debian` comme Linux | **Chiffres incohérents en présentation DSI** : si on cite "730 serveurs Linux" dans un slide et que l'app dit 723, on perd la confiance dans l'outil. Et à long terme le parc SANEF va voir arriver d'autres distros (Rocky/Alma post-CentOS, Ubuntu pour conteneurs, etc.) → besoin de couvrir large. | Patterns Linux étendus dans `_filter_os_only` côté app (ubuntu, oracle linux, suse, sles, rocky, alma, fedora, amazon linux) | 🟢 | 2026-04-24 |
| 6 | 2026-04-24 | `POS-BI` vs `POS-GES` | `vpapt*` vs `vpapta*` / `vrapt*` vs `vrapta*` | Préfixe `vpapt*` dans POS-BI englobait `vpapta*` (Apta = POS-GES) | Pas d'exclusion mutuelle dans QQL | **Tag double / contradictoire** : un asset Apta apparaissait à la fois comme POS-BI (à tort) et POS-GES (correct). Reporting flou + ownership métier ambigu. | POS-BI modifié : `vpapt* and not (asset.name:vpapta* or asset.name:vrapta*)` | 🟢 | 2026-04-24 |
| 7 | 2026-04-24 | `POS-INF` vs `POS-GES` | `aii*` vs `aiiat*` / `dsi*` vs `dsiat*` | Préfixes courts (`aii`, `dsi`) dans POS-INF englobaient `aiiat`/`dsiat` (Aide pilotage / Reporting DSI = POS-GES) | Pas d'exclusion mutuelle | **Confusion Infrastructure vs Gestion DSI** : les serveurs d'aide au pilotage et de reporting DSI étaient comptés comme infra technique, alors qu'ils sont des outils de gestion. Mauvaise priorisation des incidents et MEP. | POS-INF modifié : exclusion `not (asset.name:vpaiiat* or asset.name:vraiiat* or asset.name:vrdsiat*)` | 🟢 | 2026-04-24 |
| 8 | 2026-04-24 | `POS-INF` vs `POS-GES` | `ges*` (Gestion fichiers POS-INF) vs `gesb*` (Gestion budgets POS-GES) | Le préfixe générique `ges*` n'existait pas dans POS-INF V3 mais le décodeur app l'avait avec POS-INF (legacy "Gestion fichiers") | Décodeur app : `ges` mappé POS-INF (legacy) | **Faux positif visible dans l'app** : pour les `vpgesb*` (gestion budgets), le décodeur suggérait POS-INF alors que c'est POS-GES. Si on suivait la suggestion on aurait collé le mauvais tag. | Map `ges`→POS-INF retirée du décodeur app (`server_decoder.py`) | 🟢 | 2026-04-24 |
| 9 | 2026-04-24 | Tags Qualys natifs (Cloud Agent*, Obsolete, Active...) | Tous assets | Affichés comme "Hors V3" dans le décodeur de l'app | Pas reconnus comme natifs | **Fausses alertes ergonomiques** : l'opérateur voyait "Hors V3 - à supprimer" sur des tags Qualys built-in qu'il NE FAUT PAS supprimer (ils reviendraient au prochain check Cloud Agent). Risque d'erreur manuelle et perte de temps à investiguer. | Liste `QUALYS_BUILTIN_EXACT` + `QUALYS_BUILTIN_PREFIX` ajoutée dans `server_decoder.py` ; affichés en violet "Tag Qualys natif (auto-attribué)" | 🟢 | 2026-04-24 |
| 10 | 2026-04-24 | `POS-DMZ` | Assets en zone DMZ | Suggéré "Hors V3" alors qu'utilisé légitimement | POS-DMZ pas dans la liste V3 dynamique mais utilisé en STAT manuel pour la zone réseau DMZ | **Tag SANEF légitime non reconnu** : POS-DMZ est utilisé pour identifier les serveurs en zone DMZ (sécurité périmétrique). Si l'app dit "Hors V3" l'opérateur risque de le supprimer alors qu'il sert au reporting sécu. | Décodeur app suggère POS-DMZ si zone Excel = "DMZ" | 🟢 | 2026-04-24 |
| 11 | 2026-04-24 | `TAG-SED` `TAG-SEI` | 18 assets en POS-DMZ sans SED ni SEI | Audit DMZ : 48 POS-DMZ vs 34 SEDSEI = 14 orphelins (corrigé manuellement par Khalid) | Tags SED/SEI sont STAT (bulk SQATM), pas DYN — ajout manuel oublié à mesure que de nouveaux assets DMZ arrivent | **Trou de classification sécu** : un asset DMZ sans SED/SEI n'est pas distingué entre frontal exposé (priorité audit) et backend (priorité moindre). Risque de mal prioriser les patchs/scans. | Khalid a complété manuellement bulk_tag_sed.txt et bulk_tag_sei.txt + bulk SQATM | 🟢 | 2026-04-24 |
| 12 | 2026-04-24 | `POS-TRA` manquant | `vpgmoaprx1` | Serveur Trafic non taggé POS-TRA | Le préfixe `vpgmo*` (Gestion Mode Opératoire) n'était pas couvert par la QQL POS-TRA | **Asset Trafic non visible dans le périmètre Trafic** | Ajout `asset.name:vpgmo* or asset.name:vrgmo*` à la QQL POS-TRA + parens + Server filter | 🟢 | 2026-04-24 |
| 13 | 2026-04-24 | `POS-GES` manquant | `vppintaweb1`, `vppintaweb2` (Pré-Prod ENV-PPR OK) | Serveurs Intranet Gestion non taggés POS-GES | Différence entre QQL console Qualys et `gen_xlsx.py` + pas de re-evaluate | **Sites Intranet non rattachés au périmètre Gestion** | Resync QQL POS-GES depuis `gen_xlsx.py` + parens + Server filter + Re-evaluate | 🟢 | 2026-04-24 |
| 14 | 2026-04-24 | `POS-DMZ` à vérifier | `vppataels1` | Patrouille ELS — légitimité DMZ à confirmer | Le serveur est tagué POS-DMZ mais à confirmer en zone DMZ | **Faux positif POS-DMZ potentiel** : si pas réellement en DMZ, fausse l'audit DMZ | Vérification confirmée — toutes anomalies POS-DMZ rectifiées | 🟢 | 2026-04-24 |
| 15 | 2026-04-24 | `POS-TRA` manquant | `vrexpbtex1`, `vrameased1` | Serveurs Trafic Recette non taggés POS-TRA | Préfixes `vrexp*` et `vramea*` absents de la QQL POS-TRA | **Assets Trafic Recette non visibles dans le périmètre Trafic** | Ajout `vrexp*` à la QQL POS-TRA (vramea* déjà couvert par vrame*) + parens + Server | 🟢 | 2026-04-24 |
| 16 | 2026-04-24 | `POS-INF` vs `POS-GES` | `*echat*` (`vpechat`, `vrechat`, `vdechat`) | Préfixes Echat/Achat dans les 2 règles → double tag | Erreur historique de classification : Echat/Achat est métier Gestion (POS-GES), pas Infrastructure | **Conflit tag** : assets `vpechat01` recevaient à la fois POS-INF et POS-GES | Retrait `asset.name:vpechat*`, `vrechat*`, `vdechat*` de la QQL POS-INF (gardés uniquement dans POS-GES) | 🟢 | 2026-04-24 |
| 17 | 2026-04-24 | Toutes les ENV-* et POS-* | Toutes les rules QQL | Précédence opérateurs : `OR ... AND Server` sans parenthèses → seul le dernier OR est filtré par Server | Manque de parenthèses autour des grands `OR` dans les rules QQL | **Filtre Server inopérant** : les workstations passaient à travers les filtres ENV-*/POS-* (sauf le dernier item du OR) → KPI faussés | Ajout systématique de `( ... )` autour de tous les grands OR dans toutes les rules ENV-* et POS-* (5+6 = 11 règles) + `gen_xlsx.py` mis à jour | 🟢 | 2026-04-24 |
| 18 | 2026-04-24 | `TAG-OBS` | OS obsolètes manquants | Liste TAG-OBS incomplète | Manquaient : Win Server 2008 R2, Win7 (sans espace, embedded), RHEL 7 (EOL juin 2024), Oracle Linux 5/6, SLES 11/12, Solaris 10, AIX 6.1 + typo "Server 5" double espace | **Audit obsolescence incomplet** : assets EOL non détectés → risque sécu non remonté | Liste étendue dans `gen_xlsx.py` + typo fixée (à appliquer en console Qualys) | 🟡 | (gen_xlsx fait, console à faire) |
| 19 | 2026-04-24 | `POS-DMZ` vs `TAG-SED`/`TAG-SEI` | 7 assets en désaccord audit DMZ | 3 en POS-DMZ sans SED/SEI + 4 avec SED/SEI hors POS-DMZ | Tags STAT manuels non synchronisés à la création/modif d'assets DMZ | **Trou audit sécurité** : assets DMZ non classifiés en exposition directe/indirecte → mauvaise priorisation patch/scan | Rectification finale 2026-04-25 : 3 ajouts à SED/SEI (`vppintaweb1` SED, `vppintaweb2` SED, `vrameased1` SEI) + 1 retrait `vpdecasas4` (n'aurait pas dû être en SEI) + 3 confirmés légitimement hors DMZ (LAN exposé via NAT : `vpdsiawsus1` SED, `vppeaabst3` SEI, `vpvpnaems1` SED Ubuntu). Total cohérent : POS-DMZ=48, SED+SEI=48 | 🟢 | 2026-04-25 |
| 20 | 2026-04-25 | `POS-INF` trop restrictif | 5 assets seulement | API Qualys live confirme 5 (vpbipamod1, vpsimasvp1, vraptbjup1, vraiiavid1/2) | **La rule active dans la console Qualys = `C:\Claude\sanef\inputs\pos-inf.txt`** (seulement 6 préfixes : vpsimas*, vpppear*, vpppeas*, vpbipa*, vraiia*, vraptb*) au lieu de la rule v3 cible **`C:\Claude\sanef\QL\inputs\dom_inf_rule_v2.txt`** (91 préfixes). Le brouillon initial des exclusions a été appliqué à la place de la vraie rule. | **Périmètre Infrastructure totalement faux** : 5 assets au lieu d'~80-100 attendus. DSI sous-estime largement la surface d'attaque infra. | Console Qualys : éditer POS-INF → coller la QQL complète de `dom_inf_rule_v2.txt` (91 préfixes + exclusions Gestion) → Re-evaluate. Vérifier aussi le rule_type (`Asset Inventory` = Asset Search). | 🔴 | À fixer (QQL console) |
---
## Tags Qualys legacy à nettoyer (concurrence avec V3)
À supprimer ou désactiver une fois la transition V3 validée :
| Tag legacy | Remplacé par V3 | Statut migration |
|---|---|---|
| `Production` | `ENV-PRD` | À supprimer |
| `Recette` | `ENV-REC` | À supprimer |
| `Linux Server` | `OS-LIN-SRV` | À supprimer |
| `Windows Server` | `OS-WIN-SRV` | À supprimer |
| `flux_libre`, `Flux Libre`, `FreeFlow` | `POS-FL` | À fusionner/supprimer |
| `DEX` | À déterminer | À analyser |
| `DSI` | `POS-INF` (partiellement) | À analyser |
| `VRF_INCONNUE` | `VRF-*` (à créer) | Configurer VRF métier |
| `TAG-SRVEXPOSEINTERNET` | `TAG-SED` | À fusionner |
---
## Workflow de mise à jour
1. **Constat anomalie** : ajouter une ligne dans le tableau ci-dessus avec date, tag, asset, problème
2. **Validation Khalid** : décider du fix (Qualys QQL, app décodeur, ou les deux)
3. **Implémentation** :
- Si fix QQL : modifier la règle dans console Qualys + mettre à jour `C:\Claude\sanef\QL\gen_xlsx.py` pour la doc
- Si fix app : modifier `C:\Claude\sanef\sanef-qualys-manager\server_decoder.py`
4. **Test** : recharger les tags dans la console Qualys, vérifier le delta sur 5-10 assets témoins
5. **Statut** : passer à 🟢 dans le tableau
---
## Contacts / liens utiles
- Console Qualys : https://qualysguard.qualys.eu > VMDR > Assets > Tags
- Référentiel V3 : `C:\Claude\sanef\QL\docs\SANEF_Qualys_Tags_V3_RuleTypes_v2.xlsx`
- Décodeur app : `C:\Claude\sanef\sanef-qualys-manager\server_decoder.py`
- Mémoire détaillée : `C:\Users\netadmin\.claude\projects\C--Users-netadmin\memory\qualys.md`