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
   10   11   12   13   14   15   16   17   18   19   20