Em 24 de setembro de 2014, uma vulnerabilidade GNU Bash, referido como Shellshock ou “Bug Bash”, foi divulgado. Em suma, a vulnerabilidade permite que atacantes remotos para executar código arbitrário dadas certas condições, passando seqüências de código seguintes atribuições de variáveis de ambiente. Por causa do estado onipresente do Bash entre Linux, BSD, e distribuições Mac OS X, muitos computadores são vulneráveis a Shellshock; todas as versões festança sem correção entre 1,14 através 4.3 (ou seja, todos os lançamentos até agora) estão em risco.
A vulnerabilidade pode ser explorada Shellshock em sistemas que estão executando serviços ou aplicações que permitem que usuários remotos não autorizados para atribuir variáveis de ambiente Bash. Exemplos de sistemas exploráveis incluem o seguinte:
Servidores HTTP Apache que usam scripts CGI (via mod_cgi e mod_cgid) que são escritos em Bash, ou lançar a subcamadas Bash
Alguns clientes DHCP
Servidores OpenSSH que usam a capacidade ForceCommand
Vários serviços expostos à rede que usam Bash
A descrição detalhada do bug pode ser encontrada em CVE-2014-6271 e CVE-2014-7169.
Porque a vulnerabilidade Shellshock é muito difundida – mais ainda do que o bug OpenSSL Heartbleed – e particularmente fáceis de explorar, é altamente recomendável que os sistemas afetados estão devidamente atualizados para corrigir ou atenuar a vulnerabilidade o mais cedo possível. Vamos mostrar-lhe como testar se as suas máquinas são vulneráveis e, se forem, como atualizar Bash para remover a vulnerabilidade.
Nota: Apenas uma “correção incompleta” para a vulnerabilidade foi liberado. Como tal, recomenda-se a atualizar suas máquinas que rodam Bash imediatamente, e volte para atualizações e uma correção completa.
Checando vulnerabilidade do sistema
Em cada um dos sistemas que executam Bash, você pode verificar se há vulnerabilidade Shellshock, executando o seguinte comando no servidor:
env VAR='() { :;}; <span class="highlight">echo Bash is vulnerable!</span>' bash -c "echo Bash Test"
Caso contrário, se a sua saída não inclui a carga útil do atacante simulado, ou seja, “Bash is vulnerable” não é impresso como saída, a sua versão do bash não é vulnerável. Pode ser algo como isto:
bash: warning: VAR: ignoring function definition attempt bash: error importing function definition for `VAR' Bash Test
Teste em sites remotos:
Se você simplesmente quer testar sites ou scripts CGI específios que estão vulneráveis, use este link: Bash vulnerabilidade CVE-2014-6271 ferramenta Test ‘ShellShock’.
Basta digitar o URL do script CGI ou site que você deseja testar e enviar.
Corrigindo Vulnerabilidade: Atualizando o Bash
A maneira mais fácil de corrigir a vulnerabilidade é usar o gerenciador de pacotes padrão para atualizar a versão do Bash. As subseções a seguir cobrir atualização Bash em várias distribuições Linux.
Redhat
yum update bash
Debian
apt-get update && sudo apt-get install --only-upgrade bash
Certifique-se que todos seus servidores esteja atualizado para não ter um susto a qualquer momento.