Está en la página 1de 22

AUDITORÍA DE SISTEMAS

| CARRERA DE INGENIERÍA DE SISTEMAS

UNIVERSIDAD PÚBLICA DE EL ALTO Carrera


de ingeniería de sistemas

AUDITORIA DE SISTEMAS

NOVENO SEMESTRE
ÁREA DE CONOCIMIENTO
ASIGNATURA: AUDITORIA DE SISTEMAS
AUDITORIA
Docente: Ing. Humberto Aguilar Lobo, PhD

LABORATORIO 2
Estudiante: Cristhian Pedro Mendoza Marca

LABORATORIO 2
(Auditoria informática de una Aplicación Móvil - APP)
1. PREGUNTAS TEORICAS.
1.- ¿Investigue ampliamente qué información contiene el archivo “apktool.yml”?
El archivo "apktool.yml" es un archivo de configuración utilizado por la herramienta de
ingeniería inversa de Android llamada "APKTool". Este archivo contiene información sobre
cómo se debe descompilar y volver a compilar una aplicación de Android (archivo APK).
Algunos elementos comunes encontrados en el archivo "apktool.yml" incluyen:
1. Registro de la versión de APKTool utilizada durante el proceso, asegurando la consistencia
en futuras iteraciones.
2. Detalles del APK original, como su ubicación en el sistema de archivos, nombre de archivo
y versión.
3. Especificaciones sobre cómo gestionar los recursos, como la carpeta de recursos (res) y
las configuraciones de idioma.
4. Instrucciones para manejar los activos, como archivos en la carpeta "assets", junto con
cualquier configuración particular.
5. Información sobre la firma digital del APK original, incluyendo detalles del almacén de
claves, alias y contraseñas.
6. Datos relacionados con el nombre del paquete de la aplicación y su versión.
7. Especificaciones sobre la versión mínima de Android (API) requerida para la aplicación.
8. Selección de la versión del SDK de Android que servirá como plataforma de destino para
la aplicación.
9. Configuraciones específicas relacionadas con características particulares de la aplicación,
como permisos y otras características relevantes.

1
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

10. Cualquier otra configuración personalizada necesaria para el proceso de desmontaje y


reensamblaje.

2.- ¿Investigue cómo funciona el APKTOOL en referencia a la “De compilación”?


APKTool es una herramienta de desarrollo de aplicaciones para Android, de código
abierto, que se usa para descomponer y volver a ensamblar archivos APK. En el proceso
de "recompilación", APKTool se encarga de reconstruir los recursos y el código fuente de
un APK desmontado en un nuevo APK funcional:
1. Desmontaje inicial: Para comenzar, se descompone el archivo APK original utilizando
APKTool, separándolo en sus componentes originales, como archivos de recursos
(imágenes, diseños, archivos XML) y código fuente en formato smali (utilizado por la
máquina virtual Dalvik de Android). Esto permite realizar cambios en el código y los
recursos de la aplicación.
2. Implementación de cambios: Una vez desmontados, el desarrollador puede realizar los
ajustes necesarios, como modificaciones en la interfaz de usuario, la lógica de la
aplicación o la incorporación de nuevas características.
3. Recompilación: Tras finalizar las modificaciones, APKTool se emplea nuevamente para
reconstruir los recursos y el código fuente en un nuevo archivo APK. Durante este
proceso, se respetan la estructura y las configuraciones originales del APK para
garantizar que el nuevo archivo sea coherente con la versión original.
4. Firma del APK: Una vez recompilado, el nuevo APK debe firmarse digitalmente con una
clave de firma (keystore) y un alias asociado para que sea válido y se pueda instalar en
dispositivos Android.
5. Pruebas y depuración: Antes de la distribución, es crucial probar exhaustivamente el
nuevo APK para asegurar que todas las modificaciones funcionen correctamente y no
haya errores. Para ello, se utilizan emuladores de Android o dispositivos reales.
6. Distribución: Una vez que se han completado las pruebas y depuración, el nuevo APK
puede distribuirse a los usuarios a través de plataformas como Google Play Store u
otros medios independientes.

2.- PREGUNTA PRACTICA.


Realice el mismo procedimiento de este laboratorio (paso a paso) de las siguientes aplicaciones:
• “WHATSAPP PLUS” o “WHATSAPP GOLD” o “Facebook Lite” (Solo una)
• Una aplicación móvil de un juego en particular, a su elección.

Nota. Debe realizar un análisis y explicación de un mínimo 5 permisos diferentes de cada


aplicación móvil en cuanto a “permisos necesarios o innecesarios (sospechosos)”
1. HERRAMIENTAS A UTILIZAR.
A los efectos de esta prueba y/o laboratorio, es importante conocer algunos conceptos previos de
las herramientas que se hará uso, entre las que se tiene:

2
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

• WINDOWS. Es un sistema operativo, es decir, un programa de software que admite


funciones básicas, como la administración de archivos y la ejecución de aplicaciones, y que
usa dispositivos periféricos, como la impresora, el monitor, el teclado y el mouse.
• APLICACIÓN MÓVIL DE ANDROID STUDIO. Es una APP desarrollada en Android
Studio, que básicamente es el IDE oficial de Android que se creó exclusivamente a fin de
acelerar el desarrollo y ayudar a compilar apps de la más alta calidad para todos los
dispositivos Android.
• APP EN FORMATO APK. Una aplicación requiere de una serie de datos para poder
ejecutarse en un sistema operativo. En el caso de Android, esos datos de la app se
encuentran comprimidos dentro del archivo APK (ANDROID APPLICATION PACKAGE). y
es uno de los términos que más se repiten en cualquier proyecto de apps. Y se trata de un
archivo ejecutable que contiene todos los datos que se necesitan para instalar y hacer
funcionar una aplicación Android. Y es único para cada una de ellas.
• APK TOOL. Esta herramienta se utiliza para desempaquetar aplicaciones de Android
(APK). Simplemente descomprime un archivo APK con la herramienta UNZIP a pesar que
la herramienta deja algunos archivos ilegibles. Entre los archivos que desempaqueta, se
tiene:
o Android Manifest.xml, que esta codificado en formato XML que no se puede leer
con un editor de texto. La herramienta decodifica automáticamente el archivo
AndroidManifest.xml y extrae los recursos de la aplicación (también desensambla
los archivos “.DEX” en código SMALI).
o apktool.yml: Que contiene información sobre la salida de APKTOOL.
o Original: La carpeta contiene el archivo MANIFEST.MF, que contiene información
sobre los archivos contenidos en el archivo JAR.
o Res: La carpeta que contiene los recursos de la aplicación. o smali: El directorio
que contiene el bytecode de Dalvik.

3. DESCARGA DE UNA APLICACIÓN MÓVIL (ANDROID).


Para los efectos de este laboratorio, se realizará la descarga de una aplicación móvil que muchas
personas la utilizan, denominada FACEBOOK LITE, que es una versión simplificada y más ligera
de la aplicación principal de Facebook. Está diseñada principalmente para funcionar en dispositivos
móviles con recursos limitados, conexiones de internet lentas o en áreas donde la conectividad es
poco confiable. Facebook Lite conserva muchas de las funciones principales de la aplicación
principal de Facebook, como la capacidad de publicar actualizaciones, compartir fotos y vídeos,

3
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

enviar mensajes y recibir notificaciones, pero con un consumo reducido de datos y recursos del
dispositivo. Esto la hace popular en mercados emergentes y regiones donde los dispositivos
móviles y las conexiones a internet son menos avanzadas.
NOTA. La presente aplicación debe ser descargada en la extensión APK, que básicamente es el
archivo ejecutable que contiene todos los datos que se necesitan para instalar y hacer funcionar
una aplicación Android.

Para tal efecto, se puede descargar desde el siguiente enlace:


https://www.malavida.com/es/soft/facebook-lite/android/

Una vez descargado el archivo APK de la aplicación Facebook Lite, que tiene un tamaño de 2 Mb,
se tiene:

4. UTILIZACIÓN DE LA HERRAMIENTA APK TOOL.


La herramienta APK TOOL está diseñada para aplicaciones de Android binarias, y a través de
ingeniería inversa puede decodificar los activos en una forma casi original y reconstruirlos después
de realizar algunos cambios; permite depurar código pequeño paso a paso. Además, facilita el
trabajo con la aplicación gracias a la estructura de archivos similar a un proyecto y la
automatización de algunas tareas repetitivas como crear APK, entre otras características. Para
poder utilizar esta herramienta se debe seguir los siguientes pasos:

4
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

PASO 1. Para realizar este laboratorio, se hará utilización de la herramienta que se encuentra
online, es decir la ejecución de la misma es a través de internet., para tal efecto se debe ingresar
al siguiente enlace desde un navegador:
http://www.javadecompilers.com/apktool

PASO 2. Como siguiente paso, se debe hacer clic en la opción “APKTOOL ONLINE” en la
herramienta y debemos subir el archivo descargado en extensión APK, teniendo:

5
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

PASO 3. Una vez realizada la subida del archivo, se debe proceder a realizar la “De compilación”
de la aplicación FACEBOOK haciendo clic en el botón “UPLOAD AND DECOMPILE” en la
herramienta, teniendo:

PASO 4. A continuación, una vez realizado la subida del archivo y posterior “de compilación” que
de acuerdo al tamaño del archivo, tendrá una duración de entre 5 a 10 minutos para que pueda
terminar de realizar la “de compilación”, teniendo:

6
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

PASO 5. Ahora, un punto muy importante es que se debe guardar el archivo “De compilado” que
generó la herramienta, haciendo clic en el botón “SAVE” teniendo las siguientes capturas de
pantallas:

5. REALIZACIÓN DE AUDITORIA INFORMÁTICA DE LA APLICACIÓN MÓVIL.


Ahora, para poder realizar el análisis del código fuente de la aplicación, se hará uso del navegador
“OPERA GX” para poder abrir el mismo. Para poder realizar este procedimiento en primera
instancia se debe ir a la carpeta donde se descargó la “De compilación” de la aplicación móvil
FACEBOOK LITE, teniendo la siguiente captura de pantalla:

7
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

A continuación, se debe abrir el archivo “AndroidManifest.xml”. Y para poder comprender lo


importante de este archivo, es necesario expresar que todos los proyectos de apps deben tener
un archivo “AndroidManifest.xml” en la raíz de la fuente del proyecto. El archivo describe
información esencial de la aplicación, entre sus características del archivo se tiene:
• El nombre del paquete de la aplicación, que normalmente coincide con el espacio de
nombres del código. Las herramientas de compilación de Android usan esto para determinar
la ubicación de las entidades de código cuando se compila el proyecto. Al empaquetar la
aplicación, las herramientas de compilación sustituyen este valor por el ID de aplicación de los
archivos de compilación que se utiliza como identificador único de la aplicación en el sistema
y en Google Play.
• Los componentes de la aplicación, que incluyen todas las actividades, servicios, receptores
de emisiones y proveedores de contenido. Cada componente define propiedades básicas,
como el nombre de la clase “Kotlin o Java”. También se declara capacidades, como las
configuraciones del dispositivo en cual se maneja, además de filtros que describen cómo se
puede iniciar el componente.
• Los Permisos, que necesita la aplicación para acceder a las partes protegidas del sistema o
a otras aplicaciones. También declara cualquier permiso que otras aplicaciones deben tener si
quieren acceder al contenido de esta aplicación.
• Las funciones de hardware y software, que requiere la aplicación hacia los dispositivos que
pueden instalar la aplicación desde Google Play.

Para tal efecto, el archivo se abrirá a través de OPERA GX, teniendo:

8
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

9
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

A los efectos de la anterior captura de pantalla, se puede mencionar que haciendo un análisis de
las líneas de código de la aplicación móvil FACEBOOK LITE, se puede observar en cuanto a los
permisos que habilita la app se tiene las siguientes líneas de código:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="503301282" android:ver


sionName="399.0.0.7.120" android:compileSdkVersion="34" android:compileSdkVersionCodename="14" package="co
m.facebook.lite" platformBuildVersionCode="34" platformBuildVersionName="14">
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="34"/>
<supports-
screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="t
rue"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.telephony" android:required="false"/>
<uses-feature android:name="android.hardware.microphone" android:required="false"/>
<uses-feature android:name="android.hardware.location" android:required="false"/>
<uses-feature android:name="android.hardware.location.network" android:required="false"/>
<uses-feature android:name="android.hardware.location.gps" android:required="false"/>
<uses-feature android:name="android.hardware.wifi" android:required="false"/>
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
<permission android:name="com.facebook.receiver.permission.ACCESS" android:protectionLevel="signature"/>
<permission android:name="com.facebook.permission.prod.FB_APP_COMMUNICATION" android:protectionLevel="sig
nature"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.BATTERY_STATS"/>
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_CALENDAR"/>
<uses-permission-sdk-23 android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS"/>
<uses-permission android:name="android.permission.READ_PROFILE"/>

10
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission-sdk-23 android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission-sdk-23 android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission-sdk-23 android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED"/>
<uses-permission-sdk-23 android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission-sdk-23 android:name="com.google.android.gms.permission.AD_ID"/>
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>
<uses-permission android:name="com.facebook.receiver.permission.ACCESS"/>
<uses-permission android:name="com.facebook.katana.provider.ACCESS"/>
<uses-permission android:name="com.facebook.orca.provider.ACCESS"/>
<uses-permission android:name="com.facebook.mlite.provider.ACCESS"/>
<uses-permission android:name="com.facebook.wakizashi.provider.ACCESS"/>
<uses-permission android:name="com.facebook.permission.prod.FB_APP_COMMUNICATION"/>
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE"/>
<uses-permission android:name="com.sec.android.provider.badge.permission.READ"/>
<uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCUT"/>
<uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE"/>
<uses-permission android:name="com.sonymobile.home.permission.PROVIDER_INSERT_BADGE"/>
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<uses-permission android:name="com.huawei.android.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"/>
<uses-permission android:name="com.oppo.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.oppo.launcher.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.REORDER_TASKS"/>
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
<uses-permission android:name="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION"/>
<uses-feature android:name="android.hardware.bluetooth" android:required="false"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
<uses-permission android:name="com.facebook.services.identity.FEO2"/>
<uses-permission-sdk-23 android:name="android.permission.ANSWER_PHONE_CALLS"/>
<uses-permission-sdk-23 android:name="android.permission.READ_CALL_LOG"/>
<uses-
permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>

11
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

<permission android:name="com.facebook.lite.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" android:prot


ectionLevel="signature"/>
<uses-permission android:name="com.facebook.lite.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"/>
<uses-permission android:name="com.android.vending.BILLING"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>

A los efectos de realizar un análisis del código fuente de la aplicación móvil, es importante
mencionar que cuando una aplicación necesita acceso a recursos confidenciales en el dispositivo,
los desarrolladores de la aplicación utilizan el modelo de permisos. Si bien el modelo puede ser
bastante simple de usar, los desarrolladores a menudo cometen errores al usar los permisos y esto
genera problemas de seguridad. Y se puede observar, la aplicación móvil FACEBOOK LITE habilita
una serie de casi 69 permisos en el dispositivo móvil, entre los cuales se encuentran 6 permisos
muy particular lo cuales son:
1. android.permission.RECORD_AUDIO: Este permiso permite que la aplicación acceda al
micrófono del dispositivo para grabar audio. Se utiliza comúnmente en aplicaciones que
requieren grabación de voz, como aplicaciones de mensajería de voz o grabadoras de
audio.
2. android.permission.SYSTEM_ALERT_WINDOW: Este permiso permite que la aplicación
muestre ventanas superpuestas en otras aplicaciones o en el sistema operativo. Es
esencial para aplicaciones que requieren funciones de superposición, como aplicaciones
de asistencia, aplicaciones de grabación de pantalla, etc.
3. android.permission.BLUETOOTH: Con este permiso, la aplicación puede comunicarse con
dispositivos Bluetooth emparejados. Se utiliza en aplicaciones que necesitan interactuar
con dispositivos Bluetooth, como auriculares, altavoces, dispositivos de seguimiento de
actividad física, etc.
4. android.permission.FOREGROUND_SERVICE: Este permiso permite que la aplicación
ejecute servicios en primer plano, lo que significa que pueden continuar ejecutándose

12
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

incluso cuando la aplicación no está en primer plano. Es importante para aplicaciones que
necesitan realizar tareas en segundo plano, como reproducción de música, seguimiento de
ubicación en tiempo real, etc.
5. android.permission.BIND_NOTIFICATION_LISTENER_SERVICE: Con este permiso, la
aplicación puede acceder a las notificaciones del sistema. Se utiliza en aplicaciones de
gestión de notificaciones, como aplicaciones de seguridad, aplicaciones de productividad,
etc.
6. com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE: Este
permiso permite que la aplicación reciba información sobre cómo se instaló desde Google
Play Store. Se utiliza comúnmente en aplicaciones que desean realizar un seguimiento de
las fuentes de instalación para análisis o para campañas de marketing.

Es importante revisar los permisos que aceptamos en esta aplicación. En ese entendido se puede
concluir que a través de una auditoria informática se ha podido identificar que la aplicación móvil
FACEBOOK LITE habilita permisos sospechosos y no utilizados en todo momento.

REPORTE Y/O CONCLUSIONES


Anote sus Conclusiones u Observaciones; del punto requerido.

Nos damos cuenta que la aplicación FACEBOOK LITE es una aplicación con

demasiados permisos y tenemos que tener cuidado con instalar aplicaciones de lugares

dudosos ya que no sabemos a lo que nos exponemos o la información que brindamos

a otros tipos de personas

2. HERRAMIENTAS A UTILIZAR.
A los efectos de esta prueba y/o laboratorio, es importante conocer algunos conceptos previos de
las herramientas que se hará uso, entre las que se tiene:
• WINDOWS. Es un sistema operativo, es decir, un programa de software que admite
funciones básicas, como la administración de archivos y la ejecución de aplicaciones, y que
usa dispositivos periféricos, como la impresora, el monitor, el teclado y el mouse.
• APLICACIÓN MÓVIL DE ANDROID STUDIO. Es una APP desarrollada en Android
Studio, que básicamente es el IDE oficial de Android que se creó exclusivamente a fin de
acelerar el desarrollo y ayudar a compilar apps de la más alta calidad para todos los
dispositivos Android.

13
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

• APP EN FORMATO APK. Una aplicación requiere de una serie de datos para poder
ejecutarse en un sistema operativo. En el caso de Android, esos datos de la app se
encuentran comprimidos dentro del archivo APK (ANDROID APPLICATION PACKAGE). y
es uno de los términos que más se repiten en cualquier proyecto de apps. Y se trata de un
archivo ejecutable que contiene todos los datos que se necesitan para instalar y hacer
funcionar una aplicación Android. Y es único para cada una de ellas.
• APK TOOL. Esta herramienta se utiliza para desempaquetar aplicaciones de Android
(APK). Simplemente descomprime un archivo APK con la herramienta UNZIP a pesar que
la herramienta deja algunos archivos ilegibles. Entre los archivos que desempaqueta, se
tiene:
o Android Manifest.xml, que esta codificado en formato XML que no se puede leer
con un editor de texto. La herramienta decodifica automáticamente el archivo
AndroidManifest.xml y extrae los recursos de la aplicación (también desensambla
los archivos “.DEX” en código SMALI).
o apktool.yml: Que contiene información sobre la salida de APKTOOL.
o Original: La carpeta contiene el archivo MANIFEST.MF, que contiene información
sobre los archivos contenidos en el archivo JAR.
o Res: La carpeta que contiene los recursos de la aplicación. o smali: El directorio
que contiene el bytecode de Dalvik.

3. DESCARGA DE UNA APLICACIÓN MÓVIL (ANDROID).


Para los efectos de este laboratorio, se realizará la descarga de una aplicación móvil que muchas
personas la utilizan, denominada MONOPOLY, es una conocida aplicación de juegos de mesa
basada en el juego de mesa del mismo nombre. El juego trata sobre la compraventa de
propiedades y el desarrollo de una estrategia financiera para ganar dinero y arruinar a tus
oponentes.

NOTA. La presente aplicación debe ser descargada en la extensión APK, que básicamente es el
archivo ejecutable que contiene todos los datos que se necesitan para instalar y hacer funcionar
una aplicación Android.

Para tal efecto, se puede descargar desde el siguiente enlace:


ᐅ Monopoly APK 1.9.4 (Actualizado) Última versión 2023 ✔️ (espacioapk.com)

14
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

Una vez descargado el archivo APK de la aplicación MONOPOLY, que tiene un tamaño de 330 Mb,
se tiene:

4. UTILIZACIÓN DE LA HERRAMIENTA APK TOOL.


La herramienta APK TOOL está diseñada para aplicaciones de Android binarias, y a través de
ingeniería inversa puede decodificar los activos en una forma casi original y reconstruirlos después
de realizar algunos cambios; permite depurar código pequeño paso a paso. Además, facilita el
trabajo con la aplicación gracias a la estructura de archivos similar a un proyecto y la
automatización de algunas tareas repetitivas como crear APK, entre otras características. Para
poder utilizar esta herramienta se debe seguir los siguientes pasos:

PASO 1. Para realizar este laboratorio, se hará utilización de la herramienta que se encuentra
online, es decir la ejecución de la misma es a través de internet., para tal efecto se debe ingresar
al siguiente enlace desde un navegador:
http://www.javadecompilers.com/apktool

15
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

PASO 2. Como siguiente paso, se debe hacer clic en la opción “APKTOOL ONLINE” en la
herramienta y debemos subir el archivo descargado en extensión APK, teniendo:

PASO 3. Una vez realizada la subida del archivo, se debe proceder a realizar la “De compilación”
del juego MONOPOLY haciendo clic en el botón “UPLOAD AND DECOMPILE” en la herramienta,
teniendo:

16
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

PASO 4. A continuación, una vez realizado la subida del archivo y posterior “de compilación” que
de acuerdo al tamaño del archivo, tendrá una duración de entre 5 a 10 minutos para que pueda
terminar de realizar la “de compilación”, teniendo:

17
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

PASO 5. Ahora, un punto muy importante es que se debe guardar el archivo “De compilado” que
generó la herramienta, haciendo clic en el botón “SAVE” teniendo las siguientes capturas de
pantallas:

18
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

5. REALIZACIÓN DE AUDITORIA INFORMÁTICA DE LA APLICACIÓN MÓVIL.


Ahora, para poder realizar el análisis del código fuente de la aplicación, se hará uso del navegador
“Mozilla Firefox” para poder abrir el mismo. Para poder realizar este procedimiento en primera
instancia se debe ir a la carpeta donde se descargó la “De compilación” de la aplicación móvil
MONOPOLY, teniendo la siguiente captura de pantalla:

A continuación, se debe abrir el archivo “AndroidManifest.xml”. Y para poder comprender lo


importante de este archivo, es necesario expresar que todos los proyectos de apps deben tener
un archivo “AndroidManifest.xml” en la raíz de la fuente del proyecto. El archivo describe
información esencial de la aplicación, entre sus características del archivo se tiene:
• El nombre del paquete de la aplicación, que normalmente coincide con el espacio de
nombres del código. Las herramientas de compilación de Android usan esto para determinar
la ubicación de las entidades de código cuando se compila el proyecto. Al empaquetar la
aplicación, las herramientas de compilación sustituyen este valor por el ID de aplicación de los
archivos de compilación que se utiliza como identificador único de la aplicación en el sistema
y en Google Play.

19
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

• Los componentes de la aplicación, que incluyen todas las actividades, servicios, receptores
de emisiones y proveedores de contenido. Cada componente define propiedades básicas,
como el nombre de la clase “Kotlin o Java”. También se declara capacidades, como las
configuraciones del dispositivo en cual se maneja, además de filtros que describen cómo se
puede iniciar el componente.
• Los Permisos, que necesita la aplicación para acceder a las partes protegidas del sistema o
a otras aplicaciones. También declara cualquier permiso que otras aplicaciones deben tener si
quieren acceder al contenido de esta aplicación.
• Las funciones de hardware y software, que requiere la aplicación hacia los dispositivos que
pueden instalar la aplicación desde Google Play.

Para tal efecto, el archivo se abrirá a través de Mozilla Firefox, teniendo:

A los efectos de la anterior captura de pantalla, se puede mencionar que haciendo un análisis de
las líneas de código de la aplicación móvil MONOPOLY, se puede observar en cuanto a los
permisos que habilita la app se tiene las siguientes líneas de código:

20
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<uses-feature android:glEsVersion="0x00020000"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="false"/>
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false"/>
<uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false"/>
<uses-permission android:name="com.android.vending.BILLING"/>
<queries>
<intent>
<action android:name="com.android.vending.billing.InAppBillingService.BIND"/>
</intent>
<package android:name="com.facebook.katana"/>
</queries>
<uses-permission
android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<permission android:name="com.marmalade.monopoly.permission.C2D_MESSAGE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.marmalade.monopoly.permission.C2D_MESSAGE"/>
<uses-permission android:name="com.android.vending.CHECK_LICENSE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>

A los efectos de realizar un análisis del código fuente de la aplicación móvil, es importante
mencionar que cuando una aplicación necesita acceso a recursos confidenciales en el dispositivo,
los desarrolladores de la aplicación utilizan el modelo de permisos. Si bien el modelo puede ser
bastante simple de usar, los desarrolladores a menudo cometen errores al usar los permisos y esto
genera problemas de seguridad. Y se puede observar, la aplicación móvil MONOPOLY habilita una
serie de permisos en el dispositivo móvil, entre los cuales se encuentran 5 permisos muy particular,
Los Cuales Son:
1. android.permission.POST_NOTIFICATIONS: Este permiso permite que la aplicación
publique notificaciones en el dispositivo del usuario. Es específico y poderoso, ya que

21
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS

controla la capacidad de la aplicación para mostrar notificaciones, lo que puede influir en la


experiencia del usuario y la interacción con la aplicación.
2. com.marmalade.monopoly.permission.C2D_MESSAGE: Este permiso parece ser
específico de una aplicación llamada "Monopoly" desarrollada por Marmalade Game
Studio. Es un permiso de mensaje de recepción C2D (Cloud to Device), que probablemente
se utiliza para recibir mensajes de notificación push u otro tipo de comunicación desde los
servidores de la aplicación.
3. android.permission.RECORD_AUDIO: Este permiso permite que la aplicación grabe audio
utilizando el micrófono del dispositivo. Es particularmente sensible porque implica la
capacidad de la aplicación para capturar y grabar audio, lo que puede plantear
preocupaciones de privacidad si se abusa de esta capacidad.
4. android.permission.CAMERA: Este permiso otorga a la aplicación acceso a la cámara del
dispositivo, permitiendo tomar fotos o grabar vídeos. Es crucial para aplicaciones que
requieren funcionalidades relacionadas con la cámara, pero también puede ser
considerado como un permiso sensible debido a su capacidad de acceder a imágenes y
vídeos.
5. com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE: Este
permiso permite que la aplicación reciba información sobre cómo se instaló desde Google
Play Store. Es específico de las aplicaciones distribuidas a través de Google Play Store y
se utiliza comúnmente para rastrear las fuentes de instalación y evaluar la eficacia de las
estrategias de marketing.

Es importante revisar los permisos que aceptamos en esta aplicación. En ese entendido se puede
concluir que a través de una auditoria informática se ha podido identificar que la aplicación móvil
MONOPOLY habilita permisos sospechosos y no utilizados en todo momento.

REPORTE Y/O CONCLUSIONES


Anote sus Conclusiones u Observaciones; del punto requerido.

Se observa que la aplicación para jugar MONOPOLY solicita principalmente permisos

estándar, pero algunos de ellos podrían generar ciertas dudas, especialmente

considerando que el juego tiene un costo en la tienda de Google Play de 10 bolivianos,

mientras que en otros sitios web se puede encontrar de forma gratuita. Sin embargo, es

importante recordar que siempre hay un costo asociado, y este puede no ser evidente
22
de inmediato al instalar este tipo de aplicaciones

También podría gustarte