Fechamento do recurso aberto: Dissipando a fantasia
Publicados: 2022-03-31Perseguindo a divulgação da vulnerabilidade Log4j em dezembro de 2021 e a nova circunstância de um desenvolvedor sabotar suas próprias bibliotecas Javascript - 'color.js' e 'faker.js', o estado do software de código aberto foi colocado em questão.
Com uma reunião de alto nível na White Property sobre código aberto e ordens do governo do presidente dos EUA Biden, alguns até alertaram que é a 'conclusão do recurso aberto'. Embora possa ser tentador verificar uma grande vulnerabilidade como um sinal de que a oferta aberta de alguma forma permanece deficiente, a verdade é muito disso.
O software de código aberto não é muito mais nem menos seguro do que o pacote de software empresarial. Na verdade, a maioria dos softwares de computador profissionais possivelmente possui ou opera em sistemas de código aberto. A oferta aberta significa apenas que o programa de software é formulado de forma exatamente onde o código de fornecimento é acessível a qualquer pessoa que queira.
O que temos visto com a resposta do Log4j da equipe Apache Log4j é exatamente o que esperamos ver – uma equipe que está levando a sério o pacote de software que eles desenvolvem e atualmente respondendo aos desejos de sua fundação. Olhando para o fato de serem voluntários, esse tipo de resposta é indicativo do prazer de propriedade que frequentemente vemos dentro de comunidades de recursos abertos.
Um pouco do que instigar o fechamento do código aberto, é mais provável que um incidente como o Log4j melhore o aprimoramento do código aberto como um todo - da mesma forma que o Heartbleed aprimorou os métodos de progresso dos dois grupos de crescimento de código aberto e fechado. Portanto, se o código aberto estiver listado aqui para continuar, o que as organizações deveriam fazer para avançar para detectar e mitigar vulnerabilidades com mais eficiência?
Abordando a proteção de software de computador a partir de um nível organizacional
Perfeitamente, a estratégia de identificar e mitigar vulnerabilidades exige que descrevamos alguns papéis antecipadamente. A maioria das pessoas espera que seus fornecedores de pacotes de software – ou seja, as pessoas que desenvolvem o software de computador do qual dependem – verifiquem esse software. O resultado final desse teste seria um estabelecimento de resultados destacando os pontos fracos no software que o fornecedor fornece. Em um grande mundo inteiro, todas e cada uma dessas fraquezas seriam resolvidas antes do envio e entrega do programa.
No planeta autêntico, mesmo assim, algumas de todas essas fraquezas serão predefinidas, algumas serão marcadas como “nenhum programa para corrigir” e algumas serão corrigidas com otimismo em um lançamento de longo prazo. Qual é a lista de pontos fracos, e quais acabaram definidos, não é pouca coisa que um provedor costuma divulgar. Além disso, não existe uma ferramenta que possa descobrir todos os pontos fracos, e algumas só fazem o trabalho se você tiver o código do recurso, embora outras pessoas exijam um software em execução.
Você notará que nenhuma menção foi feita à palavra 'vulnerabilidade', pois ela possui uma indicação específica e básica. Na aplicação, uma vulnerabilidade é meramente uma fraqueza que pode ser explorada ou que tem uma oportunidade real de exploração.
A maioria, mas não todas, as vulnerabilidades são divulgadas por meio de um procedimento centralizado reconhecido como Nationwide Vulnerability Databases, ou apenas o NVD. Embora o NVD tenha raízes nos EUA e seja cuidado pelas autoridades americanas, o conteúdo do NVD é acessível a todos e replicado em vários locais internacionais. Do ponto de vista da governança, a verificação de melhorias no conteúdo do NVD é uma excelente maneira de manter o melhor das novas divulgações de vulnerabilidades.
O problema é que as atualizações do NVD são mais lentas do que a cobertura da mídia, portanto, com vulnerabilidades importantes como Log4Shell, HeartBleed e Dirty Cow, a força de trabalho que encontrar a vulnerabilidade poderia criar um título de marca para a vulnerabilidade em um esforço para ampliar a consciência da dificuldade. Produzir um plano de governança que rastreie a proteção da mídia dessas reuniões cibernéticas definitivamente não é uma prática fantástica.
Se a cobertura da mídia como uma entrada para a administração de vulnerabilidades é uma má ideia, e o NVD é um pouco gradual para apresentar todos os fatos, então qual é a política de governança mais eficaz? Isso virá de uma forma de ferramenta de segurança conhecida como “Software Composition Analysis”, ou SCA. Um software SCA parece estar no código-fonte de um aplicativo ou no executável ou nas bibliotecas que definem o aplicativo e tenta descobrir quais bibliotecas de código aberto foram empregadas para construir esse software.
A listagem dessas bibliotecas de pessoas é conhecida como SBOM, ou Lista de Materiais de Software de Computador. Supondo que o aplicativo SCA faça sua ocupação de forma eficaz, então pode ser feita uma política de governança que mapeie os detalhes do NVD para o SBOM para que você saiba o que corrigir... Exceto que, no entanto, há fatos latentes do NVD a serem considerados.
Alguns dos instrumentos SCA muito mais superiores eliminam esse desafio gerando avisos que alertam proativamente os clientes quando há uma entrada de NVD pendente, mas em que as particularidades dessa entrada de NVD são aumentadas pelo fornecedor de SCA. Alguns dos equipamentos mais modernos também se dedicam à triagem ou validação de quais variações do software de computador são impactadas pela divulgação da vulnerabilidade.

No entanto, embora o software SCA possa fechar o buraco entre a divulgação e a identificação, é preciso observar que ele tem uma limitação fundamental. Se o programa SCA não varrer todos os seus programas, na melhor das hipóteses, ele só poderá sinalizar novas divulgações de vulnerabilidade para um subconjunto de seus programas.
Do ponto de vista da cobertura de governança, ele então faz com que uma TI opere para estabelecer todo o programa de software e uma funcionalidade de aquisição para garantir que todos os aplicativos, como atualizações e downloads gratuitos, apareçam sob um SBOM e que o SBOM seja validado aplicando programa de software SCA. Como o programa está disponível nos formatos de origem e binário, é importante que as equipes de governança que seguem esse caminho escolham o programa de software SCA que pode efetivamente executar o software de computador em todas as variedades e formatos. Esses tipos de plano de governança ajudariam na identificação de novas divulgações de vulnerabilidades e o efeito para a empresa de negócios, mas afastariam a diferença da mitigação produtiva para uma política exclusiva, uma vez que a mitigação exigiria testes de software.
Certificar-se de que a segurança da própria engenharia é apenas um ponto, mas a elegância do recurso aberto é que ele foi projetado para ser colaborativo.
Parafraseando Abraham Lincoln, o recurso aberto é o know-how das pessoas, pelos indivíduos e para os indivíduos. O movimento de código aberto da moda começou com o princípio básico de que se você não gostou da maneira como o código estava funcionando, então você tem liberdade para modificá-lo e lidar com quaisquer lacunas na funcionalidade que acabassem sendo percebidas.
O elemento da dificuldade que enfrentamos hoje em dia é um sentimento que faz com que os consumidores ou usuários finais de projetos de código aberto se comportem como se o desafio do fornecimento aberto fosse um vendedor de aplicativos de negócios.
Se você aparecer na lista de desafios de qualquer empreendimento de recursos aberto razoavelmente conhecido no GitHub, verá solicitações de funções e análises sobre quando os problemas selecionados podem ser resolvidos. Essas histórias de problemas e queixas sobre a capacidade de manutenção têm uma expectativa implícita de que um gerente de produtos está no final das solicitações dessas pessoas e que elas serão adicionadas a um roteiro e, em algum momento, lançadas – tudo sem nenhum custo.
De fato, lacunas na funcionalidade e até mesmo em bugs percebidos, significam chances não de solicitar serviços especializados de programação gratuitos, mas como uma alternativa para contribuir com as conquistas de longo prazo do código que é substancialmente crucial para a pessoa que reclama.
É claro que algumas pessoas não conhecerão a linguagem de programação empregada pelo projeto, mas esperar que outras pessoas priorizem uma reclamação de um terceiro desconhecido mais do que variações que esclareçam complicações para contribuidores ativos não parece real. Tão importante quanto qualquer coisa, recursos de recursos abertos através do altruísmo dos colaboradores.
Acima de moderno há muito tempo ouvimos os principais contribuintes para o aborrecimento específico de empregos de recursos abertos conhecidos sobre os ganhos feitos por grandes empresas com o uso de seu pacote de software. Embora seja fácil se relacionar com alguém colocando seu poder em uma tarefa apenas para que um terço obtenha os ganhos das tentativas, a realidade é que, se esse terceiro bash está lucrando com as tentativas de uma força de trabalho de avanço de recursos abertos, eles devem contribuir para o seu sucesso a longo prazo.
Se não o fizerem, eles correm o risco de que não apenas o código em questão possa se transformar em métodos com os quais não contava, mas também que, quando problemas de proteção são identificados e resolvidos, eles podem ter atrasos na aplicação de correções pessoais. Afinal, se uma pequena empresa não está dedicando tempo para interagir com as equipes que produzem o software de computador que alimenta sua empresa, é possível que ela não saiba de onde vem todo o programa que alimenta sua empresa e não pode corrigir de maneira confiável isto.
Descobrir vulnerabilidades no fornecimento aberto não é um problema, mas a detecção de defeitos do programa que representam uma fraqueza que pode ser explorada é um assunto importante. Embora o pacote de software de código aberto e de fornecimento fechado tenha um potencial equivalente para problemas de estabilidade, com o recurso aberto, é possível para qualquer pessoa determinar todos esses problemas. Com isso em mente, as organizações devem buscar medidas proativas – que não dependam da proteção da mídia – para observar as vulnerabilidades mais atualizadas.
Igualmente importante, eles devem desempenhar um papel de contribuição para as atribuições de fornecimento aberto que recompensam, ou então podem levar o paciente a variações de código imprevistas ou ao atraso no reconhecimento de patches significativos.
Tim Mackey é o principal estrategista de proteção da Synopsys .