Software Composition Analysis: O que é e por que você deveria usar

O uso de códigos open source é uma excelente maneira de economizar recursos (tempo, dinheiro, mão de obra) no desenvolvimento de aplicações. Quando esses códigos trazem vulnerabilidades que escapam do radar, o que era solução se torna um problema.

Entra em cena a SCA (“Análise de Composição de Software”, na sigla em inglês), uma prática que vai deixar sua aplicação mais segura e evitar muita dor de cabeça.

O caso Equifax e o custo da vulnerabilidade

Um caso famoso (e especialmente ilustrativo) de como é importante cuidar da integridade dos códigos open source aconteceu no início de 2017.

Em fevereiro daquele ano, foi descoberta uma vulnerabilidade na biblioteca open source de Java Apache Struts. A Apache lançou uma correção três semanas depois. Em questão de apenas um dia, porém, já havia um exploit disponível, e em duas semanas o número de ataques que aproveitavam a brecha já atingiu o pico.

A gigante americana de créditos Equifax Inc. havia usado os tais códigos vulneráveis da biblioteca Apache e, portanto, foi também alvo de ataques. Se tivesse encontrado e corrigido a brecha em sua aplicação (algo possível com ferramentas de SCA), estaria protegida, mas não foi o caso – e o preço foi alto. Além dos prejuízos com processos, a Equifax sofreu um forte golpe em sua credibilidade e reputação.

Naturalmente, é fácil julgá-los depois que o fato ocorreu, mas a lição a se tirar desse emblemático caso permanece: é preciso ser ágil na correção de vulnerabilidades, principalmente quando sua aplicação usa códigos de uma fonte bastante “visada”.

Covid, supply chain e a ascensão do open source

Usar códigos open source, como já dissemos no começo, ajuda a economizar recursos no desenvolvimento de softwares – não é à toa que a prática tem se tornado cada vez mais comum. Junto com DevOps e cloud computing, é um dos atuais pilares da digitalização das organizações.

Os códigos open source são bastante flexíveis e customizáveis e, com o amparo de comunidades de desenvolvedores, são analisados e aprimorados com frequência. Além disso, seu uso ajuda a evitar restrições impostas por softwares proprietários.

Antes mesmo da pandemia de Covid-19 o uso de códigos open source estava crescendo, mas a necessidade de acelerar a digitalização acelerou também a adoção desse tipo de recurso.

Como tudo na vida, porém, há um lado negativo: as bibliotecas de código open source também são monitoradas por gente maliciosa, sempre de olho em vulnerabilidades a explorar e, quanto mais popular for o pacote de código usado em um projeto, maior o risco envolvido. O fato de que muitas organizações negligenciam a verificação desses elementos piora a situação.

No supply chain moderno das aplicações, os códigos open source são uma parte do “quebra-cabeça” (junto com código proprietário, containers e infraestrutura-como-código). Uma vulnerabilidade pode ser usada para infectar toda a cadeia e expandir a superfície de ataque.

A SCA, que ajuda a garantir a integridade dos códigos open source usados numa aplicação, é uma escolha óbvia no cenário atual.

5 Boas práticas para SCA

Dito tudo isso, nada mais justo do que apontar boas práticas de Software Composition Analysis e ajudar sua organização a continuar desfrutando dos códigos open source sem abrir mão da segurança.

Separamos 5 recomendações para escolher (e usar) uma boa ferramenta de SCA.

  1. Encontre uma ferramenta developer-friendly: Se os seus desenvolvedores tiverem dificuldade em usar a ferramenta, isso vai atrasar o processo e pode até fazer com que deixem de usá-la. Também é importante que a ferramenta seja fácil de integrar no ciclo de desenvolvimento;
  2. Automatize os scans: Varreduras automáticas feitas em intervalos regulares ajudam a manter o processo fluido e a aplicação segura. Também é importante que a ferramenta dê direcionamentos claros sobre como corrigir as falhas – mais uma vez, é bom que ela seja “developer-friendly”;
  3. Atenção às dependências: Pacotes de códigos open source contêm dependências que podem se ramificar, e muitas vezes é dentro dessas ramificações que estão as vulnerabilidades. Você precisa ter consciência da complexidade dos pacotes, e as boas ferramentas de SCA devem ser capazes de analisar os códigos em profundidade;
  4. Integre a SCA ao seu pipeline de CI/CD: A SCA não precisa se tornar mais um gargalo no processo de desenvolvimento. Com uma boa integração dentro do pipeline, fica mais fácil para os desenvolvedores assimilarem a garantia de segurança de código à sua rotina diária;
  5. Fortaleça suas políticas de segurança e compliance: Nem sempre há diretrizes claras, dentro da organização, a respeito do uso de pacotes open source. O conhecimento que se obtém com as ferramentas de escaneamento de vulnerabilidades ajuda a ter base para criar políticas de segurança inteligentes e manter o compliance.

 

Conte com especialistas para elevar a qualidade e a segurança da sua aplicação a um novo patamar! Clique aqui e agende uma conversa.

Newsletter

Assine nossa newsletter e seja avisado sobre novos artigos, cases, eventos e muito mais.

E-books e Relatórios

Conheça nossa base de ebooks, artigos, relatórios e cases. Aprenda sobre as boas práticas de testes, qualidade de software e muito mais.

Tudo disponível para download gratuitamente.