¿Qué es la seguridad estándar (L1)? ¿Es lo suficientemente segura? El MASVS (Móvil Application Security Estándar de verificación) de OWASP es el estándar de facto para cualquier persona que analice la seguridad de una aplicación, ya sean evaluadores, ingenieros de seguridad o propietarios de la aplicación.
Llene la Diseñar una aplicación seguraDebes confiar en la base sobre la que se construye la aplicación. Ya sea una aplicación y su sistema operativo, firmware y su hardware, o una página web en un navegador, ¿qué sucede cuando la base en sí no es segura?
La resiliencia (R) es un tema importante en el MASVS, y algunos la consideran una recomendación. Digital.ai Creemos que la resiliencia es la base de seguridad fundamental en un entorno que, de otro modo, sería inseguro. El nivel "R" es fundamental para proteger el nivel L1 de "Seguridad Estándar". ¿Por qué? Porque las medidas de seguridad estándar descritas en L-1 se vulneran con demasiada facilidad cuando las aplicaciones se ejecutan en entornos inseguros. Los entornos inseguros incluyen dispositivos móviles con jailbreak o rooteados, emuladores e incluso dispositivos infectados con malware. Todos estos entornos son comunes. De hecho, en un metaanálisis de millones de instancias de aplicaciones que Digital.ai En lo que respecta a la protección, hemos descubierto que, en una semana cualquiera, más de la mitad de las aplicaciones que protegemos se ponen en riesgo.safe .
En la siguiente entrada del blog, hablaremos sobre los requisitos de resiliencia y cómo cumplirlos utilizando ofuscación de código, monitorización y herramientas RASPTambién compartiremos ideas y opiniones sobre las recomendaciones de seguridad estándar de nivel 1 (L1), sus vectores de ataque correspondientes y las formas de mitigarlos. Finalmente, analizaremos algunos desafíos que surgen cuando los ingenieros de aplicaciones solo siguen las recomendaciones L1. Comenzaremos con los requisitos de alto nivel o de "resiliencia" que se tratan en MASVS.
¿Qué es MASVS?
El proceso de Móvil Application Security Estándar de verificaciónMASVS, o «MASVS», es una lista compilada de diferentes recomendaciones que abarcan múltiples áreas como redes, almacenamiento, integridad y más. Estas recomendaciones se clasifican en 3 modelos principales:
- MASVS-L1 – Seguridad estándar: Incluye las mejores prácticas de seguridad, como la calidad del código, el manejo de datos confidenciales y la interacción con el entorno móvil.
- MASVS-L2 – Defensa en profundidad: Este modelo incluye todo lo que contiene MASVS-L1, además de recomendaciones adicionales basadas en el modelo de amenazas para industrias como la banca y la sanidad que manejan datos especialmente sensibles.
- MASVS-R – Resiliencia frente a la ingeniería inversa y la manipulación: Protección contra ataques específicos del lado del cliente, como manipulación y modificación., o ingeniería inversa.
Cómo cumplir con los requisitos de resiliencia
MSTG-RESILIENCIA-1
La aplicación detecta la presencia de un dispositivo rooteado o con jailbreak y responde a ella alertando al usuario o finalizando la aplicación.
Digital.ai Seguridad de la aplicación Detecta numerosos métodos sofisticados de rooteo y jailbreak. Incluso podemos detectar manipulaciones en el propio código del sistema operativo.
MSTG-RESILIENCIA-2
La aplicación impide la depuración y/o detecta y responde a la conexión de un depurador. Deben cubrirse todos los protocolos de depuración disponibles.
Digital.ai La seguridad de la aplicación proporciona protección completa contra depuradores.
MSTG-RESILIENCIA-3
La aplicación detecta y responde a la manipulación de archivos ejecutables y datos críticos dentro de su propio entorno aislado.
Las bibliotecas de criptografía de código abierto como OpenSSL y Mbed-TLS son fáciles de detectar para los atacantes. Porque nuestras protecciones ofrecen un arsenal de criptografía de caja blanca algoritmos que utilizan una implementación propietaria, Digital.ai Los clientes pueden implementar de forma eficiente comprobaciones de integridad sin dejar rastros que puedan ser identificados por los atacantes.
MSTG-RESILIENCIA-4
La aplicación detecta la presencia en el dispositivo de herramientas y marcos de ingeniería inversa de uso común y responde ante ellos.
Digital.ai Application Security detecta la presencia de kits de herramientas de instrumentación dinámica, marcos de trabajo y herramientas de ingeniería inversa como FRIDA, FRIDA-gadget y cycript.
MSTG-RESILIENCIA-5
La aplicación detecta y responde cuando se ejecuta en un emulador.
Digital.ai Application Security Puede detectar emuladores como QEMU probando la CPU en la que se ejecuta la aplicación protegida.
MSTG-RESILIENCIA-6
La aplicación detecta y responde a la manipulación del código y los datos en su propio espacio de memoria.
Digital.ai Application Security detecta y permite a los clientes crear respuestas personalizadas a eventos de manipulaciónAdemás, podemos detectar intentos de eludir la detección de manipulación. También detectamos editores de memoria como GameGuardian e iGameGod, y podemos detectar escaneos de memoria cuando se suspenden las acciones de manipulación.
MSTG-RESILIENCIA-7
La aplicación implementa múltiples mecanismos en cada categoría de defensa (8.1 a 8.6). Cabe destacar que la resiliencia aumenta con la cantidad, la diversidad y la originalidad de los mecanismos utilizados.
Digital.ai Application Security Los clientes eligen cuándo y cómo implementar e invocar un variedad de métodos de detecciónPor ejemplo, cuando se detecta un evento de manipulación, ya sea por un proceso oculto en segundo plano o por una simple violación de integridad, el cliente puede elegir la opción deseada. (RASPAR) respuesta. El cliente podría cerrar la aplicación, obligar al usuario final a volver a autenticarse mediante la autenticación de dos factores o cambiar la configuración de gravedad en un juego a cero, arruinando así la experiencia de juego para el tramposo sin dejar rastro del código de detección de manipulación original.
MSTG-RESILIENCIA-8
Los mecanismos de detección desencadenan respuestas de diferentes tipos, incluidas respuestas retardadas y sigilosas.
Digital.ai Application Security Permite al cliente controlar cuándo y dónde se invocan las protecciones mediante controladores personalizados y planificadores sigilosos. Incluso proporcionamos una función de «fallo» que cierra la aplicación abruptamente sin revelar el origen del código que provocó el fallo.
MSTG-RESILIENCIA-9
La ofuscación se aplica a las defensas programáticas, lo que a su vez impide la desofuscación mediante análisis dinámico.
Ofuscación de código es la base original de nuestra tecnología. Poseemos 6 patentes relacionadas con la ofuscación de código, incluyendo la primera patente jamás otorgada para la ofuscación de código. Digital.ai Application Security Proporcionamos una solución de aplanamiento de código que lo ofusca exhaustivamente. Además, nuestras variables y constantes criptográficas de caja blanca se ofuscan y permanecen activas en memoria durante breves periodos, impidiendo así que el volcado de procesos o los escáneres criptográficos automáticos obtengan información relevante. También ofrecemos protección contra la ofuscación de cadenas en tiempo de ejecución, así como ofuscación completa para entornos de ejecución textuales, como Java y Objective-C.
MSTG-RESILIENCIA-11
Todos los archivos ejecutables y bibliotecas de la aplicación están cifrados a nivel de archivo, y/o segmentos importantes de código y datos dentro de los ejecutables están cifrados o empaquetados. Un análisis estático básico no revela código ni datos importantes.
Ofrecemos diferentes soluciones de cifrado tanto para código como para datos. Por ejemplo, en Android, Digital.ai Application Security La compatibilidad con el cifrado DEX y el cifrado de bibliotecas compartidas nativas, junto con nuestra criptografía de caja blanca y nuestras funciones anti-depuración e instrumentación, cubrirían el producto tanto estática como dinámicamente, dejando al atacante sin ninguna pista.
MSTG-RESILIENCIA-12
Si el objetivo de la ofuscación es proteger cálculos sensibles, se utiliza un esquema de ofuscación adecuado para la tarea y robusto frente a métodos de desofuscación manuales y automatizados, según la investigación publicada. La eficacia del esquema de ofuscación debe verificarse mediante pruebas manuales. Cabe destacar que, siempre que sea posible, se prefieren las características de aislamiento basadas en hardware a la ofuscación.
Toda técnica de ofuscación puede ser eventualmente superada, pero los buenos ofuscadores no pueden ser desofuscados automáticamente. Nuestras técnicas de ofuscación Incluyen numerosas protecciones activas contra desofuscadores y emuladores, y se prueban contra todas las soluciones disponibles públicamente, incluidos los descompiladores JEB.
MSTG-RESILIENCIA-13
Como defensa en profundidad, además de contar con un sólido fortalecimiento de las partes que se comunican, se puede aplicar el cifrado de la carga útil a nivel de aplicación para impedir aún más las escuchas ilegales.
Para interceptar las comunicaciones, un atacante dispone de 3 métodos principales:
- Realizar un ataque de intermediario (MITM) (por ejemplo, eliminando el anclaje de certificados).
- Manipulación de las funciones criptográficas
- Manipulación de la función de red
Nuestros Application Security Nuestra solución detecta cualquier tipo de manipulación, incluso la del código del sistema operativo. Nuestro producto de protección de claves y datos no puede detectarse automáticamente con herramientas de acceso público. Juntas, estas dos soluciones impiden los tres métodos mencionados anteriormente.
Requisitos de nivel 1
MSTG-ARCH-1
Todos los componentes de la aplicación están identificados y se sabe que son necesarios.
Como ingenieros de software, buscamos que nuestro código sea lo más conciso y eficiente posible. Sin embargo, desde el punto de vista de la seguridad, eliminar código innecesario podría aumentar la superficie de ataque. En aplicaciones móviles, un código conciso puede ser contraproducente. Los componentes pequeños e identificables son un objetivo fácil para los atacantes. La ofuscación de código es la primera línea de defensa contra la ingeniería inversa estática, y, lamentablemente, programar de forma concisa y lógica facilita el trabajo de los atacantes.
MSTG-ARCH-10
La seguridad se aborda en todas las etapas del ciclo de vida del desarrollo de software. Es muy fácil marcar una casilla y pasar a la siguiente.
La seguridad se basa realmente en la concienciación, y siempre te lleva a lugares que menos esperabas. Digital.ai Application Security Protege tu aplicación como una caja negra inviolable, a la vez que proporciona capacidades estratégicas para que puedas operar en entornos con fallos.
MSTG-ALMACENAMIENTO-1
Es necesario utilizar las instalaciones de almacenamiento de credenciales del sistema para almacenar datos confidenciales, como información personal identificable (PII) y credenciales de usuario., o claves criptográficas.
Idealmente, las credenciales del sistema son la única forma fiable de almacenar datos confidenciales. Sin embargo, si el sistema operativo ha sido manipulado, es posible que el almacenamiento no sea fiable. No se debe confiar ciegamente en estos sistemas de seguridad para guardar secretos. Dada la variedad de técnicas para detectar el rooteo, el jailbreak, la emulación y otras vulnerabilidades, y considerando las acciones personalizadas para cada amenaza, un atacante podría encontrarse con dificultades para acceder al sistema objetivo mientras se implementa la siguiente versión, que contará con mecanismos de protección totalmente diferentes, lo que frustraría al atacante.
MSTG-ALMACENAMIENTO-10
La aplicación no mantiene datos confidenciales en memoria más tiempo del necesario, y la memoria se borra explícitamente después de su uso.
Nuestro sistema de criptografía de caja blanca ofrece gestión automática de las claves de sesión y su eliminación. Además de la criptografía, Digital.ai Application Security También podría supervisar los accesos a memoria no permitidos desde cualquier parte del sistema operativo, lo que permitiría al cliente reaccionar con una lógica personalizada.
MSTG-CRYPTO-2
La aplicación utiliza implementaciones probadas de primitivas criptográficas.
Las implementaciones de criptografía presentan muchos escollos potenciales, y es necesario ser un experto en la materia para implementar dichos algoritmos con la debida precaución. Por suerte, Digital.ai Application Security Ofrece muchos algoritmos criptográficos diferentes en los que puede confiar y que puede usar directamente. Sin embargo, existen algunos problemas con las bibliotecas criptográficas conocidas y probadas. Algunas bibliotecas, como OpenSSL, Mbed-TLS y las proporcionadas por los sistemas operativos Android e iOS, tienen firmas binarias identificables, lo que permite a los atacantes localizar áreas sensibles en el código e incluso automatizar algunos procesos, como la anulación de certificados. a prueba de manipulaciones La solución protege contra escenarios de manipulación en los que el código objetivo utiliza dichas bibliotecas públicas, al tiempo que ofrece una solución criptográfica totalmente integrada, protegida y oculta dentro del código, lo que impide que los atacantes vean rastros de nuestra solución criptográfica.
Plataforma MSTG-1
La aplicación solo solicita el conjunto mínimo de permisos necesarios.
Nuestra tecnología ofrece numerosas funciones de seguridad sin necesidad de ningún permiso especial.
MSTG-CODE-1
La aplicación está firmada y aprovisionada con un certificado válido, cuya clave privada está debidamente protegida.
Además de los mecanismos de integridad propios del sistema operativo, Digital.ai Application Security Proporciona técnicas para detectar y proteger contra el reempaquetado y la modificación en memoria.
Conclusiones y reflexiones adicionales
El MASVS es un documento fundamental, redactado por voluntarios, para los proveedores de seguridad de software móvil, sus clientes potenciales y sus clientes actuales. Esperamos que el texto anterior sirva de guía a nuestros lectores respecto a las recomendaciones de las secciones L1 y R del documento. A continuación, presentamos algunos comentarios sobre ciertas posturas que adopta el MASVS en el prólogo, especialmente en las secciones que distinguen entre «protecciones de seguridad» y «controles de seguridad», las cuales, en nuestra opinión, merecen un análisis más profundo.
Como se mencionó en la introducción, los requisitos de nivel 1 especificados por MASVS constituyen la base de la seguridad de las aplicaciones y, en particular, de la seguridad en lo que respecta a la privacidad. Creemos que esta base que identifica MASVS puede verse seriamente comprometida por los ciberdelincuentes que se valen de algunos emuladores, depuradores y kits de herramientas de instrumentación dinámica de uso común. Por ejemplo, cuando MASVS afirma: “Las protecciones de software no son inútiles, pero en última instancia pueden ser eludidas, por lo que nunca deben utilizarse como sustituto de los controles de seguridad”. Argumentamos que, incluso si los programadores confían en el sistema operativo para la seguridad y cumplen al pie de la letra con todos los requisitos de capa 1, estos no proporcionarán la funcionalidad de seguridad básica si el sistema operativo subyacente está comprometido (es decir, si se le ha hecho jailbreak o se le ha dado acceso root). En este caso, ocurre lo contrario: usar protecciones de software, como la detección de manipulación descrita en la sección «Resiliencia», es la única vía fiable para la seguridad. ¿Por qué creemos esto? Consideremos, por ejemplo, el almacén de claves. Si tu almacén de claves está totalmente expuesto, también lo está el entorno aislado de tu aplicación. En este caso, la aplicación y sus archivos podrían ser manipulados, reempaquetados e instrumentados, lo que podría automatizar algunos procesos, como la eliminación de certificados y la extracción de recursos. Además, existen casos en los que la capa 1 no protege la privacidad adecuadamente. Por ejemplo, el malware para dispositivos móviles podría dañar el sistema operativo móvil y facilitar que los atacantes espíen las aplicaciones de mensajería instantánea o VoIP mediante la interceptación de API estratégicas o marcos públicos a través de la identificación de sus firmas binarias.
Asimismo, en el prólogo, la MASVS afirma que “La seguridad móvil se centra en la protección de datos”. Esto suele ser cierto, pero no siempre. Al manejar información sensible, como tokens de corta duración, es fundamental garantizar su inaccesibilidad. La seguridad va más allá de la privacidad: a menudo está ligada a la continuidad del negocio y a los ingresos. En los juegos, por ejemplo, donde se realizan numerosas transacciones, estas pueden afectar únicamente al cliente. Además, muchos eventos del juego obligan al servidor a confiar en la entrada del usuario para reducir la latencia. Por ejemplo, los disparos en un juego FPS implican numerosas optimizaciones debido a la frecuencia inherente de este evento (normalmente, un evento por bala).
La seguridad del lado del cliente es un juego constante del gato y el ratón: cuando los desarrolladores/programadores de aplicaciones proporcionan suficientes protecciones, el atacante, frustrado, buscará otro objetivo. Además, publicar actualizaciones frecuentes del cliente con ofuscación polimórfica hace que la investigación continua de las aplicaciones actuales sea inútil, lo que frustra aún más a los atacantes.
Para más información sobre Digital.ai Application Security, haga clic aqui.
Sobre Nosotros Digital.ai
Digital.ai Es una empresa tecnológica líder en el sector, dedicada a ayudar a las empresas del Global 5000 a alcanzar sus objetivos de transformación digital. Inteligencia de clientes DevSecOps La plataforma unifica, protege y genera información predictiva a lo largo de todo el ciclo de vida del software. Digital.ai Capacita a las organizaciones para ampliar sus equipos de desarrollo de software, entregar software de forma continua con mayor calidad y seguridad, al tiempo que descubren nuevas oportunidades de mercado y mejoran el valor empresarial a través de inversiones de software más inteligentes.
Información adicional sobre Digital.ai se puede encontrar en digital.ai and on Twitter, LinkedIn y Facebook.
Más información en Digital.ai Application Security
