![Dados limpos, modelo confiável: garanta uma boa higiene de dados para seus LLMs](https://optimuscloud.com.br/wp-content/uploads/2024/05/1715072404_Dados-limpos-modelo-confiavel-garanta-uma-boa-higiene-de-dados-150x150.jpg)
Dados limpos, modelo confiável: garanta uma boa higiene de dados para seus LLMs
7 de maio de 2024![Featued image for: Ryan Dahl: From Node.js and Deno to the ‘Modern’ JSR Registry](https://optimuscloud.com.br/wp-content/uploads/2024/05/1715078645_Ryan-Dahl-Do-Nodejs-e-Deno-ao-registro-JSR-moderno-150x150.jpg)
Ryan Dahl: Do Node.js e Deno ao registro JSR ‘moderno’
7 de maio de 2024Os desenvolvedores já sitiados por ataques à cadeia de fornecimento de software têm outra preocupação depois que os pesquisadores descobriram uma vulnerabilidade de segurança de alta gravidade na popular linguagem de programação R de código aberto.
A descoberta da falha por analistas da empresa de segurança de IA HiddenLayer permitiria que os invasores explorassem uma fraqueza no processo de desserialização em R para executar código arbitrário nos sistemas da vítima, essencialmente permitindo-lhes escrever código ou comandos no sistema.
Dado o amplo uso de R em setores como saúde, finanças e governo e – devido ao seu uso com grandes conjuntos de dados – sua presença crescente no campo de IA e aprendizado de máquina, os efeitos em cascata de um ataque aproveitando a falha seriam de longo alcance.
A vulnerabilidade – rastreada como CVE-2024-27322 e com classificação de gravidade de 8,8 em 10 – também representa a mais recente ameaça à cadeia de suprimentos de software para desenvolvedores que estão vendo atores mal-intencionados tentando de tudo, desde plantar pacotes maliciosos em repositórios como GitHub e Python. Package Index (PyPI) para tentativas de controle de projetos, como as recentes tentativas direcionadas ao XZ Utils e pelo menos um projeto da OpenJS Foundation.
A empresa de segurança cibernética ReversingLabs disse em seu relatório State of Software Supply Chain Security de 2024 que o número de ameaças à segurança circulando através de repositórios de pacotes de código aberto entre 2020 e 2023 aumentou 1.300%, o que incluiu um aumento de 400% nas ameaças encontradas no PyPI.
Visando a cadeia de suprimentos
Como visto no ataque cibernético de alto perfil à SolarWinds em 2020, um invasor que consegue inserir código malicioso no processo de desenvolvimento pode ver o alcance desse código se multiplicar quando as organizações downstream usam inadvertidamente o software comprometido, um perigo que aumentou com o uso crescente de software livre.
“Como invasor, o que torna o software de código aberto mais atraente para mim é seu uso onipresente na Internet e o fato de que posso encontrar vulnerabilidades inspecionando o código-fonte”, disse Casey Ellis, fundador e diretor de estratégia da Bugcrowd, ao The New Pilha. “Isso me dá um espaço alvo mais amplo e confiável, o que cria opções. Outro aspecto atraente do software de código aberto para os invasores é que muitos desses projetos não são financiados e são mantidos apenas por voluntários, o que significa que as vulnerabilidades têm maior probabilidade de não serem descobertas e corrigidas.”
A onipresença de R
No caso de R, a sua natureza generalizada torna-o um alvo atraente. Não só é amplamente utilizado em muitos setores, mas também tem mais de 2 milhões de usuários e uma comunidade de usuários ativa com projetos como o Bioconductor para a área de biometria, que tem mais de 42 milhões de downloads e 18.999 membros ativos no site.
Além disso, o repositório Comprehensive R Archive Network (CRAN) contém mais de 20.000 pacotes e o site do projeto R vincula-se a outro repositório, o R-force, que possui mais de 2.000 projetos e 15.000 usuários registrados.
“Tudo isso quer dizer que a exploração de uma vulnerabilidade de execução de código em R pode ter implicações de longo alcance em vários setores, incluindo, entre outros, agências governamentais vitais, instituições médicas e financeiras”, afirmam os pesquisadores de segurança da HiddenLayer, Kasimir Schulz e Kieran. Evans escreveu em seu relatório.
Uma falha na desserialização
A vulnerabilidade encontrada pelo HiddenLayer pode ser explorada por malfeitores para permitir que eles criem um arquivo RDS (R Data Serialization) malicioso e executem código arbitrário quando o arquivo for carregado e referenciado. R usa um formato de serialização próprio. Na serialização, uma estrutura ou objeto de dados é convertido em um formato que pode ser armazenado localmente ou enviado por uma rede. Esses objetos podem então ser reconstruídos – desserializados – para uso quando necessário. O processo de desserialização é vulnerável à exploração em certas situações, escreveram Schulz e Evans.
“Esta vulnerabilidade pode ser explorada através do carregamento de arquivos RDS ou pacotes R, que são frequentemente compartilhados entre desenvolvedores e cientistas de dados”, escreveram os pesquisadores. “Um invasor pode criar arquivos RDS maliciosos ou pacotes R contendo código R arbitrário incorporado que é executado no dispositivo de destino da vítima após a interação.”
A falha está ligada a conceitos relacionados em R que são chamados de “avaliação preguiçosa” e “objetos promissores”. Com a avaliação preguiçosa, símbolos, expressões ou variáveis são avaliados somente quando necessário, e avaliações repetidas são evitadas, com o objetivo de otimizar a alocação de recursos e melhorar o desempenho do sistema. O objeto promessa é o foco da avaliação.
A vulnerabilidade neste processo permite que um invasor crie um objeto de promessa que inclui código arbitrário malicioso e, devido à avaliação lenta, o código é executado quando o usuário faz referência ao símbolo associado ao arquivo RDF.
Os “recursos de construção e compartilhamento de pacotes do R o tornam flexível e voltado para a comunidade”, escreveram Schulz e Evans. “No entanto, uma desvantagem disso é que não há escrutínio suficiente nos pacotes que estão sendo carregados nos repositórios, deixando os usuários vulneráveis a ataques à cadeia de suprimentos”.
Cuidado é necessário
A equipe da R corrigiu a vulnerabilidade com o lançamento recente do R v4.4.0, mas Ellis, do Bugcrowd, disse que os desenvolvedores precisam ter cuidado.
“Isso é significativo devido ao impacto potencial da exploração, ao número de caminhos de código que parecem permitir a exploração da vulnerabilidade e ao fato de que R é frequentemente uma linguagem ‘rápida e solta’ usada em dados e experimentação de ML dentro das organizações , o que significa que é menos provável que o código que pode acabar em produção tenha passado pelo mesmo tipo de escrutínio que outro código de produção”, disse ele.
Mayuresh Dani, gerente de pesquisa de segurança da unidade de pesquisa de ameaças da Qualys, disse ao The New Stack que os dados desserializados são uma fraqueza conhecida há anos, que remonta a mais de uma década. Uma apresentação em uma conferência Black Hat em 2011 falou sobre arquivos .pkl do Python, o equivalente ao código serializado.
“Na verdade, isso é tão comum que o OWASP atribuiu o CWE-502: Desserialização de dados não confiáveis para esses tipos de ataques”, disse Dani. “Com o boom na pesquisa de IA/ML, linguagens como R, que realizam análises estatísticas em grandes conjuntos de dados, estão ganhando importância.”
A postagem Falha em R cria riscos de segurança na cadeia de suprimentos apareceu pela primeira vez em The New Stack.