Security/Privacy by design - Checklist webapp
⚠️ Cette section est en cours de construction.
Module : Avenirs-ESR / ePortfolio - webbapps check list
Objet : Check list de sécurité pour les applications web
Révision : 1.0.0.
Date : 10/04/2024.
Auteur : A. Deman.
Commentaire : Version initiale - Draft
Sources
Top 10 Web Application Security Risks.
Points de vérification
- Contrôle d’accès : (A01:2021-Broken Access Control)[https://owasp.org/Top10/A01_2021-Broken_Access_Control/]
- Respecter le principe de moindre privilège par défaut (e.g. : pas d’accès admin pour un utilisateur lambda)
- Utiliser une clé d’API pour les requête anonymes.
- Utiliser l’accès token pour toutes les autres requêtes, à chaque requête.
- Utiliser le composant d’access control (AC) [TODO] Déterminer composant (gère également les aspects CORS ?)
- Configuration CORS : n’autoriser que ce qui est nécessaire (si non géré par le lAC)
- Configurer les Content security Policy CSP
- Utilisation de l’APIM => checklist pour APIM (Logging, rate limit, etc.)[TODO] APIM checklist
- Invalider les sessions (statefull) [TODO] Déterminer nos cas d’usage, s’il y en a.
- Utiliser des sessions stateless avec une fenêtre courte [TODO] déterminer la valeur
- Chiffrement : (A02:2021-Cryptographic Failures) [https://owasp.org/Top10/A02_2021-Cryptographic_Failures/]
- Se référer / Mettre à jour le dictionnaire des données [TODO] Dictionnaire des données avec classification.
- Toutes les communications sont chiffrées
- Utilisation d’algorithmes de chiffrement performants et récents: [TODO] Liste des algos à déterminer. Plus système que dev.
- Ne pas stocker les données sensible sans nécessité.
- Ne pas mettre en cache les données sensibles.
- [TODO] voir comment les autres points qui concerne la cryptographie peuvent/doivent ou non être intégrés (e.g.: use of authenticated encryption).
- A03:2021-Injection [TODO]
- A05:2021-Security Misconfiguration [TODO]
- Composants : (A06:2021-Vulnerable and Outdated Components)[https://owasp.org/Top10/A06_2021-Vulnerable_and_Outdated_Components/]
- Supprimmer les dépendance inutiles [TODO]
- Déterminer les modes opératoires utilisables
- Intégrer directement dans le pipeline de CI quand c’est possible [TODO] selectionner les outils (OWASP Dependency Check, retire.js, bot github, etc.)
- Sourcer les librairies : uniquement des sources officielles, maintenues, etc. Utiliser des packages signés lorsque c’est possible.
- Effectuer un check de securité dans le pipeline CI [TODO] Déterminer les outils.
- Supprimmer les dépendance inutiles [TODO]
- A07:2021-Identification and Authentication Failures [TODO]
- A08:2021-Software and Data Integrity Failures[TODO]
- A09:2021-Security Logging and Monitoring Failures[TODO]
- A10:2021-Server-Side Request Forgery[TODO]