Extraer urls de malware ofuscado de Android

1

Trabajando en malware de Android, me he enfrentado a muchos malwares de Android que normalmente contienen URL que son página de phishing bancario . Este tipo de malware está creciendo en número, por lo que realmente se necesita un sistema de detección automatizado . El primer paso para detectar tales malwares es extracción de url / enlace .

Un simple enfoque estático es descompilar la aplicación y buscar cadenas que comiencen con "http" en el código fuente. Hay muchas herramientas y bibliotecas como stringoid , Diggy , NinjaDroid , Androguard y muchos otros, pero en la medida en que he probado estas herramientas, no pueden detectar las URL ocultas. Por ejemplo, considere este código:

this.c = "/something";
this.d = new String(Base64.decode(Application.a, 0));
this.a.loadUrl(this.d + this.c);

Está claro que el análisis estático solo es insuficiente, por lo que estoy buscando otras soluciones. Hasta ahora, he visto algunos enfoques en algunos artículos que intentan extraer tales cadenas confusas de los archivos APK de Android. Un ejemplo es ForceDROID que presenta una técnica híbrida (tanto estática como dinámica) para extraer información oculta. Esta técnica funciona cambiando las condiciones de flujo de control para ejecutar un determinado camino. Otro ejemplo se basa en la desobfuscación.

Todas estas técnicas son excelentes, pero el problema es que no hay ninguna implementación disponible.

Desafortunadamente, no estoy lo suficientemente capacitado para implementar tales técnicas. Un enfoque en el que pienso es usar primero un desobuscador como simplify y luego extraer las URL mediante análisis estático (utilizando las herramientas mencionadas anteriormente) .

¿Cuáles son otras formas de extraer automáticamente las URL ocultas? ¿Hay alguna herramienta o biblioteca por ahí?

    
pregunta Mehran Torki 30.04.2018 - 21:15
fuente

1 respuesta

4

Me temo que hay más formas de ofuscar una URL de las que se pueden contar. Es muy fácil venir con otro método cuando se marcó el último, por lo que no se recomienda el análisis estático.

Si es posible, ejecute la aplicación dentro de un emulador, registre todas las comunicaciones externas y compare con una lista blanca de sitios permitidos. El análisis estático generará demasiados falsos positivos y falsos negativos para ser útil.

    
respondido por el ThoriumBR 30.04.2018 - 22:46
fuente

Lea otras preguntas en las etiquetas