Les analyses statiques se basent sur une extraction de diverses données sans exécution de code. L'analyse statique est l'une des analyses les plus répandues et les plus efficaces[1], plus particulièrement en cas de code impénétrable.
Certains systèmes basent leurs analyses sur les différences entre le comportement attendu d'une application et son interface d'utilisation. Lorsqu'il y a une contradiction entre les deux parties, l'application est déclarée comme suspecte. Par exemple, AsDroid[2] est un système de recherche qui implémente cette analyse. Sur 182 applications testées en 2014, 113 sont déclarées comme réalisant des tâches furtives inconnues de l'utilisateur, avec 28 faux positifs et 11 faux négatifs.
Une autre approche détecte toutes applications qui ont la capacité d'enregistrer des données utilisateur (microphone, accès à la mémoire utilisateur...) et de les envoyer (accès internet, connexion Bluetooth...) comme suspectes. IccTA[3] est un exemple de système qui utilise une approche similaire. En 2015 IccTA détecte 534 fuites réunies sur 108 applications provenant de MalGenome ainsi que 2395 fuites réunies sur 337 applications sur un jeu de 15000 applications provenant de Google Play.ou App store
La différenciation de contextes d'appels se base sur une analyse du contexte dans lequel un comportement potentiellement dangereux et sensible s'exécute.
Il existe par exemple des logiciels tels que AppContext[4] qui se basent sur cette approche. AppContext permet d'identifier les appels de fonctions ou d'API sensibles, et d'identifier si le contexte dans lequel ceux-ci sont exécutés correspond à un contexte connu de l'utilisateur et en adéquation avec l'utilisation de l'application, ou si le contexte est plutôt identifié comme potentiellement malicieux.
Une approche moins conventionnelle est explorée pour la première fois par CHABADA[5]. Celle-ci consiste en l'analyse de la description en langage naturel de l'application sur le Google Play et de sa comparaison avec le comportement réel de l'application. On obtient donc la fonction d'une application uniquement grâce à sa description sur le Google Play.
Par exemple, une application météorologique qui envoie des messages devient donc une anomalie. De la même façon, il n'est pas attendu d'une application de messagerie d'avoir accès à la localisation de l'utilisateur.
CHABADA a été utilisé sur plus de 22 500 applications pour constituer sa base de données et 56 % de nouveaux logiciels malveillants ont été détectés en tant que tel sans avoir d'informations préalables sur les logiciels malveillants connus.