4.2. Segurança do BIOS e do Gestor de Início

A proteção da senha para o BIOS (ou componente equivalente) e para o gestor de início pode impedir usuários não autorizados, que tenham acesso físico aos seus sistemas, de inicializar a máquina com mídia removível ou acessar root através do modo de usuário simples. Mas as medidas de segurança a tomar para proteger o sistema de ataques deste tipo dependem da sensibilidade das informações que a estação de trabalho armazena e da localização da máquina.

Por exemplo: se uma máquina é usada em uma exposição ou feira e não contém informações delicadas, então não deve ser crítico impedir tais ataques. Entretanto, se um laptop de um funcionário com chaves SSH da rede corporativa for deixado nesta mesma feira sem a proteção de senhas, pode ocasionar uma violação de segurança severa com consequências para a empresa inteira.

Por outro lado, se a estação de trabalho estiver localizada em um lugar onde somente pessoas confiáveis e autorizadas têm acesso, então proteger o BIOS ou o gestor de início pode não ser necessário.

4.2.1. Senhas do BIOS

Veja a seguir as duas razões principais para proteger o BIOS de um computador com senhas[1]:

  1. Impedindo Alterações na Configuração do BIOS — Se um intruso tem acesso ao BIOS, pode configurá-lo para ser desligado a partir de um disquete ou CD-ROM. Isto possibilita que ele entre em modo de recuperação ou de usuário simples, que por sua vez permite a ele semear programas corruptos no sistema ou copiar dados sensíveis.

  2. Impedindo a Inicialização do Sistema — Alguns BIOSes permitem que você proteja o processo de inicialização da máquina com senha. Quando ativado, um atacante é forçado a inserir uma senha antes do BIOS lançar o gestor de início.

Como os métodos para definir uma senha para o BIOS variam de acordo com o fabricante do computador, consulte o manual de seu computador para obter instruções específicas.

Se você esquecer a senha do BIOS, ela pode ser restaurada com jumpers na placa-mãe ou desligando a bateria CMOS. Por esta razão, é aconselhável trancar o compartimento do computador, se possível. Não obstante, consulte o manual do computador ou da placa-mãe antes de tentar este procedimento.

4.2.1.1. Protegendo Plataformas Não-x86

Outras arquiteturas usam programas diferentes para executar tarefas de nível baixo, parecidas àquelas do BIOS em sistemas x86. Por exemplo: computadores baseados no Intel® Itanium™ usam a shell EFI (Extensible Firmware Interface).

Para instruções sobre a proteção através de senha a programas parecidos com o BIOS em outras arquiteturas, consulte as instruções do fabricante.

4.2.2. Senhas do gestor de Início

Veja a seguir as principais razões para proteger um gestor de início Linux com senha:

  1. Impedindo Acesso ao Modo de Usuário Simples — Se um atacante puder iniciar em modo de usuário simples, ele se torna o usuário root.

  2. Impedindo Acesso ao Console do GRUB — Se a máquina utiliza GRUB como seu gestor de início, um atacante pode usar a interface de edição do GRUB para alterar sua configuração ou para coletar informações usando o comando cat.

  3. Impedindo Acesso a Sistemas Operacionais Não-Seguros — Se for um sistema de boot duplo, um atacante pode selecionar um sistema operacional na hora da inicialização, tal como o DOS, que ignora controles de acesso e permissões de arquivo.

Há dois gestores de início distribuídos com o Red Hat Enterprise Linux para a plataforma x86, GRUB e LILO. Para uma visão detalhada de cada um destes gestores de início, consulte o capítulo entitulado Gestores de Início (Boot Loaders) no Guia de Referência do Red Hat Enterprise Linux.

4.2.2.1. Senha Protegendo o GRUB

Você pode configurar o GRUB para resolver as primeiras duas questões listadas na Seção 4.2.2 adicionando uma diretiva de senha ao seu arquivo de configuração. Para fazer isso, primeiro decida a senha, abra uma janela de comandos, logue-se como root e digite:

/sbin/grub-md5-crypt

Quando solicitada, digite a senha do GRUB e pressione [Enter]. Isto retornará um hash MD5 da senha.

Em seguida, edite o arquivo de configuração do GRUB /boot/grub/grub.conf. Abra o arquivo e, abaixo da linha timeout na seção principal do documento, adicione a seguinte linha:

password --md5 <password-hash>

Substitua <password-hash> pelo valor retornado pelo /sbin/grub-md5-crypt[2].

Na próxima vez que inicializar o sistema, o menu do GRUB não deixará você acessar o editor ou a interface de comando sem que pressione [p] seguida da senha do GRUB.

Infelizmente, esta solução não impede que um atacante inicialize em um sistema operacional não-seguro em um ambiente de boot duplo. Para isso, você precisa editar uma parte diferente do arquivo /boot/grub/grub.conf.

Procure pela linha title do sistema operacional não-seguro e adicione uma linha contendo lock logo abaixo dela.

Para um sistema DOS, a estrofe deve começar similarmente a:

title DOS
lock

AtençãoAtenção
 

Você deve ter uma linha password na seção principal do arquivo /boot/grub/grub.conf para que este método funcione apropriadamente. Caso contrário, um atacante poderá acessar a interface de edição do GRUB e remover a linha lock.

Para criar uma senha diferente para um kernel ou sistema operacional específico, adicione uma linha lock na estrofe, seguida de uma linha para senha.

Cada estrofe que você proteger com uma senha única deve começar com linhas similares ao exemplo seguinte:

title DOS
lock
password --md5 <password-hash>

4.2.2.2. Senha Protegendo o LILO

O LILO é um gestor de início bem mais simples que o GRUB e não oferece uma interface de comando, portanto um atacante não pode obter acesso interativo ao sistema antes do kernel ser carregado. No entanto, ainda há perigo de um atacante inicializar em modo de usuário simples ou iniciar em um sistema operacional não-seguro.

A proteção de senha para o LILO pode ser feita adicionando uma diretiva de senha na seção global de seu arquivo de configuração. Para fazer isso, abra uma janela de comando, logue-se como root e edite /etc/lilo.conf. Antes da primeira estrofe image adicione uma diretiva de senha similar a:

password=<password>

Na diretiva acima, substitua <password> pela senha do LILO.

ImportanteImportante
 

Quando editar o arquivo /etc/lilo.conf, você deve executar o comando /sbin/lilo -v -v para que as alterações tenham efeito. Se você configurou uma senha e ninguém, a não ser root, pode ler o arquivo, o LILO será instalado corretamente, mas o alertará que as permissões do arquivo de configuração estão incorretas.

Se você não quer uma senha global, pode adicionar a diretiva de senha a qualquer estrofe correspondente a qualquer kernel ou sistema operacional. Para fazer isso, adicione a diretiva da senha logo abaixo da linha image. Ao terminar, o início da estrofe protegida por senha se assemelhará a:

image=/boot/vmlinuz-<version>
        password=<password>

No exemplo anterior, substitua <version> pela versão do kernel e <password> pela senha do LILO para este kernel.

É possível permitir a inicialização de um kernel ou sistema operacional sem verificação de senha, enquanto impedir que usuários especifiquem argumentos sem uma senha. Para fazer isso, adicione a diretiva restricted na linha abaixo da linha da senha, dentro da estrofe. Esta estrofe começa similar a:

image=/boot/vmlinuz-<version>
        password=<password>
        restricted

Substitua <version> pela versão do kernel e <password> pela senha do LILO para este kernel.

Se você usar a diretiva restricted, deve também ter uma linha de senha dentro da estrofe.

AtençãoAtenção
 

O arquivo /etc/lilo.conf é legível por todos. Se você estiver protegendo o LILO com senha, é essencial permitir somente a root ler e editar o arquivo, já que todas as senhas são somente-texto. Para fazer isso, digite o seguinte comando como root:

chmod 600  /etc/lilo.conf

Notas

[1]

Como BIOSes de sistemas diferem entre fabricantes, alguns talvez não suportem proteção de senhas de nenhum tipo, enquanto outros podem suportar um tipo e outro não.

[2]

O GRUB também aceita senhas não-criptografadas, mas é recomendado usar a versão md5 para segurança adicional.