Page 17 - FIGI: Security audit of various DFS applications
P. 17

Figure 3 – SSL configuration assessment of app3’s server





























            √   T1.4 We did not find inappropriate Android per-  √   T4.2 The PIN is required for each money transfer.
                missions in the manifest.                         This is even safer than a timeout.
                                                               √   T4.3 If a fingerprint is added, the application dis-
            3.3.2   M2: Insecure Data Storage                     ables authentication with fingerprints.
                                                               x   T4.4 Sensitive requests like money transfers can
            √   T2.1 The application does not require the "android.  be replayed by an MITM proxy.
                permission.WRITE_EXTERNAL_ STORAGE" per-
                mission.                                       3.3.5   M5: Insufficient Cryptography
            x   T2.2 While the app is running, screenshot is not
                disabled. Moreover, the background screenshots   x   T5.1 The application uses the weak MD5 and SHA-
                from the recent-tasks history are not blurred.    1 hashing algorithms as well as the weak default
                                                                  random number generator.
            3.3.3   M3: Insecure Communication                    MD5 in file com/appsflyer/internal/ai.java:
                                                                  MessageDigest instance = MessageDigest.getIn-
            √   T3.1 Only HTTPS connections are used.             stance("MD5");
            √   T3.2 The app refused to establish an HTTPS con-     SHA-1 in file u/b/a/a/o/b/j.java:
                nection to a proxy with an untrusted certificate.     MessageDigest instance = MessageDigest.getIn-
            x   T3.3 The app accepts to establish an HTTPS con-   stance("SHA-1");
                nection to a proxy with a trusted certificate. This      Random generator in file c/g/a/c/s.java:
                shows that certificate pinning is not in use.     Random random = new Random();
            x   T3.4 Android: usesClear textTraffic is set to true   √   T5.2  By  intercepting  the  applications  HTTPS
                in the manifest.                                  requests with Burp Proxy, the server to which the
                                                                  application connects to was identified.
            3.3.4   M4: Insecure Authentication                   The TLS configuration of the identified server
                                                                  was  tested using Qualys  SSL Labs . Its  overall
                                                                                                  12
            x   T4.1 The application does not require a PIN or fin-  rating is A+.
                gerprint every time it is started. Thus, an intruder   √   T5.3 By intercepting the application’s HTTPS
                stealing an unlocked device can run the applica-  requests with Burp Proxy, it was observed that
                tion. This allows an attacker to see the balance   the body of some sensitive requests is encrypt-
                of the account. The PIN is however required to    ed.
                make money transactions.                          However, some responses with sensitive data like
                                                                  the current balance are neither encrypted nor



                                                                           Security audit of various DFS applications  15
   12   13   14   15   16   17   18   19   20   21   22