Page 15 - Audit de sécurité de différentes applications de services financiers numériques (DFS)
P. 15
√ T4.3 Si une nouvelle empreinte digitale est ajou- cements. App2 n'est pas reliée à un compte bancaire.
tée, l'application désactive l'authentification par Les fonds peuvent être déposés sur le compte ou en
empreintes digitales. être retirés de diverses manières, par exemple via un
√ T4.4 Les demandes d'envoi d'argent ne peuvent opérateur de télécommunications ou un commerce
pas être répétées. Le serveur envoie alors le mes- de détail.
sage "409 Conflict" et ne traite pas la demande
de transfert de fonds. 3.2.1 M1: Utilisation détournée de la plate-forme
3.1.5 M5: Cryptographie insuffisante √ T1.1 Android: allowBackup est réglé sur "False"
dans le manifeste.
x T5.1 L'application utilise les algorithmes de √ T1.2 Android: debuggable n'est pas défini dans le
hachage MD5 et SHA-1 ainsi que le mode de chif- manifeste.
frement ECB, qui offrent un niveau de sécurité √ T1.3 Android: installLocation n'est pas défini dans
faible. le manifeste.
MD5 in file com/appdynamics/eumagent/run- √ T1.4 Nous n'avons pas trouvé d'autorisations
time/p000private/ae.java: Android indues dans le manifeste.
MessageDigest instance = MessageDigest.getIns-
tance("MD5"); 3.2.2 M2: Stockage non sécurisé des données
SHA-1 in file com/App1/android/Security/Sec-
Core/b/a.java: √ T2.1 L'application sollicite l'autorisation "android.
MessageDigest instance = MessageDigest.getIns- permission.WRITE_EXTERNAL_STORAGE". N.B.:
tance("SHA-1"); Cela ne signifie pas nécessairement que l'appli-
ECB in file com/App1/android/Security/Sec- cation écrit effectivement des données sur le
Core/b/a.java: dispositif de stockage externe ni que, si tel est le
Cipher instance = Cipher.getInstance("AES/ECB/ cas, il s'agit de données sensibles.
NoPadding"); √ T2.2 Lorsque l'application est en marche, les cap-
√ T5.2 En interceptant les requêtes HTTPS de l'ap- tures d'écran sont désactivées.
plication à l'aide de Burp Proxy, il est possible
d'identifier le serveur auquel se connecte le 3.2.3 M3: Communications non sécurisées
client. La configuration TLS du serveur a été éva-
luée à l'aide de Qualys SSL Labs . Sa note globale √ T3.1 L'application fonctionne uniquement sur des
9
est A+. connexions HTTPS.
x T5.3 Lorsque l'on intercepte les requêtes HTTPS √ T3.2 L'application a refusé d'établir une
de l'application à l'aide de Burp Proxy, les connexion HTTPS avec un proxy disposant d'un
requêtes du client sont chiffrées. Cependant, le certificat non fiable.
montant des fonds transférés ainsi que le pré- √ T3.3 L'application a refusé d'établir une
nom, le nom et le numéro de téléphone des utili- connexion HTTPS avec un proxy disposant d'un
sateurs concernés sont en texte clair. certificat fiable. Ce comportement montre que
l'application a recours à l'épinglage de certificat.
3.1.6 M8: Falsification de code x T3.4 Android: usesCleartextTraffic est défini
comme "true" (vrai) dans le manifeste.
√ T8.1 Nous avons réussi à installer et à utiliser l'ap-
plication sur un appareil rooté. 3.2.4 M4: Authentification non sécurisée
3.1.7 M9: Rétro-ingénierie x T4.1 L'application n'exige pas de code PIN ou
d'empreinte digitale à chaque utilisation. Un
√ T9.1 Le code de l'application a fait l'objet d'une intrus qui a volé un appareil non verrouillé peut
obfuscation, comme le montre la figure 1. alors utiliser l'application. L'attaquant peut alors
visualiser le code PUK du téléphone et consulter
le montant sur le compte. La saisie du code PIN
3�2 App2 est toutefois nécessaire pour effectuer des tran-
App2 est un service utilisé pour envoyer des fonds, sactions.
effectuer des paiements ou obtenir des microfinan-
Audit de sécurité de différentes applications de services financiers numériques (DFS) 13