¿Qué funciones debo enganchar para verificar si la aplicación contiene código malicioso o utiliza métodos en desuso?

0

Estoy trabajando en un proyecto de Android cuyo objetivo es identificar qué funciones nativas o de Java deben estar conectadas y monitoreadas en tiempo de ejecución para verificar si la aplicación contiene un comportamiento malicioso o prácticas de programación deficientes.

Por ejemplo, conectar el connect () permite acceder a la información del puerto y detectar conexiones que usan http (80) en lugar de https (443), lo que es definitivamente una práctica de programación débil.

edit: aparentemente, verificar el número de puerto no es suficiente para saber si es http o https, y se requeriría un análisis de tráfico (gracias @ André Borie).

He identificado muchos otros comportamientos potencialmente maliciosos y prácticas de programación débiles, y he preparado estructuras de enlace similares. Quería preguntarte qué funciones engancharías para verificar si la aplicación intenta:

1) acceder a la tarjeta SD,

2) detectar GPS,

3) acceso a la cámara o micrófono,

4) números premium de llamadas.

Además, el uso de métodos en desuso es potencialmente peligroso por razones de seguridad. Por lo tanto, quiero comprobar si la aplicación está utilizando alguna. Lo que estoy pensando es usar una lista negra de todos los métodos obsoletos conocidos y luego escanear el código de la aplicación para buscar métodos de esa lista. ¿Estás de acuerdo con esto? (Considere un escenario en el que no hay ofuscación de código). Lo mismo para la API de cifrado débil (por ejemplo, MD5?): ¿Cómo detectarlos?

edit: Reconozco el hecho de que no todos los métodos en desuso están en desuso por razones de seguridad (gracias a @CommonsWare), pero algunos de ellos lo están. ¿Cómo separaría los métodos que han quedado en desuso por problemas de seguridad conocidos de los demás? Sería bueno tener una lista completa.

    
pregunta noobsharp 13.11.2016 - 00:41
fuente

1 respuesta

1

Entiendo el escenario actual en el que su trabajo con usted quiere algo como SAST, pero en tiempo de ejecución algo que una famosa empresa de seguridad hizo estos días que no está en el alcance de la respuesta. Sin embargo, algunas sugerencias pueden ayudar en este caso, que es ... Si los métodos en desuso que busca están basados en dependencias de programas, aquí hay una sugerencia para la que usaría Java.

Abra el archivo de dependencia, java normalmente es pom.xml u otro lenguaje de programación está en otro archivo. Verifique la versión principal de la dependencia y compárela con la versión actual del pom, es decir, si una versión de primavera es 5.1.4 y la dependencia es 5.1.2, entonces puede informar la actualización creyendo que puede implicar en la seguridad. Por cierto, si el acceso a la tarjeta SD o cualquier cosa fuera de la aplicación se puede hacer en el AndroidManifest como se muestra a continuación.

<application android:allowBackup="true" ... > > Needs to be false

La segunda sugerencia es, como se mencionó, hacer una lista negra, pero en cambio una pequeña base de datos que se actualiza de vez en cuando con todos los métodos obsoletos que pueden causar daños por razones de seguridad. Es posible que desee trabajar con un algoritmo mejorado para que funcione rápidamente porque con el tiempo se volverá grande. Estas son las cosas que sugeriría.

    
respondido por el Luis Carlos 09.08.2018 - 16:18
fuente

Lea otras preguntas en las etiquetas