Bash ShellShock: muito trabalho para os SysAdmins esta semana

Se você  Administrador de Sistemas e nos últimos dias não esteve dando uma volta em outro planeta garantidamente sabe que o bash, que é o shell padrão na maioria das distribuições Linux apresentou uma falha e por sua vez, deixou vulnerável boa parte das máquinas do planeta.

A falha começou a ser divulgada esta semana e eu infelizmente não tive tempo para publicar isto aqui no novo blog. Logicamente antes tarde do que nunca.

O bug foi divulgado esta semana e ao que parece, ele está presente em todas as versões do bash dos últimos 20 anos ( exceto logicamente se seu bash foi atualizado após a descoberta ).  Como é uma falha antiga é bem possível que muita gente já estivesse fazendo uso desta falha a muitos anos e ninguém nem havia se dado conta disto.

ShellShock dando trabalho esta semana

ShellShock dando trabalho esta semana

Com o bug a coisa para um servidor pode ficar bem complicada, pois há a possibilidade de injetar comandos para execução dentro de servidor mesmo no caso do usuário não ter acesso ao shell. Isto pode ser feito manipulando os cabeçalhos de um servidor web , utilizando o protocolo SNMP ou ainda, pela autenticação de sessões SSH como outros vetores de ataque que já foram identificados por quem descobriu a falha e quem já está em processo de auditoria.

http-header = Cookie:() { :; }; ping -c 3 209.126.230.74

A injeção de comandos permite controlar um servidor remotamente, permitindo mover arquivos que não deveriam estar em pastas públicas para pastas públicas, alterar configurações, forçar o download de arquivos remotos  e muitas outras coisas.

Como é possível fazer o download de arquivos remotos é passível que esta seja uma falha muito utilizada pelos desenvolvedores de malware para aumentar sua rede de distribuição pois a falha é bem tranquila de ser explorada.

Boa parte dos distribuidores de sistemas operacionais já atualizaram seus pacotes do bash e é ótimo, caso você ainda não o tenha feito que após a atualização faça uma auditoria para ter certeza que seu sistema não foi comprometido.

ShellShock

ShellShock

Para verificar se seu computador pode estar comprometido pela falha é só usar a linha abaixo :

env x='() { :;}; echo vulneravel’ bash -c ‘false’

Caso receba o resultado vulneravel , você ainda está com o problema.

Shell ainda vulnerável com o ShellStock

Shell ainda vulnerável com o ShellStock

A distribuição Fedora que eu uso e a CentOS, bem como os Red Hats já soltaram suas atualizações. Pelo que pesquisei o Suse também já deu seus pulos.

Para atualizar se você tem um sistema operacional baseado em Red Hat é só fazer isto aqui :

$ sudo yum update bash -y 
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
adobe-linux-x86_64                                          |  951 B  00:00     
fedy                                                        | 1.6 kB  00:00     
google-chrome                                               |  951 B  00:00     
google-talkplugin                                           |  951 B  00:00     
home_garminplugin                                           | 1.6 kB  00:00     
infinality                                                  | 2.9 kB  00:00     
infinality-noarch                                           | 2.9 kB  00:00     
isv_ownCloud_desktop                                        | 1.6 kB  00:00     
isv_ownCloud_devel                                          | 1.6 kB  00:00     
rpmfusion-free-updates                                      | 3.3 kB  00:00     
rpmfusion-nonfree-updates                                   | 3.3 kB  00:00     
trillian                                                    | 2.9 kB  00:00     
updates/20/x86_64/metalink                                  | 8.4 kB  00:00     
updates                                                     | 4.9 kB  00:00     
http://mirror.clarkson.edu/fedora/linux/updates/20/x86_64/repodata/repomd.xml: [Errno -1] repomd.xml does not match metalink for updates
Trying other mirror.
updates                                                     | 4.9 kB  00:00     
updates/20/x86_64/primary_db   FAILED                                          
http://mirror.clarkson.edu/fedora/linux/updates/20/x86_64/repodata/1866a44b0a043b070dad9c5d98c5f0972e7b099b3fbd8f0b1649f3cfc737eec0-primary.sqlite.bz2: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
updates/20/x86_64/primary_db                                |  12 MB  00:10     
updates/20/x86_64/updateinfo   FAILED                                          
http://mirror.clarkson.edu/fedora/linux/updates/20/x86_64/repodata/e0dc589f593bbeee34f4db709af8fdeb08f1a55007143371e06b81f0c065215a-updateinfo.xml.gz: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
updates/20/x86_64/pkgtags      FAILED                                           
http://mirror.clarkson.edu/fedora/linux/updates/20/x86_64/repodata/f6b20a572d826b1ad3ec86df5bff8f5d6f7860757bb71eaf3cd261e3b923cf00-pkgtags.sqlite.gz: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
(1/4): rpmfusion-nonfree-updates/20/x86_64/primary_db       | 108 kB  00:01     
(2/4): rpmfusion-free-updates/20/x86_64/primary_db          | 354 kB  00:03     
(3/4): updates/20/x86_64/updateinfo                         | 1.5 MB  00:02     
(4/4): updates/20/x86_64/pkgtags                            | 1.2 MB  00:04     
Loading mirror speeds from cached hostfile
 * fedora: mirrors.mit.edu
 * rpmfusion-free: mirror.pw
 * rpmfusion-free-updates: mirror.pw
 * rpmfusion-nonfree: mirror.pw
 * rpmfusion-nonfree-updates: mirror.pw
 * updates: mirror.clarkson.edu
Resolving Dependencies
--> Running transaction check
---> Package bash.x86_64 0:4.2.47-3.fc20 will be updated
---> Package bash.x86_64 0:4.2.48-2.fc20 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package       Arch            Version                   Repository        Size
================================================================================
Updating:
 bash          x86_64          4.2.48-2.fc20             updates          997 k

Transaction Summary
================================================================================
Upgrade  1 Package

Total download size: 997 k
Downloading packages:
Not downloading deltainfo for updates, MD is 2.7 M and rpms are 997 k
bash-4.2.48-2.fc20.x86_64.rpm  FAILED                                          
http://mirror.clarkson.edu/fedora/linux/updates/20/x86_64/bash-4.2.48-2.fc20.x86_64.rpm: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
bash-4.2.48-2.fc20.x86_64.rpm                               | 997 kB  00:03     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction (shutdown inhibited)
  Updating   : bash-4.2.48-2.fc20.x86_64                                    1/2 
  Cleanup    : bash-4.2.47-3.fc20.x86_64                                    2/2 
  Verifying  : bash-4.2.48-2.fc20.x86_64                                    1/2 
  Verifying  : bash-4.2.47-3.fc20.x86_64                                    2/2 

Updated:
  bash.x86_64 0:4.2.48-2.fc20                                                   

Complete!
[email protected] ~$ env x='() { :;}; echo vulnerável' bash -c "echo teste"
teste

Se você tem um servidor com Cpanel, nos testes que já fiz o próprio sistema já foi atualizado utilizando as tarefas que o próprio sistema executa.

Mas caso queira garantir digite o comando acima ou :

Logue no seu gerenciador do servdior (  WHM ) interface
Vá para  Home >> Software and click on Update System Software.
Clique em Proceed to update all software pending update.

Aguarde a finalização e está tudo ok 🙂

Espero ter ajudado e peço desculpas pela demora em postar sobre isto mas … realmente não foi uma semana muito tranquila.

Principalmente porque não estava com tanta facilidade para escrita nos últimos dias ( ou seja, branco total quando sentava para escrever qualquer coisa 🙂 )

Para saber mais sobre a falha tanto o Troy Hunt quanto o ErrataSec foram bem mais detalhistas que este meu post. Vale a pena, caso conheça inglẽs, dar uma olhada.