Introdução

Concluído

Os aplicativos modernos dependem muito de componentes de software livre 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 SCA (Análise de Composição de Software) fornece ferramentas e processos automatizados para identificar, acompanhar e gerenciar os riscos de segurança e conformidade em sua cadeia de fornecimento de software.

Sem a análise sistemática de dependência, as organizações permanecem desconhecendo as vulnerabilidades em seus aplicativos até que ocorram violações. Pesquisadores de segurança descobrem milhares de novas vulnerabilidades em componentes de software livre anualmente, e os aplicativos que usam versões afetadas permanecem vulneráveis até que as dependências sejam atualizadas. O acompanhamento manual de dependências em centenas de aplicativos é impraticável, exigindo soluções de SCA automatizadas.

Este módulo fornece diretrizes abrangentes sobre como implementar a Análise de Composição de Software em seus fluxos de trabalho de desenvolvimento. Você aprenderá os conceitos básicos do SCA, implementará a detecção automatizada de vulnerabilidades com o GitHub Dependabot, integrará as ferramentas de SCA ao Azure Pipelines, automatizará a verificação de contêineres e interpretará os alertas de segurança para priorizar a correção com eficiência.

O que você aprenderá

Este módulo aborda o conhecimento essencial para implementar a Análise de Composição de Software:

  • Noções básicas sobre a análise de composição de software: Você explorará o que é o SCA, por que ele é fundamental para o desenvolvimento moderno, quais ferramentas de SCA detectam e os benefícios da verificação automatizada de dependências. Entender os conceitos básicos do SCA ajuda você 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á a inventariar todas as dependências em seus aplicativos, validar a conformidade de licença para evitar problemas legais, detectar 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 de pull com atualizações de segurança, gera grafos de dependência mostrando dependências transitivas e integra-se à guia Segurança do GitHub para gerenciamento de vulnerabilidades centralizado.

  • Integrando o SCA em pipelines: Você explorará como implementar a verificação automatizada no Azure Pipelines durante a compilação e implantação, configurar ferramentas de SCA, incluindo Mend (WhiteSource), Snyk e OWASP Dependency-Check, estabelecer portões de qualidade que falham em builds quando vulnerabilidades críticas são detectadas e gerar SBOM (Software Bill of Materials) para conformidade e transparência.

  • Examinando as ferramentas de SCA: Você comparará diferentes soluções de SCA que compreendem 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 software livre, como Dependency-Check OWASP para verificação econômica e soluções integradas à plataforma, como fontes upstream do Azure Artifacts e o GitHub Dependabot.

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

  • Interpretando alertas do verificador: Você descobrirá como avaliar a gravidade da vulnerabilidade usando pontuações cvss, determinar a explorabilidade considerando se as vulnerabilidades são acessíveis 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 filtradas corretamente.

Objetivos de aprendizagem

Ao final deste módulo, você poderá:

  • Entenda a SCA (Análise de Composição de Software) e reconheça por que a verificação de dependência automatizada é essencial para gerenciar riscos de segurança e conformidade em aplicativos modernos criados a partir de componentes de software livre.
  • Inspecione e valide as bases de código inventariando todas as dependências, incluindo dependências transitivas, validando a conformidade da licença, detectando vulnerabilidades conhecidas por meio de bancos de dados CVE e avaliando a qualidade da dependência.
  • Implemente o GitHub Dependabot para detectar automaticamente dependências vulneráveis, receber solicitações de pull com atualizações de segurança, visualizar grafos de dependência e integrar alertas de vulnerabilidade à guia Segurança do GitHub.
  • Integre verificações de SCA ao Azure Pipelines implementando a verificação automatizada durante builds, configurando portões de qualidade que falham em builds para vulnerabilidades críticas, gerando relatórios de conformidade e criando uma lista de materiais de software (SBOM).
  • Examine e configure ferramentas de SCA , incluindo soluções comerciais como Mend (WhiteSource) e Snyk, ferramentas de software livre como OWASP Dependency-Check e soluções integradas à plataforma, como fontes upstream do Azure Artifacts.
  • Automatize a verificação de imagens de contêiner para detectar vulnerabilidades em imagens base e dependências do aplicativo, integre a verificação 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 verificação avaliando a gravidade com pontuações CVSS, determinando a explorabilidade e a acessibilidade, priorizando a correção com base no impacto nos negócios e gerenciando falsos positivos efetivamente.

Pré-requisitos

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

  • Noções básicas sobre 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 do DevOps: Noções básicas sobre integração contínua, entrega contínua, pipelines de build e o ciclo de vida de desenvolvimento de software.
  • Experiência de controle de versão: Experiência básica com Git, solicitações de pull e fluxos de trabalho de revisão de código em que normalmente ocorre o gerenciamento de dependências.
  • Reconhecimento de software livre: Noções gerais de que os componentes de software livre podem conter vulnerabilidades de segurança e ter requisitos de licença (o conhecimento de módulos anteriores é benéfico).
  • Experiência do Azure DevOps ou do GitHub: Familiaridade com o Azure Pipelines ou o GitHub Actions para implementar a verificação automatizada em fluxos de trabalho de CI/CD.

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