Shellshock – Cuidado com o bombardeio

Postado em: 29 de setembro de 2014 - Por: Thiago Palmeira

Shellshock Bash Bug

 

Depois do alvoroço gerado pela descoberta do Heartbleed, em Abril deste ano, o mundo digital está novamente agitado com a revelação de mais uma falha de segurança crítica, desta vez com Bash, um programa de comandos shell utilizado por sistemas UNIX e Linux.

O bug foi descoberto pelo engenheiro de software francês Stéphane Chazelas, na manhã do dia 12 de Setembro, e revelado publicamente nesta quarta-feira em um alerta da CERT (US Computer Emergency Readiness Team). Segundo a NY Times, a vulnerabilidade parece ter sido introduzida devido a uma nova funcionalidade, em 1992, por Chet Ramey, e aparentemente passou despercebida durante 22 anos. Embora hajam suspeitas de que agências de governo e espionagem, como a NSA, pudessem ter consciência da vulnerabilidade e estarem explorando-a (como o boato relacionado ao Heartbleed), a informação é incerta e improvável de ser confirmada.

Bash? Shell de comando?

O blog Naked Security, da Sophos, apresentou um resumo bem claro sobre a vulnerabilidade, então vamos esclarecer um pouco do que acontece.

Um shell de comando é um programa que permite rodar outros programas em UNIX e Linux, assim como um prompt de comando no Windows.

O Bash, ou “Bourne Again Shell” (nomeado por derivar de um shell anterior escrito por Stephen Bourne), pode ser utilizado tanto interativamente, inserindo-se comandos e imediatamente recebendo sua saída, quanto como uma ferramenta, permitindo a execução de uma série de programas especificados em um arquivo de texto chamado de shell script.

Normalmente, um software costuma ser cuidadoso ao passar dados ao Bash de forma a procurar por caracteres que possuam significados especiais para ele, como por exemplo os caracteres (.), (;) e (*). Qualquer coisa considerada perigosa é bloqueada.

Como o Shellshock funciona?

A vulnerabilidade, nomeada de Shellshock, consiste em enganar o Bash, fazendo-o rodar um programa quando você não esperaria que ele o fizesse. O bug ocorre em uma parte do Bash que permite a definição de funções. Funções consistem em uma sequência de comandos que são declarados e salvos para uso posterior.

Teoricamente, definir uma função, mesmo que maliciosa, é inofensivo considerando que a função não venha a ser utilizada. Assim, um ponto e vírgula (;) inesperado em meio a um dado de comando passado para o Bash deveria levantar suspeitas, já definições de funções inesperadas costumam não ter importância. Contudo, devido ao shellshock, o Bash pode ser enganado de forma a rodar comandos especificados dentro da definição de uma função, ao invés de simplesmente armazená-los.

O bug se trata de uma vulnerabilidade de Remote Code Execution (RCE), que significa que pode ser explorado por alguém que ainda não está logado em seu sistema. Isso permite que um atacante remoto o envie texto que será repassado ao Bash como se fossem dados inofensivos, mas esses dados serão processados como se fossem código.

Devo me desesperar com o Shellshock?

Bem, considerando que o bug está por aí há 22 anos e a grande maioria dos servidores espalhados no mundo rodam sobre UNIX e Linux, a quantidade de sistemas que precisam ser atualizados é gigantesca. Soma-se isso ao leque de possibilidades que o bug permite (devido ao shell) e ao fato de, agora, ele ser publicamente conhecido e temos uma tradicional “Corrida Maluca” entre Hackers e analistas.

Embora ainda não haja um patch de correção definitivo para o problema como um todo, Schouwenberg, da Kaspersky, disse a Wired que é importante que administradores de sistema apliquem o patch inicial. Mesmo não se tratando da cura para o problema, o patch corrige e impede os exploits divulgados até agora.

Macbooks também estão vulneráveis ao Shellshock

Se você é um usuário final, é importante saber que MacBooks também estão vulneráveis ao Shellshock bash, visto que os sistemas operacionais da Apple para desktops e laptops são baseados em UNIX. Além do mais, sistemas baseados em UNIX também estão presentes em boa parte dos roteadores caseiros e outros dispositivos tecnológicos como webcams, câmeras digitais e eletromésticos inteligentes. Computadores rodando Windows não são diretamente afetados pelo bug.

Como identificar se fui afetado pelo Shellshock?

O CanalTech publicou uma dica simples, de Mark James da ESET, para identificar se seu sistema está afetado pelo bug.

No shell, digite a linha de comando abaixo:

env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”

Caso o sistema esteja vulnerável, o comando irá retornar a saída:

vulnerable

this is a test

 

Já sistemas corrigidos irão retornar o seguinte:

bash: warning: x: ignoring function definition attempt

bash: error importing function definition for ‘x’

this is a test

Cliente InfoLink pode ficar tranquilo

Agora, se você é cliente de hospedagem Infolink, pode ficar um pouco mais tranquilo. Nossa equipe está acompanhando todos os eventos relacionados ao bug e todos os servidores em nossa infraestrutura interna já receberam o patch inicial de correção.

A Sophos, nossa fornecedora de appliances de segurança também já realizou uma declaração oficial relatando que seus produtos não são afetados devido a forma como tratam a entrada de comandos de usuário em sua própria instância do Bash, mas que pretendem aplicar a correção em todas as suas versões de Bash assim que o patch completo estiver disponível.

Leia também