Verificação Simples de Imagem
Clonar a imagem do projeto:
~$ git clone https://github.com/marcelobarbieri/devops-projeto-caotico.git
Cloning into 'devops-projeto-caotico'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 15 (delta 2), reused 15 (delta 2), pack-reused 0 (from 0)
Receiving objects: 100% (15/15), 10.67 KiB | 5.33 MiB/s, done.
Resolving deltas: 100% (2/2), done.
Construção da imagem:
~$ cd devops-projeto-caotico/src/
~/devops-projeto-caotico/src$ ls
Dockerfile package-lock.json package.json server.js views
~/devops-projeto-caotico/src$ docker image build -t marcelodpbarbieri/projeto-caotico:v1 -f Dockerfile .
[+] Building 35.2s (11/11) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 153B 0.0s
=> [internal] load metadata for docker.io/library/node:18.16.0 2.9s
=> [auth] library/node:pull token for registry-1.docker.io 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 54B 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 30.52kB 0.0s
=> [1/5] FROM docker.io/library/node:18.16.0@sha256:4a55308cc855cba1a92 26.9s
=> => resolve docker.io/library/node:18.16.0@sha256:4a55308cc855cba1a925 0.0s
=> => sha256:b7b4409e470d10d87b1772cb68a802be111e85bc9ec 2.00kB / 2.00kB 0.0s
=> => sha256:8e81ac769c958d05f1bc43df0bfbce0f609e2a36c8e 7.24kB / 7.24kB 0.0s
=> => sha256:ec2b820b8e87758dde67c29b25d4cbf88377601a4 24.03MB / 24.03MB 2.5s
=> => sha256:4a55308cc855cba1a925d19ae4e45838741dad2fd7b 1.21kB / 1.21kB 0.0s
=> => sha256:bba7bb10d5baebcaad1d68ab3cbfd37390c646b2a 49.55MB / 49.55MB 4.3s
=> => sha256:284f2345db055020282f6e80a646f1111fb2d5dfc 64.11MB / 64.11MB 4.7s
=> => sha256:fea23129f080a6e28ebff8124f9dc585b412b1 211.00MB / 211.00MB 13.0s
=> => sha256:9063cd8e310682d6ca55554ed439d2618090ac91560 3.37kB / 3.37kB 5.0s
=> => extracting sha256:bba7bb10d5baebcaad1d68ab3cbfd37390c646b2a688529b 2.1s
=> => sha256:e6fac8ec5874a08556a07e764989d76b135f86442 45.52MB / 45.52MB 7.8s
=> => sha256:689a3a390764baa467add430488952885b461586107 2.28MB / 2.28MB 6.4s
=> => sha256:c976cd2164455ed28f44068f393be99dd9434cd2cb03992 451B / 451B 6.7s
=> => extracting sha256:ec2b820b8e87758dde67c29b25d4cbf88377601a4355cc5d 1.3s
=> => extracting sha256:284f2345db055020282f6e80a646f1111fb2d5dfc6f7ee87 5.8s
=> => extracting sha256:fea23129f080a6e28ebff8124f9dc585b412b1a358bba566 9.2s
=> => extracting sha256:9063cd8e310682d6ca55554ed439d2618090ac91560855be 0.0s
=> => extracting sha256:e6fac8ec5874a08556a07e764989d76b135f86442c973e19 3.1s
=> => extracting sha256:689a3a390764baa467add430488952885b4615861077f74d 0.1s
=> => extracting sha256:c976cd2164455ed28f44068f393be99dd9434cd2cb03992e 0.0s
=> [2/5] WORKDIR /app 1.0s
=> [3/5] COPY package*.json ./ 0.1s
=> [4/5] RUN npm install 4.1s
=> [5/5] COPY . . 0.0s
=> exporting to image 0.1s
=> => exporting layers 0.1s
=> => writing image sha256:8ed9f5c1a7bc04a31fd2644ecbd09da0fe54edd419569 0.0s
=> => naming to docker.io/marcelodpbarbieri/projeto-caotico:v1 0.0s
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
marcelodpbarbieri/projeto-caotico v1 8ed9f5c1a7bc 4 minutes ago 1.1GB
Execução do container:
$ docker container run -d -p 8080:8
080 marcelodpbarbieri/projeto-caotico:v1
fb393c8d8849aec18625250d09874b687faff52347f55dff4428a888474a9116
Verificar as vulnerabilidades da imagem local:
$ docker scout quickview marcelodpbarbieri/projeto-caotico:v1
Detalhes:
$ docker scout cves marcelodpbarbieri/projeto-caotico:v1
Descrição da vulnerabilidade:
CVE (Common Vulnerabilities and Exposures)
CVE (Common Vulnerabilities and Exposures) é um sistema de nomenclatura utilizado para identificar e catalogar vulnerabilidades de segurança de forma padronizada. Cada CVE é atribuído a uma vulnerabilidade específica ou exposição em software ou hardware, com o objetivo de fornecer uma maneira clara e única de referir-se a falhas de segurança.
Cada CVE possui um identificador no formato "CVE-AAAA-NNNN", onde:
AAAA é o ano em que a vulnerabilidade foi descoberta.
NNNN é um número sequencial atribuído à vulnerabilidade.
Esse sistema é gerido pela MITRE Corporation e usado globalmente para facilitar a troca de informações entre desenvolvedores, fornecedores e usuários sobre vulnerabilidades e como mitigá-las. Por exemplo, "CVE-2022-12345" seria uma referência específica a uma falha documentada em 2022.
Os CVEs são amplamente utilizados para:
Priorizar atualizações de segurança.
Ajudar analistas de segurança e administradores a identificar falhas conhecidas em seus sistemas.
Manter uma lista centralizada de falhas que diferentes partes do ecossistema de segurança podem consultar e corrigir.
Os CVEs são geralmente acompanhados de descrições detalhadas, patches e soluções oferecidas pelos desenvolvedores.
Alteração do formato de saída:
$ docker scout cves --format markdown marcelodpbarbieri/projeto-caotico:v1
Gravar num arquivo:
~$ docker scout cves --format markdown marcelodpbarbieri/projeto-caotico:v1 > vulnerabilidades.md
✓ SBOM of image already cached, 824 packages indexed
✗ Detected 61 vulnerable packages with a total of 175 vulnerabilities
What's next:
View base image update recommendations → docker scout recommendations marcelodpbarbieri/projeto-caotico:v1
~$ ls vulnerabilidades.md
vulnerabilidades.md
Verificar as vulnerabilidades das bibliotecas utilizadas no projeto antes de construir a imagem:
~/devops-projeto-caotico/src$ docker scout quickview fs://.
~/devops-projeto-caotico/src$ $ docker scout cves fs://.
Dashboard:
A imagem é verificada continuamente!
Last updated