Update subject 2 for 2020

This commit is contained in:
nemunaire 2019-11-03 18:55:48 +01:00
parent e4f964f095
commit 50132f3a8f
2 changed files with 24 additions and 18 deletions

View File

@ -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 !
</div>
## 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 :
<div lang="en-US">
```
42sh# ./mymoulette -I library/alpine:latest /bin/ash
ash# which apk
/sbin/apk
```
</div>
Vous pourriez utiliser `mkdtemp(3)` pour déterminer l'emplacement de
décompression des tarballs d'image.

View File

@ -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 à <virli@nemunai.re> au plus tard le dimanche
25 novembre 2018 à 23 h 42.
1er décembre 2019 à 23 h 42.
...
\newpage