Intermediário 8 desafios
Cadeia de suprimentos de software
Quase nenhum programa é feito só do código que você escreveu. Ele se apoia em dezenas de pacotes prontos, e cada um desses pacotes puxa outros, numa árvore que o seu app instala e executa inteira. Confiar num pacote é confiar em quem o publica, em quem publica as dependências dele, e no caminho entre o registro e a sua máquina. Esta trilha segue a falha de cadeia de suprimentos em pedaços, sempre analisando artefatos que vêm no desafio (manifestos de dependência, avisos de vulnerabilidade, a árvore de pacotes, hashes e diffs), sem rodar nada. Você acha a dependência com CVE conhecida casando a versão instalada com o aviso, reconhece um pacote de nome parecido com o certo (typosquatting), descobre uma vulnerabilidade escondida fundo na árvore e não na dependência direta, vê uma faixa de versão puxar sozinha uma versão ruim, pega um pacote trocado por um hash que não bate, lê um script de instalação malicioso como texto sem nunca executar e, no fim, junta tudo num auditoria completa. Cada desafio termina no conserto: fixar versões, versionar o lockfile, conferir integridade, revisar toda dependência nova e rodar uma ferramenta de SCA. Nada mira sistema real: a empresa, os pacotes e o registro são inventados.
O que você vai aprender
- Cadeia de suprimentos de software
- Aviso de vulnerabilidade
- Typosquatting de pacotes
- Árvore de dependências
- Faixa de versão e versão fixa
- Integridade de arquivos
- Scripts de instalação (postinstall)
- Comparar versões com diff
- Web Com arquivo Exemplo resolvido
Achar a CVE no lockfile
0% de acerto, 0 resolveram
Disponível - Web Com arquivo Exemplo resolvido
O pacote com nome parecido
Disponível - Web Com arquivo
A vulnerável está na árvore
Disponível - Web Com arquivo
A faixa puxou a versão ruim
Disponível - Web Com arquivo
O hash que não bate
Disponível - Web Com arquivo
O script que roda sozinho
Disponível - Diversos Com arquivo
Ler o patch da defesa
Disponível - Diversos Com arquivo
Auditoria completa
Disponível