Controllo heartbleed per app mobili e mobili

1

Ho eseguito un rilevatore heartbleed di Lookout sul mio telefono Android. Dice:

The version of openSSL is affected by the heartbleed bug but the vulnerable behaviour is not enabled.

Che cosa significa non abilitato?

Riesco a vedere il file /system/lib/libssl.so sul telefono e ho trovato openssl su di esso. Mostra 1.0.1c. Significa che il mio telefono è vulnerabile a un bug senza cuore?

La mia altra domanda è: come posso verificare se una particolare app per Android è vulnerabile o no? Non voglio usare nessuna app di terze parti. Ho visto il link ma voglio farlo con un'app. Non conosco il nome di dominio a cui l'app sta comunicando. L'app raggruppa le librerie OpenSSL con l'apk, Se sì, come trovare la versione di OpenSSL in uso.

@Solution: ho un modulo wriiten python che accetta un APK e fa il controllo per la versione openSSL e l'estensione 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."))

Si prega di commentare è giusto fare?

    
posta Roshan Mehta 05.06.2014 - 22:02
fonte

2 risposte

1

Heartbleed è un bug con la funzione "heartbeat" nelle versioni vulnerabili di SSL. Ecco perché il nome 'heartbleed'. Il tuo controllo sta dicendo che la tua versione è vulnerabile, ma la funzione heartbeat non è abilitata.

    
risposta data 05.06.2014 - 23:44
fonte
0

La funzione "SSL Heartbeat" è una parte facoltativa della libreria OpenSSL, una che include quasi tutte le copie della libreria. Sembra che il tuo telefono sia uno dei pochi sistemi che ha scelto di non includerlo.

    
risposta data 06.06.2014 - 10:22
fonte

Leggi altre domande sui tag