Biblioteca uClibc expõe dispositivos IoT por bug sem correção

Sheila Zabeu -

Maio 04, 2022

Mais uma vulnerabilidade pode deixar dispositivos da Internet das Coisas (IoT) expostos a ataques de envenenamento de DNS, que ocorrem quando invasores injetam dados falsos para redirecionar o tráfego Web. O fato foi revelado recentemente pelo Nozomi Networks Labs que detalhou problemas com a implementação do Domain Name System (DNS) de todas as versões dos uClibc e uClibc-ng, bibliotecas usadas amplamente por desenvolvedores Linux e disseminadas entre produtos IoT.  uClibc-ng é uma ramificação desenvolvida especificamente para OpenWRT, sistema operacional usado por roteadores implantados em vários setores de infraestrutura crítica.

A falha é causada pela previsibilidade dos IDs de transação incluídos nas solicitações de DNS geradas pela biblioteca. Cada solicitação de DNS inclui como parâmetro esse ID, que é um identificador único por pedido gerado pelo cliente DNS e que deve ser incluído na resposta para que seja aceita como válida. Em um ataque de envenenamento de DNS, o invasor é capaz de enganar o cliente DNS para aceitar uma resposta forjada, induzindo-o a realizar comunicação de rede com um endpoint definido arbitrariamente, em vez do legítimo. O invasor pode, então, roubar ou manipular informações transmitidas e realizar outros ataques. A principal questão nessa vulnerabilidade é como os invasores podem enviar uma resposta como sendo autêntica.

Segundo o Nozomi Networks Labs, o responsável pela manutenção das bibliotecas afirmou não que conseguir desenvolvedor a correção e sugeriu compartilhar o relatório da vulnerabilidade com uma comunidade restrita capaz de ajudar.

O bug pode afetar milhões de dispositivos IoT, porque as bibliotecas uClibc e uClibc-ng são usadas por grandes fornecedores como Linksys, Netgear e Axis e também por distribuições Linux, como a Embedded Gentoo.

Bibliotecas de código aberto em risco

A gestão de bibliotecas de código aberto representa um grande desafio para desenvolvedores. Um estudo recente da Veracode se concentrou exclusivamente na segurança dessas bibliotecas. O relatório inclui a análise de 13 milhões de varreduras de mais de 86 mil repositórios, contendo mais de 301 mil bibliotecas e revelou que, embora as bibliotecas de código aberto sejam a base de quase a maioria das soluções de software atuais, “não é uma fundação sólida, mas sim uma base em constante evolução”. No entanto, as práticas de desenvolvimento nem sempre se adaptam à natureza dinâmica dessas bibliotecas, o que deixa organizações seriamente expostas.

E, apesar da natureza dinâmica das bibliotecas de código aberto, os desenvolvedores não as gerenciam de forma tão intensa – em 79% das vezes, os desenvolvedores não atualizaram bibliotecas de terceiros depois de incluí-las em suas bases de código.

E o que está impedindo os desenvolvedores de atualizar as bibliotecas de código aberto vulneráveis? A pesquisa descobriu que a falta de informações contextuais pode ser um obstáculo. Os desenvolvedores relataram que precisam de mais informações – por exemplo, para entender como uma biblioteca vulnerável pode afetar suas aplicações – e que levam mais de sete meses apenas para corrigir 50% das falhas conhecidas. Por outro lado, aqueles que contam com as informações necessárias corrigem essa mesma parcela de falhas em apenas três semanas.

Fonte: Veracode

Segundo a Veracode, quando alertados sobre bibliotecas vulneráveis, os desenvolvedores podem agir rapidamente – cerca de 17% das bibliotecas vulneráveis são corrigidas dentro de uma hora após feito o alerta sobre a vulnerabilidade; 25% são corrigidas em sete dias.

A maioria das falhas de segurança de código aberto requer pequenas correções – 92% das falhas da biblioteca podem ser corrigidas com uma atualização, e 69% das atualizações requer uma pequena alteração de versão ou até menos.

Especificamente, a pesquisa perguntou aos desenvolvedores o que procuram quando pensar em adotar uma nova biblioteca. Sem surpresas, a primeira resposta foi funcionalidades, pois qual é o sentido de incluir uma grande pilha de código se não servir para nada? O segunda reposta foi licenciamento, seguida, só então, por segurança.

O que soa como alarme na pesquisa é que a maioria das bibliotecas nunca é atualizada. Cerca de 50% leva mais de 21 meses para receber atualizações e 25% não é atualizada nem mesmo após quatro anos (o horizonte de tempo máximo da pesquisa) depois de instalada.