Apesar do alarmismo, a recém divulgada vulnerabilidade no Bash é muito preocupante, pois pode afetar todos os sistemas Unix que tenham o shell Bash (que é o shell default no Linux e OS X) - ou seja, a quantidade de máquinas vulneráveis é potencialmente gigantesca.
O Bash ShellShocker (CVE-2014-6271), ou simplesmente "Shellshock", é uma vulnerabilidade no Bash, um interpretador de comandos ("shell") muito utilizado nos sistemas Unix. Ela explora a forma em que o bash processa as variáveis de ambiente, e pode ser acionada em qualquer situação em que um serviço executa um shell (o bash) direta ou indiretamente - tais como no sshd do OpenSSH, nos módulos mod_cgi e mod_cgid no servidor Apache, ou scripts executados por clientes DHCP. Por isso, esta vulnerabilidade pode ser explorada remotamente via HTTP, sem necessidade de se autenticar no site ou no servidor!
O Bash permite que uma variável de ambiente seja atrelada a uma função, o que é definido quando a variável começa com "() {" (abre e fecha parêntesis, seguido de abre chaves). Mas a vulnerabilidade acontece porque o Bash não pára de executar esta variável quando chega no fim da definição (no fecha chaves). Assim, uma variável criada como no exemplo abaixo irá executar o script indicado após a definição da variável VAR.
VAR=() { qualquercoisa; }; scriptmalicioso
A exploração remota de um sistema vulnerável é relativamente trivial, diversos exploits estão disponíveis, já tem módulo para o Metasploit, já tem vírus explorando a vulnerabilidade, e já foram identificadas tentativas de atacar servidores vulneráveis.
Para piorar, o patch que surgiu inicialmente era incompleto e deu origem a outra vulnerabilidade, batizada de CVE-2014-7169. Nada bom, né?
Atualização (06/10): O Shellshock já tem 6 vulnerabilidades associadas a ele: CVE-2014-6271, CVE-2014-7169, CVE-2014-7186, CVE-2014-7187, CVE-2014-6277 e CVE-2014-6278.
Além de afetar todos os tipos e distribuições de servidores Unix (incluindo Linux e OS X), não custa lembrar que o Unix é muito utilizado não só em servidores e desktops, mas também em diversos tipos de appliances e equipamentos, tais como dispositivos de rede, impressoras e equipamentos de segurança. Até mesmo sistemas de câmeras de monitoração, sistemas embarcados e equipamentos domésticos que fazem parte da Internet das Coisas (“Internet of Things”) podem estar vulneráveis (se utilizarem Linux + bash). Essa grande variedade de sistemas vulneráveis acontece porque o Linux é um sistema operacional muito difundido e muito utilizado por diversos fabricantes de equipamentos.
Para saber se o seu servidor está vulnerável, basta rodar um teste muito simples na linha de comando, conforme sugerido pelo The Register:
env X="() { :;} ; echo busted" /bin/sh -c "echo completed"Ou melhor:
env X="() { :;} ; echo vulneravel" /bin/sh -c "echo teste"Se aparecer a palavra "busted" ou "vulneravel", então você está em maus lençois...
Os principais fabricantes de segurança já estão correndo para lançar atualizações de seus produtos, incluindo assinaturas para IDS/IPS e scans de vulnerabilidades. Além disso, todos tem que correr para atualizar o bash em seus servidores,
Para saber mais:
- Siga os links indicados acima ;)
- Veja o post no blog do Sandro Suffert: "Bash Critical Bug - Patch Now"
- O blog TroyHunt publicou um ótimo overview
- Blog da RedHat sobre a vulnerabilidade
- Reportagem da Info
- Post no blog da SANS com alguns exemplos de exploits
- A Cloudfare escreveu um post no seu blog descrevendo como o ShellShock tem sido utilizado para atacar servidores web.
Um comentário:
Anchises, matéria completa! Obrigado pela disposição das explicações. Parabéns!
Realmente é um problema bem sério e crítico, ao meu ver foi surpreendente encontrar muitas pessoas correndo atrás de atualizar seu servidor conforme comentários de outros sites e no próprio Facebook. Parece que os Admins estão mostrando mais serviço e valorizando a área.
Postar um comentário