Já falamos sobre a importância da Software Composition Analysis (SCA) para tornar mais seguras as aplicações que incluem códigos open source em sua composição. A abordagem é valiosa, mas sua implementação não é exatamente fácil.
Conheça e saiba como enfrentar os 5 maiores desafios que envolvem o uso de ferramentas de SCA.
Pouca visibilidade na base de códigos
Pacotes de código open source normalmente dependem de outros pacotes para operar corretamente – como componentes internos, nem sempre fáceis de identificar. A isso dá-se o nome de dependência indireta ou transitiva.
As dependências podem ter várias camadas de “profundidade”, e quanto mais intrincada for essa hierarquia, mais difícil é ter visibilidade de ponta a ponta em relação ao código. Pior: a maior parte das vulnerabilidades de códigos open source é encontrada justamente nessas dependências indiretas.
Uma boa ferramenta de SCA deve ser capaz de interpretar todas as dependências da aplicação e oferecer a maior visibilidade possível. E isso nos leva ao segundo desafio, que é…
Entender a lógica das dependências
O conceito geral é simples, mas compreender as dependências de um pacote de códigos não é. Para começar, é preciso entender como cada ecossistema lida com as dependências – isso inclui as resoluções dos pacotes durante a instalação, travas de arquivos, e dependências de desenvolvimento.
Sem essa compreensão, fica especialmente difícil calibrar corretamente a solução SCA, e há o risco de gerar um grande volume de falsos-positivos.
Um oceano de vulnerabilidades
Um breve “passeio” por bases de dados como o National Vulnerability Database (NVB) e a base de dados da Snyk Intel mostra o impressionante número de vulnerabilidades que existem no momento (e que vai crescendo com o tempo).
Na impossibilidade de lidar com todas (afinal, nem as maiores organizações do mundo contam com tempo e dinheiro infinitos), os profissionais de desenvolvimento e segurança precisam discernir quais vulnerabilidades são mais críticas às suas aplicações. Expertise e boas ferramentas são cruciais nessa missão.
Dados difusos
No item 3, mencionamos duas grandes bases de dados, mas há muitas outras fontes para se ficar de olho. Isso inclui fóruns, newsletters e rastreadores de falhas. Além do grande número de fontes, há também o problema do atraso: o fato de uma base de dados ser ampla não significa que ela é atualizada com a rapidez necessária – o que pode tornar uma vulnerabilidade ainda mais grave.
Por isso é importante acompanhar várias fontes. Quando se trata de segurança, o tempo é um fator crítico.
DevSecOps: seguro, mas sem gargalos
O uso de códigos open source se torna mais comum à medida em que os desenvolvedores precisam de rapidez nas entregas. A segurança, por sua vez, tem o grande desafio de ser ao mesmo tempo veloz e eficaz, para manter a qualidade dos softwares sem se tornar um gargalo.
Tradicionalmente, as equipes de segurança estabeleciam “checkpoints” ao longo do processo de desenvolvimento, o que podia gerar atrasos ou, se fossem ignorados, culminar em aplicações menos seguras. Daí veio a necessidade de abordagens como o DevSecOps e o Shift Left da segurança, que levam aos times de desenvolvimento parte da responsabilidade pela segurança das aplicações.
Uma boa solução de SCA tem esses dois princípios em sua base, incluindo uma abordagem developers-first, ou seja, fácil de ser operada (e adotada) por desenvolvedores.
A qualidade da sua aplicação pode ser ainda maior. Clique aqui e agende uma conversa com um especialista da Prime Control!