Introdução

Concluído

As aplicações modernas dependem fortemente de componentes de código aberto e bibliotecas de terceiros. Embora essas dependências acelerem o desenvolvimento e forneçam funcionalidade comprovada, elas também introduzem vulnerabilidades de segurança e riscos de conformidade de licença. A Análise de Composição de Software (SCA) fornece ferramentas e processos automatizados para identificar, rastrear e gerenciar os riscos de segurança e conformidade em sua cadeia de suprimento de software.

Sem uma análise sistemática de dependência, as organizações permanecem inconscientes das vulnerabilidades em seus aplicativos até que ocorram violações. Os pesquisadores de segurança descobrem milhares de novas vulnerabilidades em componentes de código aberto anualmente, e os aplicativos que usam versões afetadas permanecem vulneráveis até que as dependências sejam atualizadas. O rastreamento manual de dependências em centenas de aplicativos é impraticável, exigindo soluções SCA automatizadas.

Este módulo fornece orientação abrangente sobre a implementação da Análise de Composição de Software em seus fluxos de trabalho de desenvolvimento. Você aprenderá os fundamentos da SCA, implementará a deteção automatizada de vulnerabilidades com o GitHub Dependabot, integrará ferramentas SCA no Azure Pipelines, automatizará a verificação de contêineres e interpretará alertas de segurança para priorizar a correção de forma eficaz.

O que vai aprender

Este módulo abrange conhecimentos essenciais para a implementação da Análise de Composição de Software:

  • Entendendo a análise de composição de software: Você explorará o que é SCA, por que ele é crítico para o desenvolvimento moderno, o que as ferramentas SCA detetam e os benefícios da verificação automatizada de dependência. Compreender os fundamentos da SCA ajuda a reconhecer por que o gerenciamento manual de dependências não é dimensionado e como as ferramentas automatizadas fornecem visibilidade contínua dos riscos de segurança e conformidade.

  • Inspecionando e validando bases de código: Você aprenderá como inventariar todas as dependências em seus aplicativos, validar a conformidade da licença para evitar problemas legais, detetar vulnerabilidades de segurança conhecidas por meio de bancos de dados CVE e avaliar a qualidade da dependência, incluindo o status de manutenção e a integridade da comunidade.

  • Implementando o GitHub Dependabot: Você descobrirá como o GitHub Dependabot verifica automaticamente as dependências em busca de vulnerabilidades, cria solicitações pull com atualizações de segurança, gera gráficos de dependência mostrando dependências transitivas e se integra à guia Segurança do GitHub para gerenciamento centralizado de vulnerabilidades.

  • Integração da SCA em pipelines: Você explorará como implementar a verificação automatizada no Azure Pipelines durante a compilação e a implantação, configurar ferramentas SCA, incluindo Mend (WhiteSource), Snyk e OWASP Dependency-Check, estabelecer portas de qualidade que falham nas compilações quando vulnerabilidades críticas são detetadas e gerar listas de materiais de software (SBOM) para conformidade e transparência.

  • Examinando as ferramentas SCA: Você comparará diferentes soluções SCA entendendo seus pontos fortes, limitações e casos de uso ideais. As ferramentas abordadas incluem ofertas comerciais como Mend e Snyk que fornecem verificação abrangente com suporte, opções de código aberto como OWASP Dependency-Check para verificação econômica e soluções integradas à plataforma como fontes upstream do Azure Artifacts e GitHub Dependabot.

  • Automatizando a varredura de contêineres: Você aprenderá como verificar imagens de base de contêiner em busca de vulnerabilidades, analisar dependências de aplicativos em contêineres, integrar a varredura de contêineres em pipelines de CI/CD e configurar registros de contêiner como o Registro de Contêiner do Azure e o Docker Hub para bloquear imagens vulneráveis automaticamente.

  • Interpretação de alertas do scanner: Você descobrirá como avaliar a gravidade da vulnerabilidade usando pontuações CVSS, determinar a capacidade de exploração considerando se as vulnerabilidades podem ser acessadas em seu aplicativo, priorizar a correção com base no impacto e no risco dos negócios e gerenciar falsos positivos que podem sobrecarregar as equipes se não forem filtrados corretamente.

Objetivos de aprendizagem

Depois de concluir este módulo, você será capaz de:

  • Compreenda a Análise de Composição de Software (SCA) e reconheça por que a verificação automatizada de dependência é essencial para gerenciar riscos de segurança e conformidade em aplicativos modernos criados a partir de componentes de código aberto.
  • Inspecione e valide bases de código inventariando todas as dependências, incluindo dependências transitivas, validando a conformidade de licenças, detetando vulnerabilidades conhecidas por meio de bancos de dados CVE e avaliando a qualidade da dependência.
  • Implemente o GitHub Dependabot para detetar automaticamente dependências vulneráveis, receber solicitações pull com atualizações de segurança, visualizar gráficos de dependência e integrar alertas de vulnerabilidade com a guia Segurança do GitHub.
  • Integre verificações SCA no Azure Pipelines implementando varredura automatizada durante compilações, configurando limiares de qualidade que falham as compilações em caso de vulnerabilidades críticas, gerando relatórios de conformidade e criando Lista de Materiais de Software (SBOM).
  • Examine e configure ferramentas SCA, incluindo soluções comerciais como Mend (WhiteSource) e Snyk, ferramentas de código aberto como OWASP Dependency-Check e soluções integradas na plataforma, como fontes upstream do Azure Artifacts.
  • Automatize a verificação de imagens de contêiner para detetar vulnerabilidades em imagens de base e dependências de aplicativos, integre a varredura em fluxos de trabalho de CI/CD e configure registros para evitar a implantação de contêineres vulneráveis.
  • Interprete alertas de ferramentas de varredura avaliando a gravidade com pontuações CVSS, determinando a capacidade de exploração e acessibilidade, priorizando a correção com base no impacto nos negócios e gerenciando falsos positivos de forma eficaz.

Pré-requisitos

Antes de iniciar este módulo, você deve ter:

  • Compreensão das dependências de software: Conhecimento básico de como os aplicativos usam bibliotecas, estruturas e pacotes de gerenciadores de pacotes como npm, pip, NuGet ou Maven.
  • Familiaridade com os conceitos de DevOps: Compreensão da integração contínua, entrega contínua, pipelines de construção e ciclo de vida de desenvolvimento de software.
  • Experiência de controle de versão: Experiência básica com Git, solicitações pull e fluxos de trabalho de revisão de código onde o gerenciamento de dependência normalmente ocorre.
  • Sensibilização para o código aberto: Compreensão geral de que os componentes de código aberto podem conter vulnerabilidades de segurança e ter requisitos de licença (o conhecimento dos módulos anteriores é benéfico).
  • Experiência do Azure DevOps ou GitHub: Familiaridade com Pipelines do Azure ou Ações do GitHub para implementar a verificação automatizada em fluxos de trabalho de CI/CD.

A experiência de trabalho em organizações que fornecem software é benéfica, mas não necessária. Este módulo baseia-se em conceitos de software de código aberto e fornece orientações práticas de implementação para a Análise de Composição de Software.