Embora as vulnerabilidades no código-fonte aberto continuem nas manchetes, como Outras tecnologias, como Heartbleed e Log4Shell, passam despercebidas por uma fonte oculta de risco de código aberto - a não conformidade com licenças de código aberto.
As licenças de software de código aberto são uma grande fonte de risco, acredita a Palo Alto Networks, porque mesmo uma única licença não compatível no software pode levar a ações legais, ações corretivas demoradas e atrasos na colocação de um produto no mercado. Apesar do risco óbvio, estar em conformidade com os regulamentos de licenciamento não é tarefa fácil. A variedade de licenças de código aberto e a dificuldade de determinar quais licenças se aplicam a um software dificulta o acompanhamento, a compreensão e o gerenciamento das licenças.
Assim como na busca por vulnerabilidades críticas ou de alto nível, a busca por licenças fora de conformidade exige que as organizações desvendem a rede de dependências transitivas e de código aberto, muitas vezes com mais de quatro ou cinco níveis de profundidade. Essas dependências geralmente resultam em várias versões do mesmo pacote de código aberto, e não é incomum encontrar licenças copyleft excessivamente restritivas escondidas nessa web. Para garantir que as licenças estejam em conformidade, as organizações devem aproveitar a análise contextual avançada da composição do software. Isso permite identificar, detectar e priorizar as licenças não conformes que ameaçam a empresa.
Introdução às licenças de código aberto
Quando os usuários ouvem o termo "código aberto", é fácil supor que eles podem usar este pacote como quiserem, por exemplo, B. usando-o para o desenvolvimento de um produto comercial. Mas mesmo que o código-fonte seja aberto ao mundo inteiro, o código-fonte aberto não está livre de restrições de uso.
Os pacotes de código aberto vêm com licenças que regem o uso, reutilização, compartilhamento, modificação e distribuição do código. Centenas de diferentes licenças de código-fonte aberto determinam como os usuários podem usar o código-fonte aberto, e a penalidade pela não conformidade é real. Se uma empresa usa um pacote de código aberto e não cumpre com a licença, ela pode ser forçada a abrir seu código proprietário ou passar pelo processo caro e demorado de remover e substituir o pacote não compatível em todo o código base.
Então, como os responsáveis sabem quais requisitos específicos precisam atender para permanecer em conformidade? É aqui que fica complicado, pois os requisitos variam muito dependendo da licença. Algumas licenças – por ex. B. Copyleft - são muito restritivos. Outros, por sua vez, estão sujeitos a uma taxa, e outros ainda podem ser usados livremente se a devida atribuição for dada. Em geral, no entanto, as licenças de código aberto se enquadram em duas categorias principais: copyleft e licenças permissivas.
Licenças Copyleft
As licenças de software copyleft são licenças muito restritivas que exigem que as empresas abram o código de qualquer código que use o software de código aberto em questão. Essas licenças exigem que eles distribuam os arquivos de código-fonte de seus softwares, que geralmente incluem uma cópia dos termos da licença e creditam os autores do código. A licença copyleft mais conhecida é a GNU General Public License (GPL).
Licenças permissivas
As licenças permissivas contêm apenas restrições mínimas sobre como o software pode ser usado, modificado e distribuído. Essas licenças geralmente incluem uma isenção de garantias. Alguns exemplos de licenças permissivas são GNU All-permissive License, MIT License, BSD Licenses, Apple Public Source License e Apache License. Em 2016, a licença de software livre mais popular é a licença permissiva do MIT. Um pacote de software de código aberto notável e bem-sucedido que usa a licença Apache é o Kubernetes.
Estudo de caso: não conformidade com licenças copyleft
Em 2008, a Free Software Foundation (FSF) processou a Cisco por vender software da marca LinkSys que não era compatível com o código-fonte aberto que estava usando. Como costuma acontecer, o software não compatível que causou a violação de direitos autorais da GPL foi integrado ao software da Cisco como parte de uma aquisição. Com a onipresença do software de código aberto, o aumento das aquisições e a profundidade das estruturas de dependência, está se tornando cada vez mais difícil identificar as licenças de código aberto que estão profundamente enraizadas nas ofertas de software comercial. No entanto, o não cumprimento pode frustrar os esforços para manter a propriedade intelectual comercial privada. Por exemplo, uma empresa que não cumpre uma licença pode ser forçada a abrir o código de seu software ou parar de vendê-lo. E mesmo que uma licença não seja tão restritiva quanto uma licença copyleft, as equipes podem ter que reconstruir seu software para quebrar uma dependência de chave, o que é caro e diminui a velocidade de lançamento.
Monitoramento de conformidade de licença
Como se identificar todas as licenças não fosse complicado o suficiente, uma licença de código aberto pode mudar a qualquer momento. Por exemplo, o pacote de código aberto amplamente usado Elasticsearch mudou de uma licença anteriormente permissiva para uma mais restritiva em 2021. A verificação da conformidade da licença não é algo único. Em vez disso, o gerenciamento de conformidade requer uma abordagem contínua que exige a mesma devida diligência de outros processos de segurança de código aberto, por exemplo, B. Atualização de pacotes de terceiros para versões mais novas e mais seguras.
Estratégia de gerenciamento de código aberto
À primeira vista, cumprir as licenças de código aberto pode parecer simples. Na realidade, porém, é tão complexo quanto a própria natureza do código aberto. E a triste verdade é que, mesmo que a estratégia de segurança de código aberto existente inclua uma revisão completa das dependências e dos processos de gerenciamento de vulnerabilidade, ainda pode haver uma abertura significativa -Source riscos que as empresas não abordam. Apenas um único pacote não compatível é suficiente para tornar um aplicativo inteiro não compatível com os requisitos de licença. As organizações devem, portanto, incorporar uma estratégia de segurança de código aberto proativa e abrangente em sua estratégia para proteger adequadamente sua cadeia de suprimentos.Ao adotar uma abordagem proativa que identifica e corrige problemas de licenciamento de código aberto no início do ciclo de desenvolvimento, as organizações podem aumentar a produtividade do desenvolvedor. Ao mesmo tempo, eles podem reduzir o estresse de ter que remover e substituir pacotes não compatíveis de seu software posteriormente no ciclo de desenvolvimento.
Adotar segurança abrangente de código aberto pode parecer assustador, mas é factível. Se bem feito, pode até ser amigável ao desenvolvedor. Ao integrar ferramentas de código aberto como Checkov com IDEs como VSCode e PyCharm da Jetbrains, os desenvolvedores de aplicativos e as equipes de DevOps podem obter visibilidade das vulnerabilidades e possíveis problemas de conformidade de licença o mais cedo possível no ciclo de desenvolvimento. Isso permite que eles corrijam proativamente problemas com pacotes não compatíveis e mantenham a velocidade de seus lançamentos.
Mais em PaloAltoNetworks.com
Sobre a Palo Alto Networks A Palo Alto Networks, líder global em soluções de segurança cibernética, está moldando o futuro baseado em nuvem com tecnologias que transformam a maneira como as pessoas e as empresas trabalham. Nossa missão é ser o parceiro preferencial de segurança cibernética e proteger nosso modo de vida digital. Ajudamos você a enfrentar os maiores desafios de segurança do mundo com inovação contínua, aproveitando os avanços mais recentes em inteligência artificial, análise, automação e orquestração. Ao fornecer uma plataforma integrada e capacitar um crescente ecossistema de parceiros, somos líderes na proteção de dezenas de milhares de empresas em nuvens, redes e dispositivos móveis. Nossa visão é um mundo onde cada dia é mais seguro do que o anterior.