Anda di halaman 1dari 7

OPENUAX

Seguridad en Sistemas y
Servicios Mviles
Ejercicio Final

[Escriba el nombre del autor]





Se nos ha demandado un informe pericial sobre un malware encontrado en unos
terminales ANDROID, basados en el software Android.FakeRegSMS, del cual se sabe
que enva mensajes SMS a nmeros premium y trata de ocultar esta accin a los
investigadores mediante el uso de algn tipo de esteganografa.
Contenido
INTRODUCCIN ............................................................................................................................. 2
MODELO DE NEGOCIO .................................................................................................................. 2
ANLISIS ........................................................................................................................................ 3
CONCLUSIN ................................................................................................................................. 6


INTRODUCCIO N
FakeRegSMS es un malware que estaba disponible en una tienda no oficial de Android. Esta
enviaba mensajes SMS a cuentas Premium e intentaba esconder dicha accin usando algn
tipo de esteganografa.
Este malware es un falso instalador, es decir, esta app no instala ninguna aplicacin real, pero
al darle a botn de Next la app te suscribe en una cuenta de pago, estos datos son informados
al usuario cuando pulsa el botn de Rules.
Tras la investigacin de esta app, se declar como malware aunque si se lee las reglas que
estaban disponibles en la aplicacin, estas informaban al usuario que enviaba sms a cuentas
Premium.
Este malware esconda cdigo encriptado en el icono del programa y por tanto hace que sea
ms difcil de analizar con mtodos estticos. En este caso, el mtodo usado era novedoso
aunque no estaba muy desarrollado del todo.
MODELO DE NEGOCIO
Si se leen las reglas que proporciona el troyano informa al usuario de lo siguiente.
La aplicacin se supone que ofreca una serie de juegos, temas, informacin, etc. a cambio de
una suscripcin de pago. Una vez que se le da al botn siguiente realiza la suscripcin pero al
ser una app falsa no nos proporciona aquello que hemos comprado, en este caso,
entretenimiento variado.
Esta aplicacin ira dirigida a aquellos usuarios que les resulta complejo o molesto buscar
aplicaciones de diferentes tipo, o informacin en diferentes apps, con una aplicacin como
esta tendra toda esa informacin centralizada en un nico sitio. Esta informacin la tendra
disponible el usuario por un precio que se indicaba en la lista que estaba expuesta en las
reglas.
Aunque la app es un troyano, los usuarios se instalaron la aplicacin pensando que iban a
conseguir una aplicacin como la explicada en el prrafo anterior. Una vez que aceptados los
trminos del contrato pulsado el botn de next, se realizaba la suscripcin va sms.
Esta app se aprovecha de que la mayora de los usuarios no se leen los trminos del contrato y
por tanto aunque avise las acciones que va a realizar a travs del botn Rules pero la
aplicacin no obliga a leer esta informacin.

ANA LISIS
Al instalar la aplicacin esta solicita permisos para el envo de SMS, y cuando se procede a su
instalacin aparece de la siguiente manera (Figura 1).
Figura 1: Imagen de la aplicacin tras ser instalada
Analizando el cdigo decompilado, podemos ver las siguientes lneas de cdigo, donde
observamos como oculta el cdigo malicioso en la imagen icon.png:

invoke-virtual {p0}, Landroid/app/Activity;>getAssets()Landroid/content/res/AssetManager;
move-result-object v0
const-string v2, "icon.png"

invoke-virtual {v0, v2}, Landroid/content/res/AssetManager;->
open(Ljava/lang/String;)Ljava/io/InputStream;

move-result-object v1
iget-object v0, p0, Lcom/termate/MainActivity;->d:Lcom/termate/a;

Figura 2: Cdigo de la imagen. Cdigo generado tras desempaquetar el apk con APK to Java.

byte[] arrayOfByte2 = localByteArrayOutputStream1.toByteArray();
int k = paramInt + (-4 + new String(arrayOfByte2).indexOf("tEXt"));
if (k < 0)
throw new IOException("Chank tEXt not found in png");

La imagen que intenta cargar en una matriz de bytes es la que se encuentra en la carpeta de
resources de Android, y es la que se usa como icono de la aplicacin.
Al examinar los archivos con un editor hexadecimal, se puede localizar la palabra tEXt
fcilmente.

Figura 3: Datos binario de la imagen
Tambin encontramos el fragmento de cdigo mostrado a continuacin, la aplicacin lee cada
byte del fragmento de texto y le realiza una operacin XOR con una clave codificada
(f_+wqlfh4 @312!@#DSAD fh8w3hf43f@#$! r43):
ByteArrayOutputStream localByteArrayOutputStream2 = new ByteArrayOutputStream();
for (int i1 = i; ; i1++)
{
int i2 = (byte)localDataInputStream1.read();
if (i2 == -1)
break;
localByteArrayOutputStream2.write(i2 ^ "f_+wqlfh4 @312!@#DSAD fh8w3hf43f@#$!
r43".charAt(i1 % "f_+wqlfh4 @312!@#DSAD fh8w3hf43f@#$! r43".length()));
}


Si seguimos viendo el cdigo que proporcionado tras desempaquetar la apk, se puede
observar lo siguiente:


int i5 = localDataInputStream2.readShort();
while (true)
{
if (i < i5)
{
String str;
try
{
str = localDataInputStream2.readUTF();
if (str.equals("costLimit"))
this.d = Integer.parseInt(localDataInputStream2.readUTF());
else if (str.equals("costLimitPeriod"))
this.e = Integer.parseInt(localDataInputStream2.readUTF());
}
catch (IOException localIOException)
{
localIOException.printStackTrace();
break label518;
if (str.equals("smsData"))
this.f = localDataInputStream2.readUTF();
}
catch (NumberFormatException localNumberFormatException)
{
localNumberFormatException.printStackTrace();
}
if (str.equals("smsDelay"))
this.h = Integer.parseInt(localDataInputStream2.readUTF());
else
this.g.put(str, localDataInputStream2.readUTF());
}
else
{
return true;
}
label518: i++;
}

Un equipo alemn realiz un estudio
1
donde se realiz un script con Python el cual realizaba la
deofuscacin de la app, el cual daba como resultado el valor de las variables usadas en el
cdigo anterior. El valor de estas variables es el siguiente:
costLimit = 150
CostLimitPeriod = 8640
smsData = l5872600885697126387416947526760l
smsDelay = 15

1
ISSN 2191-5008: TECHNISCHE FAKULTT CS-2012-04
http://opus4.kobv.de/opus4-fau/solrsearch/index/search/searchtype/series/id/9/rows/10
Si ahora ejecutamos en la consola (logcat b radio) para capturar las seales de radio y
pulsamos el botn de next de la aplicacin nos saldr los siguientes datos:
Figura 4: Captura de las seales de radio
Y editando el contenido de la captura se puede observar que la informacin es la misma que la
del tag tEXt de la imagen png. Este mensaje es el encargado de donar la cantidad de dinero
necesaria al benefactor de la aplicacin. El nmero de telfono al que se enva el dinero es el
51XX, y a travs de SMS los usuarios donan una cantidad de dinero.
CONCLUSIO N
Despus de analizar cmo funciona este malware nos encontramos frente a la desproteccin
del usuario frente al cumplimiento de las normas de la aplicacin. En un principio la aplicacin
vende unos contenidos que luego no proporciona. El envo del sms se recoge dentro de las
reglas que recoge el usuario.
El timo de la app reside que en te avisa a travs de las reglas de que se va a realizar la
suscripcin a un servicio de pago Premium y por este dinero te ofrece un servicio que no
ofrece, ya que es un instalador falso, por tanto te cobra por un servicio que nunca recibes.
Adems dichas reglas resultan poco claras y hasta confusas cuando se leen por tanto al leerlas
puedes no enterarte verdaderamente de las condiciones y trminos de la app.

Anda mungkin juga menyukai