Como posso impedir que alguém obtenha acesso root através do bootloader?

7

No Ubuntu 10.10 posso logar como root sem a senha de root, substituindo ro quiet splash por rw init=/bin/bash . Como posso proteger minha máquina e desativar esse backdoor?

    
por torayeff 23.07.2011 / 07:17

1 resposta

13

Você precisa proteger várias coisas, pois deixar qualquer uma dessas portas abertas introduz uma porta (não é realmente um backdoor, já que está tudo bem documentado) de impacto semelhante. (Exceção: se na etapa 1 você puder proteger fisicamente o console também, não precisará fazer mais nada.)

  1. Proteja fisicamente o computador. Você deve impedir que os invasores desconectem o disco do computador e o conectem a outro computador que eles controlam, e a partir da redefinição do controle de acesso ao firmware.
  2. Proteja o processo de inicialização no BIOS do computador (ou outro firmware de inicialização) com uma senha (ou outra forma de controle de acesso). Verifique se o disco rígido interno é a única mídia de inicialização selecionada, para evitar que os invasores iniciem a partir de um CD ao vivo, USB ou outra mídia. Claro, bloqueie o acesso ao BIOS também, para que o invasor não possa alterar essa configuração.
  3. Proteja o carregador de inicialização para que a inicialização de qualquer coisa, exceto da linha de comando padrão, exija fornecer uma senha.

Os passos 1 e 2 são sobre o seu hardware e não sobre o sistema operacional, portanto, se você tiver problemas com eles, pergunte no Super User . Para o passo 3, o que fazer depende do seu bootloader (que você não indicou). O bootloader padrão no Ubuntu é Grub 2 .

Primeiro, gere um hash de senha com grub-mkpasswd-pbkdf2 .

Em seguida, declare um usuário e uma senha criando um arquivo executável (mod 755 ou 700) chamado /etc/grub.d/01_users (importa que o arquivo seja com 01 ) com esses conteúdos (onde grub.pbkdf2.….DEADBEEF é o que grub-mkpasswd-pbkdf2 produzido):

#!/bin/sh -e
## Declare users and passwords
cat <<EOF
set superusers="torayeff"
password_pbkdf2 torayeff grub.pbkdf2.sha512.10000.DEADBEEF
EOF

Somente superusuários autenticados podem editar entradas de menu ou inserir uma linha de comando. Outros usuários podem apenas inicializar entradas preparadas.

Se você quiser também restringir algumas entradas de inicialização ao usuário autenticado, substitua menuentry "name" por menuentry "name" --users "user1 user2" no lugar onde elas são geradas. As entradas para sua instalação do Linux, memtest86 e qualquer outro sistema operacional que você possa ter nessa máquina estão em /etc/grub.d/10_linux , /etc/grub.d/20_memtest86+ e /etc/grub.d/30_os-prober , respectivamente.

Quando você fizer alterações em /etc/grub.d , execute sudo update-grub antes de reinicializar.

    
por 23.07.2011 / 21:52