Alura > Cursos de DevOps > Cursos de Segurança > Conteúdos de Segurança > Primeiras aulas do curso Segurança da Supply Chain: gestão de vulnerabilidades e licenças em projetos

Segurança da Supply Chain: gestão de vulnerabilidades e licenças em projetos

Fundamentos da composição de software - Apresentação

Introdução do Instrutor

Olá! Meu nome é Raphael Alves Gibello Rosa e serei o instrutor do curso sobre SCA, ou Software Composition Analysis (Análise de Composição de Software).

Audiodescrição: Raphael é um homem de pele clara, com cabelos castanhos. Ele está vestindo uma camiseta azul escura e, ao fundo, há uma parede azul claro iluminada por luzes da mesma cor.

Experiência Profissional e Interesses Pessoais

Trabalho na área de segurança desde 2017 e atualmente sou engenheiro sênior de segurança da informação e de segurança em cloud em uma empresa multinacional. No meu tempo livre, gosto de estudar, ler, praticar artes marciais, particularmente o jiu-jitsu brasileiro, e jogar jogos de carta.

Estrutura do Curso

Vamos à apresentação do curso. Teremos um total de cinco aulas nas quais abordaremos temas como os fundamentos da composição de software, segurança para componentes de software, gestão de riscos no ambiente e no contexto das ferramentas SCA.

Ferramentas e Laboratórios

Também apresentaremos as ferramentas SBOM, OWASP Dependency Check e Dependabot do GitHub. No final, teremos laboratórios utilizando a ferramenta SBOM do GitHub e o GitHub Actions, onde implementaremos essas ferramentas para realizar verificações tanto para a vulnerabilidade de terceiros quanto para o licenciamento de software.

Fundamentos da composição de software - O que é Open Source?

Introdução ao Software Open Source

Vamos iniciar nossa discussão sobre software open source (software de código aberto). O código aberto é caracterizado por seu contraste com aplicações proprietárias, como, por exemplo, o Microsoft Word ou o Excel, onde a Microsoft detém todos os direitos autorais sobre a propriedade intelectual e vende o software para usuários finais, os quais não têm permissão para editar, aprimorar ou redistribuir o código.

Definição e Liberdades do Software Livre

Em contrapartida, um software livre é um software cuja licença concede aos usuários a liberdade de executar, copiar, distribuir, estudar e aprimorar o software. Em detalhes, o software livre é definido pelo conceito de quatro liberdades essenciais, conforme a definição da própria Free Software Foundation, de Richard Stallman.

Licenças e Modelos de Distribuição

Com base nesses conceitos, foram elaboradas licenças ou pensadores que defendem essas liberdades. Algumas utilizam a Lei para a Garantia das Liberdades, conhecidas como licenças Copyleft, tendo como principal exemplo a licença GNU.

Existem também licenças mais permissivas, que permitem uso proprietário, mas com limites, como, por exemplo, Apache, MIT e BSD. É importante observar que nem todo software open source é gratuito. Em geral, as empresas utilizam softwares licenciados com licenças permissivas em seus produtos para criar softwares proprietários, enquanto obtêm as vantagens do modelo open source, economizando muito esforço.

Exemplos de Software Open Source

Além disso, algumas empresas desenvolvem softwares open source ou liberam softwares internos para uso global, como foi o caso do Kubernetes, que nasceu como um software proprietário da Google e posteriormente foi liberado como software open source, tornando-se uma peça fundamental no mundo da computação moderna.

Conclusão

Até o próximo vídeo.

Fundamentos da composição de software - O que é SCA?

Introdução ao Software Open Source e Segurança

No último vídeo, discutimos o que é um software open source (código aberto). No entanto, ser open source não torna um software imune a problemas de segurança. Na verdade, podemos afirmar que problemas de segurança são mais facilmente identificáveis em softwares open source. O gerenciamento desses problemas é a principal razão para utilizarmos ferramentas de análise de composição de software, conhecidas como SCA.

O que é SCA e sua Importância

SCA é a prática e o conjunto de ferramentas dedicadas a identificar, inventariar e avaliar todos os componentes open source que uma organização utiliza. Essa prática nos auxilia a ter visibilidade das vulnerabilidades dos códigos open source, problemas de licença e atualizações de componentes em geral.

Funcionamento Técnico do SCA

Tecnicamente, isso é feito por meio de um escaneamento dos arquivos de configuração do código, criando uma lista de todos os componentes, que chamamos de SBOM, que significa Software Bill of Materials (Lista de Materiais de Software). Utilizando esses dados, a ferramenta cruza a informação com bancos de dados públicos e proprietários de vulnerabilidades, e fornece relatórios e alertas sobre possíveis problemas.

Tipos de Ferramentas SCA e Implementação

Ferramentas SCA existem de vários tipos, como ferramentas pagas ou gratuitas, proprietárias ou open source (código aberto). Podemos tanto implementar a SCA por meio de utilização direta por CLI ou na IDE de uma pessoa desenvolvedora, em processos de CI/CD, podendo inclusive ser tratado como um Quality Gate (Indicador de Qualidade), ou mesmo como um processo contínuo, onde a ferramenta acessa diretamente os repositórios de código e gera alertas e relatórios, permitindo maior flexibilidade a organizações e projetos que utilizam ferramentas SCA.

Introdução ao Conceito de Dependência Transitiva

Com esses conceitos explicados, vamos agora entender melhor o conceito de dependência transitiva e por que ela é o maior problema que o SCA visa resolver. Até o próximo vídeo.

Sobre o curso Segurança da Supply Chain: gestão de vulnerabilidades e licenças em projetos

O curso Segurança da Supply Chain: gestão de vulnerabilidades e licenças em projetos possui 97 minutos de vídeos, em um total de 54 atividades. Gostou? Conheça nossos outros cursos de Segurança em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Segurança acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas