Audit forensique d’un moteur de scoring (cyber-résilience)
Contexte
Mission Ascend Partners : chez un client engagé dans un arbitrage d’investissement portant sur plusieurs actifs d’infrastructure, les scores de cyber-résilience de ces actifs avaient chuté sans explication.
L’outil à l’origine de ces scores était un moteur de scoring hérité, écrit en VBA, dont il existait trois versions successives.
Avant de pouvoir expliquer la chute, il fallait d’abord la reproduire : la contrainte de méthode était de reconstruire ces moteurs jusqu’à retrouver les scores au centième près, et seulement ensuite chercher la cause.
L’enjeu dépassait le diagnostic technique : la méthode de scoring elle-même était contestée en interne, et la conclusion devait être présentée en comité exécutif du client pour arbitrage d’investissement.
Le système
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 reconstruction a été validée par 304 tests, puis restituée sous forme de visualisations pour le comité.
Une note de gouvernance a accompagné la livraison, pour aligner les équipes sur une méthode de scoring contestée en interne.
Décisions & arbitrages
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.
Huit piliers à pondérations fixes : c’est à ce niveau que s’applique la moyenne géométrique, sur des réponses déjà requalifiées par coefficient.
Résultat
304 tests, score reproduit au centième. Présenté en comité exécutif du client pour arbitrage d’investissement.
Ce que ça montre
Reverse-engineering de code legacy, méthode de cause racine, et trancher un désaccord méthodologique par la preuve.