Buenas prácticas sobre el desarrollo de aplicaciones seguras para móviles
Via Forensics ha liberado un extenso artículo con un conjunto de buenas prácticas que deberíamos seguir cuando desarrollamos una aplicación móvil. Aunque el documento está enfocado en Android y iOS, muchas de las prácticas que se describen son comunes a cualquier plataforma.El documento se titula en su versión original: 42+ Best Practices Secure mobile development for iOS and Android (PDF). En total contiene 49 prácticas a tener en cuenta. Por cada una de ellas nos explica brevemente el por qué de tenerla en cuenta.
Además de la extensa lista, de hecho, antes de empezar con la misma, dan un repaso a los distintos tipos de ataques a los que un dispositivo móvil está expuesto:
- Ataques basado en el navegador: phishing, framing, clickjacking, etc.
- Ataques basado en SMS o el teléfono en si: SMSiShing, RF, etc.
- Ataques a aplicaciones: alamcenamiento de datos sensibles, no cifrado, no certificación de certificados SSL, etc.
- Ataques al sistema operativo: iOS jailbreaking, Android rooting, software instalado por tu proveedor, etc.
- Ataques de red: WiFi sin cifrado o cifrado débil, Rogue Access Point, Man in the middle, etc.
- Ataques servidores web: XSS, XSRF, no validación de entrada de datos, etc.
- Ataques a base de datos: inyección SQL, inyección comandos de sistema, escalación de privilegios, etc.
Aquí va la lista de que nos proporciona dicho documento:
- Avoid storing sensitive data on the device
- Avoid caching app data on the device
- Avoid use of query string for sensitive data
- Avoid crash logs
- Fully validate SSL/TLS
- Institute Local Session Timeout
- Disable debug logs
- Hide account numbers and use tokens
- Use SECURE setting for Cookies
- Limit caching of username
- Implement code complexity and obfuscations
- Use Address Space Layout Randomization
- Avoid simple logic
- Avoid simple logic variables
- Be aware of the keyboard cache
- Be aware of copy/paste
- Test third-party libraries
- Use geolocation carefully
- iOS: Avoid cached application snapshots
- Android: implement file permissions carefully
- Android: implement Intents carefully
- Android: Check Activities
- Android: implement Broadcasts carefully
- Android: implement PendingIntents carefully
- Android: validate Services
- Android: avoid intent sniffing
- Android: implement Content Providers carefully
- Android: WebView best practices
- Android: avoid storing cached camera images
- Android: Avoid GUI objects caching
- iOS: Use the Keychain carefully
- Implement secure data storage
- Limitations of UUID
- Tamper checking
- Implement enhanced / two-factor authentication
- Protect application settings
- Securely store sensitive data in RAM
- Understand secure deletion of data
- Avoid use of MEID as user identifier
- Protect against SSLStrip
- Certificate Pinning
- Validate input from client
- Web server: check session settings
- Prevent framing and clickjacking
- Web server configuration
- SSL Configuration
- Protect against CSRF with form tokens
- Protect and pen test Web services
- Protect internal resources
Buscar
Entradas Recientes
- Posts
- Reemplazando la bateria del AirTag
- OpenExpo Europe décima edición, 18 de mayo: El Epicentro de la Innovación y la Transformación Digital
- Docker Init
- Kubernetes para profesionales
- Agenda: OpenExpo Europe 2022 llega el 30 de junio en formato presencial
- Libro 'Manual de la Resilencia', de Alejandro Corletti, toda una referencia para la gestión de la seguridad en nuestros sistemas
- Mujeres hackers en ElevenPaths Radio
- Creando certificados X.509 caducados
- Generador de imágenes Docker para infosec