Audit forensique d’un moteur de scoring (cyber-résilience)
Reproduire un score au centième près avant de conclure sur la cause de sa chute.
Des scores de cyber-résilience avaient chuté sur plusieurs actifs d’infrastructure, sans explication, sur un outil en VBA hérité. J’ai reconstruit en Python les trois moteurs de scoring successifs à partir du code et des données réelles, jusqu’à reproduire les scores au centième près. La cause : une requalification des réponses par coefficient combinée à un passage à la moyenne géométrique au niveau pilier. Huit piliers à pondérations fixes, 304 tests, visualisations pour le comité, et une note de gouvernance pour aligner les équipes sur une méthode contestée en interne.
Des scores de cyber-résilience qui chutent sur plusieurs actifs d’infrastructure, sans explication, sur un outil VBA hérité.
Reconstruire les trois moteurs de scoring en Python à partir du code et des données réelles, jusqu’à reproduire les scores au centième près.
Reproduire d’abord, conclure ensuite. Cause trouvée : requalification des réponses par coefficient plus passage à la moyenne géométrique au niveau pilier.
304 tests, visualisations pour le comité, note de gouvernance pour aligner les équipes sur une méthode contestée.
Reverse-engineering de code legacy, méthode de cause racine, et trancher un désaccord méthodologique par la preuve.