Como verificar seu ambiente em busca de versões vulneráveis ​​do Curl

Como verificar seu ambiente em busca de versões vulneráveis ​​do Curl

Como verificar seu ambiente em busca de versões vulneráveis ​​do Curl PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

As equipes de segurança não precisam entrar em modo de crise para enfrentar os vulnerabilidades corrigidas recentemente na ferramenta de linha de comando curl e na biblioteca libcurl, mas isso não significa que eles não precisem se preocupar em identificar e corrigir os sistemas afetados. Se os sistemas não puderem ser explorados imediatamente, as equipes de segurança terão algum tempo para fazer essas atualizações.

Esta dica técnica agrega orientações sobre o que as equipes de segurança precisam fazer para garantir que não corram riscos.

Uma ferramenta de rede básica para sistemas Unix e Linux, o cURL é usado em linhas de comando e scripts para transferir dados. Sua prevalência se deve ao fato de ser usado tanto como um utilitário independente (curl) quanto como uma biblioteca incluída em diversos tipos de aplicativos (libcurl). A biblioteca libcurl, que permite aos desenvolvedores acessar APIs curl a partir de seu próprio código, pode ser introduzida diretamente no código, usada como uma dependência, usada como parte de um pacote de sistema operacional, incluída como parte de um contêiner Docker ou instalada em um Nó do cluster Kubernetes.

O que é CVE-2023-38545?

A vulnerabilidade de alta gravidade afeta curl e libcurl versões 7.69.0 a 8.3.0, e a vulnerabilidade de baixa gravidade afeta as versões 7.9.1 a 8.3.0 do libcurl. No entanto, as vulnerabilidades não podem ser exploradas em condições padrão. Um invasor que tentasse acionar a vulnerabilidade precisaria apontar o curl para um servidor malicioso sob o controle do invasor, certificar-se de que o curl esteja usando um proxy SOCKS5 usando o modo de resolução de proxy, configurar o curl para seguir automaticamente os redirecionamentos e definir o tamanho do buffer para um tamanho menor. tamanho.

De acordo com o Yair Mizrahi, pesquisador sênior de segurança da JFrog, a biblioteca libcurl é vulnerável se as seguintes variáveis ​​de ambiente estiverem definidas: CURLOPT_PROXYTYPE  definir para tipo CURLPROXY_SOCKS5_HOSTNAME; Ou CURLOPT_PROXY or CURLOPT_PRE_PROXY  definido para esquema meias5h://. A biblioteca também fica vulnerável se uma das variáveis ​​de ambiente do proxy estiver configurada para usar o meias5h:// esquema. A ferramenta de linha de comando só é vulnerável se for executada com o -socks5-nome do host bandeira, ou com –proxy (-x) ou –pré-proxy definido para usar o esquema meias5h://. Também é vulnerável se curl for executado com as variáveis ​​de ambiente afetadas.

“O conjunto de pré-condições necessárias para que uma máquina seja vulnerável (ver secção anterior) é mais restritivo do que se pensava inicialmente. Portanto, acreditamos que a grande maioria dos usuários do curl não será afetada por esta vulnerabilidade”, escreveu Mizrahi na análise.

Analise o ambiente em busca de sistemas vulneráveis

A primeira coisa que as organizações precisam fazer é definir o escopo de seus ambientes para identificar todos os sistemas que usam curl e libcurl para avaliar se essas pré-condições existem. As organizações devem inventariar seus sistemas e avaliar seus processos de entrega de software usando ferramentas de análise de composição de software para código, verificação de contêineres e utilitários de gerenciamento de postura de segurança de aplicativos, observa Alex Ilgayev, chefe de pesquisa de segurança da Cycode. Mesmo que a vulnerabilidade não afete todas as implementações do curl, seria mais fácil identificar os sistemas afetados se a equipe começasse com uma lista de locais potenciais para procurar.

Os comandos a seguir identificam quais versões do curl estão instaladas:

Linux/Mac OS:

find / -name curl 2>/dev/null -exec echo "Encontrado: {}" ; -exec {} --versão;

Windows:

Get-ChildItem -Path C: -Recurse -ErrorAction SilentlyContinue -Filter curl.exe | ForEach-Object { Write-Host "Encontrado: $($_.FullName)"; & $_.Nome Completo --versão }

O GitHub tem um consulta a ser executada no Defender for Endpoint para identificar todos os dispositivos no ambiente que possuem curl instalado ou usam curl. Qualys publicou suas regras por usar sua plataforma.

As organizações que usam contêineres Docker ou outras tecnologias de contêiner também devem verificar as imagens em busca de versões vulneráveis. Espera-se um número considerável de reconstruções, especialmente em imagens docker e entidades semelhantes que incorporam cópias liburl. Docker se uniu uma lista de instruções na avaliação de todas as imagens.

Para encontrar repositórios existentes:

repositório docker scout habilitar --org / scout-demo

Para analisar imagens de contêineres locais:

política do docker scout [IMAGE] --org [ORG]

Esta questão destaca a importância de manter um controle meticuloso de todos os softwares de código aberto usados ​​em uma organização, de acordo com Henrik Plate, pesquisador de segurança do Endor Labs.

“Conhecer todos os usos de curl e libcurl é o pré-requisito para avaliar o risco real e tomar ações de remediação, seja corrigindo curl, restringindo o acesso a sistemas afetados de redes não confiáveis ​​ou implementando outras contramedidas”, disse Plate.

Se o aplicativo vier com uma lista de materiais de software, esse seria um bom lugar para começar a procurar instâncias de curl, acrescenta John Gallagher, vice-presidente do Viakoo Labs.

Só porque as falhas não podem ser exploradas não significa que as atualizações não sejam necessárias. Patches estão disponíveis diretamente para curl e libcurl, e muitos dos sistemas operacionais (Debian, Ubuntu, Red Hat, etc.) também lançaram versões fixas. Fique atento às atualizações de segurança de outros aplicativos, pois libcurl é uma biblioteca usada por muitos sistemas operacionais e aplicativos.

Uma solução alternativa até que as atualizações possam ser implantadas é forçar o curl a usar a resolução de nome de host local ao conectar-se a um proxy SOCKS5, de acordo com Mizrahi do JFrog. Esta sintaxe usa o esquema meias5 e não meias5h: curl -x meias5://someproxy.com. Na biblioteca, substitua a variável de ambiente CURLPROXY_SOCKS5_HOSTNAME de CURLPROXY_SOCKS5.

De acordo com Benjamin Marr, engenheiro de segurança da Intruso, as equipes de segurança deveriam monitorar sinalizadores curl em busca de strings excessivamente grandes, pois isso indicaria que o sistema foi comprometido. As bandeiras são –socks5-nome do hostou –proxy or –pré-proxy definido para usar o esquema meias5h://.

Carimbo de hora:

Mais de Leitura escura