Auteurs:
(1) Amit Seal Ami, Département d'informatique, William & Mary Williamsburg, Virginie, États-Unis, et cet auteur ont contribué à parts égales à cet article ([email protected]) ;
(2) Syed Yusuf Ahmed, Institut de technologie de l'information, Université de Dhaka Dhaka, Bangladesh, et cet auteur ont contribué à parts égales à cet article ([email protected]) ;
(3) Radowan Mahmud Redoy, Institut de technologie de l'information, Université de Dhaka Dhaka, Bangladesh, et cet auteur ont contribué à parts égales à cet article ([email protected]) ;
(4) Nathan Cooper, Département d'informatique, William & Mary Williamsburg, Virginie, États-Unis ([email protected]) ;
(5) Kaushal Kafle, Département d'informatique, William & Mary Williamsburg, Virginie, États-Unis ([email protected]) ;
(6) Kevin Moran, Département d'informatique, Université de Floride centrale, Orlando, Floride, États-Unis ([email protected]) ;
(7) Denys Poshyvanyk, Département d'informatique, William & Mary Williamsburg, Virginie, États-Unis ([email protected]) ;
(8) Adwait Nadkarni, Département d'informatique, William & Mary Williamsburg, Virginie, États-Unis ([email protected]).
6 Travaux futurs et conclusion, remerciements et références
Alors que les ingénieurs logiciels adoptent avec optimisme les détecteurs d'utilisation abusive de crypto-API (ou crypto-détecteurs) dans leurs cycles de développement logiciel, cet élan doit s'accompagner d'une compréhension rigoureuse de l'efficacité des crypto-détecteurs pour détecter les utilisations abusives de cryptoAPI dans la pratique. Ce document de démonstration présente les détails techniques et les scénarios d'utilisation de notre outil, à savoir l'analyse de mutation pour évaluer les détecteurs d'abus statiques de crypto-API (MASC). Nous avons développé 12 opérateurs de mutation généralisables basés sur l'utilisation et trois portées de mutation, à savoir la portée principale, la portée de similarité et la portée exhaustive, qui peuvent être utilisées pour instancier de manière expressive des variantes compilables des cas d'utilisation abusive de la crypto-API. Grâce à MASC, nous avons évalué neuf crypto-détecteurs majeurs et découvert 19 failles uniques et non documentées. Nous avons conçu MASC pour qu'il soit configurable et convivial ; un utilisateur peut configurer les paramètres pour modifier la nature des mutations générées. De plus, MASC est livré avec une interface de ligne de commande et une interface Web, ce qui le rend pratique pour les utilisateurs de différents niveaux d'expertise.
Code : https://github.com/Secure-Platforms-Lab-WM/MASC
Les ingénieurs logiciels s'appuient sur les crypto-détecteurs depuis des décennies pour garantir l'utilisation correcte des API cryptographiques dans les logiciels et services qu'ils créent, développent et maintiennent [6]. De tels cryptodétecteurs sont omniprésents dans le génie logiciel, car ils sont intégrés dans les IDE (par exemple, le plugin CogniCrypt pour Eclipse IDE [8]), les suites de tests d'organisations telles qu'Oracle Corporation [9, 17] et pour l'intégration continue/déploiement continu (CI). /CD) pipelines [12, 18]. De plus, les fournisseurs d'hébergement tels que GitHub fournissent officiellement de tels détecteurs de cryptographie, par exemple GitHub Code Scan Initiative [10]. En d’autres termes, la sécurité des logiciels et des services dépend de plus en plus des crypto-détecteurs. Cependant, nous nous appuyons sur des benchmarks sélectionnés manuellement pour évaluer les performances des crypto-détecteurs ; ces benchmarks sont connus pour être incomplets, incorrects et peu pratiques à maintenir [16]. Par conséquent, déterminer l’efficacité des cryptodétecteurs d’un point de vue axé sur la sécurité nécessite une technique d’évaluation fiable et évolutive, capable de s’adapter au volume et à la diversité des crypto-API et aux différents modèles d’utilisation abusive.
Nous avons contextualisé les techniques de test de mutation pour créer l'analyse de mutation permettant d'évaluer le cadre des détecteurs d'utilisation abusive de crypto-API statiques (MASC). Dans notre prototype d'implémentation original de MASC [3], il exploitait en interne 12 opérateurs de mutation généralisables basés sur l'utilisation pour instancier des mutations de cas d'utilisation abusive de crypto-API pour Java. Les opérateurs de mutation ont été conçus sur la base des principes de conception de l'architecture cryptographique Java (JCA) [11] et d'un modèle de menace composé d'utilisateurs de compétences et d'intentions variées (Section 4.1). MASC injecte ces cas d'utilisation abusive mutés dans des applications basées sur Java ou Android à trois portées de mutation (sites d'injection), à savoir la portée de similarité (étendue de MDroid+ [13, 14]), la portée exhaustive (étendue de 𝜇SE [4, 5, 7]) , et son Main Scope développé indépendamment, créant ainsi des applications mutées qui contiennent une utilisation abusive de la crypto-API. Nous avons démontré le caractère pratique de la mise en œuvre d'un prototype de MASC en évaluant neuf cryptodétecteurs issus de l'industrie et du monde universitaire, et avons découvert 19 failles inconnues jusqu'alors non documentées qui compromettent la solidité des crypto-détecteurs. Les détails complets de la méthodologie MASC, les considérations de conception, l'évaluation des crypto-détecteurs conduisant à la découverte de nouvelles failles, l'impact pratique des failles trouvées dans les applications open source (par conséquent, l'applicabilité des opérateurs de mutation) et la discussion des résultats sont disponibles dans le document de recherche original [3].
Dans cet article, nous présentons une implémentation mature du framework MASC en mettant l'accent sur l'extensibilité, la facilité d'utilisation et la maintenabilité pour les parties prenantes des crypto-détecteurs, telles que les chercheurs en sécurité, les développeurs et les utilisateurs. Pour être plus précis, grâce à l'architecture de plug-in nouvellement développée, les utilisateurs de MASC peuvent désormais créer leurs propres opérateurs de mutation qui peuvent être facilement connectés à MASC, sans plonger profondément dans la base de code existante (plus de 11𝐾 lignes de code source). De plus, alors que l'implémentation originale du prototype de MASC impliquait une évaluation semi-automatique des crypto-détecteurs, nous avons automatisé le flux de travail de MASC en exploitant la sortie de facto formatée SARIF [15] des crypto-détecteurs. De plus, nous avons créé une interface Web de mise en œuvre de MASC pour les utilisateurs afin de réduire les barrières à l'entrée. Enfin, nous avons restructuré et refactorisé la base de code open source de MASC pour augmenter la maintenabilité et l'extensibilité de MASC, ce qui facilitera les futures contributions et améliorations pour les développeurs et les passionnés d'open source de MASC. Avec ces ajouts et améliorations, nous espérons que la mise en œuvre open source actuelle de MASC sera utilisée pour détecter les failles et ainsi contribuer à améliorer les crypto-détecteurs existants.
Contribution : Nous présentons MASC, un cadre convivial qui exploite les techniques de tests de mutation pour évaluer les crypto-détecteurs, avec des détails sur les techniques sous-jacentes, les considérations de conception et les améliorations. Les nouvelles fonctionnalités clés de MASC sont les suivantes : Évaluation automatisée des crypto-détecteurs : MASC peut être utilisé pour évaluer les crypto-détecteurs dans un flux de travail automatisé de bout en bout au sein du périmètre principal.
Évaluation personnalisable des crypto-détecteurs : un utilisateur peut personnaliser l'évaluation des crypto-détecteurs en spécifiant les opérateurs de mutation pour créer des instances d'utilisation abusive de crypto-API.
Architecture de plug-in pour les opérateurs personnalisés : MASC aide les chercheurs, les développeurs et les utilisateurs en sécurité à se lancer directement dans l'évaluation des crypto-détecteurs en créant leurs propres opérateurs de mutation personnalisés qui peuvent être directement connectés au Main Scope, sans qu'ils aient besoin d'apprendre et de comprendre. sur les détails internes de MASC.
Front-end convivial pour les utilisateurs finaux : en plus d'améliorer l'interface de ligne de commande de l'implémentation du prototype d'origine, nous créons et introduisons un front-end open source basé sur le Web pour les utilisateurs finaux qui peut être exécuté localement. Le frontal contient une interface de jeu-test-apprentissage supplémentaire, MASC Lab, où les parties prenantes peuvent interagir avec les opérateurs de mutation et en apprendre davantage sur l'utilisation abusive de la crypto-API en mutation.
Disponibilité des outils et des données : L'implémentation du prototype du framework MASC, les scripts et les résultats de l'évaluation des crypto-détecteurs,
comme décrit dans l'article original [3], sont disponibles dans le MASC Artifact [1]. De plus, la base de code de l'implémentation mature et activement entretenue de MASC est disponible séparément avec une documentation complète et des exemples [2].
Cet article est disponible sur arxiv sous licence CC BY-NC-SA 4.0 DEED.