A segurança cibernética tem se tornado um problema que afeta pessoas comuns em todo mundo. Isso por conta da informatização crescente de casas e objetos comuns como carros, geladeiras ou até casas completas. Os ataques de ransomware são os mais letais, pois podem afetar também empresas de fornecimento de energia ou água, por exemplo. Quanto maior o grau de inovação tecnológica, maior o risco. Justamente por conta desta realidade, o presidente norte-americano Joe Biden assinou uma ordem executiva para impulsionar a defesa cibernética do governo federal e alertar todos os Estados Unidos de que a segurança da tecnologia deve ser a prioridade a partir de agora. Neste sentido, a Linux Foundation e suas organizações relacionadas estão se esforçando para melhorar o Linux e a segurança de código aberto.
A ordem executiva reconheceu a importância vital do software de código aberto. “Dentro de 90 dias da publicação das diretrizes preliminares … emitirá orientação identificando as práticas que aumentam a segurança da cadeia de fornecimento de software.” O software de código aberto tem um nome específico.
O governo deve garantir “na medida do possível, a integridade e procedência do software de código aberto usado em qualquer parte de um produto”. Especificamente, ele deve tentar fornecer uma lista de materiais de software (SBOM). “Este é um registro formal contendo os detalhes e as relações da cadeia de suprimentos de vários componentes usados na construção de software.”
É um problema especialmente importante com software de código aberto.
Linux e comunidades de código aberto atendem desafio de segurança cibernética de Biden
A empresa gerenciada de código aberto Tidelift descobriu que 92% dos aplicativos contêm componentes de código aberto. Na verdade, o aplicativo de software moderno médio pode ser composto de até 70% de software de código aberto. A Tidelift oferece um serviço de fornecimento de SBOMs de código aberto.
A própria comunidade de código aberto há muito tempo trata desse problema. Em particular, o projeto Software Package Data Exchange (SPDX) tem trabalhado nos últimos dez anos para permitir a transparência do software e o SBOM. O SPDX está nos estágios finais de revisão para ser a ISO/IEC International Standard 5962 e é apoiado por empresas globais com enormes cadeias de suprimentos e tem um grande ecossistema de suporte de ferramentas de código aberto e fechado.
O SPDX 2.2 já oferece suporte aos elementos mínimos de SBOM da orientação atual da Administração Nacional de Telecomunicações e Informações (NTIA). Resumindo, se o seu software de código aberto fornece um SPDX SBOM, ele já atende aos requisitos da ordem executiva. Para exemplos de SPDX, consulte:
- Um “plugfest” da NTIA demonstrou dez produtores diferentes gerando SPDX. O SPDX oferece suporte à aquisição de dados de diferentes fontes (por exemplo, análise de código-fonte, executáveis ??de produtores e análise de terceiros).
- Um corpus de alguns projetos LF com SBOMs de origem SPDX está disponível.
- Vários projetos LF estão trabalhando para gerar SBOMs binários como parte de suas compilações, incluindo Yocto e Zephyr.
- Para auxiliar na adoção do SPDX, a Linux Foundation está pagando para escrever plug-ins SPDX para os principais gerenciadores de pacotes.
Claro, muitos programas não oferecem suporte a SPDX … ainda. Elas vão. É a única maneira de ter certeza de que você sabe o que realmente está em seus programas de código aberto e isso se tornou uma questão de importância nacional.
Isso não é apenas um problema, é claro, com o software de código aberto. Com o software de código aberto, você pode realmente ver o código, então é mais fácil fazer um SBOM. Programas proprietários, como o desastre do Microsoft Exchange recentemente explorado em massa , são caixas pretas. Não há como saber realmente o que há no software da Apple ou da Microsoft.
Na verdade, o maior desastre de segurança da cadeia de suprimentos até agora, a falha catastrófica do Solarwinds em proteger sua cadeia de suprimentos de software , foi devido a falhas na cadeia de software proprietário.
Além do SPDX, a Linux Foundation anunciou recentemente um novo serviço de assinatura de software de código aberto: o projeto sigstore. A Sigstore busca melhorar a segurança da cadeia de suprimentos de software, permitindo a fácil adoção de assinatura de software criptográfico apoiado por tecnologias de log de transparência. Os desenvolvedores podem assinar com segurança artefatos de software, como arquivos de lançamento, imagens de contêiner e binários. Esses registros de assinatura são então mantidos em um registro público à prova de falsificação. Este serviço será gratuito para todos os desenvolvedores e fornecedores de software usarem. O código sigstore e as ferramentas de operação que farão este trabalho ainda estão sendo desenvolvidos.
Antes da sigstore, a anterior Core Infrastructure Initiative (CII) da Linux Foundation e sua atual Open Source Security Foundation (OpenSSF) trabalharam para proteger o software de código aberto, tanto em geral quanto seus componentes. O OpenSSF, em particular, é uma ampla coalizão da indústria “colaborando para proteger o ecossistema de código aberto”.
Para garantir ainda mais a integridade das cadeias de abastecimento, a ordem executiva exige que as agências empreguem “ferramentas automatizadas, ou processos comparáveis, para manter cadeias de abastecimento de código-fonte confiáveis, garantindo assim a integridade do código”. A Linux Foundation supervisiona vários projetos para ajudar com isso, além do sigstore.
A LF tem muitos projetos que apoiam a integridade do SC, em particular:
- in-toto é uma estrutura projetada especificamente para proteger a integridade das cadeias de suprimentos de software.
- O Update Framework (TUF) ajuda os desenvolvedores a manter a segurança dos sistemas de atualização de software e é usado na produção por várias empresas de tecnologia e organizações de código aberto.
- Uptane é uma variante do TUF; é um projeto de sistema de atualização de software aberto e seguro que protege o software entregue pelo ar às unidades computadorizadas de automóveis.
- OpenChain (ISO 5230) é o padrão internacional para conformidade de licença de código aberto. A aplicação do OpenChain requer a identificação dos componentes OSS. Embora o OpenChain por si só se concentre mais em licenças, essa identificação é facilmente reutilizada para analisar outros aspectos desses componentes, uma vez que eles são identificados (por exemplo, para procurar vulnerabilidades conhecidas).
A ordem executiva também pergunta:
Para resolver isso, o projeto do emblema CII Best Practices do OpenSSF identifica especificamente as melhores práticas de software de código-fonte aberto. Isso se concentra na segurança. Inclui critérios para avaliar as práticas de segurança de desenvolvedores e fornecedores. Hoje, são mais de 3.800 projetos participantes. A Linux Foundation também está trabalhando com Níveis de Cadeia de Fornecimento para Artefatos de Software (SLSA) para lidar com questões de cadeia de fornecimento.
A Ordem Executiva também exige que as agências adotem “criptografia para dados em repouso e em trânsito”. A criptografia em trânsito já está implementada na web usando o protocolo Transport Layer Security (TLS). O Internet Security Research Group (ISRG) aberta Vamos Criptografar projeto é a maior autoridade de certificação do mundo para certificados TLS.
Além disso, a LF Confidential Computing Consortium se dedica a definir e acelerar a adoção da computação confidencial. A computação confidencial protege os dados em uso, em repouso e em trânsito, testando-os em um ambiente de execução confiável baseado em hardware. Esses ambientes seguros e isolados evitam o acesso não autorizado ou modificação de aplicativos e dados.
Bugs previstos
Claro, sempre haverá bugs. Para lidar com isso, os critérios de aprovação do selo CII Best Practices exigem que os projetos de OSS identifiquem especificamente como relatar vulnerabilidades a eles. De forma mais ampla, o Grupo de Trabalho de Divulgações de Vulnerabilidades do OpenSSF está trabalhando para ajudar a “amadurecer e defender relatórios e comunicações de vulnerabilidade bem gerenciados” para OSS.
Por exemplo, embora as distribuições Linux mais amplamente usadas, especialmente a Red Hat, tenham uma equipe de resposta de segurança robusta , nem todo mundo tem. A distribuição Alpine Linux , que é amplamente usada em sistemas baseados em contêiner, até recentemente não tinha um. A Linux Foundation e o Google financiaram várias melhorias no Alpine Linux, incluindo uma equipe de resposta de segurança .
A ordem executiva de Biden também conclamava todos a se concentrarem no “software crítico”. A Linux Foundation já faz isso há algum tempo. A Linux Foundation e o Laboratory for Innovation Science de Harvard (LISH) lançaram recentemente o Vulnerabilities in the Core, um Relatório Preliminar e Censo II de Software Livre . Este, como o nome diz, analisou software de código aberto crítico e vulnerável. Este relatório está sendo atualizado.
O CII também identificou muitos projetos importantes e os ajudou a se tornarem mais seguros. Isso inclui projetos pequenos, mas vitais – também conhecido como o programa importantíssimo apoiado por uma pessoa trabalhando em sua casa de fazenda em Nebraska, incluindo OpenSSL (após Heartbleed), OpenSSH, GnuPG, Frama-C e o OWASP Zed Attack Proxy (ZAP). O OpenSSF Securing Critical Projects Working Group tem trabalhado para identificar melhor os projetos OSS críticos e concentrar os recursos em projetos OSS críticos que precisam de ajuda. Já existe uma lista inicial de tais projetos, juntamente com os esforços para financiar essa ajuda.
Pensando em piadas de segurança, a ordem executiva reconhece que a maioria dos bugs de segurança dos dispositivos da Internet das Coisas (IoT) nunca são corrigidos. Como diz a piada, o “S em IoT é para segurança”. A responsabilidade por isso recai sobre os fornecedores de IoT que às vezes nem oferecem opções para atualizar seu software, muito menos lançar patches de segurança. Embora a Linux Foundation não possa fazer isso, os membros da Linux Foundation podem e fornecem software e sistemas operacionais seguros.
Isso inclui:
- O próprio kernel Linux , que é usado por muitos dispositivos IoT.
- O projeto Yocto , que cria sistemas personalizados baseados em Linux para IoT e sistemas embarcados. Yocto oferece suporte a compilações totalmente reproduzíveis.
- O EdgeX Foundry , que é uma estrutura de software de código aberto flexível que facilita a interoperabilidade entre dispositivos e aplicativos na borda da IoT, e foi baixado milhões de vezes.
- O projeto Zephyr, que fornece um sistema operacional em tempo real (RTOS) usado por muitos para dispositivos IoT com recursos limitados e é capaz de gerar SBOMs automaticamente durante a construção. Zephyr é um dos poucos projetos de código aberto que é uma Autoridade de Numeração CVE.
- O microkernel seL4 , que é o kernel do sistema operacional mais confiável do mundo; é notável por sua verificação formal abrangente.
Finalmente, a Linux Foundation já está tratando da solicitação de um programa de rotulagem de software para o consumidor [que reflita] um nível básico de práticas de segurança com vários projetos. Além do projeto de crachá CII Best Practices do OpenSSF mencionado acima , são eles:
- O Software de Código Aberto de Análise de Saúde da Comunidade (CHAOSS) se concentra na criação de análises e métricas para ajudar a definir a saúde da comunidade e identificar riscos
- O OpenSSF Security Metrics Project , que está em processo de desenvolvimento, foi criado para coletar, agregar, analisar e comunicar dados de segurança relevantes sobre projetos de código aberto.
- A iniciativa OpenSSF Security Reviews fornece uma coleção de análises de segurança de software de código-fonte aberto.
- Os OpenSSF Security Scorecards fornecem um conjunto de verificações de aprovação / reprovação automatizadas para fornecer uma revisão rápida do OSS arbitrário.
Junte tudo isso e o Linux e a comunidade de código aberto já estão a caminho de atender às demandas dessa nova ordem de segurança. Muito mais precisa ser feito, mas pelo menos a estrutura está pronta.
Este é um trabalho essencial. A Linux Foundation gostaria de receber sua ajuda com isso. Como David A. Wheeler, Diretor de Segurança da Cadeia de Abastecimento de Código Aberto da Linux Foundation, disse: “Não poderíamos fazer isso sem as muitas contribuições de tempo, dinheiro e outros recursos de várias empresas e indivíduos; agradecemos com gratidão a todos eles. Temos sempre o prazer de trabalhar com qualquer pessoa para melhorar o desenvolvimento e a implantação de software de código-fonte aberto.”
Via ZDNet