This commit is contained in:
parent
8c3ea223e5
commit
25aef1af17
54 changed files with 123 additions and 122 deletions
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Un outil complet pour indexer et chercher des vulnérabilités est
|
||||
[`Clair`](https://github.com/coreos/clair/), du projet CoreOS. À partir des
|
||||
informations mises à disposition par les équipes de sécurités des principales
|
||||
informations mises à disposition par les équipes de sécurité des principales
|
||||
distributions, cela alimente en continu une base de données qui sera accédé au
|
||||
moment de l'analyse.
|
||||
|
||||
|
|
@ -57,7 +57,7 @@ export POSTGRES_PASSWORD=$(openssl rand -base64 16)
|
|||
|
||||
Parmi les volumes partagés avec `clair`, il y a un dossier
|
||||
`./clair_config`. Notez le `./` au début, qui indique que le dossier sera
|
||||
recherché relativement par rapport à l'emplacement du `docker-compsose.yml`.
|
||||
recherché relativement par rapport à l'emplacement du `docker-compose.yml`.
|
||||
|
||||
Dans ce dossier, vous devez placer un exemplaire du fichier de configuration
|
||||
dont un [exemple se trouve dans le dépôt du
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ Open Container Initiative
|
|||
=========================
|
||||
|
||||
Formée en juin 2015, l'Open Container Initiative (OCI) a pour but d'établir le
|
||||
standard commun aux programmes de contenerisation, afin d'éviter une
|
||||
standard commun aux programmes de conteneurisation, afin d'éviter une
|
||||
fragmentation de l'écosystème.
|
||||
|
||||
## Spécifications
|
||||
|
|
@ -101,7 +101,7 @@ est utilisé pour sélectionner le bon manifest correspondant au système.
|
|||
|
||||
Le format des [couches de système de
|
||||
fichiers](https://github.com/opencontainers/image-spec/blob/master/layer.md)
|
||||
sont spécifiées : il est nécessaire de passer par des formats standards (comme
|
||||
est spécifié : il est nécessaire de passer par des formats standards (comme
|
||||
les tarballs), contenant éventuellement des fichiers et dossiers spéciaux
|
||||
représentant les modifications ou les suppressions éventuelles de la couche.
|
||||
|
||||
|
|
@ -125,5 +125,5 @@ Cela permet de récupérer des images, mais aussi d'en envoyer, en gérant
|
|||
|
||||
\
|
||||
|
||||
Nous allons voir plus en détails, dans les chapitres suivantes, ce que l'on
|
||||
Nous allons voir plus en détails, dans les chapitres suivants, ce que l'on
|
||||
peut tirer de ces spécifications, en décortiquant des usages précis.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
Mise en place
|
||||
=============
|
||||
|
||||
Les exercices suivants nécessiteront l'installation de plusieurs outils..
|
||||
Les exercices suivants nécessiteront l'installation de plusieurs outils.
|
||||
|
||||
- `docker-compose`
|
||||
- `venv`
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ exécution. Puis, lorsqu'il aura terminé, celui-ci sera passé dans un statut
|
|||
|
||||
Parmi ses attributions, `init`, le PID 1 de notre système, est le processus qui
|
||||
récupère les processus orphelins du système. Lorsque le parent direct d'un
|
||||
processus meurt, ses fils sont reparenté sous le processus `init` et ils
|
||||
processus meurt, ses fils sont reparentés sous le processus `init` et ils
|
||||
obtiennent alors comme `ppid` 1. Ils ne conservent pas le PID de leur défunt
|
||||
parent.
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ l'argument `PR_SET_CHILD_SUBREAPER`.
|
|||
:::::
|
||||
|
||||
Docker procure une isolation, notamment au travers du *namespace* PID : les
|
||||
processus faisant parti du même *namespace* ne voient seulement qu'une partie
|
||||
processus faisant partie du même *namespace* ne voient seulement qu'une partie
|
||||
de l'arbre de processus de l'hôte, et notamment, un PID 1 est recréé, il s'agit
|
||||
du premier processus à s'exécuter dans le *namespace*.
|
||||
|
||||
|
|
@ -107,7 +107,7 @@ shell.
|
|||
|
||||
Voici donc une raison supplémentaire de préférer `tini` à `bash` (ou à rien du
|
||||
tout). D'autant plus qu'à moins d'avoir préparé la fin d'exécution, `bash` ne
|
||||
retournera pas le code d'erreur de la commande que l'on a lancé, mais plutôt 0.
|
||||
retournera pas le code d'erreur de la commande que l'on a lancée, mais plutôt 0.
|
||||
|
||||
|
||||
## Intégration dans les `Dockerfile`
|
||||
|
|
@ -121,7 +121,7 @@ semble particulièrement indiqué.
|
|||
L'utilisation par le paramètre `--init` du `run` n'est pas recommandée et
|
||||
devrait se limiter aux cas où l'image a été construite par quelqu'un qui
|
||||
n'avait pas en tête ces contraintes. Lorsque l'on sait que des zombies ne vont
|
||||
pas être géré par leurs parents, le mainteneur se doit d'ajouter `tini` dans
|
||||
pas être gérés par leurs parents, le mainteneur se doit d'ajouter `tini` dans
|
||||
son `Dockerfile`. La méthode recommandée est de l'installer par les paquets de
|
||||
la distribution (`apt-get install tini`, `apk add tini`, ...). Néanmoins, dans
|
||||
le cas d'une distribution qui ne possèderait pas le paquet, il convient
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ the selected base image
|
|||
</div>
|
||||
|
||||
Ce dernier exemple est sans appel : `mysql` est une image officielle, et sa
|
||||
dernière version à l'écriture de ses lignes contient pas moins de 24
|
||||
dernière version à l'écriture de ces lignes contient pas moins de 24
|
||||
vulnérabilités dont 9 *high* (pourtant corrigées dans des versions suivantes).
|
||||
|
||||
|
||||
|
|
@ -216,7 +216,7 @@ Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0)
|
|||
```
|
||||
</div>
|
||||
|
||||
Nous pouvons remarque que Trivy, en plus de faire l'analyse statique des
|
||||
Nous pouvons remarquer que Trivy, en plus de faire l'analyse statique des
|
||||
vulnérabilités de l'image, a aussi fait une analyse des dépendances du binaire
|
||||
`/srv/youp0m`.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue