Cybersécurité
Section à compléter par Jean-Baptiste Viossi
Cette section accueille l'audit de sécurité de TimeManager. Le plan ci-dessous est une suggestion. Chaque partie peut devenir sa propre page dans timemanager-docs/cybersecurite/, à ajouter dans la barre latérale (timemanager-docs/.vitepress/config.mts).
En bref
| Sujet | Détail |
|---|---|
| Responsable | Jean-Baptiste Viossi |
| Périmètre | Site web, API, application mobile, infrastructure |
| Ce qui existe déjà | Sécurité de l'infrastructure, Limites et améliorations, Authentification mobile |
Plan suggéré
1. Périmètre
Ce qui est audité, et ce qui ne l'est pas.
| Cible | Adresse ou dossier |
|---|---|
| Site web | time.jostud.com · timemanager-web/ |
| API | api.time.jostud.com/api · timemanager-api/ |
| Application mobile | timemanager-mobile/ |
| Jenkins | ci.time.jostud.com · timemanager-devops/jenkins/ |
| Serveurs | tm-prod et tm-tooling · timemanager-devops/ansible/ |
Préciser aussi : les dates de l'audit, l'environnement testé (production ou copie), et ce qui est hors périmètre.
2. Méthode
Les référentiels et les outils utilisés. Par exemple :
| Domaine | Référentiel | Outils possibles |
|---|---|---|
| Web et API | OWASP Top 10, OWASP ASVS | OWASP ZAP, Burp Suite |
| API | OWASP API Security Top 10 | Requêtes manuelles, Postman |
| Mobile | OWASP MASVS | MobSF |
| Infrastructure | Durcissement Linux et Docker | nmap, testssl.sh, Trivy, Docker Bench |
| Dépendances | Failles connues (CVE) | npm audit, mix deps.audit, Trivy |
3. Modèle de menaces
- Ce qu'on protège : les heures pointées, les comptes, les mots de passe, les données personnelles (RGPD), l'accès aux serveurs.
- Qui pourrait attaquer : un visiteur anonyme, un employé qui veut modifier ses heures, un manager qui veut voir une équipe qui n'est pas la sienne, quelqu'un qui a volé un téléphone.
- Par où : les formulaires, les routes de l'API, les liens envoyés par email, les ports ouverts, la chaîne de déploiement.
4. Ce qui est déjà en place
Un rappel des protections existantes, à vérifier pendant l'audit :
| Protection | Où c'est documenté |
|---|---|
| Session en cookies HttpOnly, jeton CSRF, renouvellement | Authentification mobile, Architecture |
| Droits vérifiés par l'API à chaque requête | Le projet |
| Liens à usage unique, dont seule l'empreinte est stockée | Base de données |
| HTTPS partout, pare-feu, réseau privé, base isolée | Sécurité de l'infrastructure |
| Secrets chiffrés, scan des images | Secrets, Pipelines |
| Faiblesses déjà connues | Limites et améliorations |
5. Résultats
Un tableau de synthèse, du plus grave au moins grave :
| ID | Titre | Gravité | Composant | Statut |
|---|---|---|---|---|
| SEC-01 | Exemple : une route renvoie les données d'un autre utilisateur | Critique | API | Ouvert |
| SEC-02 | Élevée | |||
| SEC-03 | Moyenne |
Échelle de gravité suggérée, alignée sur CVSS :
| Gravité | Score CVSS | Sens |
|---|---|---|
| Critique | 9,0 à 10 | Exploitable facilement, impact majeur : à corriger immédiatement |
| Élevée | 7,0 à 8,9 | À corriger avant la prochaine mise en production |
| Moyenne | 4,0 à 6,9 | À planifier |
| Faible | 0,1 à 3,9 | Amélioration |
| Info | 0 | Remarque sans risque direct |
6. Détail d'une vulnérabilité
Un modèle à reprendre pour chaque résultat :
### SEC-01 · Titre court
| Gravité | Composant | Statut |
|---|---|---|
| Élevée (CVSS 7.5) | API · GET /users/:id/data | Ouvert |
**Description.** Ce qui ne va pas, en une ou deux phrases.
**Reproduction.**
1. Se connecter avec un compte employé.
2. Appeler `GET /api/users/12/data` avec l'id d'un autre utilisateur.
3. Constater que la réponse contient ses données.
**Impact.** Ce qu'un attaquant peut obtenir ou faire.
**Correction proposée.** Ce qu'il faut changer, et où.
**Responsable.** La personne qui corrige (voir L'équipe).7. Plan de correction et suivi
Qui corrige quoi, avant quand, et la vérification après correction. Les corrections touchent le code de chaque partie : elles passent par son responsable (voir L'équipe).
8. Conclusion
Le niveau de sécurité global, les risques qui restent acceptés, et les recommandations pour la suite.