‫Tudo certo.
‫A seguir, a digitalização de repositório de código.
‫Isso nem é específico do Docker, mas
‫existem ferramentas por aí e o Sneak é
‫um deles. Sneak, varrerá
‫suas dependências de código dentro dos repositórios.
‫Se você tem código aberto, se está desenvolvendo um
‫código aberto, eles farão muito disso gratuitamente.
‫Eles examinam seu repositório GitHub, seu repositório Bitbucket
‫e examinam as dependências.
‫Recebo relatórios toda semana deles nos meus repositórios de código aberto
‫e nas vulnerabilidades que eles encontraram.
‫Atualmente, o GitHub também faz muito disso de
‫graça. Sneak já
‫existe há mais tempo e faz isso há mais tempo, então
‫eu meio que tenho os dois. Tenho o GitHub me enviando e-mails
‫e tenho o Sneak. Você pode pagar Sneak para digitalizar coisas.
‫Agora, eles também têm mais recursos, onde estão fazendo imagens e outras
‫coisas, não apenas repositórios de código.
‫Mas, essa é uma linha: verifique seus repositórios
‫no início do processo.
‫Não espere que você crie imagens e,
‫em seguida, faça coisas no CI, para testar onde
‫está digitalizando. Digitalize o mais cedo possível.
‫Esse é um dos princípios básicos de algo
‫chamado segurança ShiftLeft.
‫Se você imagina um Kanban Board onde todo o seu trabalho está à
‫esquerda e sua saída à direita, o
‫movimento de segurança ShiftLeft, se você apenas procura a segurança ShiftLeft,
‫é tudo sobre mudar a responsabilidade da segurança mais cedo
‫e mais cedo. seu fluxo de
‫trabalho de desenvolvimento.
‫Portanto, uma maneira de fazer isso é fazer com que esses scanners automatizados varram
‫suas dependências de código dentro de seus repositórios git antes mesmo
‫de você chegar ao estágio de executar coisas nos
‫servidores, certo. Eu faria isso.
‫Não é especificamente uma coisa do Docker, mas eu faria isso.
‫O próximo passo é a digitalização de imagens, que é
‫muito semelhante a isso. Mas, temos mais recursos aqui.
‫Não estamos apenas examinando suas dependências de código.
‫Podemos digitalizar o próprio contêiner.
‫A imagem, certo. Podemos verificar
‫todas as dependências de lá que
‫não são apenas seus pacotes npm ou
‫seus pacotes Python. Agora você está verificando pacotes
‫YUM e APK, ou apt, ou esse tipo de
‫gerenciador de pacotes para o sistema operacional.
‫É o que quero dizer com scanner de imagem, porque ele
‫pode digitalizar tanto as dependências de código quanto as suas.
‫Então, há muitas ferramentas aqui.
‫Um conjunto muito popular já existe há algum tempo, mas
‫surgiram alguns novos sobre os quais quero
‫falar com você.
‫O primeiro aqui é Trivy, e eu aprendi sobre isso este
‫mês, na verdade em outubro.
‫O Trivy é desenvolvido pela Aqua Security, que é a mesma empresa
‫que cria o MicroScanner.
‫O MicroScanner foi uma das ferramentas,
‫juntamente com muitas outras, Anchor também, outra popular.
‫Todas essas são ferramentas de código aberto que examinam sua imagem
‫quanto a vulnerabilidades do CVE.
‫O CVE é o banco de dados de todas as vulnerabilidades
‫de doadores de código aberto que todos ouvimos nas notícias.
‫É da Mitre, uma empresa que gerencia esse banco de dados.
‫Isso é uma coisa da comunidade, certo.
‫Sempre que alguém encontra uma vulnerabilidade no software, ele a coloca
‫e obtém um número CVE.
‫É vulnerabilidade e explorações comuns,
‫algo assim.
‫Não me lembro exatamente o que CVE representa.
‫Tenho certeza que um de vocês vai me dizer no chat.
‫Mas o CVE obtém um número, certo.
‫Vemos um número atribuído a esse
‫bug conhecido na comunidade. Um scanner CVE verificará suas imagens em
‫busca dessa vulnerabilidade.
‫Depois de iniciar a implementação, há todo
‫tipo de minúcia, como o scanner necessário para executar na
‫imagem do Docker durante o tempo de compilação?
‫Ou digitaliza uma imagem que já foi criada?
‫Esse scanner suporta sua
‫distribuição básica? Suporta Red Hat?
‫Suporta Alpine?
‫Qualquer outro tipo de imagem de distribuição que você
‫escolheu usar, será compatível com isso?
‫Ele também suporta o seu gerenciador de pacotes para o seu aplicativo
‫como npm ou
‫pip, ou uma das outras dezenas de gerenciadores de
‫pacotes por aí, certo. Ele também suporta isso?
‫O MicroScanner
‫não fez tudo isso. Ele fez parte disso,
‫mas como muitas outras ferramentas no ecossistema, elas não fizeram tudo.
‫No momento, este da Aqua Security, chamado
‫Trivy,
‫chega ao topo dessa coisa.
‫Trivy está alegando que eles são
‫o scanner gratuito de código aberto mais completo disponível no mercado.
‫Aqui em baixo, você verá o que eles apóiam.
‫Você notará que eles suportam todas essas imagens baseadas.
‫Então, se você realmente cair, há uma comparação mostrando-os
‫comparando com todas as outras ferramentas, ou pelo
‫menos com as versões populares de código aberto
‫dessas ferramentas. Definitivamente, existem mais ferramentas do que isso.
‫Há muitas opções que você precisa fazer aqui.
‫Uma opção é onde eu quero digitalizar?
‫Quero que meu repositório de imagens as digitalize, como
‫o Docker Enterprise DTR?
‫Onde você tem um registro contendo suas imagens
‫e esse registro executa varreduras nas imagens no próprio
‫registro, de uma só vez.
‫Quay também faz isso. O Quay é um
‫repositório de imagens que hospeda na nuvem e também será digitalizado.
‫Cada um desses scanners nem sempre verifica todos os tipos de imagens e
‫todas as dependências de aplicativos.
‫Então, é muito legal aqui que eles mostram ... basicamente o X significa
‫que eles não fazem isso.
‫O 0 ou O lá, o círculo, significa que eles
‫fazem isso. Então, acho
‫que o duplo OO aqui significa
‫o melhor, e o triângulo significa que há
‫problemas, há preocupações lá.
‫Então, eles estão dizendo que Trivy, que eles compraram este ano, eu
‫acredito.
‫Trivy faz tudo. Faz pacotes de SO, dependências de aplicativos.
‫Eles afirmam que é fácil de usar.
‫Eles afirmam que é mais preciso. Se você começar
‫a ler isso, perceberá que um dos grandes problemas que
‫continuo falando é que a imagem base do Alpine não funciona
‫com quase todos esses scanners.
‫Ele simplesmente não possui o banco de dados de vulnerabilidades conectado a
‫ele corretamente, de modo que, quando você executa esses
‫scanners, ele detecta vulnerabilidades no Alpine.
‫Trivy afirma que eles corrigiram isso por
‫um novo método que estão implementando, e veremos se outras
‫pessoas o implementam também.
‫Eles afirmam ser os mais completos.
‫Muitos dos meus amigos capitães do Docker estão dizendo que estão
‫usando e usando ótimo.
‫Uma das outras decisões, além de qual scanner, é onde
‫você digitalizará?
‫Eu gosto de digitalizar durante a criação da imagem.
‫Prefiro digitalizar durante a criação da imagem
‫automatizada de IC do que digitalizá-la mais tarde após a criação da imagem.
‫Sou apenas eu.
‫Você pode até ter sistemas diferentes que varrem
‫em momentos diferentes, apenas para estar seguro, certo,
‫apenas para ter certeza. Você pode ter sistemas que varrem
‫nos servidores em execução na produção, dependendo do
‫seu ambiente. Isso não é muito comum.
‫Mas, se você estiver em um ambiente super seguro
‫e quiser escanear coisas em execução, certamente poderá fazer isso com
‫algumas dessas ferramentas.
‫Uma demonstração que geralmente dou é sobre
‫o MicroScanner. Basicamente, tudo o
‫que você precisa fazer no MicroScanner, assim como esta
‫outra ferramenta, está no MicroScanner, você pode adicioná-lo ao seu Dockerfile.
‫Acredito que no aplicativo Tivey, você digitaliza após a
‫construção da imagem.
‫Se você é super paranóico, pode usar um
‫MicroScanner dentro da sua imagem do Docker.
‫Você pode executar algo como o Tivey após o fato
‫das imagens antes de serem enviadas para
‫o registro, você sabe. Você sempre pode baixá-los mais tarde,
‫mas eu gosto de saber que minha imagem está livre de
‫vulnerabilidades antes de enviá-la.
‫Então, é isso que você pode fazer lá. Agora.
‫Eu quero apenas lhe dizer um aviso.
‫Você provavelmente não vai ter nenhum ... você
‫provavelmente não terá nenhuma imagem,
‫ou talvez apenas algumas, com
‫zero vulnerabilidades. Isso é apenas
‫devido à natureza do código aberto. Normalmente, se você digitalizar qualquer
‫imagem, tipicamente, se você digitalizar qualquer imagem existente,
‫haverá vulnerabilidades.
‫É seu trabalho trabalhar com sua equipe de
‫segurança no que é aceitável, não podemos nunca ter vulnerabilidades.
‫Porque certas vulnerabilidades podem nem se aplicar a você.
‫Só porque eles estão na sua imagem não significa que eles
‫serão automaticamente um problema, certo.
‫Você vai ter que
‫fazer algum trabalho. Acho que o que eu sugeriria
‫é implementá-las agora, mas
‫desative o tipo de falha e diga continue
‫aqui, o que significa que tudo o que vou fazer
‫é avisar que há vulnerabilidades. Não vou parar a construção apenas
‫porque há uma vulnerabilidade.
‫Isso é fundamental, porque se você começar
‫a implementar todas essas ferramentas automaticamente, elas falharão no processo.
‫Eles falharão no seu IC ou nas suas construções,
‫se você apenas ativá-los. Você deseja certificar-se
‫de tê-los no tipo de modo apenas de auditoria, onde eles não
‫falham ao encontrar uma vulnerabilidade.
‫Dessa forma, você pode pelo menos aprender quais são as
‫vulnerabilidades antes de começar, você sabe, antes de se tornar
‫hardcore, certo? Antes de você ir hardcore.