BadPack est un fichier APK malveillant intentionnellement modifié pour exploiter la structure de fichiers du système d'exploitation Android.
Typiquement, les attaquants modifient de manière malveillante les informations d'en-tête dans le format de fichier compressé des APK pour entraver les efforts d'ingénierie inverse. Ces en-têtes falsifiés sont une caractéristique de BadPack, pose des défis importants pour les outils d'ingénierie inverse Android. Cette technique est couramment utilisée par les chevaux de Troie bancaires basés sur Android comme BianLian, Cerberus, et TeaBot.
Ces résultats ont été signalé à Google par Palo Alto Networks, qui a confirmé qu'aucune application ne contenait cela les logiciels malveillants sont actuellement disponibles sur Google Play. Les utilisateurs d'Android sont automatiquement protégés contre les versions connues de ce malware par Google Play Protect, qui est activé par défaut sur les appareils avec Google Play Services. Google Play Protect peut avertir les utilisateurs ou bloquer les applications présentant un comportement malveillant, même si ces applications proviennent de sources extérieures à Google Play.
Comment fonctionne le malware BadPack?
fichiers APK, indispensable pour les applications Android, utiliser le format d'archive ZIP et contenir un fichier critique nommé AndroidManifest.xml. Ce fichier stocke les données et les instructions vitales pour le fonctionnement de l'application. Dans les APK BadPack, les attaquants altèrent les données d'en-tête ZIP, ce qui rend difficile pour des outils comme Apktool et Jadx d'extraire et d'analyser le contenu. Par exemple, Apktool ne parvient souvent pas à extraire AndroidManifest.xml des échantillons BadPack.
Palo Alto Networks’ Télémétrie avancée de détection des incendies de forêt de juin 2023 à Juin 2024 identifié presque 9,200 Exemples de BadPack, indiquant une menace importante. Figure 1 illustre les tendances mensuelles de ces détections, avec une augmentation notable en mai 2024.
Comprendre le fichier manifeste Android
Le fichier manifeste Android, AndroidManifest.xml, est un fichier de configuration crucial dans les exemples APK, fournir des informations essentielles sur l'application mobile au système d'exploitation Android. Cela comprend des détails sur les activités, services, autorisations, et versions Android compatibles. L'extraction et le traitement de ce fichier constituent la première étape de l'analyse statique d'un échantillon APK. Auteurs de logiciels malveillants altèrent souvent les en-têtes ZIP pour empêcher les analystes de sécurité d'effectuer cette analyse.
Structure du fichier ZIP
Le format ZIP compresse et archive le contenu dans un seul fichier, comprenant deux principaux types d'en-têtes: En-têtes de fichiers locaux et en-têtes de fichiers du répertoire central. Les auteurs de logiciels malveillants peuvent modifier les champs de ces en-têtes pour empêcher les analystes d'extraire le contenu d'un fichier APK, tout en permettant à l'APK de s'exécuter sur un appareil Android.
En-têtes de fichiers locaux
Les en-têtes de fichiers locaux représentent des fichiers individuels dans une archive ZIP. L'archive commence par un en-tête de fichier local, répété pour chaque fichier. Ces en-têtes commencent par une signature de 4 octets (PK, pour Phillip Katz, le créateur de format ZIP). Le champ de compression, situé aux décalages d'octets 0x08 et 0x09, indique la méthode de compression, généralement DÉGONFLER (0x0800). L'en-tête comprend également des champs pour les tailles et les noms de fichiers compressés et non compressés.
En-têtes de fichiers du répertoire central
Les en-têtes de fichiers du répertoire central apparaissent après le dernier en-tête de fichier local dans un répertoire d'archive ZIP. Ils résument le contenu de l'archive et peuvent inclure un bloc de signature APK facultatif. Ces en-têtes contiennent également des champs pour la méthode de compression, tailles, et les noms de fichiers, situés à des décalages d'octets différents de ceux des en-têtes de fichiers locaux.
Analyse de la technique BadPack
Dans les échantillons BadPack, les attaquants manipulent les en-têtes de la structure ZIP, empêcher l'extraction d'APK et le décodage d'AndroidManifest.xml, provoquant l'échec des outils d'analyse statique. Cette manipulation peut inclure des valeurs incompatibles entre les en-têtes de fichiers du répertoire local et central. Par exemple, spécification d'une méthode de compression incorrecte ou de tailles non valides.
Alors que les outils d'analyse comme Apktool et Jadx nécessitent un strict respect des spécifications du format ZIP, L'exécution d'Android sur les appareils est plus indulgente, inspecter uniquement l'en-tête du répertoire central. Ainsi, Les APK BadPack peuvent fonctionner sur les appareils Android mais échouent aux outils d'analyse. En inversant ces modifications et en restaurant les valeurs d'en-tête de la structure ZIP d'origine, les analystes peuvent analyser avec succès les échantillons BadPack.
Conclusion
Le nombre croissant d'appareils Android représente une cible croissante et un défi important dans la lutte contre les attaques de logiciels malveillants sur la plate-forme. Les fichiers APK utilisant BadPack reflètent la sophistication croissante des échantillons de malware APK, pose des défis redoutables aux analystes de sécurité.
Les utilisateurs doivent se méfier Applications Android qui demandent des autorisations inhabituelles non aligné avec leur fonctionnalité annoncée, comme une application de lampe de poche demandant l'accès au répertoire de l'appareil. Aussi, il est conseillé de s'abstenir d'installer des applications provenant de sources tierces pour maintenir la sécurité de l'appareil.
Si vous suspectez un compromis ou avez une question urgente, contacter l'Unité 42 Équipe d'intervention en cas d'incident pour obtenir de l'aide.