diff --git a/subject/2/project-part1.md b/subject/2/project-part1.md index 946f6e7..8764c12 100644 --- a/subject/2/project-part1.md +++ b/subject/2/project-part1.md @@ -48,7 +48,7 @@ Aidez-vous du visualisateur de *capabilities* de la partie 4 du TP, pour voir si vous êtes sur la bonne voie. -## Palier 3 : Utilisable par un utilisateur (1 point) {-} +## Palier bonus : Utilisable par un utilisateur (2 points) {-} Jouez avec les attributs étendus pour qu'un utilisateur non-privilégié puisse exécuter votre moulinette. Ajoutez la/les commande(s) à votre Makefile ou @@ -66,7 +66,7 @@ dans la partie sur les `chroot`. sera seulement utile pour faire des tests.** -## Palier 4 : Isolation du pauvre (1 point) {-} +## Palier 3 : Isolation du pauvre (1 point) {-} Nous n'avons pas encore vu de meilleure méthode pour mieux isoler l'environnement que de faire un `chroot`, ajoutez à votre programme cette @@ -84,7 +84,7 @@ meilleure isolation ! -## Palier 5 : seccomp (2 points) {-} +## Palier 4 : seccomp (2 points) {-} Filtrez les appels systèmes de telle sorte qu'aucun programme exécuté dans votre bac à sable ne puisse plus lancer les appels systèmes suivants : @@ -99,19 +99,25 @@ N'hésitez pas à en utiliser d'autres pour vos tests ;) **Astuces\ :** `seccomp(2)`, `seccomp_init(3)`, `seccomp_load(3)`, ... -## Palier bonus : Automatisation de la création de l'environnement (5 points) {-} +## Palier 5 : Automatisation de la création de l'environnement (1 point) {-} -Pour *moulinéter* plusieurs étudiants en parallèle, vous allez avoir besoin de -plusieurs environnements identiques. Plutôt que de recopier cet environnement, -de le nettoyer, de le recréer, pour chaque étudiant, ajoutez à votre moulinette -un support pour LVM : utilisez des *snapshots* pour figer votre environnement -et le dupliquer facilement pour chaque étudiant. +Intégrer le script `registry_play.sh`, réalisé au TP précédent, à votre +programme afin de pouvoir créer un environnement neuf à chaque nouvelle +exécution. -L'usage est laissé à votre discrétion : vous pouvez ajouter un/des paramètres à -votre *moulette* pour indiquer le volume LVM à utiliser ou le définir en dur ou -encore séparer la création de l'environnement et de la snapshot initiale dans -un programme distinct. +Vous pouvez l'utiliser tel quel, ou le réécrire pour qu'il s'intègre plus +facilement au sein du langage que vous avez choisi. -Si votre noyau dispose d'un UnionFS (AUFS ou OverlayFS par exemple), ou que -vous disposez d'une partition `btrfs`, vous pouvez utiliser l'une de ces -méthodes pour ajouter une couche en écriture, à la place de LVM. +L'appel du programme se fera alors ainsi, avec l'otion `-I` pour préciser que +l'on s'attend à trouver le nom d'une image Docker : + +
+``` +42sh# ./mymoulette -I library/alpine:latest /bin/ash + ash# which apk + /sbin/apk +``` +
+ +Vous pourriez utiliser `mkdtemp(3)` pour déterminer l'emplacement de +décompression des tarballs d'image. diff --git a/subject/2/subject.md b/subject/2/subject.md index 446fcaf..1a59d21 100644 --- a/subject/2/subject.md +++ b/subject/2/subject.md @@ -2,7 +2,7 @@ title: Virtualisation légère -- Projet author: Pierre-Olivier *nemunaire* Mercier institute: EPITA -date: EPITA -- SRS 2019 +date: EPITA -- SRS 2020 abstract: | Le laboratoire des assistants a besoin de votre expertise afin de renforcer la sécurité et la réactivité de son système de correction @@ -29,7 +29,7 @@ abstract: | \vspace{1em} Ce projet est à rendre à au plus tard le dimanche - 25 novembre 2018 à 23 h 42. + 1er décembre 2019 à 23 h 42. ... \newpage