Visualização de leitura

Gerenciamento de vulnerabilidades de código aberto | Blog oficial da Kaspersky

Como já comentamos em uma postagem anterior, o desenvolvimento de produtos de software modernos é praticamente impossível sem o uso de componentes de código aberto. Mas, nos últimos anos, os riscos associados a isso tornaram-se cada vez mais diversos, complexos e numerosos. Devemos considerar que, primeiro, as vulnerabilidades afetam a infraestrutura e o código de uma empresa mais rapidamente do que são corrigidas; segundo, os dados são incompletos e pouco confiáveis; e, terceiro, malware pode estar escondido em componentes populares. Portanto, não basta simplesmente verificar os números de versão e solicitar que a equipe de TI corrija os problemas. O gerenciamento de vulnerabilidades deve ser expandido para abranger políticas de download de software, proteções para assistentes de IA e todo o pipeline de criação de software.

Um conjunto confiável de componentes de código aberto

A principal característica de uma solução é impedir o uso de código vulnerável e malicioso. As seguintes medidas devem ser implementadas:

  • Ter um repositório interno de artefatos. A fonte única de componentes para desenvolvimento interno precisa ser um repositório unificado no qual os componentes são admitidos somente após uma série de verificações.
  • Fazer uma triagem rigorosa dos componentes. Isso inclui verificações de versões conhecidas do componente, versões vulneráveis e maliciosas conhecidas, data de publicação, histórico de atividades e reputação do pacote e de seus autores. É obrigatório verificar todo o conteúdo do pacote, incluindo instruções de compilação, casos de teste e outros dados auxiliares. Para filtrar o registro durante a ingestão, use verificadores de código aberto especializados ou uma solução de segurança abrangente de carga de trabalho na nuvem.
  • Fixar versões de dependências. Os processos de compilação, as ferramentas de IA e os desenvolvedores não devem usar modelos (como “o mais recente”) ao especificar versões. As compilações do projeto precisam ser baseadas em versões verificadas. Ao mesmo tempo, as dependências com versões fixas devem ser atualizadas com frequência para as versões verificadas mais recentes que mantêm a compatibilidade e não contêm vulnerabilidades conhecidas. Isso reduz significativamente o risco de ataques à cadeia de suprimentos por meio do comprometimento de um pacote conhecido.

Aperfeiçoamento dos dados de vulnerabilidades

Para identificar vulnerabilidades com mais eficácia e priorizá-las de forma adequada, uma organização precisa estabelecer vários processos de TI e segurança:

  • Enriquecimento de dados de vulnerabilidade. Dependendo das necessidades da organização, isso é necessário para enriquecer as informações combinando dados do NVD, EUVD, BDU, GitHub Advisory Database e osv.dev, ou para comprar um feed de inteligência de vulnerabilidades comercial no qual os dados já estão agregados e enriquecidos. Em ambos os casos, também vale a pena monitorar os feeds de inteligência de ameaças para rastrear tendências de exploração reais e obter um entendimento do perfil dos invasores que visam vulnerabilidades específicas. A Kaspersky fornece um feed de dados especializado especificamente focado em componentes de código aberto.
  • Análise detalhada da composição do software. As ferramentas especializadas de análise de composição de software (SCA) permitem o mapeamento correto da cadeia de dependências no código-fonte aberto para realizar o inventário completo das bibliotecas que estão sendo usadas e descobrir componentes desatualizados ou sem suporte. Os dados sobre componentes íntegros também são úteis para enriquecer o registro de artefatos.
  • Identificação do abandonware. Mesmo que um componente não apresente vulnerabilidades formais e o encerramento do suporte ainda não tenha sido declarado oficialmente, o processo de verificação deve sinalizar os componentes que não receberam atualizações há mais de um ano. Isso garante uma análise separada e uma possível substituição, assim como ocorre com os componentes em EOL (fim da vida útil).

Proteção do código e dos agentes de IA

As atividades dos sistemas de IA usados na codificação devem ser agrupadas em um conjunto abrangente de medidas de segurança: desde a filtragem de dados de entrada até o treinamento do usuário:

  • Restrições de recomendações de dependências. Configure o ambiente de desenvolvimento para garantir que os agentes e assistentes de IA consultem apenas componentes e bibliotecas do registro de artefatos confiável. Se eles não contiverem as ferramentas corretas, o modelo deve acionar uma solicitação para incluir a dependência no registro em vez de extrair algo do PyPI que apenas corresponda à descrição.
  • Filtragem das saídas do modelo. Apesar dessas restrições, tudo o que for gerado pelo modelo também deve ser verificado para garantir que o código de IA não contenha dependências desatualizadas, sem suporte, vulneráveis ou inventadas. Essa verificação deve ser integrada diretamente no processo de aceitação do código ou no estágio de preparação da compilação. Ela não substitui o processo de análise estática tradicional: as ferramentas SAST ainda devem ser incorporadas no pipeline de CI/CD.
  • Treinamento do desenvolvedor. As equipes de TI e de segurança devem estar extremamente familiarizadas com as características dos sistemas de IA, seus princípios operacionais e erros comuns. Para conseguir isso, os funcionários devem completar um curso de treinamento especializado, adaptados às suas funções específicas.

Remoção sistemática de componentes em EOL

Se os sistemas de uma empresa utilizarem componentes de código aberto desatualizados, deve-se adotar uma abordagem sistemática e consistente para lidar com as vulnerabilidades. Existem três métodos principais para fazer isso:

  • Migração. Este é o método mais complexo e caro para uma organização, pois envolve a substituição total de um componente, seguida pela adaptação, reescrita ou substituição dos aplicativos construídos sobre ele. Decidir sobre uma migração é muito mais difícil quando se exige uma revisão geral de todo o código interno. Isso costuma afetar os componentes principais: é impossível migrar facilmente do Node.js 14 ou do Python 2.
  • Suporte de longo prazo (LTS). Existe um mercado de serviços de suporte dedicado para projetos legados de larga escala. Às vezes, isso envolve uma bifurcação do sistema legado mantido por desenvolvedores de terceiros; em outros casos, equipes especializadas fazem o backport de patches que corrigem vulnerabilidades específicas em versões mais antigas e sem suporte. A transição para o LTS geralmente exige custos de suporte contínuos, mas, em muitos casos, isso ainda pode ser mais econômico do que uma migração completa.
  • Controles compensatórios. Com base nos resultados de análises detalhadas, é possível criar um conjunto de medidas de segurança abrangentes para mitigar o risco de exploração das vulnerabilidades de um produto legado. Tanto a eficácia quanto a viabilidade econômica dessa abordagem dependem da função do software na organização.

Os departamentos de segurança, TI e negócios devem trabalhar juntos para escolher um desses três métodos para cada componente abandonado ou com EOL documentado e refletir a escolha feita nos registros de ativos e SBOMs da empresa.

Gerenciamento de vulnerabilidades de código aberto baseado em risco

Todos os métodos listados acima reduzem o volume de softwares e componentes vulneráveis que entram na organização, o que simplifica a detecção e a correção de falhas. Apesar disso, é impossível eliminar todos os defeitos: o número de aplicativos e componentes está crescendo muito rápido.

Portanto, é essencial priorizar as vulnerabilidades com base nos riscos reais que elas representam. O modelo de avaliação de risco deve ser expandido para considerar as características do código aberto, além de responder às seguintes perguntas:

  • A ramificação do código vulnerável é realmente executada no ambiente da organização? Deve-se realizar uma análise de acessibilidade das vulnerabilidades descobertas. Muitos snippets de código defeituosos nunca são realmente executados na implementação específica da organização, fazendo com que seja impossível explorar a vulnerabilidade. Certas soluções de SCA podem realizar esta análise. Esse mesmo processo permite avaliar um cenário alternativo: o que acontece se os procedimentos ou componentes vulneráveis forem removidos completamente do projeto? Às vezes, esse método de remediação é surpreendentemente indolor.
  • O defeito está sendo explorado em ataques reais? Há um PoC disponível? As respostas a essas perguntas fazem parte de estruturas de priorização padrão, como EPSS, mas o rastreamento deve ser realizado em um conjunto muito mais amplo de fontes de inteligência.
  • A atividade de criminosos cibernéticos foi relatada nesse registro de dependência ou em componentes relacionados e semelhantes? Estes são fatores adicionais para a priorização.

A consideração desses fatores permite que a equipe aloque recursos de forma eficaz e corrija os defeitos mais perigosos primeiro.

A transparência nunca sai de moda

O padrão de segurança para softwares de código aberto só vai continuar subindo. As empresas que desenvolvem aplicativos, mesmo que para uso interno, enfrentarão pressões regulatórias que exigem segurança cibernética documentada e verificável nos seus sistemas. De acordo com as estimativas dos especialistas da Sonatype, 90% das empresas em todo o mundo já se enquadram em um ou mais requisitos que as obrigam a fornecer provas da confiabilidade do software que usam. Portanto, os especialistas consideram a transparência “o pilar fundamental da segurança da cadeia de suprimento de software”.

Ao controlar o uso de componentes e aplicativos de código aberto, enriquecer a inteligência contra ameaças e fazer o monitoramento rigoroso dos sistemas de desenvolvimento orientados por IA, as organizações podem introduzir as inovações que tanto desejam, ao mesmo tempo em que atingem o padrão elevado definido por reguladores e clientes.

Como identificar e proteger ativos corporativos de TI sem responsável definido | Blog oficial da Kaspersky

Invasores frequentemente exploram contas de teste desatualizadas e sem uso ou acabam encontrando armazenamentos em nuvem acessíveis publicamente que contêm dados críticos, já um pouco “empoeirados”. Em alguns casos, um ataque explora uma vulnerabilidade em um componente de aplicativo que, na verdade, havia recebido um patch, digamos, há dois anos. Ao ler relatórios de violações de segurança, um padrão comum se repete: os ataques se apoiam em algo desatualizado: um serviço, um servidor, uma conta de usuário… Elementos da infraestrutura corporativa de TI que, por vezes, saem do radar das equipes de TI e de segurança. Na prática, tornam-se ativos não gerenciados, inúteis ou simplesmente esquecidos. Esses “zumbis da TI” geram riscos à segurança da informação, à conformidade regulatória e resultam em custos operacionais desnecessários. Em geral, trata-se de um elemento da TI invisível com uma diferença fundamental: ninguém quer, conhece ou se beneficia desses ativos.

Neste artigo, buscamos identificar quais ativos exigem atenção imediata, como reconhecê-los e como deve ser estruturada a resposta.

Servidores físicos e virtuais

Prioridade: alta. Servidores vulneráveis funcionam como pontos de entrada para ataques cibernéticos e continuam consumindo recursos, ao mesmo tempo que geram riscos de conformidade regulatória.

Prevalência: alta. Servidores físicos e virtuais costumam ficar órfãos em grandes infraestruturas após projetos de migração ou depois de processos de fusões e aquisições. Servidores de teste que deixam de ser usados após a entrada em produção de projetos de TI, assim como servidores Web de projetos obsoletos operando sem domínio associado, também são frequentemente esquecidos. A dimensão do problema é ilustrada por estatísticas da autoridade certificadora Let’s Encrypt: em 2024, metade das solicitações de renovação de domínio partiu de dispositivos que já não estavam associados ao domínio solicitado. Estima-se que existam cerca de um milhão de dispositivos como esses no mundo.

Detecção: o departamento de TI precisa implementar um processo automatizado de Descoberta e Reconciliação (Automated Discovery and Reconciliation – AD&R), que combine resultados de varreduras de rede e inventários em nuvem com dados da Base de Dados de Gerenciamento de Configuração (Configuration Management Database – CMDB). Esse processo permite a identificação oportuna de informações desatualizadas ou conflitantes sobre ativos de TI e ajuda a localizar os próprios ativos esquecidos.

Esses dados devem ser complementados por verificações de vulnerabilidades externas que abranjam todos os endereços IP públicos da organização.

Resposta: estabelecer um processo formal e documentado para a retirada de operação ou descontinuação de servidores. Esse processo deve incluir a verificação da migração completa dos dados e a posterior destruição comprovada das informações armazenadas no servidor. Após essas etapas, o servidor pode ser desligado, reciclado ou reaproveitado. Até que todos os procedimentos sejam concluídos, o servidor deve ser movido para uma sub-rede isolada e em quarentena.

Para mitigar esse problema em ambientes de teste, implemente um processo automatizado para sua criação e retirada de operação. Um ambiente de teste deve ser criado no início de um projeto e desmontado após um período predefinido ou depois de um certo tempo de inatividade. Reforce a segurança dos ambientes de teste, garantindo seu isolamento rigoroso em relação ao ambiente principal (de produção) e proibindo o uso de dados reais de negócios não anonimizado nos testes.

Contas de usuários, serviços e dispositivos esquecidos

Prioridade: crítica. Contas inativas e com privilégios elevados são alvos preferenciais de invasores que buscam estabelecer persistência na rede ou ampliar seu acesso dentro da infraestrutura.

Prevalência: muito alta. Contas técnicas de serviços, contas de prestadores de serviço e contas não personalizadas estão entre as mais frequentemente esquecidas.

Detecção: realizar análises regulares do diretório de usuários (Active Directory, na maioria das organizações) para identificar todos os tipos de contas que não apresentaram atividade por um período definido (um mês, um trimestre ou um ano). Paralelamente, recomenda-se revisar as permissões atribuídas a cada conta e remover aquelas excessivas ou desnecessárias.

Resposta: após validação com o responsável pelo serviço na área de negócio ou com o gestor do colaborador, contas desatualizadas devem ser simplesmente desativadas ou excluídas. Um sistema abrangente de Identity and Access Management (IAM) oferece uma solução escalável para esse desafio. Nesse modelo, a criação, exclusão e atribuição de permissões às contas são fortemente integradas aos processos de RH.

No caso de contas de serviço, também é essencial revisar regularmente tanto a robustez das senhas quanto as datas de expiração dos tokens de acesso, realizando a rotação quando necessário.

Repositórios de dados esquecidos

Prioridade: crítica. Dados mal controlados em bancos de dados acessíveis externamente, armazenamentos em nuvem e lixeiras, bem como em serviços corporativos de compartilhamento de arquivos, inclusive os considerados “seguros”, foram uma das principais fontes de grandes vazamentos em 2024–2025. Os dados expostos nesses incidentes frequentemente incluem digitalizações de documentos, prontuários médicos e informações pessoais. Como consequência, esses incidentes de segurança também resultam em penalidades por não conformidade com regulamentações como a HIPAA, o GDPR e outros marcos de proteção de dados que regem o tratamento de informações pessoais e confidenciais.

Prevalência: alta. Dados de arquivo, cópias de dados mantidas por prestadores de serviço e versões legadas de bancos de dados de migrações de sistemas anteriores costumam permanecer fora de controle e acessíveis por anos, ou até décadas, em muitas organizações.

Detecção: dada a enorme variedade de tipos de dados e métodos de armazenamento, é essencial utilizar uma combinação de ferramentas para a descoberta:

  • Subsistemas nativos de auditoria das principais plataformas de fornecedores, como AWS Macie e Microsoft Purview
  • Soluções especializadas de Data Discovery e de Gerenciamento da Postura de Segurança de Dados
  • Análise automatizada de logs de inventário, como o S3 Inventory

Infelizmente, essas ferramentas têm utilidade limitada quando um prestador de serviços cria um repositório de dados dentro de sua própria infraestrutura. O controle dessa situação exige cláusulas contratuais que concedam à equipe de segurança da organização acesso aos armazenamentos relevantes do fornecedor, complementadas por serviços de inteligência de ameaças capazes de detectar conjuntos de dados expostos publicamente ou roubados associados à marca da empresa.

Resposta: analisar os logs de acesso e integrar os armazenamentos identificados às ferramentas de DLP e CASB para monitorar seu uso, ou confirmar que estão de fato abandonados. Utilizar os recursos disponíveis para isolar com segurança o acesso a esses repositórios. Se necessário, criar um backup seguro e, em seguida, excluir os dados. No nível das políticas organizacionais, é fundamental estabelecer prazos de retenção para diferentes tipos de dados, determinando seu arquivamento automático e exclusão ao término do período definido. As políticas também devem definir procedimentos para o registro de novos sistemas de armazenamento e proibir explicitamente a existência de dados sem responsável que estejam acessíveis sem restrições, senhas ou criptografia.

Aplicativos e serviços não utilizados em servidores

Prioridade: média. Vulnerabilidades nesses serviços aumentam o risco de ataques cibernéticos bem-sucedidos, dificultam os esforços de aplicação de patches e desperdiçam recursos.

Prevalência: muito alta. Os serviços geralmente são ativados por padrão durante a instalação de servidores, permanecem após os testes e as etapas de configuração, continuam em execução muito tempo depois que o processo de negócios que eles apoiavam ter se tornado obsoleto.

Detecção: por meio de auditorias regulares das configurações de software. Para que a auditoria seja eficaz, os servidores devem seguir um modelo baseado em funções, no qual cada função de servidor tenha uma lista correspondente de softwares. Além da CMDB, um amplo conjunto de ferramentas auxilia nesse processo, como ferramentas focadas em conformidade de políticas e endurecimento de sistemas, a exemplo do OpenSCAP e do Lynis; ferramentas multifuncionais como o OSQuery; scanners de vulnerabilidades como o OpenVAS; e analisadores de tráfego de rede.

Resposta: realizar revisões periódicas das funções dos servidores em conjunto com seus responsáveis de negócio. Quaisquer aplicações ou serviços desnecessários identificados em execução devem ser desativados. Para minimizar esse tipo de ocorrência, implemente o princípio do menor privilégio em toda a organização e utilize imagens base endurecidas ou templates de servidores para construções padrão. Isso garante que nenhum software supérfluo seja instalado ou habilitado por padrão.

APIs desatualizadas

Prioridade: alta. APIs são frequentemente exploradas por invasores para exfiltrar grandes volumes de dados sensíveis e para obter acesso inicial à organização. Em 2024, o número de ataques relacionados a APIs aumentou 41%, com invasores mirando especificamente APIs desatualizadas, já que elas costumam disponibilizar dados com menos verificações e restrições. Um exemplo disso foi o vazamento de 200 milhões de registros do X/Twitter.

Prevalência: alta. Quando um serviço migra para uma nova versão de API, a versão antiga frequentemente permanece operacional por um longo período, sobretudo se ainda for utilizada por clientes ou parceiros. Essas versões obsoletas geralmente deixam de ser mantidas, o que faz com que falhas de segurança e vulnerabilidades em seus componentes não recebam patches.

Detecção: no nível de WAF ou NGFW, é essencial monitorar o tráfego direcionado a APIs específicas. Isso ajuda a detectar anomalias que podem indicar exploração ou exfiltração de dados e também identificar APIs que obtêm tráfego mínimo.

Resposta: para APIs identificadas com baixo nível de atividade, colaborar com as partes interessadas do negócio para desenvolver um plano de retirada de operação e migrar os usuários remanescentes para versões mais recentes.

Em organizações com um grande portfólio de serviços, esse desafio é melhor enfrentado com o uso de uma plataforma de gerenciamento de APIs, aliada a uma política formalmente aprovada de ciclo de vida de APIs. Essa política deve incluir critérios bem definidos para a descontinuação e aposentadoria de interfaces de software desatualizadas.

Software com dependências e bibliotecas desatualizadas

Prioridade: alta. É nesse ponto que se escondem vulnerabilidades críticas de grande escala, como a Log4Shell, capazes de comprometer toda a organização e gerar problemas de conformidade regulatória.

Prevalência: muito alta, especialmente em sistemas corporativos de gestão em larga escala, sistemas de automação industrial e softwares desenvolvidos sob medida.

Detecção: utilizar uma combinação de sistemas de gerenciamento de vulnerabilidades (VM/CTEM) e ferramentas de análise de composição de software (SCA). No desenvolvimento interno, é obrigatório empregar scanners e sistemas de segurança abrangentes integrados ao pipeline de CI/CD, a fim de evitar que o software seja construído com componentes desatualizados.

Resposta: as políticas da empresa devem exigir que as equipes de TI e de desenvolvimento atualizem sistematicamente as dependências de software. No desenvolvimento de soluções internas, a análise de dependências deve fazer parte do processo de revisão de código. No caso de softwares de terceiros, é fundamental auditar regularmente o estado e a antiguidade das dependências.

Para fornecedores externos de software, a atualização de dependências deve ser um requisito contratual, com impacto direto nos prazos de suporte e nos orçamentos dos projetos. Para viabilizar essas exigências, é essencial manter uma lista de materiais de software (SBOM) sempre atualizada.

Você pode ler mais sobre práticas de remediação de vulnerabilidades eficazes e oportunas em um post separado no blog.

Sites esquecidos

Prioridade: média. Ativos Web esquecidos podem ser explorados por invasores para campanhas de phishing, hospedagem de malware ou aplicação de golpes usando a marca da organização, causando danos reputacionais. Em casos mais graves, podem resultar em vazamentos de dados ou servir como ponto de partida para ataques direcionados à própria empresa. Um subconjunto específico desse problema envolve domínios esquecidos que foram usados para atividades pontuais, expiraram e não foram renovados, tornando-se disponíveis para compra por terceiros.

Prevalência: alta, especialmente no caso de sites lançados para campanhas de curta duração ou atividades internas pontuais.

Detecção: o departamento de TI deve manter um registro centralizado de todos os sites públicos e domínios, validando o status de cada um junto aos respectivos responsáveis em base mensal ou trimestral. Além disso, scanners ou ferramentas de monitoramento de DNS podem ser utilizados para rastrear domínios associados à infraestrutura de TI da empresa. Uma camada adicional de proteção é oferecida por serviços de inteligência de ameaças, capazes de identificar de forma independente quaisquer sites associados à marca da organização.

Resposta: estabelecer uma política de desligamento programado de sites após um período fixo ao término de seu uso ativo. Implementar um sistema automatizado de registro e renovação de DNS para evitar a perda de controle sobre os domínios da empresa.

Dispositivos de rede não utilizados

Prioridade: alta. Roteadores, firewalls, câmeras de vigilância e dispositivos de armazenamento em rede que permanecem conectados, mas sem gerenciamento e sem patches aplicados, constituem uma plataforma ideal para o lançamento de ataques. Esses dispositivos esquecidos frequentemente abrigam vulnerabilidades e quase nunca contam com monitoramento adequado (não há integração com EDR ou SIEM), ao mesmo tempo em que ocupam uma posição privilegiada na rede, oferecendo aos invasores um caminho facilitado para escalar ataques contra servidores e estações de trabalho.

Prevalência: média. Dispositivos costumam ser deixados para trás durante mudanças de escritório, atualizações da infraestrutura de rede ou a criação de espaços de trabalho temporários.

Detecção: utilizar as mesmas ferramentas de inventário de rede mencionadas na seção sobre servidores esquecidos, além de auditorias físicas regulares para comparar os resultados das verificações de rede com os equipamentos efetivamente conectados. A verificação ativa da rede pode revelar segmentos inteiros não mapeados e conexões externas inesperadas.

Resposta: dispositivos sem responsável definido geralmente podem ser desconectados da rede de forma imediata. No entanto, é preciso cautela: a higienização desses equipamentos exige o mesmo nível de cuidado aplicado à desativação de servidores, a fim de evitar vazamentos de configurações de rede, senhas, gravações de vídeo corporativas e informações semelhantes.

CVE-2024-12649: vulnerabilidade no intérprete de TTF da Canon

Atualmente, quem tenta atacar a infraestrutura de uma organização raramente se depara com o luxo de uma estação de trabalho sem um Agente de EDR, portanto, os agentes maliciosos estão se concentrando em sabotar os servidores, ou os diversos dispositivos especializados conectados à rede e que possuem privilégios de acesso bastante amplos, mas não possuem proteção EDR e, muitas vezes, até recursos de registro. Anteriormente, registramos em detalhes os tipos de dispositivos de escritório vulneráveis.

Em 2025, os ataques reais focaram em dispositivos de rede (como gateways de VPN, firewalls e roteadores), sistemas de vigilância por vídeo e os próprios servidores. Mas não devemos ignorar ataques a impressoras, como o pesquisador independente Peter Geissler lembrou ao público no Security Analyst Summit 2025. Ele descreveu uma vulnerabilidade que identificou em impressoras da Canon ( CVE-2024-12649 , CVSS 9.8), que permite a execução de código malicioso nelas. E o aspecto mais curioso sobre essa vulnerabilidade é que basta enviar um arquivo aparentemente inocente para impressão para explorá-la.

Cavalo de Tróia via fonte: um ataque via CVE-2024-12649

O ataque começa ao enviar um arquivo XPS para impressão. Esse formato, criado pela Microsoft, contém todos os pré-requisitos para imprimir um documento com sucesso e é uma alternativa ao PDF. Basicamente, o XPS é um arquivo comprimido ZIP com a descrição detalhada do documento, todas as suas imagens e as fontes utilizadas. As fontes costumam ser armazenadas em TTF (TrueType Font), um formato bastante conhecido e inventado pela Apple. E é exatamente a fonte, que não costuma ser vista como perigosa, que contém o código malicioso.

O formato TTF foi projetado para que as letras pareçam idênticas em qualquer meio e mantenham as proporções independentemente do tamanho, desde o menor caractere em uma tela até o maior em um pôster impresso. Para atingir esse objetivo, cada letra pode ter instruções de fonte escritas para si, que descrevam as nuances da exibição de letras de tamanhos pequenos. Essas instruções são comandos para uma máquina virtual compacta que, mesmo sendo bastante simples, é compatível com todos os elementos básicos da programação: gerenciamento de memória, saltos e ramificação. Geissler e seus colegas estudaram como essa máquina virtual é implementada em impressoras Canon. Eles descobriram que algumas instruções de TTF são executadas de maneira não segura. Por exemplo, os comandos da máquina virtual que gerenciam a stack não verificam se há esgotamento da memória.

Como resultado, eles conseguiram criar uma fonte maliciosa. Quando um documento que contém a fonte é impresso em determinadas impressoras Canon, ele causa esgotamento do buffer da stack, grava os dados fora dos buffers da máquina virtual e, por fim, executa código no processador da impressora. O ataque inteiro é conduzido através do arquivo TTF e o restante do conteúdo do arquivo XPS é benigno. Na verdade, detectar o código malicioso mesmo dentro do arquivo TTF é bem difícil: não é muito extenso, a primeira parte contém as instruções TTF da máquina virtual, e a segunda parte é executada no sistema operacional da Canon (DryOS).

Deve-se perceber que a Canon se concentrou em proteger o firmware da impressora nos últimos anos. Por exemplo, ela usa registros de DACR e sinalizadores NX (sem execução) compatíveis com processadores ARM que limitam a capacidade de modificar o código do sistema ou de executar código em fragmentos de memória destinados exclusivamente ao armazenamento de dados. Apesar desses esforços, a arquitetura geral do DryOS não permite a implementação efetiva de mecanismos de proteção de memória, como ASLR ou stack canary, que são típicos dos sistemas operacionais maiores e modernos. Por isso que os pesquisadores ocasionalmente encontram maneiras de contornar a proteção existente. Por exemplo, nesse ataque específico, o código malicioso foi executado com êxito ao ser colocado, por meio do truque TTF, dentro de um buffer de memória direcionado a outro protocolo de impressão (IPP).

Cenário de exploração realista

A Canon afirma, no boletim que descreve a vulnerabilidade, que ela pode ser explorada remotamente se a impressora estiver acessível pela Internet. Por isso, sugerem configurar um firewall para que a impressora só possa ser usada pela rede interna do escritório. Embora seja um bom conselho e a impressora deva ser removida do acesso público, esse não é o único cenário de ataque.

Em seu relatório, Peter Geissler indicou um cenário híbrido muito mais realista. Nele, o invasor envia a um funcionário um anexo em um e-mail ou mensagem por aplicativo e, sob algum pretexto, sugere que ele seja impresso. Se a vítima enviar o documento para impressão, mesmo que dentro da rede interna da organização e sem qualquer exposição à Internet, o código malicioso será executado na impressora. Obviamente, o malware fica muito mais limitado quando ele é executado na impressora em comparação com um malware que infecta um computador. No entanto, o malware pode, por exemplo, criar um túnel ao estabelecer uma conexão com o servidor do invasor, permitindo que os invasores ataquem outros computadores na organização. Outra possibilidade para esse malware na impressora seria que todas as informações impressas na empresa sejam encaminhadas diretamente para o servidor do invasor. Para algumas organizações, como escritórios de advocacia, isso pode resultar em uma grave violação de dados.

Como se defender dessa ameaça à impressora

A vulnerabilidade CVE-2024-12649 e diversos defeitos intimamente relacionados a ela podem ser eliminados com a atualização do firmware da impressora conforme as instruções da Canon. Infelizmente, muitas organizações, mesmo as que se empenham em atualizar o software de computadores e servidores, precisam de um processo sistemático para atualizar o firmware da impressora. O processo deve ser implementado em todos os equipamentos conectados à rede de computadores.

No entanto, os pesquisadores de segurança ressaltam que há uma grande variedade de ataques voltados a equipamentos especializados. Portanto, não há garantia de que os invasores não utilizarão um exploit similar e desconhecido pelos fabricantes de impressoras ou seus clientes. Para reduzir o risco de exploração:

  • Segmente a rede, limitando a capacidade da impressora de estabelecer conexões de saída e aceitar conexões de outros dispositivos e usuários não autorizados a imprimir.
  • Desative todos os serviços não utilizados na impressora.
  • Defina uma senha de administrador única e forte para cada impressora/dispositivo.
  • Implemente um sistema de segurança abrangente dentro da organização, incluindo a instalação de EDR em todos os computadores e servidores, um firewall moderno e monitoramento de rede abrangente baseado em um Sistema SIEM.

❌