Le ministère américain de la Défense pourrait avoir trouvé un nouveau moyen d'examiner des millions de lignes de code pour y repérer des vulnérabilités. L'exercice prend la forme de jeux vidéo et de puzzles auxquels s'exercent des utilisateurs bénévoles. Ainsi que l'explique John Murray, directeur de programme de l'institut SRI International qui a participé à la création de l'un de ces jeux, dénommé Xylem, laisser des joueurs identifier des portions de code potentiellement problématiques pourrait contribuer à réduire la charge de travail des analystes formés sur ces tâches.

La Darpa (agence des projets de recherche avancée de la Défense américaine) a ouvert un site, baptisé Verigames, qui propose cinq jeux gratuits à utiliser en ligne ou, comme dans le cas de Xylem, sur la tablette iPad d'Apple. Son site fonctionne un peu à la manière des projets de crowd-sourcing tels que SETI@home ou Fold.it qui, pour le premier, utilise des ordinateurs connectés à Internet pour essayer de détecter des signes de vie extraterrestres et, pour l'autre, invite à réaliser des puzzles en ligne dans le cadre d'une recherche scientifique liée au pliage des protéines.

Suffisamment attrayantes pour attirer les joueurs

Les jeux sont conçus de façon à ce que, lorsque les utilisateurs parviennent à reconstituer les puzzles pour arriver au niveau suivant, ils génèrent en fait des annotations et des preuves mathématiques qui peuvent identifier ou prouver l'absence de failles dans les logiciels écrits en C ou en Java. La Darpa a financé les jeux et le portail par le biais de son programme Crowd Sourced Formal Verification (CSFV).

Les procédures habituelles de test sont effectuées par des équipes spécialisés qui vérifient le code pour y repérer erreurs et omissions qui pourraient, notamment être utilisées par des attaquants pour compromettre le système. En proposant cette tâche sous la forme d'un jeu, la Darpa espère la rendre suffisamment attrayante pour qu'un grand nombre d'utilisateurs accepte de le faire bénévolement. Des problèmes mathématiques ardus sont ainsi transformés en puzzles agréables à manipuler. 

Des portions de code transformées en fleurs tropicales

Les analyses faites sur les logiciels sont faits par des programmes de test automatiques qui signalent les endroits qui semblent douteux, explique John Murray de SRI International. Il est possible de prendre ces petites portions de code nécessitant une analyse plus approfondie et de les transformer en paramètres pour générer un puzzle. « Certains types de vulnérabilités, telles que le dépassement de mémoire tampon ou l'élévation de privilèges, rentrent particulièrement bien dans ce format », explique le directeur de programme.

La Darpa a accordé des subventions à un certain nombre d'entreprises pour construire des jeux autour des puzzles qui en résultent. Dans le cas de Xylem, l'utilisateur explore une île tropicale et répertorie des plantes peu communes -qui sont en fait des représentations de portions de code- en accompagnant leur inventaire de courtes descriptions.

Xylem, un jeu pour débusquer des failles dans les logiciels
Cataloguer les fleurs tropicales et les failles avec Xylem 

Les jeux portent pour l'instant sur des logiciels Open Source

Dans un autre jeu, CircuitBot, l'utilisateur connecte une équipe de robots pour réaliser une mission. Dans Flow Jam, on demande à l'utilisateur d'analyser et d'ajuster un câble réseau pour optimiser au mieux son débit. Pour l'instant, seules les personnes de plus de 18 ans sont autorisées à jouer, en raison des règlementations gouvernementales concernant la participation volontaire. Avec le temps, toutefois, la Darpa espère constituer une communauté de joueurs qui contribuerait à réduire le nombre de bugs des logiciels commerciaux et Open Source.

Pour l'instant, les jeux portent sur des programmes Open Source utilisés par le ministère de la Défense et d'autres administrations américaines. Si une erreur est détectée pendant le jeu, l'agence informe les gestionnaires du logiciel.