Les deux révisions précédentes Révision précédente | |
txs:secu:secu_a18:securite [2020/02/14 15:22] – ↷ Page déplacée de txs:secu_a18:securite à txs:secu:secu_a18:securite qduchemi | txs:secu:secu_a18:securite [2020/09/16 11:24] (Version actuelle) – modification externe 127.0.0.1 |
---|
| ====== 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 : |
| * [[https://gitlab.utc.fr/picasoft/wiki|picasoft-wiki]] pour stocker la documentation |
| * [[https://gitlab.utc.fr/picasoft/wiki|Wiki]] où la documentation est stockée après fin de la TX |
| * [[https://gitlab.utc.fr/picasoft/dockerfiles/tree/dev-ci|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 :** |
| * [[https://wiki.picasoft.net/doku.php?id=adminsys:redaction_des_images_docker&s[]=bonnes&s[]=pratiques&s[]=docker|Rédaction des images Docker]] |
| * Mises à jour mineures sur de la documentation interne sur Docker |
| |
| **Gitlab :** |
| * Rédaction d'un [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/recommendations-systemes-pour-docker.md|article]] contenant des recommandations systèmes pour Docker |
| |
| ==== Etude de l'infrastructure technique de Picasoft ==== |
| **Wiki :** |
| * Refonte de l'article [[https://wiki.picasoft.net/doku.php?id=infrastructure:architecture_globale|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 [[https://gitlab.utc.fr/picasoft/wiki/blob/master/systeme/GESTION_DES_MAJ/Gestion_des_mises_a_jour.md|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 [[https://gitlab.utc.fr/picasoft/wiki/blob/master/systeme/GESTION_DES_MAJ/SCRIPTS/MACHINE_TEST_auto_update_cronapt.sh|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 ==== |
| * [[https://gitlab.utc.fr/picasoft/wiki/blob/master/systeme/procedure-depart-arrivee.md|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 [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/hashicorp-vault/rapport-essai-vault.md|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 [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/audit-etherpad/rapport-audit-image-etherpad.md|rapport d'analyse]] |
| * Correction des vulnérabilités, rédaction d'un [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/audit-etherpad/correction-vulnerabilites-etherpad.md|rapport de correction]], insertion de l'image dans le [[https://gitlab.utc.fr/picasoft/dockerfiles/merge_requests/9|dépôt Picasoft]], mise en production de l'image, [[https://gitlab.utc.fr/picasoft/dockerfiles/merge_requests/11/diffs|modifications]] de l'image pour réfléter les modifications apportées lors de la mise en production et [[https://gitlab.utc.fr/picasoft/dockerfiles/merge_requests/12|correction supplémentaire]]. La version actuelle de l'image se trouve [[https://gitlab.utc.fr/picasoft/dockerfiles/blob/master/pica-etherpad/Dockerfile|ici]] |
| |
| ==== Création d'une chaîne d'intégration Gitlab pour le dépôt picasoft/dockerfiles ==== |
| * Création d'un [[https://gitlab.utc.fr/witzigor/test-ci|dépôt Gitlab]] pour le test de la CI |
| * Installation d'un runner sur pica01-test et [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/chaine-integration.md|documentation]] du fonctionnement de la CI |
| |
| ==== Analyse de l'image pica-dokuwiki ==== |
| * Analyse de l'image et rédaction d'un [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/audit-wiki/rapport-audit-image-pica-wiki.md|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 [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/audit-mattermost/AUDIT_REPORT/rapport-audit-images-mattermost.md|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 [[https://github.com/mattermost/mattermost-docker|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 [[https://gitlab.utc.fr/picasoft/wiki/blob/master/systeme/GESTION_DES_MAJ/SCRIPTS/MACHINE_TEST_auto_update_cronapt.sh|script de test]], remplacer l'email de picasoft par celui de la personne qui réalise le test <code bash|>echo "MAILTO=\"picasoft@assos.utc.fr\"" >> /etc/cron-apt/config</code> |
| * 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. [[https://en.wikipedia.org/wiki/Cron#Overview|wiki cron]]) <code bash|># 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</code> |
| * 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 [[https://gitlab.utc.fr/picasoft/wiki/blob/master/systeme/GESTION_DES_MAJ/SCRIPTS/MACHINE_PROD_auto_update_cronapt.sh|script de prod]] sur les machines de prod |
| |