Ir para o conteúdo

Cuidados com licenças em bibliotecas de software de terceiros

3 min. de leitura

Avatar de Segurança da Informação CWI

Segurança da Informação CWI Autoria do conteúdo


Hoje vamos falar dos cuidados que precisamos ter ao utilizar softwares de terceiros como dependências de nossos projetos.

Ao instalarmos alguma biblioteca ou fazermos uso do código fonte de outro software, um dos pontos a ser avaliado é qual a Licença que este software está utilizando.

Existem diversas, mas vamos comentar as principais e te indicar qual a que você deve usar.

Dá o play!

Aquela boa e velha rotina, né? Tu tem um problema, instala uma biblioteca, biblioteca resolve problema, abraço. 

Mas será que nós estamos cuidando com as licenças de software dessa biblioteca? 

Olá! Eu sou o Ben-Hur aqui da CWI e hoje nós vamos falar sobre a utilização de componentes terceiros dentro dos nossos projetos. 

No desenvolvimento de software é como que nós instalamos bibliotecas para resolver uma parte dos nossos desafios, mas bem, nós verificamos se está tudo funcionando corretamente, se a biblioteca é atualizada com frequência, etecetera. 


Mas não é raro nós esquecermos de verificar que tipo de licença essa biblioteca tem e se nós de fato podemos utilizá-la dentro do nosso projeto. 

Então, hoje nós vamos te explicar quais são os principais cuidados e qual a nossa recomendação nesse licenciamento para que você não tenha problemas na entrega do seu projeto. 

A primeira coisa que a gente tem que fazer antes de instalar uma biblioteca é procurar pelo site oficial dessa biblioteca. Seja ele no GitHub, seja ele dentro de um site bem específico da própria ferramenta e procurar pelo licenciamento. 

Por exemplo, no GitHub você pode ver o licenciamento aqui no topo superior direito ou dentro do arquivo license, no código fonte em si. Uma coisa que pode acontecer é algumas bibliotecas open source criadas por alguns desenvolvedores ainda não tão experientes é que eles não colocam a licença na biblioteca e isso também é um cuidado. 

Você deve evitar qualquer componente terceiro que não estiver documentado com uma licença.

Vamos explicar então o exemplo de problema e uma recomendação nossa para que você verifique nos seus projetos. 

Primeira questão, o problema licença GPLv3, por exemplo. 

Muitos softwares como o Linux ou Bash possuem essa licença GPL. Qual é… a principal problemática dessa licença quando tu escolhe adotar ela como parte integrante do seu sistema?  

Por exemplo, criar uma nova distribuição Linux ou criar um outro software que é baseado ou criado em cima do Bash, por exemplo?

Uma das regras dessa licença é que o seu código fonte precisa ser público, ou seja, digamos que você criou um sistema proprietário, mas baseado nesses dois softwares. Você quer vender e manter esse código fechado. Você está infringindo as regras da licença. 

Seu software precisa ser público, as autorizações precisam ser documentadas, precisam também vir a público em changelogs abertos. Você precisa manter sempre essa mesma licença, você não pode mudar essa licença.

Então, verifique se algum dos seus componentes utiliza a licença da GPL, porque pode ser que o código fonte seja o proprietário e acabe precisando ser público ou infringindo alguma patente. 

Bem, Ben-Hur, qual é a recomendação então? A recomendação é utilizar hoje uma das licenças mais permissivas que é a MIT. Essa licença permite que você lance seu software como quiser, não precisa atribuir o nome de ninguém, não precisa documentar as mudanças, nem nada. 

Você simplesmente pode integrar esse software a qualquer outro software e utilizá-lo tanto de forma pública quanto comercial. Então, como recomendação final passe um pente-fino nas bibliotecas do seu projeto e verifique se todas estão sob a licença MIT. Caso não esteja, você precisa fazer uma leitura adequada da licença que ela está. 

É uma licença Apache? É uma licença BDS? Verifique se de fato essas licenças permitem que você a utilize, dentro do software que você está desenvolvendo e, se permitem, com quais condições? 

Você precisa colocar, digamos, nos agradecimentos uma referência para essa biblioteca? Sim ou não? Você precisa mencionar o nome de algum autor? Sim ou não? E assim por diante.

Então, é isso aí, pessoas. Fiquem ligados que vêm muito mais Drops de Segurança por aí. 

Valeu, falou!  

#BeSafe

Até o próximo Drops!

Gostou?