Vous êtes sur la page 1sur 15

TP3 : Capabilities & Secomp avec Docker

Rihem Ben Romdhane

TEK-UP

September 29, 2022

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 1 / 15
Pré-requis

Pour faire fonctionner ce TP, on a besoin :


D’une machine virtuelle ubuntu
D’installer Docker sur la vm ubuntu (voir section installation)
De récupérer le dossier seccomp-profiles depuis github qui contient les fichiers
de conf secomp qu’on va utiliser (voir section installation)

NB:
Vous pouvez utiliser d’autres machines virtuelles autres que ubuntu mais il faut
adapter les commandes et les configurations indiqué dans ce TP

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 2 / 15
Installation

Pour installer Docker, Suivez les instructions indiqué dans ce lien


https://docs.docker.com/engine/install/ubuntu/
#install-using-the-repository

Ensuite installer ces paquets:

sudo apt-get install subversion

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 3 / 15
Télécharger le dossier seccomp-profiles avec la commande:
svn checkout
https://github.com/docker/labs/trunk/security/seccomp/seccomp-profiles

Changer le dossier vers seccomp-profiles


cd seccomp-profiles

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 4 / 15
Capabilities

Capabilities

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 5 / 15
Capabilities

Travail demandé

1 Démarrer un conteneur Docker avec un terminal bash intéractif avec la


commande :
sudo docker container run --rm -it --cap-drop ALL --cap-add CHOWN
ubuntu bash
Dans le terminal du conteneur, afficher le propriétaire du dossier /tmp via la
commande:
ll | grep tmp
Dans le terminal du conteneur, changer le propriétaire du dossier /tmp de
l’utilisateur root à l’utilisateur nobody via la commande:
chown nobody tmp

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 6 / 15
Capabilities

Dans le terminal du conteneur, afficher le nouveau propriétaire du dossier


/tmp via la commande:
ll | grep tmp
Dans le terminal du conteneur, changer les permissions du dossier /tmp via la
commande:
chmod 750 tmp
Pourquoi on n’a pas pu changer les permissions du dossier /tmp?

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 7 / 15
Capabilities

2 Démarrer un conteneur Docker avec un terminal bash intéractif avec la


commande:
sudo docker container run --rm -it --cap-drop ALL --cap-add CHOWN
--cap-add FOWNER ubuntu bash
Dans le terminal du conteneur, afficher le propriétaire du dossier /tmp via la
commande:
ll | grep tmp
Dans le terminal du conteneur, changer le propriétaire du dossier /tmp de
l’utilisateur root à l’utilisateur nobody via la commande:
chown nobody tmp
Dans le terminal du conteneur, afficher le nouveau propriétaire du dossier
/tmp via la commande:
ll | grep tmp
Dans le terminal du conteneur, changer les permissions du dossier /tmp via la
commande:
chmod 750 tmp

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 8 / 15
Capabilities

Dans le terminal du conteneur, afficher les nouveaux permissions du dossier


/tmp via la commande:
ll | grep tmp
Dans le terminal du conteneur, changer le hostname du conteneur via la
commande:
hostname tp-capabilities
Pourquoi on n’a pas pu changer le hostname du conteneur?

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 9 / 15
Capabilities

3 Démarrer un conteneur Docker avec un terminal bash intéractif avec la


commande:
sudo docker container run --rm -it --cap-drop ALL --cap-add CHOWN
--cap-add FOWNER --cap-add SYS_ADMIN ubuntu bash
Dans le terminal du conteneur, afficher le propriétaire du dossier /tmp via la
commande:
ll | grep tmp
Dans le terminal du conteneur, changer le propriétaire du dossier /tmp de
l’utilisateur root à l’utilisateur nobody via la commande:
chown nobody tmp
Dans le terminal du conteneur, afficher le nouveau propriétaire du dossier
/tmp via la commande:
ll | grep tmp
Dans le terminal du conteneur, changer les permissions du dossier /tmp via la
commande:
chmod 750 tmp

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 10 / 15
Capabilities

Dans le terminal du conteneur, afficher les nouveaux permissions du dossier


/tmp via la commande:
ll | grep tmp
Dans le terminal du conteneur, changer le hostname du conteneur via la
commande:
hostname tp-capabilities
Dans le terminal du conteneur, afficher le nouveau hostname conteneur via la
commande:
hostname

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 11 / 15
Secomp

Secomp

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 12 / 15
Secomp

Travail demandé

1 Démarrer un conteneur Docker avec un terminal bash intéractif avec la


commande :
sudo docker container run --rm -it --security-opt seccomp=default.json
ubuntu bash
Dans le terminal du conteneur, Rejouer les mêmes commandes vu dans la
section Capabilities (chown,chmod,hostname,..) et vérifier s’il y a une erreur
ou bien une restriction?
2 Démarrer un conteneur Docker avec un terminal bash intéractif avec la
commande :
sudo docker container run --m -it --security-opt seccomp=deny.json
ubuntu bash
En consultant le fichier deny.json, essayer de comprendre pourquoi le
conteneur n’a pas démarré?

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 13 / 15
Secomp

3 Démarrer un conteneur Docker avec un terminal bash intéractif avec la


commande :
sudo docker container run --rm -it --security-opt seccomp=allow.json
ubuntu bash
Dans le terminal du conteneur, Rejouer les mêmes commandes vu dans la
section Capabilities (chown,chmod,hostname,..) et vérifier s’il y a une erreur
ou bien une restriction?
Quelle est la différence entre les deux profiles secomp allow.json et
default.json?
4 Démarrer un conteneur Docker avec un terminal bash intéractif avec la
commande :
sudo docker container run --rm -it --security-opt
seccomp=default-no-chmod.json ubuntu bash
Dans le terminal du conteneur, changer les permissions du dossier /tmp via la
commande:
chmod 750 tmp
Pourquoi la commande chmod n’est pas fonctionnelle?

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 14 / 15
Secomp

Thank you!

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP September 29, 2022 15 / 15

Vous aimerez peut-être aussi