Dependências Seguras

Concluído

Uma grande porcentagem do código presente em aplicativos modernos é composta pelas bibliotecas e dependências escolhidas por você, o desenvolvedor. Esta é uma prática comum que poupa tempo e dinheiro. No entanto, a desvantagem é que agora você é responsável por esse código, mesmo que outros o tenham escrito, porque o usou em seu projeto. Se um pesquisador (ou pior, um hacker) descobrir uma vulnerabilidade em uma dessas bibliotecas de terceiros, a mesma falha provavelmente também estará presente em seu aplicativo.

A utilização de componentes com vulnerabilidades conhecidas é um grande problema na nossa indústria. É tão problemático que entrou para a lista dos 10 piores vulnerabilidades de aplicações web do OWASP, mantendo-se em #9 por vários anos.

Detetar vulnerabilidades de segurança conhecidas

O problema é saber quando é detetado um problema. Manter as nossas bibliotecas e dependências atualizadas certamente ajudará (posição n.º 4 na nossa lista!), mas é útil controlar as vulnerabilidades identificadas que podem afetar a sua aplicação.

Importante

Quando um sistema tem uma vulnerabilidade conhecida, é muito mais provável que também tenha exploits disponíveis, código que as pessoas podem usar para atacar esses sistemas. Se uma exploração for tornada pública, é crucial que todos os sistemas afetados sejam atualizados imediatamente.

Mitre é uma organização sem fins lucrativos que efetua a gestão da lista de Vulnerabilidades e Exposições Comuns. Esta lista é um conjunto publicamente pesquisável de vulnerabilidades conhecidas da cibersegurança em aplicações, bibliotecas e arquiteturas. Se encontrar uma biblioteca ou um componente na base de dados CVE, terá com certeza vulnerabilidades conhecidas.

A comunidade de segurança envia problemas quando uma falha de segurança é encontrada em um produto ou componente. A cada problema publicado é atribuído um ID e contém a data da deteção, uma descrição da vulnerabilidade e as referências a soluções alternativas publicadas ou instruções do fornecedor sobre o problema.

Como verificar se existem vulnerabilidades conhecidas nos seus componentes de terceiros

Poderia adicionar uma lista de tarefas diárias ao telemóvel e verificar essa lista, mas, felizmente para nós, existem muitas ferramentas que nos ajudam a verificar a vulnerabilidade das nossas dependências. Pode executar essas ferramentas no seu código base ou, melhor ainda, pode adicioná-las ao seu pipeline CI/CD para procurar automaticamente os problemas como parte do processo de desenvolvimento.

Você também pode usar algumas ferramentas feitas especificamente para análise de código estático para isso.

Para obter mais informações sobre os riscos envolvidos na utilização de componentes vulneráveis, visite a página da OWASP dedicada a este tópico.

Resumo

Quando você usa bibliotecas ou outros componentes de terceiros como parte do seu aplicativo, você também está assumindo quaisquer riscos que eles possam ter. A melhor maneira de reduzir estes riscos é garantir que apenas utiliza componentes que não possuem vulnerabilidades conhecidas associadas.