Save tuto corrections
This commit is contained in:
parent
f5ee6b8534
commit
10448a6c8d
115 changed files with 1423 additions and 1289 deletions
|
|
@ -10,10 +10,10 @@ machine hébergeant des conteneurs, car cela lui apporte des garanties quant à
|
|||
l'effort de cloisonnement mis en place.
|
||||
|
||||
Mais doit-on pour autant s'arrêter là et considérer que nous avons réglé
|
||||
l'ensemble des problématiques de sécurité liées aux conteneurs ?
|
||||
l'ensemble des problématiques de sécurité liées aux conteneurs ?
|
||||
|
||||
Évidemment, non : une fois nos services lancés dans des conteneurs, il ne sont
|
||||
pas moins exposés aux bugs et autres failles applicatives ; qu'elles soient
|
||||
pas moins exposés aux bugs et autres failles applicatives ; qu'elles soient
|
||||
dans notre code ou celui d'une bibliothèque, accessible par rebond, ...
|
||||
|
||||
Il est donc primordial de ne pas laisser ses conteneurs à l'abandon une fois
|
||||
|
|
@ -23,7 +23,7 @@ image telle que Debian, Ubuntu ou Redhat n'apparaît que pour cela) ou bien
|
|||
lorsqu'un des programmes ou l'une des bibliothèques que l'on a installés
|
||||
ensuite est mise à jour.
|
||||
|
||||
Convaincu ? Cela sonne encore comme des bonnes pratiques difficiles à mettre en
|
||||
Convaincu ? Cela sonne encore comme des bonnes pratiques difficiles à mettre en
|
||||
œuvre, pouvant mettre en péril tout un système d'information. Pour s'en
|
||||
protéger, nous allons avoir besoin de réaliser à intervalles réguliers une
|
||||
analyse statique de nos conteneurs.
|
||||
|
|
@ -42,9 +42,9 @@ automatiquement) les images que l'on publie sur un registre public, sans
|
|||
oublier de mettre à jour l'image de base.
|
||||
|
||||
D'ailleurs, avez-vous vérifié qu'une mise à jour de l'image `nemunaire/youp0m`
|
||||
n'était pas disponible depuis que vous avez commencé à l'utiliser ? Docker ne
|
||||
n'était pas disponible depuis que vous avez commencé à l'utiliser ? Docker ne
|
||||
vérifie jamais si une mise à jour des images que vous avez précédemment
|
||||
téléchargées. Pensez donc régulièrement à appeler :
|
||||
téléchargées. Pensez donc régulièrement à appeler :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
|
|
@ -65,10 +65,11 @@ si vous n'en avez pas, nous verrons dans la section suivante `trivy` qui permet
|
|||
de réaliser ses scans directement sur notre machine, sans passer par un
|
||||
intermédiaire.
|
||||
|
||||
#### Attention {-}
|
||||
::::: {.warning}
|
||||
|
||||
Par cette méthode, vous êtes limité à 10 scans par mois.
|
||||
|
||||
:::::
|
||||
|
||||
### Installation du plugin
|
||||
|
||||
|
|
@ -82,13 +83,14 @@ préalablement connecté à votre compte Docker avec la commande `docker login`.
|
|||
Comme `docker scan` est un plugin, suivant la méthode d'installation que vous
|
||||
avez suivie, il n'a pas forcément été installé. Si vous obtenez un message
|
||||
d'erreur en lançant la commande, [voici comment récupérer le plugin et
|
||||
l'installer manuellement :](https://github.com/docker/scan-cli-plugin#on-linux)
|
||||
l'installer manuellement :](https://github.com/docker/scan-cli-plugin#on-linux)
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
mkdir -p ~/.docker/cli-plugins
|
||||
curl https://github.com/docker/scan-cli-plugin/releases/latest/download/docker-scan_linux_amd64 \
|
||||
-L -s -S -o ~/.docker/cli-plugins/docker-scan
|
||||
curl -L -s -S -o ~/.docker/cli-plugins/docker-scan \
|
||||
https://github.com/docker/scan-cli-plugin/releases/\
|
||||
latest/download/docker-scan_linux_amd64
|
||||
chmod +x ~/.docker/cli-plugins/docker-scan
|
||||
```
|
||||
</div>
|
||||
|
|
@ -96,7 +98,7 @@ chmod +x ~/.docker/cli-plugins/docker-scan
|
|||
### Utilisation
|
||||
|
||||
Une fois le plugin installé et la licence du service acceptée, nous pouvons
|
||||
commencer notre analyse :
|
||||
commencer notre analyse :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
|
|
@ -112,7 +114,8 @@ Base image: alpine:3.14.2
|
|||
|
||||
✓ Tested 16 dependencies for known vulnerabilities, no vulnerable paths found.
|
||||
|
||||
According to our scan, you are currently using the most secure version of the selected base image
|
||||
According to our scan, you are currently using the most secure version of
|
||||
the selected base image
|
||||
```
|
||||
</div>
|
||||
|
||||
|
|
@ -128,10 +131,10 @@ Testing mysql...
|
|||
✗ High severity vulnerability found in gcc-8/libstdc++6
|
||||
Description: Insufficient Entropy
|
||||
Info: https://snyk.io/vuln/SNYK-DEBIAN10-GCC8-469413
|
||||
Introduced through: apt@1.8.2.3, mysql-community/mysql-community-client@8.0.26-1debian10, mysql-community/mysql-community-server-core@8.0.26-1debian10, mecab-ipadic@2.7.0-20070801+main-2.1, meta-common-packages@meta
|
||||
Introduced through: apt@1.8.2.3, mysql-community/mysql-community-client@[...]
|
||||
From: apt@1.8.2.3 > gcc-8/libstdc++6@8.3.0-6
|
||||
From: mysql-community/mysql-community-client@8.0.26-1debian10 > gcc-8/libstdc++6@8.3.0-6
|
||||
From: mysql-community/mysql-community-server-core@8.0.26-1debian10 > gcc-8/libstdc++6@8.3.0-6
|
||||
From: mysql-community/mysql-community-client@8.0.26-1debian10 > gcc-8[...]
|
||||
From: mysql-community/mysql-community-server-core@8.0.26-1debian10 > gcc-8[...]
|
||||
and 7 more...
|
||||
Image layer: Introduced by your base image (mysql:8.0.26)
|
||||
|
||||
|
|
@ -143,11 +146,12 @@ Base image: mysql:8.0.26
|
|||
|
||||
Tested 135 dependencies for known vulnerabilities, found 79 vulnerabilities.
|
||||
|
||||
According to our scan, you are currently using the most secure version of the selected base image
|
||||
According to our scan, you are currently using the most secure version of
|
||||
the selected base image
|
||||
```
|
||||
</div>
|
||||
|
||||
Ce dernier exemple est sans appel : `mysql` est une image officielle, et sa
|
||||
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 79
|
||||
vulnérabilités dont 11 *high*.
|
||||
|
||||
|
|
@ -168,7 +172,7 @@ un certain nombre d'arguments, notamment le nom de l'image à analyser.
|
|||
|
||||
### Utilisation
|
||||
|
||||
Tentons à nouveau d'analyser l'image `mysql` :
|
||||
Tentons à nouveau d'analyser l'image `mysql` :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
|
|
@ -189,7 +193,7 @@ Les résultats sont un peu différents qu'avec `docker scan`, mais on constate
|
|||
que l'image `mysql` contient vraiment de nombreuses vulnérabilités. Même si
|
||||
elles ne sont heureusement pas forcément exploitable directement.
|
||||
|
||||
Voyons maintenant s'il y a des différentes avec l'image `nemunaire/fic-admin` :
|
||||
Voyons maintenant s'il y a des différentes avec l'image `nemunaire/fic-admin` :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
|
|
@ -217,7 +221,7 @@ vulnérabilités de l'image, a aussi fait une analyse des dépendances du binair
|
|||
`/srv/admin`.
|
||||
|
||||
Trivy est en effet capable de rechercher des vulnérabilités par rapport aux
|
||||
dépendances connues de certains langages : Python, PHP, Node.js, .NET, Java,
|
||||
dépendances connues de certains langages : Python, PHP, Node.js, .NET, Java,
|
||||
Go, ...
|
||||
|
||||
|
||||
|
|
@ -225,7 +229,7 @@ Go, ...
|
|||
|
||||
Pour éviter de surcharger les serveurs de distributions de la base de données
|
||||
de vulnérabilités, nous devrions utiliser un cache pour faire nos
|
||||
analyses. Préférez lancer `trivy` avec les options suivantes :
|
||||
analyses. Préférez lancer `trivy` avec les options suivantes :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
|
|
@ -242,7 +246,7 @@ pouvoir l'exporter pour l'afficher dans un navigateur (par exemple pour le
|
|||
mettre à disposition des développeurs, lors d'une analyse automatique).
|
||||
|
||||
Pour ce faire, on peut ajouter les options suivantes à la ligne de commande de
|
||||
notre conteneur :
|
||||
notre conteneur :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
|
@ -253,8 +257,6 @@ notre conteneur :
|
|||
En redirigeant la sortie standard vers un fichier, vous pourrez l'ouvrir dans
|
||||
votre navigateur favori.
|
||||
|
||||
---
|
||||
|
||||
{ width=90% }
|
||||
{ width=80% }
|
||||
|
||||
## Clair
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue