Dependências seguras

Concluído

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

O uso de componentes com vulnerabilidades conhecidas é um grande problema em nosso setor. Trata-se de um problema tão grande que chegou à lista do OWASP das 10 piores vulnerabilidades de aplicativos Web, mantendo a 9ª posição por vários anos.

Acompanhar as vulnerabilidades de segurança conhecidas

O problema que temos é saber quando um problema é descoberto. É evidente que manter as bibliotecas e as dependências atualizadas (a 4ª na lista) ajudará, mas é uma boa ideia acompanhar as vulnerabilidades identificadas que podem afetar o aplicativo.

Importante

Quando um sistema tem uma vulnerabilidade conhecida, é muito mais provável que também tenha exploits disponíveis, um código que as pessoas podem usar para atacar esses sistemas. Caso um exploit se torne público, é fundamental que todos os sistemas afetados sejam atualizados imediatamente.

A Mitre é uma organização sem fins lucrativos que mantém a lista de Vulnerabilidades e Exposições Comuns. Essa lista é um conjunto publicamente pesquisável de vulnerabilidades conhecidas de segurança cibernética em aplicativos, bibliotecas e estruturas. Caso você encontre uma biblioteca ou um componente no banco de dados CVE, ele terá vulnerabilidades conhecidas.

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

Como verificar se há vulnerabilidades conhecidas em seus componentes de terceiros

Você pode colocar uma tarefa diária em seu telefone para verificar essa lista, mas, felizmente, existem muitas ferramentas para permitir verificar se nossas dependências são vulneráveis. Você pode executar essas ferramentas em sua base de código, ou melhor ainda, adicioná-las ao pipeline de CI/CD para verificar problemas automaticamente como parte do processo de desenvolvimento.

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

Para obter mais informações sobre os riscos envolvidos no uso de componentes vulneráveis, visite a página do OWASP dedicada a este tópico.

Resumo

Ao usar bibliotecas ou outros componentes de terceiros como parte do aplicativo, você também está assumindo os riscos que eles podem ter. A melhor maneira de reduzir esse risco é garantir que você esteja usando somente componentes que não têm vulnerabilidades conhecidas associadas a eles.