Uma vulnerabilidade no Grub 2 foi encontrada. Versões 1.98 até a 2.02 são afetadas. A vulnerabilidade pode ser explorada em determinadas circunstâncias, permitindo que atacantes, com acesso à máquina, possam burlar qualquer tipo de autenticação (senhas simples ou hash) usada no Grub. E assim, o atacante pode assumir o controle do computador. Grub2 é o bootloader mais utilizado nos sistemas Linux, incluindo alguns sistemas embarcados. Isto resulta num número incalculável de dispositivos afetados.

A vulnerabilidade CVE-2015-8370 – Grub2 Authentication Bypass 0-Day, publicada em 14/12/15 por Hector Marco e Ismael Ripoll professores da Universidade Politécnica de Valência – Espanha, mostra que ela pode ser usada para obter o shell do Grub rescue e, por exemplo, conseguir carregar um kernel personalizado e initramfs (por exemplo, a partir de um USB) e, em seguida, a partir de um ambiente mais confortável, copiar o disco completo ou instalar um rootkit.

Contextaulizando

Quando você adota algum mecanismo de segurança no Grub 2, conclui-se que você “está de livre” de qualquer vulnerabilidade. Contudo, com essa publicação da falha, mesmo com algum mecanismo de segurança você está sujeito à ter sua máquina/servidor comprometido.

Sendo assim, mesmo que o atacante precise ter acesso físico a máquina, é importante que você verifique se a versão do seu Grub está comprometido.

Estou vulnerável?

Primeiramente, para checar a versão do Grub; execute:

$ grub-install –version

Conforme publicação, para verificar rapidamente se o seu sistema está vulnerável, quando o Grub pedir-lhe a senha de segurança, pressione a tecla “Backspace 28 vezes” (Back to 28). Se sua máquina reinicializar ou se você tiver acesso ao shell Grub rescue; seu Grub está comprometido.

Qual impacto?

Um invasor que explorar com êxito essa vulnerabilidade irá obter o shell do Grub rescue. Assim, ele poderá:

se autenticar sem precisar conhecer nenhum nome de usuário/senha válido; tendo acesso total ao shell.

carregar um kernel personalizado e initramfs (por exemplo, a partir de um USB) e, em seguida, a partir de um ambiente mais confortável, copiar o disco completo ou instalar um rootkit.

destruir todos os dados incluindo o próprio grub. Mesmo no caso em que o disco esteja cifrado o atacante pode substituí-lo, causando uma negação no serviço (DoS).

É possível resolver?

Foi publicado um patch, para o GRUB 2.02, que tenta corrigir a falha – [ 0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch ].

Para aplicá-lo, execute os comandos abaixo:

$ git clone git://git.savannah.gnu.org/grub.git grub.git

$ cd grub.git

$ wget http://hmarco.org/bugs/patches/0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch

$ git apply 0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch

MAIS INFORMAÇÕES

Detalhes técnicos da vulnerabilidade