Saiba mais sobre o livro de Benny Czarny, «Cybersecurity Upside Down»

Saiba mais
Utilizamos inteligência artificial para as traduções dos sítios e, embora nos esforcemos por garantir a exatidão, estas podem nem sempre ser 100% precisas. Agradecemos a sua compreensão.

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

Por OPSWAT
Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core
Participantes do programa de bolsas de estudo OPSWAT

O rápido avanço da tecnologia criou uma elevada procura por programadores qualificados. O software de código aberto (OSS) tornou-se uma ferramenta essencial para esta força de trabalho em crescimento. Existem atualmente centenas de milhares de pacotes de OSS bem estabelecidos em várias linguagens de programação. Mais de 90% dos programadores utilizam estes componentes de código aberto nas suas aplicações proprietárias, o que destaca a eficiência e a proposta de valor do OSS. Para sublinhar ainda mais a sua importância, prevê-se que o mercado global de OSS atinja os 80,7 mil milhões de dólares até 2030, refletindo uma taxa de crescimento projetada de 16,7% ao ano.

No entanto, a adoção generalizada de OSS introduz também um novo nível de complexidade: as vulnerabilidades de segurança. O grande número de componentes OSS interligados cria uma superfície de ataque mais ampla para ser explorada por agentes maliciosos. A gestão de dependências entre vários pacotes OSS pode ser complexa, dificultando a identificação e correção imediata de vulnerabilidades. Além disso, a segurança do OSS depende frequentemente da vigilância e das contribuições da comunidade de programadores. Isto pode levar a atrasos na correção de vulnerabilidades, especialmente em projectos menos populares.

Neste artigo, os bolseiros de pós-graduação OPSWAT examinam a CVE-2023-33733, uma falha de segurança descoberta na popular biblioteca de código aberto ReportLab. A sua análise é acompanhada por um ataque simulado que utiliza o MetaDefender Core com o seu Software Bill of Materials (SBOM) para identificar vulnerabilidades nas dependências de uma aplicação, incluindo a vulnerável biblioteca ReportLab.

Introdução à biblioteca do Reportlab

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

O ReportLab, uma biblioteca Python poderosa e de código aberto, permite aos utilizadores gerar PDFs ricos em funcionalidades a partir de código Python. Oferece aos programadores uma combinação vencedora: flexibilidade, facilidade de utilização e extensas opções de personalização para a criação de documentos dinâmicos. A biblioteca oferece ao desenvolvedor um controle aprimorado sobre seus PDFs, permitindo a incorporação precisa de texto, imagens, tabelas e gráficos com precisão meticulosa. Esse nível de personalização torna o ReportLab uma ferramenta valiosa para a geração de documentos dinâmicos, como faturas e relatórios orientados por dados.

CVE-2023-33733 Contexto

O CVE-2023-33733 destaca uma vulnerabilidade de segurança na biblioteca ReportLab, afectando várias versões da biblioteca ReportLab.

  • Verificou-se que as versões do ReportLab anteriores à versão 3.6.13 eram vulneráveis à evasão da caixa de areia, especificamente dentro do "rl_safe_eval função. A exploração foi conseguida através do atributo de cor das etiquetas HTML, que foi diretamente avaliado como uma expressão Python utilizando a função eval() que, em última análise, conduz à execução remota de código.
  • Os analistas da NVD atribuíram uma pontuação CVSS de 7,8 HIGH ao CVE-2023-33733.
Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

Análise da vulnerabilidade de segurança do ReportLab

Os bolseiros de pós-graduação OPSWAT efectuaram uma análise profunda do fluxo de trabalho do ReportLab, identificando a causa principal da vulnerabilidade de segurança CVE-2023-33733.

O fluxo de trabalho da biblioteca ReportLab

O ReportLab permite que os programadores criem PDFs de forma eficiente. A biblioteca permite uma integração sem esforço: importar a biblioteca, definir o conteúdo HTML e gerar o PDF numa única linha de código utilizando a função de resultado.

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

Os nossos bolseiros graduados descobriram um processo em 5 passos para criar PDFs a partir de HTML com o ReportLab.

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

No processo de 5 etapas para criar PDFs a partir de HTML com o ReportLab, três processos principais se destacam: processamento de parágrafo, processamento de paraparser e o processo de manipulação de HTML.

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

Como ilustrado na figura acima, o processo de manipulação de HTML no ReportLab utiliza o eval() especificamente no atributo cor. Servindo como um ponto focal para a execução de código malicioso, o eval() leva os investigadores a procurar o controlo da sua entrada para explorar a aplicação. No entanto, isto é um desafio devido à caixa de areia imposta pelo __rl_safe_eval__ no ReportLab.

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

Vulnerabilidade de segurança na análise do ReportLab

O ReportLab implementou uma sandbox chamada __rl_safe_eval__. Esta caixa de areia exclui todas as funções Python incorporadas e inclui várias funções incorporadas substituídas. Esta restrição permite a execução de código seguro dentro da biblioteca, impedindo o acesso a funções e bibliotecas perigosas que poderiam ser utilizadas para fins maliciosos (por exemplo, acesso ao sistema de ficheiros, comunicação em rede).

O rl_safe_eval implementa várias condições para garantir que o atributo invocado é seguro antes de usar a função de caixa de areia integrada do Python getattr() para o obter e devolver o resultado.

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

A função safe eval tem como objetivo proteger o ambiente, excluindo funções perigosas e impedindo acções maliciosas. No entanto, se for encontrada uma forma de contornar as suas condições e aceder a uma poderosa função incorporada, esta pode ser explorada.

Com base nesta ideia, os investigadores de segurança tentaram contornar as restrições. Inicialmente, eles exploraram a injeção de objetos usando o tipo() para construir um objeto e redefinir os seus atributos e métodos para contornar as verificações no __rl_safe_eval__. Além disso, uma vez que a biblioteca ReportLab substitui as funções integradas e as transforma em variáveis globais no contexto «eval», o investigador poderia tirar partido desta implementação para aceder a uma das funções integradas originais. Isto poderia permitir-lhe contornar o ambiente de sandbox e executar código malicioso.

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

A carga útil é preparada da seguinte forma:

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

No entanto, não é possível executar uma expressão de várias linhas num contexto eval. No entanto, um truque de compreensão de lista pode ser empregado, e o payload para explorar este CVE é o seguinte:

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

RelatórioSimulação de exploração de laboratório

Os investigadores publicaram uma prova de conceito (POC) para o CVE-2023-33733, demonstrando que as aplicações criadas com versões vulneráveis do ReportLab podem ser susceptíveis a ciberataques. Para avaliar esta potencial ameaça, os bolseiros de pós-graduação da OSPWAT realizaram um ataque simulado a uma aplicação Web. Utilizaram MetaDefender Core com capacidades SBOM para identificar as vulnerabilidades de segurança nas dependências de software da aplicação, incluindo a presença da biblioteca ReportLab afetada.

Simular a vulnerabilidade de segurança

Para simular esta exploração como um cenário do mundo real, os bolseiros OPSWAT desenvolveram uma aplicação Web utilizando Python e a versão vulnerável da biblioteca ReportLab. Esta aplicação imita um caso de utilização típico: os utilizadores podem carregar um ficheiro HTML e convertê-lo num ficheiro PDF.

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

Um atacante pode criar um ficheiro HTML malicioso que contenha código concebido para explorar 33733. Este código poderia contornar a sandbox e comprometer o servidor web accionando uma reverse shell através do eval() função.

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

Um carregamento bem sucedido de um ficheiro malicioso permitiria ao atacante assumir o controlo do servidor de aplicações devido à vulnerabilidade da biblioteca ReportLab desactualizada.

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core
Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

A importância do SBOM e da segurança proactiva

A investigação dos OPSWAT Graduate Fellows sobre o CVE-2023-33733 sublinha os potenciais riscos de segurança associados ao OSS. Embora o OSS ofereça benefícios inegáveis em termos de eficiência de desenvolvimento e rentabilidade, vulnerabilidades como a encontrada no ReportLab podem deixar as organizações expostas a ciberataques.

OPSWAT SBOM

OPSWAT SBOM protege a cadeia de fornecimento de software, fornecendo um inventário abrangente de componentes para código-fonte e contentores. Suporta mais de 10 linguagens, incluindo Java, JavaScript, Go, PHP e Python, mais de 5 milhões de componentes de software de código aberto de terceiros e utiliza uma base de dados de mais de 17 mil vulnerabilidades provenientes da National Vulnerability Database (NVD) e do GitHub (GHSA).

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

OPSWAT MetaDefender Core, com as suas capacidades SBOM integradas, permite que as organizações abordem proactivamente estes riscos. MetaDefender Core analisa aplicações de software e dependências, identificando a presença de vulnerabilidades conhecidas como CVE-2023-33733 nos componentes listados. Isto permite aos programadores e às equipas de segurança dar prioridade aos esforços de correção e mitigar os riscos de segurança antes de estes poderem ser explorados.

Analisando a vulnerabilidade CVE-2023-33733 com MetaDefender Core

Reflexões finais

A investigação dos OPSWAT Graduate Fellows sobre a vulnerabilidade do ReportLab (CVE-2023-33733) serve como um valioso lembrete da importância de medidas de segurança proactivas no ciclo de vida do desenvolvimento de software. Ao tirar partido de ferramentas como oMetaDefender Core OPSWAT , as organizações podem obter informações cruciais sobre as suas dependências de software e identificar potenciais vulnerabilidades antes de serem exploradas por atacantes.

Além disso, OPSWAT oferece um conjunto abrangente de soluções de cibersegurança que vão além da análise de vulnerabilidades. Estas soluções proporcionam deteção de ameaças em tempo real, segurança de dados e proteção de terminais, salvaguardando as organizações contra uma vasta gama de ameaças cibernéticas. Ao adotarem uma abordagem de segurança em camadas que inclui ferramentas como MetaDefender Core , as organizações podem tirar partido dos benefícios do OSS, minimizando simultaneamente os riscos de segurança associados.

Mantenha-se atualizado com OPSWAT!

Inscreva-se hoje mesmo para receber as últimas novidades da empresa, histórias, informações sobre eventos e muito mais.