TaintRadar: Semantic-Aware Taint-Style Vulnerability Detection via Augmented Code Property Graphs
TaintRadar est une nouvelle approche d'analyse statique qui augmente les graphes de propriétés de code (Code Property Graphs) avec des couches sémantiques pour la désinfection, la persistance et l'aliasing d'objets afin de surmonter les limitations existantes du suivi de source (taint tracking), réduisant ainsi considérablement les faux positifs et détectant avec succès de nombreuses vulnérabilités réelles et de type zero-day dans les applications PHP.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez l'internet comme une ville géante et bouillonnante où des millions de personnes (les utilisateurs) échangent constamment des notes, des colis et des secrets avec diverses boutiques et bureaux (les sites web). La plupart du temps, cet échange est sûr, mais parfois, un criminel sournois glisse une note empoisonnée dans un colis, espérant que le propriétaire de la boutique la lira sans le savoir à voix haute devant toute la ville ou l'utilisera pour forcer un coffre-fort. Dans le monde de l'informatique, on appelle cela une « vulnérabilité de type taint » (ou de type souillure). Cela se produit lorsqu'une information non fiable provenant d'un utilisateur voyage sans contrôle à travers un programme jusqu'à ce qu'elle atteigne un endroit dangereux, comme une base de données ou un écran, provoquant le chaos.
Pour arrêter ces criminels, les experts en sécurité utilisent une méthode appelée « analyse statique ». Voyez cela comme un détective super intelligent qui lit les plans de chaque boutique de la ville sans même ouvrir les portes. Il trace le chemin de chaque note pour voir si elle est filtrée ou « assainie » (nettoyée) avant d'atteindre un endroit dangereux. Pendant des années, ces détectives ont utilisé un outil appelé « Graphe de Propriétés de Code » (CPG), qui est comme une carte massive et en 3D reliant chaque ligne de code. Cependant, cet article soutient que les anciennes cartes ont des angles morts. Elles ignorent souvent comment une donnée est stockée dans un entrepôt (une base de données) puis récupérée plus tard par une autre boutique, ou elles s'embrouillent lorsque les données se déplacent à l'intérieur de boîtes complexes et mobiles (des objets). À cause de ces angles morts, les détectives manquent soit de vrais crimes, soit crient « Criminel ! » alors qu'il ne s'agit que d'une note inoffensive, ce qui entraîne beaucoup de temps perdu.
Entrez en scène TaintRadar, un nouveau système de détection amélioré, conçu pour corriger ces angles morts. Les chercheurs derrière TaintRadar ont réalisé que, pour attraper les méchants, la carte a besoin de plus que de simples lignes reliant le code ; elle a besoin d'une compréhension profonde du sens. Ils ont construit un système qui ajoute trois nouveaux « superpouvoirs » à la carte standard. Premièrement, il apprend à reconnaître exactement comment fonctionnent les différents types de nettoyage (assainissement), afin de savoir quand une note est réellement sûre. Deuxièmement, il relie les points entre les différentes boutiques qui partagent le même entrepôt, comprenant qu'une note sale déposée le matin peut être récupérée et utilisée pour causer des problèmes l'après-midi, même si les boutiques ne communiquent pas directement entre elles. Troisièmement, il devient intelligent sur la façon dont les données circulent à l'intérieur de boîtes complexes et mobiles, suivant précisément comment un secret change au fur et à mesure qu'il passe d'une main à l'autre à l'intérieur d'un programme.
Lorsque l'équipe a testé TaintRadar, les résultats ont été impressionnants. Sur un ensemble standard d'énigmes d'entraînement (le benchmark SARD), il a détecté 80 % des vulnérabilités tout en faisant beaucoup moins d'erreurs que les outils précédents. Mais le vrai test est arrivé lorsqu'ils ont déployé ToidRadar sur 19 sites web réels. TaintRadar a réussi à trouver la grande majorité des failles de sécurité connues qui avaient été signalées auparavant. Plus excitant encore, il a découvert 29 nouvelles failles de sécurité (appelées « zero-days »), jamais vues auparavant, dans six applications différentes. Cela comprenait 26 cas où des attaquants pourraient injecter du code malveillant dans des bases de données et 3 cas où ils pourraient tromper les navigateurs pour afficher des scripts malveillants. Les chercheurs ont déjà signalé ces nouvelles découvertes aux entreprises qui possèdent les sites web ainsi qu'à la base de données officielle CVE (Common Vulnerabilities and Exposures), qui attribue des numéros d'identification uniques afin qu'elles puissent être corrigées.
En bref, TaintRadar prouve qu'en apprenant au détective à comprendre l'histoire de la donnée — comment elle est nettoyée, où elle est stockée et comment elle circule à travers des objets complexes — nous pouvons construire un système de sécurité beaucoup plus aiguisé et précis. Il ne se contente pas de regarder les lignes sur la carte ; il comprend le rythme de la ville, rendant la tâche beaucoup plus difficile pour les criminels numériques qui tenteraient de se faufiler entre les mailles du filet.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.