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 ?