Avançar para o conteúdo principal
BlogSegurançaLinode Security Digest 9-15 de Maio, 2022

Linode Security Digest 9-15 de maio, 2022

Linode Security Digest

Esta semana, vamos cobrir um par de vulnerabilidades de alta severidade, uma em Rubygems e outra em Rsyslogs. Discutiremos também a importância de definir práticas de codificação seguras.

Aquisição não autorizada de gemas em Rubygems

Rubygems é um registo de pacotes utilizado para fornecer software para o ecossistema da linguagem Ruby. Devido a um bug na acção yank, foi possível a qualquer utilizador RubyGems.org remover e substituir certas pedras preciosas, mesmo que esse utilizador não estivesse autorizado a fazê-lo. 

Para ser vulnerável, é necessária uma jóia: 

  • Um ou mais travessões no seu nome 
  • Uma gema controlada pelo atacante com o nome antes do traço 
  • Criação dentro de 30 dias OU sem actualizações por mais de 100 dias

Mitigação 

Segundo a equipa Bundler, a utilização de Bundler em modo -frozen ou -deployment em integração contínua e durante as implantações garantirá que a sua aplicação não mude silenciosamente para versões criadas utilizando esta exploração. 

Para auditar o histórico da sua aplicação para possíveis explorações passadas, reveja o seu Gemfile.lock e procure gemas cuja plataforma mudou quando o número da versão não mudou. Por exemplo, a actualização do gemname-3.1.2 para gemname-3.1.2-java poderia indicar um possível abuso desta vulnerabilidade. RubyGems.org foi corrigido e já não é vulnerável a esta questão.

Potencial transbordamento de Buffer em Rsyslogs com base em pilha

O Rsyslog é um sistema rápido para o processamento de toros. Alguns módulos para recepção de syslog TCP têm um buffer overflow de pilha quando é utilizado um enquadramento com octeto. No enquadramento "octeto-contado", cada mensagem é prefixada com o comprimento real da mensagem, para que um receptor saiba exactamente onde termina a mensagem. O atacante pode corromper valores de pilha, levando a problemas de integridade de dados e impacto de disponibilidade. A execução de código remoto é improvável, mas não impossível. As versões 8.2204.0 e inferiores são afectadas por esta vulnerabilidade.

Mitigação

O enquadramento por octetos não é muito comum. Normalmente, necessita de ser especificamente activado nos remetentes. Se os utilizadores não precisarem dele, podem desligá-lo para os módulos mais importantes. Isto irá atenuar a vulnerabilidade. A forma de o fazer depende do módulo. Consulte aqui os módulos afectados e detalhes de configuração com base nos módulos. O patch está disponível na versão 8.2204.1.

A importância da definição de um código seguro

A codificação segura é a prática de programadores qualificados que escrevem código livre de vulnerabilidades desde o início do Ciclo de Vida do Desenvolvimento de Software (SDLC). Só depois de esta prática estar definida é que a comunidade de programadores pode trabalhar para esse objectivo. Secure Code Warrior realizou o inquérito sobre o estado da segurança orientada para o desenvolvimento, 2022 em parceria com Evans Data Corp, em Dezembro de 2021, levantando 1.200 programadores a nível mundial para compreender as competências, percepções e comportamentos quando se trata de práticas de codificação seguras, e o seu impacto e relevância percebida no SDLC.

Aqui estão alguns pontos destacados do inquérito:

  • Dos 1.200 apenas 14% dos programadores de software activos colocam a codificação segura como a sua prioridade máxima. 
  • 37% dos programadores no inquérito reportaram ter deixado vulnerabilidades conhecidas dentro do seu código porque prazos apertados não permitiriam o tempo necessário para as corrigir ou para codificar correctamente desde o início.
  • 36% dos inquiridos disseram também que queriam remover vulnerabilidades do seu código mas não tinham as competências ou os conhecimentos necessários para o fazer. 
  • O problema em muitos casos para os programadores escreverem código seguro é que as organizações para as quais trabalham não identificaram quais as melhores práticas necessárias para produzir código seguro e não colocaram recursos suficientes em formação ou para permitir aos seus programadores atingir esses objectivos. 

Assim, juntamente com a definição adequada do que são práticas de codificação seguras, as organizações também precisam de fornecer prazos mais longos, dando aos programadores tempo suficiente para codificar adequadamente e fornecer formação prática que os ajude a identificar e corrigir vulnerabilidades de código de forma eficiente.
Pode obter informações mais detalhadas sobre o inquérito aqui.


Comentários

Deixe uma resposta

O seu endereço de correio electrónico não será publicado. Os campos obrigatórios estão marcados com *