Pular para o conteúdo principal
BlogSegurançaLinode Security Digest 13-19 de março de 2023

Linode Security Digest 13-19 de março de 2023

Linode Security Digest

No resumo desta semana, vamos discutir:

  • falta de verificação de estado adequado, nonce, e PKCE para autenticação OAuth ;
  • Apache Servidor HTTP: mod_proxy_uwsgi divisão da resposta HTTP; 
  • Sinais ShadowsocksX-NG com com.apple.security.get-task- direitos de permissão por causa de CODE_SIGNING_INJECT_BASE_ENTITLEMENTS; e
  • um problema de controle de acesso em runc que permite a um atacante aumentar os privilégios dentro de um contêiner.
CVE-2023-27490: Faltam verificações de estado, nonce, e PKCE para autenticação OAuth

Antecedentes

OAuth (Autorização Aberta) é um protocolo padrão aberto que permite que aplicativos de terceiros acessem recursos em nome de um usuário sem precisar conhecer as credenciais do usuário, como um nome de usuário e uma senha. OAuth funciona permitindo que o usuário conceda acesso a seus recursos, autenticando-se com o proprietário do recurso (por exemplo, uma plataforma de mídia social) e obtendo um token de acesso, que é então usado para acessar os recursos em nome do usuário. Este token de acesso é emitido pelo proprietário do recurso e pode ser usado pelo aplicativo de terceiros para acessar os recursos do usuário sem a necessidade de conhecer as credenciais de login do usuário.

Vulnerabilidade

A vulnerabilidade CVE-2023-27490, existe no pacote Next-auth, que está relacionado com o fluxo de autenticação OAuth . Especificamente, ela ocorre durante uma sessão OAuth quando a URL de autorização é interceptada e manipulada por um atacante. Esta vulnerabilidade pode permitir que o agressor faça o login como vítima e contorne a proteção do CSRF que está normalmente em vigor. No fluxo OAuth , a URL de autorização é usada para iniciar o processo de autenticação e solicitar acesso aos recursos do usuário. O URL contém parâmetros importantes, tais como estado, pkce e nonce, que são usados para prevenir ataques como CSRF, ataques de repetição, e roubo de fichas. Entretanto, se a URL de autorização for interceptada e manipulada por um atacante, estas proteções podem ser contornadas, levando à vulnerabilidade descrita no pacote Next-auth.

A causa raiz da vulnerabilidade é uma falha parcial que ocorre durante uma sessão comprometida OAuth . Especificamente, um código de sessão é gerado erroneamente, o que permite ao agressor contornar a proteção do CSRF e entrar como vítima.

Mitigação

  • A vulnerabilidade foi abordada na próxima versão v4.20.1, a atualização para a versão mais recente é a forma recomendada para corrigir esta questão.
  • Entretanto, usando a Inicialização Avançada, os desenvolvedores podem verificar manualmente o pedido de retorno de chamada para estado, pkce e nonce contra a configuração do provedor, e abortar o processo de login se houver um descompasso
CVE-2023-27522: Apache Servidor HTTP: mod_proxy_uwsgi divisão da resposta HTTP

Antecedentes

O contrabando de solicitações HTTP é uma vulnerabilidade de aplicação web que ocorre quando um atacante pode manipular a forma como uma aplicação ou um servidor web processa solicitações HTTP enviadas por um cliente. Esta vulnerabilidade pode permitir que um atacante contorne controles de segurança, realize ações não autorizadas ou roube dados sensíveis.

O ataque normalmente envolve a exploração de inconsistências em como um servidor web front-end e um servidor ou aplicativo back-end lidam com solicitações HTTP, tais como a interpretação de cabeçalhos Content-Length ou o manuseio de codificação em pedaços. Ao manipular estas inconsistências, um atacante pode elaborar uma solicitação que é interpretada de forma diferente pelos dois servidores, resultando no processamento inadequado da solicitação ou no servidor front-end atuando como um proxy para que o atacante execute solicitações maliciosas em nome do atacante.

Vulnerabilidade

A vulnerabilidade CVE-2023-27522 afeta Apache versões 2.4.30 a 2.4.55 do servidor HTTP, especificamente através do módulo mod_proxy_uwsgi. A vulnerabilidade ocorre quando o servidor de origem envia um cabeçalho de resposta HTTP especialmente criado que contém certos caracteres especiais, tais como espaços ou tabulações, seguido por um cabeçalho "Content-Length".

O módulo mod_proxy_uwsgi em Apache HTTP Server pode interpretar mal este cabeçalho e encaminhar a resposta para o cliente com um cabeçalho truncado ou dividido "Content-Length". Isto pode fazer com que o cliente receba respostas incompletas ou incorretas, permitindo potencialmente que um atacante execute vários tipos de ataques, tais como vazamento de dados, falsificação de pedido do lado do servidor (SSRF), scripts cross-site (XSS), e execução de código remoto (RCE).

Mitigação

  • Recomenda-se atualizar para a última versão do Servidor HTTP Apache ou aplicar quaisquer patches disponíveis. 
  • Além disso, firewalls de aplicação web e sistemas de detecção de intrusão podem ser usados para detectar e prevenir ataques de contrabando de resposta HTTP. 
  • Também é importante garantir que sejam usadas técnicas adequadas de validação de entrada e codificação de saída para evitar a injeção de caracteres especiais nas respostas HTTP.
CVE-2023-27574: Sinais ShadowsocksX-NG com com.apple.security.get-task-allow 

Antecedentes

ShadowsocksX-NG é um aplicativo gratuito e de código aberto que ajuda os usuários a contornar a censura da Internet, criando um proxy seguro de meias5 através do qual eles podem acessar a Internet.

Quando uma aplicação é desenvolvida e pronta para distribuição, ela precisa ser assinada com um certificado válido para garantir que seja legítima e não tenha sido adulterada. Este processo é chamado de assinatura de código.

Um dos requisitos para assinatura do código é incluir os direitos, que são permissões que uma aplicação precisa para funcionar corretamente. Os direitos especificam quais recursos e ações o aplicativo pode acessar, tais como a rede, sistema de arquivos ou hardware.

Vulnerabilidade

A vulnerabilidade CVE-2023-27574 existe no aplicativo ShadowsocksX-NG versão 1.10. 0 que é assinado com um direito chamado com.apple.security.get-task-allow. Este direito permite que a aplicação seja depurada e inspecionada por ferramentas de desenvolvimento, tais como Xcode, mesmo quando está rodando em um dispositivo do usuário.

A razão para incluir este direito deve-se a um recurso chamado CODE_SIGNING_INJECT_BASE_ENTITLEMENTS. Em outras palavras, quando o recurso CODE_SIGNING_INJECT_BASE_ENTITLEMENTS estiver ativado, o Xcode injetará automaticamente um conjunto de direitos padrão na assinatura da aplicação. Estes direitos são baseados na conta do desenvolvedor e na configuração do projeto. Eles incluem o direito de com.apple.security.get-task-permitir o direito por padrão.

O problema com esta abordagem é que o com.apple.security.get-task- o direito de acesso à com.apple.security.get-task- pode ser abusado por atacantes para obter informações sensíveis da memória da aplicação, tais como chaves de criptografia ou outros dados sensíveis. Isto poderia ser feito explorando uma vulnerabilidade na aplicação ou usando uma ferramenta de terceiros para ler a memória da aplicação.

Mitigação

  • Os usuários do ShadowsocksX-NG versão 1.10.0 são aconselhados a atualizar para uma versão posterior que não inclua o com.apple.security.get-task-reitties ou a remover manualmente os direitos da assinatura do código da aplicação.
  • Além disso, os usuários devem ser cautelosos ao utilizar softwares VPN/proxy e garantir que eles estejam utilizando uma versão confiável e segura do software.
CVE-2019-5736: Problema de controle de acesso em runc

Antecedentes

runc é um utilitário de linha de comando para desova e funcionamento de containers de acordo com as especificações da Open Container Initiative (OCI). É comumente usado em ambientes de tempo de funcionamento de contêineres, como Docker, Kubernetes e outros.

Vulnerabilidade

Esta vulnerabilidade CVE-2019-5736 é uma questão de controle de acesso que permite que um atacante aumente os privilégios dentro de um contêiner. Especificamente, o problema está relacionado à forma como a versão runc através da 1.1.4 lida com o sistema de arquivos raiz(rootfs) ao lançar um contêiner.

Em libcontainer/rootfs_linux.gorunc estabelece a raiz de um recipiente, montando-o como somente leitura e depois sobrepondo uma camada gravável em cima dele. Este processo é usado para criar o sistema de arquivos do contêiner e isolá-lo do sistema host.

Entretanto, uma falha neste código permite que um atacante sobreescreva o sistema hospedeiro /proc/self/exe que é uma ligação simbólica com o próprio binário runc. Ao fazer isso, o atacante pode executar código arbitrário com privilégios elevados, escapando efetivamente do contêiner e ganhando o controle do sistema hospedeiro.

Mitigação

  • Atualização para uma versão corrigida: A atualização para uma versão corrigida do runc é a mitigação mais eficaz para esta vulnerabilidade. As versões runc 1.0.0-rc6 e mais tarde incluem uma correção para esta vulnerabilidade.
  • Tempo de funcionamento do contêiner de atualização: Se você estiver usando um ambiente de tempo de execução de contêineres como Docker ou Kubernetes, certifique-se de atualizar para uma versão que inclua a versão runc corrigida.
  • Implementar controles de acesso: Para mitigar o risco desta vulnerabilidade, controles de acesso devem ser implementados para limitar a capacidade dos atacantes de desovar recipientes com configurações personalizadas de montagem de volume e executar imagens personalizadas. 
  • Minimizar os privilégios dos contêineres: Minimizar os privilégios dos contêineres pode ajudar a limitar o escopo de um ataque potencial. Isto pode ser alcançado executando containers como usuários não-rootores, restringindo as capacidades dos containers e limitando o acesso a recursos sensíveis do host.

Comentários

Deixe uma resposta

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados com *