Ouvrir le menu Fermer le menu

SAST et SCA multilingues pour plates-formes et applications Android

trait de séparation
Temps de lecture : 6 minutes
Android est, pour la plupart des gens, un système d'exploitation pour les appareils mobiles comme les téléphones ou les tablettes. En fait, c'est surtout une plate-forme open source extrêmement réussie en général. Il est courant de le retrouver dans les systèmes d'info-divertissement automobile, les décodeurs et même dans des systèmes industriels. Du point de vue de client, il s’agit d’une interface utilisateur facile à utiliser avec un ensemble commun de fonctionnalités permettant de passer facilement d’un appareil à un autre. Pour les fabricants, il s’agit d’une plate-forme qui comprend à la fois l’environnement d’exploitation « bac à sable » Android basé sur Java et un système d’exploitation Linux intégré fonctionnant sur du matériel. Sous la machine virtuelle Android, le produit repose sur la programmation C / C ++, les pilotes et bibliothèques et diverses autres technologies du développement embarqué. Dans un environnement mixte, il est important que les outils utilisés pour l’amélioration de la sécurité soient à même de prendre en charge l’ensemble de la pile logicielle.

Problèmes de sécurité avec Android comme couche applicative

Android avait la relative réputation d'être le système d'exploitation le plus peu sûr de 2019 (les données de ce rapport utilisaient le NVD du NIST.) Le CWE (Common Weakness Enumaration) a une catégorie spécifique relative aux vulnérabilités pour les applications mobiles (Weakness in Mobile Applications) qui résume les principaux problèmes logiciels qui entraînent des vulnérabilités au niveau des applications Android. À ce titre, la faiblesse la plus courante est l'exposition d'informations sensibles (personnellement identifiables) et des problèmes connexes tels qu'un cryptage déficient ou des informations d'identification codées en dur. Beaucoup de ces types de problèmes peuvent être détectés avec des outils d'analyse statique tels que GrammaTech CodeSonar pour Java.

CodeSonar pour Java - Construire une meilleure protection de la vie privée

La protection des données sensibles est une priorité absolue en matière de gestion des informations. La plupart des développeurs Android traitent les informations personnelles et les données de paiement, et leur quantité augmente de jour en jour. La protection des données est un problème à l'échelle de l'organisation et sa réalisation nécessite des efforts de toutes les parties prenantes. Toutes les applications doivent être conçues selon le principe de « Privacy by Design », pour s'assurer que la des données sensibles est géré correctement dès le début. Pour vérifier les logiciels hérités et prendre en charge le développement de nouvelles applications, une compréhension approfondie de la manière dont ces données sensibles sont traitées est primordiale. L'analyse avancée des données corrompues (Tainted Data analysis) fournie par CodeSonar pour Java permet aux développeurs de comprendre où les données externes sont stockées et où ces données stockées sont utilisées dans l'application.

Une analyse sophistiquée du flux de données trace les données critiques de la source (où elles entrent dans l'application) jusqu’au « puits » (où elles sont utilisées). Si une exposition potentielle est détectée le long de ce flux, un avertissement est émis. La combinaison de cette analyse avec des règles de codage qui alertent sur l’utilisation de constructions de codage potentiellement dangereuses, élimine ces vulnérabilités de sécurité au cours du développement.

Problèmes de sécurité avec Android en tant que plate-forme intégrée

Les vulnérabilités de sécurité les plus notables avec Android se situent au niveau des applications. Cependant, il existe des problèmes de sécurité qui affectent la couche Linux intégrée des produits Android. A ce niveau, la plateforme est soumise aux mêmes attaques et souffre des mêmes faiblesses que tout produit Linux embarqué. Dans un cas récent, Samsung a corrigé seul le noyau Linux, ce qui a fini par créer un problème de sécurité plus important.

Malheureusement, le deuxième système d'exploitation le moins sécurisé en 2019 était Debian Linux, ce qui implique que la sécurité de la plate-forme intégrée sous Android ne peut être supposée. La plupart des vulnérabilités Linux se trouvent dans le noyau lui-même, partie qui qui n‘est pas régulièrement mis à jour sur les plates-formes Android. De plus, il existe des vulnérabilités dans les bibliothèques et services fonctionnant couramment sous Linux qui peuvent être exploitées par des pirates. Un exemple est la vulnérabilité Heartbleed dans OpenSSL appliquée aux appareils exécutant Android 4.11. Heureusement, cette vulnérabilité a été isolée dans cette version et Google l'a rapidement corrigée.

Analyse de la composition logicielle (SCA) pour les plates-formes Linux embarquées

Il est peu probable que les développeurs de plates-formes pour appareils Android utilisent les outils SAST sur l'ensemble du noyau Linux et toutes les bibliothèques associées. Il s'agit d'une grande quantité de code complexe et les problèmes détectés ne seront pas faciles à résoudre sans une connaissance approfondie du code de base Android. De plus, l'utilisation de l'analyse de la composition logicielle (SCA) est plus logique pour les composants open source et autres composants tiers de la plate-forme.

GrammaTech CodeSentry utilise l'analyse binaire pour créer une nomenclature logicielle complète (SBOM) et un rapport de vulnérabilité, faisant référence à la base de données nationale sur les vulnérabilités (NVD). Cela fournit aux développeurs de plates-formes Android une liste complète des composants et des vulnérabilités connues (vulnérabilités N-day). L'inclusion d’outils SCA dans le processus de construction et de déploiement régulier signifie que les vulnérabilités détectées sont suivies au fil de l’eau. Dès que de nouveaux composants sont détectés ou que de nouvelles vulnérabilités apparaissent, l'équipe est notifiée via la mise à jour de la SBOM et du rapport de vulnérabilité.

Analyse SAST pour les codes propriétaires

Là où les outils d'analyse statique, comme CodeSonar, auront du sens dans le développement de la plate-forme Android, c'est pour les codes propriétaires, généralement en C / C ++, intégrés sur la plateforme et dont les sources sont disponibles pour analyse et dont l'équipe de développement est responsable et familiarisée avec le code. C'est à ce niveau que les problèmes de sécurité peuvent être éliminés dans le produit déployé en utilisant une combinaison de prévention et de détection. La prévention vient de l'utilisation de bonnes pratiques de codage qui évitent en premier lieu les faiblesses logicielles. Des normes telles que SEI CERT C, par exemple, fournissent des directives complètes pour l'écriture de code plus sécurisé et des outils SAST peuvent être utilisés pour appliquer ces normes. La détection provient de l'utilisation des capacités d'analyse sophistiquées des outils SAST pour détecter les vulnérabilités de sécurité dans le code déjà écrit. Ces deux approches vont de pair pour prévenir les failles de sécurité au niveau de la plateforme.

Pour résumer l'importance des outils de Test de sécurité d'application statique (SAST) comme GrammaTech CodeSonar dans l'amélioration de la sécurité logicielle, il offre certains des avantages suivants :
  • Assurance de Qualité et de Securité du code source en continu
  • Détection et analyse des données corrompues pour découvrir des vulnérabilités de sécurité complexes
  • Détection des problèmes complexes qui sont obscurcis et couvrent les limites des processus / fichiers
  • Application des normes de codage sécurisées
Les outils SAST et SCA peuvent être utilisés ensemble tout au long du cycle de vie du logiciel, bien que leurs atouts respectifs soient plus utiles à différentes phases. Comme l'illustre le diagramme ci-dessous, SAST joue un rôle tout au long des phases de développement-construction-test du code propriétaire et SCA s'applique au code tiers et à la chaîne d'approvisionnement logicielle :
sast&sca_GT_ISIT
En résumé :
Android reste l'un des systèmes d'exploitation les moins sécurisés couramment utilisés. La plupart des problèmes de sécurité existent au niveau de l'application en java exécutées dans les machines virtuelles. Les développeurs de plates-formes Android, qui développent des appareils basés sur Android et le matériel sur lequel ils fonctionnent, font face à des problèmes de sécurité à plusieurs niveaux. Ils doivent se préoccuper de la sécurité à la fois au niveau de l'application et au sein de la plate-forme Linux intégrée qui s'exécute sur le matériel de l'appareil. Il existe des problèmes de sécurité à ces deux niveaux et bien que leur nature diffère, aucun ne peut être négligé.

Pour remédier à cette situation, les outils SCA et SAST modernes prennent en charge les différents langages de programmation utilisés sur les différentes couches d'une plate-forme Android. Les outils SCA sont mieux adaptés aux logiciels open source et tiers pour créer la SBOM complète et signaler les vulnérabilités connues. Les outils SAST sont mieux adaptés au développement logiciel au niveau de l'application (en Java) et au niveau de la plate-forme embarquée (en C/C ++). L'utilisation d'une combinaison de ces outils signifie que les développeurs de plates-formes Android peuvent couvrir tous les niveaux afin d’améliorer la sécurité.
Article écrit par Walter Capitani
Source
0