Sécurité informatique : pirater les pirates informatiques

Date:
Mis à jour le 04/03/2020
Seul un voleur peut en attraper un autre. C’est pourquoi des entreprises sensibilisées aux questions de sécurité, telles que des banques ou des journaux, font souvent appel à des escrocs ou équivalents pour tester la résistance de leurs systèmes informatiques. Ces professionnels, appelés testeurs d’intrusion, décortiquent les systèmes informatiques de leurs clients. S’ils ou elles découvrent une porte d’entrée, ils en informent leur client, qui résoudra alors le problème. Mais les tests d’intrusion coûtent cher, car rares sont ceux qui possèdent les compétences requises pour être de bons testeurs. C’est pourquoi une entreprise française appelée Cryptosense espère pouvoir informatiser ces tests.

L’une des premières choses à faire pour s’assurer qu’un programme est sécurisé est de vérifier qu’il ne comporte pas de bugset, qu’il réagit bien à une séquence de commandes inhabituelle ou défectueuse, sans livrer aucune des informations qu’il est censé garder secrètes. C’est une tâche très importante. Et le nombre de séquences de commandes qui peuvent être entrées dans un logiciel augmente de manière exponentielle à mesure que le logiciel se complexifie.
De plus, de nombreuses entreprises modifient des programmes qu’elles ont achetés dans le commerce, et introduisent accidentellement de nouveaux bugs. Ainsi, on ne peut pas se fier à ce que dit un programmeur quand il explique comment utiliser son code.

Perçants et perspicaces

Le « crackeur » de Cryptosense reprend donc tout de zéro.
Il commence par se frayer un chemin à travers les listes de commandes possibles du programme qu’il tente de « cracker » afin d’observer sa réponse. D’après Graham Steel, cofondateur de Cryptosense« à la fin du processus, le programme se retrouve avec deux listes : l’une répertorie les actions que le programme visé était censé réaliser, et l’autre est une liste de messages d’erreur. » 

Fort de ces données expérimentales, le crackeur virtuel peut remonter le courant des actions et constituer un simulacre du programme visé dont le comportement, les erreurs, etc., sont conformes à la réalité.
Il peut alors commencer à essayer de détruire le programme. Même pour un ordinateur employé à la place d’un être humain, un test impliquant une recherche exhaustive de toutes les séquences possible peut prendre beaucoup de temps. Mais l’algorithme de test est suffisamment intelligent, d’après le Dr Steel, pour favoriser les combinaisons les plus susceptibles de réussir. (Sans surprise, il ne dévoilera pas comment cela est possible.)

Même si le pirate automatisé de Cryptosense arrive à trouver et à colmater les brèches d’un logiciel en particulier, il y aura toujours un maillon faible. Les logiciels sont utilisés par des personnes réelles, qui peuvent être trompées, menacées ou persuadées de révéler des secrets.
De plus, ce qui marche pour les gens honnêtes marche aussi pour les gens malhonnêtes.
Si le piratage automatisé fait ses preuves, rien n’empêchera des pirates humains plus malins d’inventer leurs propres versions du logiciel, et de les utiliser pour trouver des failles.