Détection des utilisations à risque d’API : approche basée sur le système immunitaire

Les APIs sont des ingrédients essentiels pour développer des systèmes logiciels complexes. Cependant, elles sont difficiles à apprendre et à utiliser. Par conséquent, les développeurs peuvent les utiliser à mauvais escient, ce qui entraîne différents types de problèmes. La mauvaise utilisation d’une interface de programmation peut entraîner des erreurs très difficiles à détecter et qui peuvent se révéler graves. Détecter ces erreurs d’utilisation n’est pas simple. C’est pour cela que nous avons développé une approche basée sur le système immunitaire, un mécanisme qui permet de détecter à la fois des types d’anomalies connus et inconnus. Ici, les cellules de l’organisme seront les bonnes utilisations de l’API et les mauvaises utilisations seront les cellules étrangères de l’organisme. Le système immunitaire a la particularité d’être un système décentralisé qui fonctionne grâce à des détecteurs, les lymphocytes T, qui ont pour rôle de détecter les cellules étrangères. Avec APImmune, nous allons donc générer des détecteurs pour être capables de détecter des utilisations à risque des APIs. Notre approche a été évaluée sur deux ensembles de données et plus particulièrement MUBench. Les résultats montrent que notre approche complète les travaux précédemment réalisés dans ce domaine de recherche. Les détecteurs peuvent être générés à partir de code source, en abstrayant des utilisations possibles des APIs et en générant des formes déviantes de ces utilisations. De plus, pour permettre la détection, le code qui a servi à générer les détecteurs n’a pas besoin d’être révélé. Par ailleurs, les détecteurs peuvent être produits pour différentes versions de l’interface de programmation, ce qui apporte une vraie modularité dans la détection. APIs are essential ingredients for developing complex software systems. However, they are difficult to learn and use. As a result, developers can misuse them, resulting in different types of issues. Misuse of a programming interface can lead to errors that are very difficult to detect and can have consequences. Detecting these misuses is not easy. We have thus developed an approach based on the immune system, a mechanism that allows to detect known and unknown anomaly types. Here the cells of the organism will be the good uses of the API and the bad ones will be the foreign cells of the organism. The immune system has the particularity of being a decentralized system that functions thanks to detectors, T lymphocytes, whose role is to detect foreign cells. With APImmune we will therefore generate detectors that have the ability to detect risky uses of APIs. Our approach was evaluated on two sets of data and more specifically MUBench. The results show that our approach complements previous works in this area of research. In addition, the detectors can be generated from source code by abstracting the API usages and by generating artificial deviations from these usages. Moreover, for the detection purpose, only the artificial detectors are necessary, and the code used to generate them is not disclosed. Finally, the detectors can be produced for different versions of the programming interface, that brings modularity in the detection.

Keyphrases: Erreur d’utilisation d’API, API, Interface de programmation, Système immunitaire artificiel, Génie logiciel, API, API Misuses, Programming interface, Artificial immune-system, Software engineering