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?