⛰️Analyse statique (Android)

Méthodes de chiffrement faibles

L'utilisations incorrectes des algorithmes de chiffrement peuvent entraîner l'exposition de données sensibles, de clés provées, des broken authentication, une session non sécurisée ou encore une attaque par usurpation d'identité.

Commandes grep intéressantes

Recherche de hash MD5

grep -e "[0-9a-f]\{32\}"

Recherches par mots clés

grep -r "SecretKeySpec" *

grep -rli "aes" *

grep -rli "iv"

Préférences d'activités éxportées

Comme nous le savons, le composant d'activité d'Android est le ou les écrans d'application et la ou les actions qui s'appliquent à ce ou ces écrans lorsque nous utilisons l'application. Lorsqu'une activité est partagée avec d'autres applications sur l'appareil, elle est donc accessible à toute autre application sur l'appareil.

Commande grep pour les lister

Backups actifs

Cette fonctionnalité lorsqu'elle est activée permet à n'importe qui d'enregistrer un backup de l'application sur son ordinateur ce qui est considéré comme une mauvaise pratique de sécurité.

Détection avec grep

Application débogable

La fonctionnalité de débogage est interessante dans un contexte de pré-production car cela permet de connecter un débogeur à l'application afin de faire toutes sortes d'interactions avec l'application ce qui en fait ainsi un risque car un attaquant peut en profiter à des fins malicieuses.

Détection avec grep

Permissions

Les autorisations du système sont divisées en deux groupes : « normales » et « dangereuses ». Les groupes d'autorisation normaux sont autorisés par défaut, car ils ne présentent aucun risque pour votre vie privée. (par exemple, Android permet aux applications d'accéder à Internet sans votre permission.) Cependant, les groupes d'autorisation dangereux peuvent donner aux applications l'accès à des éléments tels que votre historique d'appels, vos messages privés, votre emplacement, votre caméra, votre microphone, etc. Par conséquent, Android vous demandera toujours d'approuver les autorisations dangereuses.

Certaine applications demandent parfois plus de permissions de nécessaires au bon fonctionnement de l'application. Il est donc important de faire attention à cette fonctionnalitée (notamment dans le cas de malwares).

Lister les permissions avec grep

Via abd:

Liste des permissions considérées dangereuses

Firebase instance(s)

Le service Firebase de Google est l'une des plates-formes de développement back-end les plus populaires pour les applications mobiles et Web qui offre aux développeurs une base de données basée sur le cloud, qui stocke les données au format JSON et les synchronise en temps réel avec tous les clients connectés.

FireBaseScanner

FireBaseScanner est un outil permettant de scanner des bases de données Firebase à la recherche de problèmes de configuration.

Exemple d'utilisation:

$ python FireBaseScanner.py -p /path/to/target.apk

ressource: https://github.com/shivsahni/FireBaseScanner

Analyse de code

Secrets hardcodés, mauvaises pratiques de sécurité dans le code, leaks d'IP interne etc.

Quelques commandes grep interessantes

Recherche d'URI et d'endpoints

Recherche de secrets

Recherche de fichiers et leurs permissions

Recherche de base de données

Recherche d'utilisateurs

Recherche de logs

Recherche de content

Recherche de keystore

Classes intéressantes

  • SharedPreferences (stock les valeurs clés par paire)

  • FileOutPutStream (utilise stockage interne ou externe)

  • NotificationManager (Vérifier si les notifications envoyés peuvent contenir des infos sensibles)

Fonctions intéressantes

  • getExternal* (utilise stockage externe)

  • getWriteableDatabase (retourne SQLiteDB pour écriture)

  • getReadableDatabase (retourne SQLiteDB pour lecture)

  • getCacheDir / getExternalCacheDirs (utiliser les fichiers en cache)

Mis à jour

Ce contenu vous a-t-il été utile ?