Tuto 4 ready
This commit is contained in:
parent
fb994050db
commit
c960136430
18 changed files with 536 additions and 340 deletions
|
|
@ -1,14 +1,11 @@
|
|||
\newpage
|
||||
### Prérequis
|
||||
|
||||
Mise en place
|
||||
=============
|
||||
|
||||
Noyau Linux
|
||||
-----------
|
||||
#### Noyau Linux \
|
||||
|
||||
Ce TP requiert un noyau Linux, dans sa version 3.12 au minimum. Il doit de plus
|
||||
être compilé avec les options suivantes (lorsqu'elles sont disponibles pour
|
||||
votre version) :
|
||||
Pour pouvoir suivre les exercices ci-après, vous devez disposez d'un noyau
|
||||
Linux, idéalement dans sa version 5.6 ou mieux. Il doit de plus être compilé
|
||||
avec les options suivantes (lorsqu'elles sont disponibles pour votre version) :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
|
|
@ -16,6 +13,7 @@ General setup --->
|
|||
[*] Control Group support --->
|
||||
-*- Namespaces support
|
||||
[*] UTS namespace
|
||||
[*] TIME namespace
|
||||
[*] IPC namespace
|
||||
[*] User namespace
|
||||
[*] PID Namespaces
|
||||
|
|
@ -38,6 +36,7 @@ CONFIG_CGROUPS=y
|
|||
|
||||
CONFIG_NAMESPACES=y
|
||||
CONFIG_UTS_NS=y
|
||||
CONFIG_TIME_NS=y
|
||||
CONFIG_IPC_NS=y
|
||||
CONFIG_USER_NS=y
|
||||
CONFIG_PID_NS=y
|
||||
|
|
@ -52,11 +51,11 @@ CONFIG_VETH=m
|
|||
```
|
||||
</div>
|
||||
|
||||
Référez-vous, si besoin, au TP précédent pour la marche à suivre.
|
||||
Référez-vous, si besoin, à la précédente configuration que l'on a faite pour la
|
||||
marche à suivre.
|
||||
|
||||
|
||||
Paquets
|
||||
-------
|
||||
#### Paquets \
|
||||
|
||||
Nous allons utiliser des programmes issus des
|
||||
[`util-linux`](https://www.kernel.org/pub/linux/utils/util-linux/), de
|
||||
|
|
@ -69,12 +68,18 @@ Sous Debian et ses dérivés, ces paquets sont respectivement :
|
|||
* `procps`
|
||||
* `libcap2-bin`
|
||||
|
||||
Sous ArchLinux et ses dérivés, ces paquets sont respectivement :
|
||||
|
||||
À propos de la sécurité de l'espace de nom `user`
|
||||
-------------------------------------------------
|
||||
* `util-linux`
|
||||
* `procps-ng`
|
||||
* `libcap`
|
||||
|
||||
La sécurité du *namespace* `user` a souvent été remise en cause et on lui
|
||||
attribue de nombreuses vulnérabilités. Je vous laisse consulter à ce sujet :
|
||||
|
||||
#### À propos de la sécurité de l'espace de noms `user` \
|
||||
|
||||
La sécurité du *namespace* `user` a souvent été remise en cause par le passé,
|
||||
on lui attribue de nombreuses vulnérabilités. Vous devriez notamment consulter
|
||||
à ce sujet :
|
||||
|
||||
* [Security Implications of User Namespaces](https://blog.araj.me/security-implications-of-user-namespaces/) ;
|
||||
* [Anatomy of a user namespaces vulnerability](https://lwn.net/Articles/543273/) ;
|
||||
|
|
@ -84,13 +89,14 @@ attribue de nombreuses vulnérabilités. Je vous laisse consulter à ce sujet :
|
|||
De nombreux projets ont choisi de ne pas autoriser l'utilisation de cet espace
|
||||
de noms sans disposer de certaines *capabilities*[^userns-caps].
|
||||
|
||||
[^userns-caps]: Sont nécessaires, conjointement, `CAP_SYS_ADMIN`, `CAP_SETUID` et `CAP_SETGID`.
|
||||
[^userns-caps]: Sont nécessaires, conjointement : `CAP_SYS_ADMIN`, `CAP_SETUID` et `CAP_SETGID`.
|
||||
|
||||
De nombreuses distributions ont par exemple choisi d'utiliser un paramètre du
|
||||
noyau pour adapter le comportement.
|
||||
De nombreuses distributions ont choisi d'utiliser un paramètre du noyau pour
|
||||
adapter le comportement.
|
||||
|
||||
|
||||
### Debian et ses dérivées {.unnumbered}
|
||||
::::: {.question}
|
||||
##### Debian et ses dérivées {.unnumbered}
|
||||
|
||||
Si vous utilisez Debian ou l'un de ses dérivés, vous devrez autoriser
|
||||
explicitement cette utilisation non-privilégiée :
|
||||
|
|
@ -102,12 +108,13 @@ explicitement cette utilisation non-privilégiée :
|
|||
</div>
|
||||
|
||||
|
||||
### Grsecurity {.unnumbered}
|
||||
##### Grsecurity {.unnumbered}
|
||||
|
||||
D'autres patchs, tels que
|
||||
[*grsecurity*](https://forums.grsecurity.net/viewtopic.php?f=3&t=3929#p13904) ont
|
||||
fait le choix de désactiver cette possibilité sans laisser d'option pour la
|
||||
réactiver éventuellement à l'exécution. Pour avoir un comportement identique à
|
||||
celui de Debian, vous pouvez
|
||||
[appliquer ce patch](https://virli.nemunai.re/grsec-enable-user-ns.patch), sur
|
||||
[appliquer ce patch](https://virli.nemunai.re/grsec-enable-user-ns.patch) sur
|
||||
vos sources incluant le patch de *grsecurity*.
|
||||
:::::
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue