Secret information stored in the application
Información secreta almacenada en la aplicación
Descripción
La filtración de secretos, contraseñas y claves de API puede tener graves consecuencias, entre ellas:
- Pérdida de confidencialidad: Personas no autorizadas pueden obtener acceso a información sensible si se filtran secretos o contraseñas.
- Pérdida de integridad: Los secretos o contraseñas filtrados pueden usarse para obtener acceso no autorizado a sistemas o datos, lo que podría llevar a la alteración o corrupción de esa información.
- Pérdida de disponibilidad: En algunos casos, el uso no autorizado de secretos o contraseñas filtrados puede resultar en la denegación de acceso a usuarios legítimos, lo que lleva a una pérdida de disponibilidad de los sistemas o datos afectados.
- Daño a la reputación: Una empresa o individuo puede sufrir daños en su reputación si se revela que no pudieron proteger adecuadamente la información sensible.
- Consecuencias legales: Dependiendo de la naturaleza de la información filtrada y de las leyes de la jurisdicción pertinente, la filtración de secretos o contraseñas podría acarrear consecuencias legales.
- Sobrefacturación: Las claves de API filtradas podrían ser utilizadas por personas no autorizadas para acceder a recursos de API y realizar acciones que generen cargos, lo que provocaría una sobrefacturación.
Recomendación
Los datos sensibles nunca deben incluirse en la propia aplicación. En su lugar, se deben utilizar métodos seguros para cifrar, almacenar y recuperar las credenciales de sus servicios con el fin de acceder a estos datos cuando sea necesario.
Para evitar el riesgo de sobrefacturación, considere implementar el anclaje de claves de API (API key pinning) o utilizar API autenticadas para servicios con costos de uso potencialmente altos. El anclaje de claves de API ayuda a restringir el uso de una clave a una aplicación específica al requerir una firma criptográfica, y puede ser habilitado por el proveedor del servicio (por ejemplo, Google Maps).
Para las claves que pueden permitir el acceso no autorizado, es importante restringir los permisos y roles a funciones no críticas, o exponer el servicio a través de una API autenticada.
Para mejorar aún más la seguridad, la API también debe contar con controles de acceso y limitación de tasa (rate-limiting) adecuados, y las claves deben rotarse periódicamente para evitar su uso no autorizado.
Enlaces
- API Security Best Practices
- Best practices for securely using API keys
- CWE-200: Data Exposure
- CWE-259: Use of Hard-coded Password
- What Is AWS Secrets Manager?
- $450k Google Cloud API Key Compromise
Estándares
- OWASP_MASVS_L1:
- MSTG_STORAGE_1
- OWASP_MASVS_L2:
- MSTG_STORAGE_1
- CWE_TOP_25:
- CWE_798
- GDPR:
- ART_5
- ART_25
- ART_32
- HIPAA_CONTROLS:
- SECURITY251
- SECURITY212
- SECURITY213
- PCI_STANDARDS:
- REQ_2_2
- REQ_3_2
- REQ_3_3
- REQ_3_5
- REQ_3_6
- REQ_3_7
- REQ_6_2
- OWASP_MASVS_v2_1:
- MASVS_STORAGE_1
- MASVS_STORAGE_2
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5