¿Qué es la seguridad estándar (L1)? ¿Es lo suficientemente seguro? El MASVS (Móvil Application Security Estándar de verificación) de OWASP es el estándar de facto para cualquiera que analice la seguridad de una aplicación, ya sean evaluadores, ingenieros de seguridad o propietarios de aplicaciones.

Llene la diseñar una aplicación segura, debe 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?   

R – La resiliencia es un tema importante en el MASVS, y algunos ven la “R” como una recomendación. En Digital.ai Creemos que la resiliencia es la base segura real en un entorno inseguro. El nivel “R” es fundamental para proteger el nivel L1 “Standard Security”. ¿Por qué? Porque las medidas de seguridad estándar descritas en L-1 se rompen 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 metanálisis de los millones de instancias de aplicaciones que Digital.ai protege, hemos descubierto que en una semana determinada, más de la mitad de las aplicaciones que protegemos se ponen ensafe . 

En la siguiente publicación de blog, analizaremos los requisitos de resiliencia y cómo cumplirlos mediante herramientas de ofuscación de código, monitoreo y RASP. También compartiremos conocimientos y opiniones sobre las recomendaciones de seguridad estándar L1, sus vectores de ataque correspondientes y las formas en que podría mitigarlos. Finalmente, discutiremos algunos desafíos que ocurren cuando los ingenieros de aplicaciones solo siguen las recomendaciones L-1. Comenzaremos con los requisitos de nivel superior o de “resiliencia” discutidos en el MASVS.  

Capas de requisitos de seguridad de MASVS

¿Qué es MASVS?

La Móvil Application Security Estándar de verificación, o "MASVS", es una lista compilada de diferentes recomendaciones distribuidas en múltiples áreas, como redes, almacenamiento, integridad y más. Estas recomendaciones se clasifican en 3 modelos principales: 

  • MASVS-L1 – Seguridad Estándar: Consiste en 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 tiene todo lo incluido en MASVS-L1 más recomendaciones adicionales basadas en el modelo de amenazas para industrias como la banca y la atención médica que manejan datos particularmente confidenciales. 
  • MASVS-R: resiliencia contra la ingeniería inversa y la manipulación: Protección contra ataques específicos del lado del cliente, como manipulación, modding, o ingeniería inversa.

Cómo cumplir con los requisitos de resiliencia  

MSTG-RESILIENCIA-1  

La aplicación detecta y responde a la presencia de un dispositivo rooteado o con jailbreak, ya sea alertando al usuario o cerrando la aplicación. 

Digital.ai Seguridad de la aplicación detecta muchos métodos sofisticados de detección de rooting y jailbreak. Incluso somos capaces de detectar manipulaciones en el propio código del sistema operativo. 

MSTG-RESILIENCIA-2  

La aplicación evita la depuración y/o detecta y responde cuando se adjunta un depurador. Se deben cubrir todos los protocolos de depuración disponibles.  

Digital.ai App Security proporciona protección total contra los depuradores. 

MSTG-RESILIENCIA-3  

La aplicación detecta y responde a la manipulación de archivos ejecutables y datos críticos dentro de su propia caja de arena. 

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 proporcionan un arsenal de criptografía de caja blanca algoritmos que usan implementación propietaria, Digital.ai los clientes pueden implementar controles de integridad de manera eficiente sin dejar rastros identificables por los atacantes. 

MSTG-RESILIENCIA-4  

La aplicación detecta y responde a la presencia de marcos y herramientas de ingeniería inversa ampliamente utilizados en el dispositivo. 

Digital.ai Application Security detecta la presencia de conjuntos de herramientas de instrumentación dinámica, marcos 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ón. Además, podemos detectar intentos de desviar 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 los actos de manipulación. 

MSTG-RESILIENCIA-7  

La aplicación implementa múltiples mecanismos en cada categoría de defensa (8.1 a 8.6). Tenga en cuenta que la resiliencia escala con la cantidad, la diversidad de 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ón. Por ejemplo, cada vez que se detecta un evento de manipulación, ya sea por un proceso en segundo plano oculto o 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 de un juego a cero, arruinando así la jugabilidad del tramposo y sin dejar rastros de la manipulación original. código de detección. 

MSTG-RESILIENCIA-8  

Los mecanismos de detección desencadenan respuestas de diferentes tipos, incluidas respuestas retardadas y sigilosas.  

Digital.ai Application Security permite que el cliente maneje cuándo y dónde se invocan las protecciones con controladores personalizados y programadores sigilosos. Incluso proporcionamos una función de 'bloqueo' que cierra abruptamente la aplicación sin revelar el origen del código que provocó el bloqueo.

MSTG-RESILIENCIA-9  

La ofuscación se aplica a las defensas programáticas, que a su vez impiden la desofuscación a través del análisis dinámico.  

Ofuscación de código es la base original de nuestra tecnología. Tenemos 6 patentes relacionadas con la ofuscación de código, incluida la primera patente jamás otorgada para ofuscación de código. Digital.ai Application Security proporciona una solución de aplanamiento de código que ofusca en gran medida el código. Además, nuestras variables y constantes de criptografía en caja blanca están ofuscadas y "en vivo" en la memoria durante períodos cortos de tiempo, por lo que el volcado de procesos o los escáneres criptográficos automáticos no pueden generar ningún beneficio. También proporcionamos protección contra la ofuscación de cadenas en tiempo de ejecución, así como ofuscación completa para tiempos de ejecución textuales, como Java y Objective-C.   

MSTG-RESILIENCIA-11  

Todos los archivos ejecutables y las bibliotecas que pertenecen a la aplicación están encriptados a nivel de archivo y/o el código importante y los segmentos de datos dentro de los ejecutables están encriptados o empaquetados. El análisis estático trivial no revela código o datos importantes.  

Brindamos diferentes soluciones de encriptación tanto para código como para datos. Por ejemplo, en Android, Digital.ai Application Security admitir el cifrado DEX y el cifrado de biblioteca compartida nativa, junto con nuestra criptografía de caja blanca y nuestras funciones de instrumentación y antidepuración cubrirían el producto tanto de forma estática como dinámica, dejando al atacante despistado. 

 MSTG-RESILIENCIA-12  

Si el objetivo de la ofuscación es proteger los cálculos confidenciales, se utiliza un esquema de ofuscación que es apropiado para la tarea y sólido frente a los métodos de desofuscación manuales y automatizados, teniendo en cuenta la investigación publicada actualmente. La efectividad del esquema de ofuscación debe verificarse mediante pruebas manuales. Tenga en cuenta que las funciones de aislamiento basadas en hardware son preferibles a la ofuscación siempre que sea posible. 

Cada ofuscación se puede derrotar eventualmente, pero los buenos ofuscadores no se pueden des-ofuscar automáticamente. Nuestras técnicas de ofuscación incluyen muchas protecciones activas contra desofuscadores y emuladores y se prueban con todas las soluciones disponibles públicamente, incluidos los descompiladores JEB.

MSTG-RESLIENCIA-13

Como defensa en profundidad, además de tener un sólido refuerzo de las partes que se comunican, se puede aplicar el cifrado de carga útil a nivel de aplicación para impedir aún más las escuchas.  

Para espiar las comunicaciones, un atacante tiene 3 métodos principales:  

  1. Realizar un ataque Man in the Middle (MITM) (p. ej., eliminar la fijación de certificados) 
  2. Manipulación de las funciones criptográficas
  3. Manipulación de la función de red 

Nuestro sistema de servicio post - venta Application Security solución detecta cualquier tipo de manipulación, incluida la manipulación del propio código del sistema operativo. Nuestro producto de protección de claves y datos no se puede detectar automáticamente mediante herramientas disponibles públicamente. Juntas, estas dos soluciones evitan los tres métodos descritos anteriormente.  

Requisitos L1

MSTG-ARCH-1 

Todos los componentes de la aplicación están identificados y se sabe que son necesarios.  

Como ingenieros de software, queremos que nuestro código sea lo más simple y eficiente posible. Sin embargo, desde el punto de vista de la seguridad, la eliminación de código innecesario podría aumentar la superficie de ataque. Con las aplicaciones móviles, el código lean puede ser algo malo. Los componentes identificables más pequeños son un premio gordo para los atacantes. La ofuscación del código es la primera línea de defensa contra la ingeniería inversa estática y, lamentablemente, la codificación de una manera sencilla y lógica facilita la vida de los atacantes.

MSTG-ARCH-10  

La seguridad se aborda en todas las partes del ciclo de vida del desarrollo de software. Es muy fácil marcar un cheque y pasar al siguiente.  

La seguridad se trata realmente de conciencia, y siempre te lleva a los lugares que menos esperabas. Digital.ai Application Security protege su aplicación tanto como una caja negra que no se debe manipular al tiempo que proporciona capacidades estratégicas para que pueda confiar en entornos dañados.

MSTG-ALMACENAMIENTO-1  

Las instalaciones de almacenamiento de credenciales del sistema deben usarse para almacenar datos confidenciales, como PII, credenciales de usuario, o claves criptográficas.  

Idealmente, las instalaciones de credenciales del sistema son la única forma confiable de almacenar datos confidenciales. Pero cuando el sistema operativo ha sido manipulado, es posible que sus instalaciones de almacenamiento no sean confiables. No debe confiar ciegamente en tales tiendas seguras para almacenar secretos. Dadas muchas técnicas diferentes para identificar el enraizamiento y JB, la emulación y más, y dadas las acciones personalizadas por amenaza, un atacante podría encontrarse luchando con el objetivo mientras se implementa la próxima versión, con mecanismos de protección totalmente diferentes, frustrando así al atacante. 

MSTG-ALMACENAMIENTO-10  

La aplicación no retiene datos confidenciales en la memoria más tiempo del necesario y la memoria se borra explícitamente después de su uso.  

Nuestra criptografía de caja blanca ofrece la gestión automática de la clave de sesión y su evacuación. Además de la criptografía, Digital.ai Application Security también podría monitorear los accesos a la memoria no permitidos de todo el sistema operativo, lo que permite 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 tienen muchas trampas potenciales, y uno debe ser un experto en el campo para implementar dichos algoritmos con la precaución adecuada en mente. Afortunadamente, Digital.ai Application Security ofrece muchos algoritmos criptográficos diferentes en los que puede confiar y utilizar de inmediato. Existen algunos problemas con las bibliotecas de criptografía conocidas y probadas que existen. 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 identificar áreas sensibles en el código e incluso automatizar algunos procesos, como desanclar certificados. Nuestro anti-manipulación La solución protege contra escenarios de manipulación en los que el código objetivo utiliza dichas bibliotecas públicas, al mismo tiempo que ofrece una solución de criptografía completamente integrada, protegida y oculta dentro del código que evita que los atacantes vean rastros de nuestra solución criptográfica. 

MSTG-PLATAFORMA-1  

La aplicación solo solicita el conjunto mínimo de permisos necesarios. 

Nuestra tecnología otorga muchas características de seguridad sin requerir ningún permiso especial.

MSTG-CÓDIGO-1  

La aplicación está firmada y aprovisionada con un certificado válido, cuya clave privada está debidamente protegida. 

Además de los propios mecanismos de integridad del sistema operativo, Digital.ai Application Security proporciona técnicas para detectar y proteger contra el reempaquetado y el parcheo en memoria.

Conclusiones y más elementos de reflexión

El MASVS es un documento real escrito por voluntarios y es indispensable para los proveedores de seguridad de software móvil, sus prospectos y sus clientes. Esperamos que el texto anterior proporcione a nuestros lectores una guía para las recomendaciones en las secciones L1 y R del documento. Lo que sigue son algunos comentarios sobre algunas de las posiciones que toma el MASVS en el “Adelante”, particularmente en las secciones que distinguen entre “protecciones de seguridad” y “controles de seguridad” que creemos merecen una mayor discusión. 

Como se mencionó en la introducción, los requisitos de L1 especificados por MASVS forman una base para application security y en particular la seguridad en lo que se refiere a la privacidad. Creemos que la base que identifica el MASVS puede ser sacudida por los actores de amenazas que se valen de algunos emuladores, depuradores y kits de herramientas de instrumentación dinámica comúnmente disponibles y de uso frecuente. Por ejemplo, cuando el MASVS “Adelante” dice: “Las protecciones de software no son inútiles, pero en última instancia se pueden eludir, por lo que nunca deben usarse como reemplazo de los controles de seguridad” respondemos que incluso si los codificadores confían en el sistema operativo para la seguridad y siguen todos los requisitos de L-1 al pie de la letra, los requisitos de L-1 no ofrecerán la funcionalidad de seguridad básica si el sistema operativo subyacente está dañado (es decir, con jailbreak o rooteado). ). En este caso, ocurre lo contrario: el uso de protecciones de software, como la detección de manipulaciones, como se describe en la sección "Resistencia", es el único camino confiable hacia la seguridad. ¿Por qué creemos que esto es así? Tome, por ejemplo, su almacén de claves.  Si su almacén de claves está completamente expuesto, también lo estará el entorno limitado de su aplicación. En este caso, la aplicación y sus archivos podrían manipularse, reempaquetarse e instrumentarse, lo que podría automatizar algunos procesos, como la eliminación de certificados y la extracción de recursos. Además, hay casos en los que L-1 no protege adecuadamente la privacidad.  El malware para dispositivos móviles, por ejemplo, puede romper el sistema operativo móvil y facilitar que los atacantes espíen la mensajería instantánea o las aplicaciones de VOIP al conectar API estratégicas o marcos públicos a través de la identificación de sus firmas binarias.

También en el Delantero, el MASVS afirma que “La seguridad móvil tiene que ver con la protección de datos” Esto es a menudo cierto, pero no siempre. Cuando maneja información confidencial, como tokens de corta duración, debe asegurarse de que esta información sea inaccesible. La seguridad es más que privacidad: a menudo se combina con la continuidad del negocio y los ingresos. Los juegos, por ejemplo, en los que se realizan muchas transacciones dentro del juego, pueden afectar solo al lado del cliente. Además, muchos eventos del juego obligan al servidor a confiar en la entrada del usuario por motivos de latencia. Por ejemplo, los disparos en un juego FPS implican muchas optimizaciones debido a la frecuencia inherente de ese evento específico, generalmente un evento por viñeta. 

La seguridad del lado del cliente es un juego continuo del gato y el ratón, cuando los programadores/programadores de aplicaciones brindan suficientes protecciones, el atacante pasará a un objetivo diferente debido a la frustración. Además de eso, lanzar 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 obtener más información sobre Digital.ai Application Security, haga clic aquí.

Acerca Digital.ai

Digital.ai es una empresa de tecnología líder en la industria dedicada a ayudar a las empresas Global 5000 a alcanzar sus objetivos de transformación digital. De la empresa Alimentado por IA DevSecOps La plataforma unifica, protege y genera información predictiva a lo largo del ciclo de vida del software. Digital.ai empodera a las organizaciones para escalar los equipos de desarrollo de software, entregar continuamente software con mayor calidad y seguridad mientras descubren nuevas oportunidades de mercado y mejoran el valor comercial 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 Imagina que añades un nuevo modelo a tu cartera de productos, en tres tamaños diferentes, con cinco colores distintos y cuatro texturas variadas. Actualizar esta información, en distintos formatos e idiomas, a través de varios canales es fundamental para vender el producto, ¿verdad? La cuestión es: ¿cómo te aseguras de que los datos sean correctos y relevantes y consistentes allá por donde se difunden. Facebook.

Conoce más en Digital.ai Application Security

Productos

¿Quiere seguir explorando otros recursos?