Secret information stored in the application
Informations secrètes stockées dans l'application
Description
La fuite de secrets, de mots de passe et de clés d'API peut avoir de graves conséquences, notamment :
- Perte de confidentialité : Des personnes non autorisées peuvent accéder à des informations sensibles si des secrets ou des mots de passe sont divulgués.
- Perte d'intégrité : Les secrets ou mots de passe divulgués peuvent être utilisés pour obtenir un accès non autorisé à des systèmes ou des données, pouvant entraîner l'altération ou la corruption de ces informations.
- Perte de disponibilité : Dans certains cas, l'utilisation non autorisée de secrets ou de mots de passe divulgués peut entraîner le refus d'accès aux utilisateurs légitimes, conduisant à une perte de disponibilité des systèmes ou données affectés.
- Atteinte à la réputation : Une entreprise ou un individu peut subir des dommages à sa réputation s'il est révélé qu'ils n'ont pas été en mesure de protéger correctement les informations sensibles.
- Conséquences juridiques : Selon la nature des informations divulguées et les lois de la juridiction compétente, la fuite de secrets ou de mots de passe pourrait potentiellement entraîner des conséquences juridiques.
- Surfacturation : La fuite de clés d'API pourrait potentiellement être utilisée par des personnes non autorisées pour accéder à des ressources d'API et effectuer des actions pouvant entraîner des frais, conduisant à une surfacturation.
Recommandation
Les données sensibles ne doivent jamais être incluses dans l'application elle-même. Au lieu de cela, des méthodes sécurisées de chiffrement, de stockage et de récupération des identifiants pour vos services doivent être utilisées pour accéder à ces données en cas de besoin.
Pour éviter le risque de surfacturation, envisagez de mettre en œuvre l'épinglage de clé d'API (API key pinning) ou d'utiliser des API authentifiées pour les services dont les coûts d'utilisation sont potentiellement élevés. L'épinglage de clé d'API permet de restreindre l'utilisation d'une clé à une application spécifique en exigeant une signature cryptographique, et peut être activé par le fournisseur de services (par exemple, Google Maps).
Pour les clés susceptibles de permettre un accès non autorisé, il est important de restreindre les autorisations et les rôles aux fonctions non critiques, ou d'exposer le service via une API authentifiée.
Pour renforcer davantage la sécurité, l'API devrait également disposer de contrôles d'accès et de limitation de débit appropriés, et les clés devraient être renouvelées régulièrement pour empêcher une utilisation non autorisée.
Liens
- 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
Normes
- 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