TX sécurité A18
Ce dépôt contient la documentation rédigée par Stanlkey RAGAVA et Igor WITZ à l’occasion de la TX sécurité réalisée au semestre d’automne 2018. Les dépôts Gitlab suivants ont été créés lors de cette TX :
- picasoft-wiki pour stocker la documentation
- Wiki où la documentation est stockée après fin de la TX
- test-ci pour le développement de la chaîne d’intégration Gitlab
Les travaux ont été séparés en une partie infrastructure et une partie Docker.
Partie infrastructure
Inventaire de bonnes pratiques Docker
Wiki :
- Mises à jour mineures sur de la documentation interne sur Docker
Gitlab :
- Rédaction d’un article contenant des recommandations systèmes pour Docker
Etude de l'infrastructure technique de Picasoft
Wiki :
- Refonte de l’article architecture globale du Wiki comprenant :
- un nouveau schéma de l’infrastructure
- la liste des machines physiques et virtuelles ainsi que leur rôle
- la liste des services pour chaque machine
- la liste des noms de domaine identifiés ainsi que les machines spécifiques vers lesquelles ils pointent
- la liste des briques logicielles et matérielles utilisées
- la liste et la description des points névralgiques ayant pu être identifiés lors de l’état des lieux
Gestion des mises à jour
Gitlab :
- Définition d’un plan de gestion des mises à jour comprenant :
- Un comparatif entre les versions de chaque services et les dernières versions publiées
- Un planning des mises à jour à effectuer
- Développement d’un script permettant d’effectuer les mises à jour de sécurité ou autres sur des machines Debian et basées sur Linux
Procédures de départ et d'arrivée
- Liste des actions à réaliser lors de l’arrivée et du départ d’utilisateurs
Partie Docker
Etude de Hashicorp Vault
Gitlab :
- Production de documentation, expliquant notamment pourquoi l’utilisation de cette technologie n’a pas été retenue.
Analyse de l'image pica-etherpad
- Tests avec docker-bench-security et Clair
- Tests manuels et confrontation de l’image aux bonnes pratiques déterminées préalablement
- Rédaction d’un rapport d'analyse
- Correction des vulnérabilités, rédaction d’un rapport de correction, insertion de l’image dans le dépôt Picasoft, mise en production de l’image, modifications de l’image pour réfléter les modifications apportées lors de la mise en production et correction supplémentaire. La version actuelle de l’image se trouve ici
Création d'une chaîne d'intégration Gitlab pour le dépôt picasoft/dockerfiles
- Création d’un dépôt Gitlab pour le test de la CI
- Installation d’un runner sur pica01-test et documentation du fonctionnement de la CI
Analyse de l'image pica-dokuwiki
- Analyse de l’image et rédaction d’un rapport
- Corrections des vulnérabilités détectées
Reste à faire
- Chaîne d’intégration :
- intégration à la CI de l’image pica-mattermost selon la documentation
- finir la partie “déploiement en production” → en particulier, exposer le démon Docker de la VM sur laquelle se trouve pica-dokuwiki au réseau ce qui n’est pas fait actuellement
- Correction des images Mattermost
- À partir du rapport d'audit des images de Mattermost, décider s’il est nécessaire de corriger les images ou s’il suffit simplement de récupérer les nouvelles images de Mattermost depuis le dépôt officiel à chaque nouvelle version.
- Mises à jour automatiques :
- Déploiement en sur une machine de test de picasoft (pica01-test par exemple) :
- Dans le script de test, remplacer l’email de picasoft par celui de la personne qui réalise le test
echo "MAILTO=\"picasoft@assos.utc.fr\"" >> /etc/cron-apt/config
- Faire en sorte que le cron s’execute toutes les 15 minutes pour les tests en changeant la ligne ci-dessous dans le script (cf. wiki cron)
# update 1st day of every months at 4:00 a.m. echo "0 4 * * * root test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt" > /etc/cron.d/cron-apt
- Exécuter le script sur la machine de tests de picasoft
- Regarder si les rapports de mises à jour sont bien envoyés/reçus par email et si tout s’est passé correctement
- Si OK, déployer ce script sur toute les machines de tests (en surveillant que tout se passe bien pendant les premiers mois)
- Déploiement sur les machines de production de picasoft
- Si la phase précédente s’est bien passée, mettre le script de prod sur les machines de prod