Solução da crise SBOM através da utilização de componentes WebAssembly.

A abordagem do modelo de componente Wasm lida com possíveis vulnerabilidades na cadeia de abastecimento, possibilitando a inclusão de versões mais recentes das bibliotecas importadas durante a execução. Isso permite que plataformas automatizem a atualização de aplicativos comuns.

chsyys/Pexels
Últimos relatórios destacaram a importância das vulnerabilidades de software antigas. Muitos não têm ideia da extensão desse problema na cadeia de fornecimento de software e do risco que representa para as empresas. Neste texto, vamos nos aprofundar nessa questão crescentemente prejudicial e explicar como o modelo de componentes da WebAssembly pode ser uma solução promissora.
SBOM: Identificando o valor da gratuidade.
Estamos todos familiarizados com vulnerabilidades conhecidas, como a vulnerabilidade Log4shell no Log4j. Para ilustrar a extensão do estrago causado, as atividades comerciais foram interrompidas em cerca de 40% das empresas globais quando uma falha de segurança permitiu que os cibercriminosos infectassem sistemas críticos com apenas uma pequena quantidade de código malicioso. Considerando que o custo médio para remediar uma única violação do Log4j é de $4,62 milhões, conforme estimado pela IBM, e consome 12% dos recursos operacionais para ser solucionado, o impacto é significativo.
Também disponível no InfoWorld: Desenvolvendo o modelo de componente para Wasm.
Apesar dos esforços para promover a segurança do código aberto, liderados pela Open Source Software Security Foundation (OpenSSF), estudos indicam que mais de 70% das empresas continuam vulneráveis ao Log4shell, evidenciando a persistência e complexidade das vulnerabilidades.
Mesmo em situações normais de operação, os desenvolvedores enfrentam grandes desafios de conformidade e encargos operacionais ao criar aplicativos. De acordo com uma pesquisa interna recente da Deloitte, os desenvolvedores dedicam 80% do seu tempo lidando com operações e manutenção de aplicativos. E o que eles estão mantendo? Principalmente o código-fonte aberto que constitui a maior parte de uma aplicação padrão. Embora o uso de bibliotecas de código aberto para iniciar o desenvolvimento de aplicativos acelere e simplifique o processo, isso também traz o ônus de manter esses componentes.
A nova computação não está livre de problemas.
Novos modelos de computação, como os contêineres, também estão sujeitos a desafios de segurança. De acordo com o relatório de 2023 sobre Segurança e Uso de Nativos na Nuvem da Sysdig, a falta de políticas de segurança adequadas está resultando em um aumento de vulnerabilidades devido a configurações incorretas. O relatório destaca que 87% das imagens de contêineres em uso na produção apresentam vulnerabilidades críticas ou de alta visibilidade, um aumento de 13% em relação ao ano anterior.
Mesmo na linguagem Rust, conhecida por sua segurança, existem vulnerabilidades em bibliotecas populares como o Hyper, utilizado por várias estruturas Rust. Segundo a JFrog, 2.579 projetos no repositório de pacotes da Rust, o crates.io, dependem do Hyper, que já foi baixado mais de 67 milhões de vezes. A vulnerabilidade no Hyper causa um problema ao converter o corpo HTTP recebido em uma grande quantidade de bytes, o que pode travar microsserviços e aplicações. Muitas vezes, os desenvolvedores não têm consciência disso. Quando o mesmo código é executado em 20.000 aplicações, torna-se um desafio logístico para as empresas manterem a segurança em escala.
NFRs, uma realidade incômoda
A maioria das vulnerabilidades presentes nas aplicações é originada em requisitos não funcionais (NFRs), que compreendem a maior parte do conteúdo de muitos aplicativos. Os NFRs consistem em especificações que determinam as funcionalidades, características e limitações de um aplicativo, também conhecidos como código “boilerplate” – o padrão que é frequentemente importado. O desafio é que as aplicações acabam herdando as vulnerabilidades de suas bibliotecas importadas.
As NFRs também representam um grande consumo de recursos. As empresas dedicam a maior parte do tempo de desenvolvimento à manutenção de aplicações e operações, em vez de focar na entrega de recursos essenciais. Com a crescente distribuição das empresas modernas – como aplicativos web nativos, múltiplas nuvens e bordas – estamos adaptando os aplicativos para funcionarem além do núcleo (onde estão os dados e usuários). À medida que nos adaptamos e integramos essas novas plataformas, incorporamos mais NFRs à nossa lógica de negócios existente, fazendo com que a carga de NFRs continue a aumentar.
NFRs são logo padronizados em diversas empresas e frequentemente integrados em modelos de aplicações essenciais. Ao criar uma nova aplicação, todas as bibliotecas são supostamente atualizadas e corrigidas. Apesar disso, é inevitável a descoberta de vulnerabilidades, o que pode colocar a aplicação em risco de comprometimento.
Embora algumas falhas possam ser corrigidas de forma sistemática, a maioria delas permanece em uma aplicação por aplicação. Qual seria a solução? Não podemos retroceder e reescrever todas as bibliotecas. A alternativa é encontrar uma maneira de separar completamente os Requisitos Não Funcionais (NFRs) da experiência de desenvolvimento. Ao diminuirmos a conexão direta de NFRs específicos com aplicações específicas, simplificamos o gerenciamento das vulnerabilidades. O modelo de componente WebAssembly (Wasm) foi criado com esse propósito em mente.
Resumo de pontos fracos usando WebAssembly.

Fase 1: Diferentes períodos da evolução tecnológica na jornada rumo à abstração.
Nos últimos 20 anos, houve uma significativa evolução na forma como a manutenção de aplicações é realizada, com a inovação resultando na transferência de grande parte dessa carga para fora de aplicações específicas. Anteriormente, os aplicativos eram concebidos e desenvolvidos em conjunto com o hardware, como um servidor dedicado em um rack. Ao longo do tempo, houve uma progressiva abstração dessas camadas subjacentes, simplificando a complexidade e consolidando tarefas que antes eram executadas individualmente por aplicação. Atualmente, contamos com máquinas virtuais, data centers, sistemas operacionais e plataformas de orquestração que possibilitam essa modularização e deslocamento de responsabilidades.
Seguindo o princípio de segurança de pegadas mínimas, o objetivo é reduzir a quantidade de configuração e manutenção específicas de aplicativos necessárias para cada equipe de desenvolvimento. Ao considerar as aplicações em um recipiente, resta apenas uma abstração final a ser feita – os NFRs.
Os desenvolvedores corporativos enfrentam muitas tarefas desgastantes relacionadas à conformidade. Manter a camada de aplicação em uma aplicação por base de aplicação é uma grande carga. O WebAssembly finalmente proporciona um alívio muito aguardado para os desenvolvedores que lidam com as dificuldades contínuas da manutenção de aplicativos. Leia o recente artigo de Kevin Hoffman no blog sobre Zero Trust Computing em Wasm e wasmCloud para obter mais informações.
A chegada do modelo de componente WebAssembly traz um grande benefício para os desenvolvedores ao oferecer abstrações para NFRs comuns, como servidores web, bancos de dados, log e filas de mensagens. Em vez de ser integrado em cada aplicativo durante a compilação, as abstrações mais recentes podem ser adicionadas durante a execução. Essa abstração simples reduz significativamente a necessidade de manutenção contínua nos aplicativos, permitindo que seja automatizada pela plataforma.
Significa que as empresas não precisam mais sobrecarregar os desenvolvedores com a responsabilidade de manter cada aplicação individualmente, permitindo que eles se concentrem na inovação e em oferecer novos recursos aos clientes. A padronização também possibilita a automação de tarefas demoradas e garante que sejam realizadas quase instantaneamente.
Esta é uma grande evolução em relação aos métodos manuais usados atualmente na manutenção. Brooks Townsend e Bailey Hayes explicam como as tecnologias wasmCloud e a plataforma Cosmonic eliminam falhas nos componentes em um nível mais avançado.
Conclusão da implementação do modelo de componente WebAssembly.
Os containers facilitaram a divisão do monólito em microsserviços, permitindo o trabalho em cada microsserviço separadamente, sem impactar os demais. O Wasm eleva esse modelo ao próximo patamar, focando na aplicação em componentes individuais. O modelo de componentes é uma abordagem prática para extrair, modificar e reorganizar componentes dentro de uma aplicação, sem afetar os demais ao seu redor.
Por que isso é significativo? O Modelo Componente visa eliminar NFRs fortemente acoplados, onde as vulnerabilidades geralmente estão presentes, removendo o acoplamento restrito entre diferentes aplicações. Em um recente artigo para a InfoWorld, Bailey Hayes (diretor do Comitê Técnico de Direção da Aliança Bytecode e Cosmonic) descreve um cenário no qual os desenvolvedores podem selecionar e combinar partes de suas aplicações, escritas em diferentes linguagens, oferecendo diferentes propostas de valor. À medida que as bibliotecas de componentes Wasm se desenvolvem, os desenvolvedores de diversas áreas passarão a enxergá-las como uma imensa caixa de “Legos”.
O que permanece são fragmentos de lógica de negócios menores e mais seguros, que não estão sujeitos às vulnerabilidades comuns encontradas em grandes volumes de código que costumam ser usados na maioria das aplicações. A vantagem para os desenvolvedores é que eles precisam apenas escrever o código necessário, resultando em aplicações que são 95% menores do que as aplicações nativas da nuvem mais antigas, o que significa uma redução de 95% nas vulnerabilidades herdadas.
O CNCF Cloud é o inicial ambiente de execução de aplicativos que suporta o modelo de componente WebAssembly. Ele adota a abordagem Zero Trust, garantindo segurança por padrão ao eliminar vulnerabilidades na cadeia de suprimentos e resolver esse problema comum de forma eficaz.
Liam Randall ocupa o cargo de CEO na Cosmonic e também é o presidente do CNCF Cloud Native Wasm Day.
Lo siento, pero necesito que me proporciones un texto específico para parafrasear. ¿Podrías darme más detalles o alguna información adicional para poder ayudarte mejor?
O New Tech Forum é um espaço dedicado à análise detalhada e abrangente da tecnologia empresarial emergente. A seleção de conteúdo é feita de forma subjetiva, com base nas tecnologias consideradas relevantes e de maior interesse para os leitores do InfoWorld. A InfoWorld não garante publicação de conteúdos com fins de marketing e se reserva o direito de editar todas as contribuições recebidas. Qualquer dúvida pode ser enviada para newtechforum@infoworld.com.