Pautas o prácticas de pruebas de seguridad de aplicaciones móviles de Entersoft :
1. Verificación de implementación SSL
Verificar la implementación de SSL es clave para muchas aplicaciones. Esto protege la aplicación de los ataques MITM y también asegura la comunicación entre la aplicación móvil y el servidor.
2. Gestión de información sensible en el lado del cliente.
Una aplicación nunca debe almacenar información confidencial como claves de cifrado, nombre de usuario, contraseñas en preferencias compartidas, archivos, etc. en el grupo local o la memoria. En caso de que una aplicación almacene información confidencial en la base de datos, se recomienda cifrar la base de datos con la biblioteca SQLCipher. La información confidencial debe tenerse en cuenta mientras la aplicación se carga en el mercado.
3. Código de ofuscación
Deben establecerse normas estrictas de ofuscación del código. Las aplicaciones deben cifrar u ofuscar el código para evitar la ingeniería inversa.
4. Identificación de bibliotecas criptográficas obsoletas
Las aplicaciones siempre deben usar los últimos algoritmos criptográficos que son seguros y recomendados. Los desarrolladores de aplicaciones no deben usar su propia implementación de criptografía.
5. Verificaciones de validación tanto del lado del cliente como del lado del servidor
A veces los desarrolladores realizan validaciones solo en el lado del cliente. Esto deja al servidor vulnerable a los ataques MITM. Verifique las validaciones de entrada en todos los escenarios posibles.
6. Sanitización de entrada
Desinfecte las entradas del usuario para liberarlas de caracteres maliciosos. Las aplicaciones deben usar la lista blanca para hacer una lista de caracteres permitidos.
7. Codificar y decodificar
Las aplicaciones siempre deben usar una codificación estándar para codificar las entradas del usuario desde el lado del cliente e implementar el mecanismo de decodificación para decodificar los datos en el cliente que se envían desde el lado del servidor. Todos los estándares de codificación y decodificación serán probados.
8. Implemente sumas de verificación y tokens
Una mejor práctica para los desarrolladores es implementar sumas de verificación en los datos que se pasan del cliente al servidor para verificar la integridad de los datos. Implemente tokens para proteger la aplicación de los ataques CSRF.
9. Encabezados de respuesta seguros
Verifique la implementación de encabezados de respuesta seguros.
10. Prueba de autorización
Autorización de prueba en todos los niveles. Las aplicaciones deben tener recursos en el lado del servidor configurados correctamente en función de los roles de usuario en la aplicación.
11. Gestión de la sesión
Las sesiones deben implementarse adecuadamente para evitar ataques basados en sesiones. Los desarrolladores deben generar sesiones aleatorias y asegurarse de que las sesiones se terminen después de un período de tiempo particular o después de un uso inactivo. Es importante verificar la caducidad de las sesiones después del cierre de sesión o la sesión anterior se puede utilizar para la toma de control de la cuenta.
12. Proteja los componentes del sistema operativo
Una lista de verificación para verificar exported = false para los componentes de la aplicación de Android si no se desea que las otras aplicaciones interactúen con los componentes de su aplicación.
13. Implementando la política de contraseña
La mayoría de las aplicaciones móviles aún utilizan políticas de contraseña débiles. El uso de una contraseña mínima de 8 y asegurarse de que la contraseña contenga al menos un carácter numérico, uno en mayúscula, uno en minúscula y un carácter especial garantizará la seguridad a nivel humano.
14. Implementar Captcha
Para evitar ataques de fuerza bruta, las aplicaciones deben implementar reCAPTCHA de google.
Prueba de seguridad de aplicaciones móviles
Para más detalles: http://blog.entersoftsecurity.co …