Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 qduchemitxs:secu:secu_a18:securite [2020/09/16 11:24] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 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