1 votos

Comprobación de Heartbleed para la aplicación Android

¿Cómo puedo comprobar si una determinada aplicación de Android es vulnerable a heartbleed o no? No quiero utilizar ninguna aplicación de terceros. He visto https://github.com/musalbas/heartbleed-masstest/blob/master/ssltest.py pero quiero hacerlo con app. No sé el nombre de dominio al que se comunica la aplicación. La aplicación incluye las librerías OpenSSL con el apk, si es así, cómo encontrar la versión de OpenSSL que se utiliza.

@Solución: He wriiten módulo de python que toma un APK y hacer la comprobación de la versión openSSL y la extensión de latido del corazón.

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."))

Por favor, comente si es correcto hacerlo.

0voto

Izzy Puntos 45544

Será difícil probar algo sin un probador. Android no incluye una aplicación de prueba para Heartbleed (o cualquier otro agujero de seguridad, como el Explotación de la llave maestra descubierto hace aproximadamente un año), ya que de alguna manera esto frustraría el propósito: una aplicación de comprobación de este tipo debe saber sobre el agujero de seguridad y cómo comprobarlo, y por lo tanto requiere un conocimiento sobre eso. Si ese conocimiento está ahí, en lugar de escribir una aplicación para comprobar el agujero, los desarrolladores deberían decidir arreglarlo en primer lugar - lo que haría que esa aplicación fuera obsoleta :)

Así que si un 3 rd party app no es aceptable para ti, lo más probable es que no tengas suerte. Pero en caso de que cambies de opinión, puedes encontrar varios comprobadores de seguridad en esta lista . Hay por ejemplo Escáner de seguridad Heartbleed que está bastante bien valorado (hasta ahora, 4,6 estrellas con más de 5.000 votos), y que puedes encontrar introducido en esta entrada del blog de AndroidPIT .

La categoría de lista vinculada también contiene algunas suites de seguridad que cubren múltiples exploits y riesgos de seguridad, lo que podría ser una buena opción para comprobar si está interesado en la seguridad de su dispositivo.

0voto

Andy Brudtkuhl Puntos 1714

Las aplicaciones no suelen incluir OpenSSL por sí mismas: más bien, Android viene con OpenSSL incluido en el marco principal, por lo que en la mayoría de los casos es la versión de Android la que tiene o no tiene la vulnerabilidad, en lugar de la propia aplicación. Dicho esto, es posible que una aplicación incluya su propio OpenSSL, pero no es habitual.

¿Cómo afecta la vulnerabilidad de seguridad Heartbleed a mi dispositivo Android? explica que sólo la versión 4.1.1 de Android es vulnerable en sí misma.

Si la aplicación contiene un binario OpenSSL enlazado estáticamente, y no quieres usar una aplicación para comprobar el comportamiento, tienes que desempaquetar el archivo APK para encontrar la biblioteca.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X