Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LABORATORIO - 2 Cristhian Pedro Mendoza Marca
LABORATORIO - 2 Cristhian Pedro Mendoza Marca
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
2
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
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.
Una vez descargado el archivo APK de la aplicación Facebook Lite, que tiene un tamaño de 2 Mb,
se tiene:
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:
7
AUDITORÍA DE SISTEMAS
| CARRERA DE INGENIERÍA DE SISTEMAS
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:
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
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.
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
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.
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.
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:
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
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.
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
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.
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