1 votes

Vérification de Heartbleed pour l'application Android

Comment puis-je vérifier si une application Android particulière est vulnérable à Heartbleed ou non ? Je ne veux pas utiliser d'application tierce. J'ai vu https://github.com/musalbas/heartbleed-masstest/blob/master/ssltest.py mais je veux le faire avec une application. Je ne connais pas le nom de domaine sur lequel l'application communique. Si oui, comment trouver la version d'OpenSSL utilisée ?

@Solution : J'ai écrit un module python qui prend un APK et vérifie la version openSSL et l'extension heartbeat.

import zipfile
import os
import re

def heart\_bleed(tempdir, msl\_outputfile):
    parrent\_tempdir = tempdir.split('tmp')\[0\]
    sslpattern = re.compile("1.0.1\[a-f\]")
    flagssl = False
    flagheartbleed = False

    msllst\_heartbleed = \[\]
    msc\_vulid = "heartbleed"
    msc\_infoseverity = "Info"
    msc\_medseverity = "Medium"
    apkpath = ''
    if (parrent\_tempdir):
        for root, dummy\_dirs, files in os.walk(parrent\_tempdir):
            for allfile in files:
                if allfile.endswith(".apk"):

                    apkpath = os.path.join(root, allfile)

        #print(apkpath)
        with zipfile.ZipFile(apkpath, "r") as msl\_apkread:
            for i in msl\_apkread.namelist():
                if i.endswith(".so"):
                    data = msl\_apkread.read(i)
                    if "part of OpenSSL" in data:
                        start = data.index("part of OpenSSL")
                        resultdata = str(data\[start:start+40\])
                        sslversion = re.findall(sslpattern, resultdata)
                        if sslversion:
                            flagssl = True

                            if "tls1\_heartbeat" in data:
                                flagheartbleed = True

        if flagssl and flagheartbleed:
            print("The App is using OpenSSL version " + sslversion\[0\] + " which is vulnerable to Heartbleed and Heartbeat extension is enabled."))
        elif flagssl or flagheartbleed:
            print("The App is using OpenSSL version " + sslversion\[0\] + " which is vulnerable to Heartbleed but Heartbeat extension is disabled."))

Veuillez commenter, est-ce que c'est bien de le faire ?

0voto

Milner Points 533

Il sera difficile de tester quelque chose sans testeur. Android n'est pas livré avec une application de test pour Heartbleed (ou toute autre faille de sécurité, telle que la Exploitation de la clé maîtresse découvert il y a environ un an), car cela irait en quelque sorte à l'encontre du but recherché : une telle application de vérification doit connaître la faille de sécurité et la manière de la vérifier, et nécessite donc de la connaître. Si cette connaissance existe, au lieu d'écrire une application pour vérifier la faille, les développeurs devraient plutôt décider de la corriger en premier lieu - ce qui rendrait cette application obsolète :)

Donc, si un 3 rd n'est pas acceptable pour vous, vous n'avez probablement pas de chance. Mais si vous changez d'avis, vous pouvez trouver plusieurs vérificateurs de sécurité. dans cette liste . Il y a par exemple Scanner de sécurité Heartbleed qui est très bien noté (à l'heure actuelle, 4,6 étoiles avec plus de 5 000 votes), et vous pouvez le trouver présenté dans cet article du blog AndroidPIT .

La catégorie des listes liées contient également des suites de sécurité couvrant de nombreux exploits et risques de sécurité, ce qui peut être un bon choix à vérifier si vous êtes intéressé par sa position sur la sécurité de votre appareil.

0voto

Andy Brudtkuhl Points 1714

Les applications n'intègrent généralement pas OpenSSL elles-mêmes : Android est livré avec OpenSSL inclus dans le framework principal, donc dans la plupart des cas, c'est la version d'Android qui présente ou non la vulnérabilité, plutôt que l'application elle-même. Cela dit, il est tout à fait possible pour une application d'inclure son propre OpenSSL, c'est juste inhabituel.

Comment la vulnérabilité de sécurité Heartbleed affecte-t-elle mon appareil Android ? explique que seule la version 4.1.1 d'Android est elle-même vulnérable.

Si l'application contient un binaire OpenSSL lié statiquement et que vous ne souhaitez pas utiliser une application pour vérifier le comportement, vous devez décompresser le fichier APK pour trouver la bibliothèque.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X