O Que é SCA?

A análise de composição de software (SCA – Software Composition Analysis) é o processo que automatiza a identificação de softwares open source em uma base de código. De acordo com o relatório Gartner Market Guide for Software Composition Analysis, mais de 90% dos aplicativos utilizam componentes com código fonte aberto.

A tendência de adoção do código fonte aberto tem ganhado força pois permite que os desenvolvedores foquem mais no código proprietário, assim podendo serem mais produtivos e realizam entregas mais rápidas e com maior qualidade.

O SCA pode garantir que esses códigos fontes incorporados ao código fonte proprietário sigam um padrão de mercado garantindo as melhores práticas de segurança, licença, propriedade intelectual ou violação de dados.

Além disso, as ferramentas de SCA são capazes de rastrear os componentes utilizados nos códigos e gerar uma “Lista de Materiais de Software” (SBOM), ou seja uma lista com todos os componentes utilizados no software. Esse assunto será abordado com mais detalhes em outro post.

E como funcionam as ferramentas de SCA?

Em regra, as ferramentas dependem de uma base de dados onde todas as vulnerabilidades conhecidas estão catalogadas, essa base de dados é consultada e comparada com os dados que foram coletados do software. Essa base de dados pode ser tanto fechada como aberta. Um exemplo de base de dados aberta de vulnerabilidades é o NVD (https://nvd.nist.gov/vuln/full-listing).

Após essa comparação com a base de dados, são atribuídos valores para cada um dos componentes como quais são as vulnerabilidades e licenças utilizadas em cada componente. Com esses dados, é possível fazer uma priorização das ações que serão tomadas para a correção de cada item.

Um exemplo prático de utilização de código fonte aberto e vulnerabilidade identificadas é o caso do Log4J. Para os desenvolvedores não criarem um sistema que permita a guarda de informações geradas pela aplicação, a biblioteca Log4J da Apache Software Foundation foi criada e disponibilizada com esse objetivo.

Essa biblioteca era bastante popular no momento em que foi descoberto uma vulnerabilidade crítica (CVE-2021-44228), sendo importado nos códigos fontes proprietários. Caso a equipe responsável pelo monitoramento dos componentes open source em um código proprietário utilize uma ferramenta SCA/SBOM, rapidamente identifica os pontos de vulnerabilidades causadas por essa biblioteca, assim ganhando agilidade para mitigação do problema.

Podemos observar que o SCA traz algumas vantagens como:

Identificação e gerenciamento de:

  • Componentes de código open source em um código proprietário;
  • Vulnerabilidades nos componentes do software;
  • Conformidade de licenças;

Criação de relatórios e lista de todos os componentes que integram o software;

Controle e governança utilizando alguns padrões de controle como SDLC/SSDLC, OWASP DSOMM/SAMM e CIS Controls.

 

A adoção de uma ferramenta leva em consideração muitos fatores. Aqui está uma lista de algumas empresas/ferramentas que fazem análise:

Checkmarx
Fortify
Gitlab
JFrog Xray
OWASP Dependency-Check
ShiftLeft
Sonatype
Snyk
Synopsys
Trivy
Veracode

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.