ControlFlag : la contribution open source d’Intel à la détection d’anomalies

ControlFlag

Un outil open source de plus dans le champ de la détection d’anomalies. Made in Intel, ControlFlag se fonde sur l’analyse sémantique du code, en apprentissage non supervisé.

Que penser du fragment de code suivant ? Il contient peut-être un défaut sémantique. En l’occurrence, un usage atypique de la boucle for, avec incrémentation du compteur deux fois par cycle. C’est le genre d’élément que ControlFlag est censé signaler.

boucle for

Voilà près d’un an qu’Intel a dévoilé* cet outil de détection d’anomalies. Il vient d’en officialiser le passage en open source (licence MIT).

Avec ControlFlag, on est sur de l’apprentissage non supervisé. L’idée est de repérer des motifs structurels récurrents dans les langages de haut niveau. Puis d’en faire – sur la base du projet Tree-sitter – des arbres de décision destinés à alimenter la détection d’anomalies.

fonctionnement

L’outil n’est pas encore capable d’effectuer des corrections. Il fournit pour le moment des recommandations. Et pour cause : l’approche, rappelle Intel, ne peut être que probabiliste. Bien que non conventionnel, le fragment de code ci-dessus a tout à fait pu être écrit à dessein. Idem pour celui qui suit, et sur lequel on aurait tendance à pointer l’usage d’une variable binaire alors que Verilog exploite par défaut une base décimale.

Verilog variable ControlFlag

C’est tout l’enjeu pour ControlFlag : savoir distinguer les véritables erreurs sémantiques de ce qui relève des « variations de style ». Au bout, il y a des usages allant de la détection de doublons à la transpilation (conversion entre langages). Le démonstrateur d’Intel se concentre quant à lui sur le repérage des potentielles fautes de frappe.

* ControlFlag s’inscrit, notamment, dans la lignée du projet MISIM (Machine-Inferred Code Similarity). Intel y a impliqué plusieurs de ses chercheurs.

Illustration principale © monsitj – Adobe Stock