Impedir que um pacote homônimo entre no build

Monte uma ferramenta de preços com dependências Python aprovadas e rejeite arquivos wheel substituídos.

ProjetoDevSecOpsPythonCibersegurança

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Introdução

Este projeto prático de DevSecOps trata de uma decisão concreta: quais bytes de dependências podem fazer parte de um build útil. Você corrigirá uma ferramenta de preços de ingressos e aplicará o mesmo método a um balcão de materiais para oficinas.

Dois laboratórios guiados apresentam a seleção de fontes e os hashes de todas as dependências. O desafio independente muda as relações entre pacotes, mantendo as mesmas ferramentas e o contrato de instalação.

O que você aprenderá

  • Identificar dependências diretas e indiretas e explicar por que um segundo índice pip não é uma reserva de prioridade menor.
  • Reconstruir os pacotes aprovados em ambientes Python separados e entregar uma lista de preços completa e correta.
  • Rejeitar arquivos wheel com os mesmos nome e versão, mas bytes diferentes, usando hashes aprovados de forma independente.
  • Preservar espelhos legítimos, caminhos entre aspas, o comportamento da aplicação e os pedidos originais.

Para quem é este curso

Para iniciantes em DevSecOps que saibam usar cd, cat, comandos básicos de terminal e editar um pequeno arquivo de texto. Programação Python, Docker e conta de nuvem não são necessários. O primeiro laboratório explica ambientes virtuais, opções do pip e a pequena receita Shell usada no projeto.

Ambiente de aprendizagem: Cada laboratório começa de forma independente com Python, pip, arquivos wheel sintéticos originais e fontes locais preparados no terminal Linux do navegador.

Perguntas frequentes

Preciso publicar ou atacar um pacote público?

Não. Todas as fontes e todos os pacotes são controlados dentro do ambiente. Os substitutos alteram apenas os cálculos do exemplo.

Um hash correspondente prova que o pacote é seguro?

Prova que os bytes correspondem à aprovação fornecida separadamente. Não identifica o publicador nem comprova ausência de vulnerabilidades.

O que entregarei?

Uma receita de instalação reutilizável, o ambiente aprovado real e um CSV correto. O desafio também deve rejeitar alterações em dependências diretas e indiretas e aceitar espelhos inalterados.

Professor

labby
Labby
Labby is the LabEx teacher.