Defendendo-se contra a empregada do mal, como lidar com a remoção da partição / boot

11

Ao usar a criptografia de disco completo LUKS, como você se protegeria contra empregadas domésticas ?

O ataque de empregada doméstica maléfica ocorre quando alguém obtém acesso físico ao seu computador enquanto você estiver ausente e compromete a partição não criptografada / de inicialização para capturar sua senha do FDE na próxima vez que você inicia o computador

Uma das soluções é deixar sua partição / boot em um pendrive que esteja sempre com você (a empregada não pode acessá-la), mas qual sistema de arquivos devo usar e como configurar meu sistema para lidar com a remoção do pendrive (e, portanto, a própria partição / boot)?

Estou usando o CentOS, mas respostas genéricas e não agnósticas são bem-vindas. Obrigado.


fonte

Respostas:

5

Finalmente descobri. Isso ainda parece muito hacky e sujo, porque o sistema nunca sabe que /boottalvez não esteja montado e você precisará montá-lo manualmente antes de fazer qualquer coisa que possa ser gravada (pense em atualizações do sistema etc.), mas fora isso, ele funciona perfeitamente .

  • prepare sua unidade flash com uma única partição com o sinalizador de inicialização definido. Você pode executá shred -n 1 -v /dev/sdX-lo para apagá-lo completamente, incluindo quaisquer setores de inicialização anteriores; Uma vez feito isso, execute fdiskpara criar uma partição e mkfsseu sistema de arquivos de sua escolha.
  • monte sua unidade flash em algum lugar, /mnt/bootou até /newbootfuncionará bem.
  • mover sobre tudo, desde /boota unidade flash com mv /boot/* /newboot.
  • edite /etc/fstabe altere o UUID da partição de inicialização original (ou crie uma entrada, se não houver) para corresponder à da sua unidade flash. Você pode obter o UUID com lsblk -o name,uuid. Adicione também a noautoopção para que a unidade não seja montada automaticamente para poder removê-la assim que o sistema iniciar a inicialização (depois que o kernel estiver carregado) sem arriscar corromper o FS nele.
  • desmonte a partição de inicialização original e a unidade flash ( umount /boot && umount /newboot) e monte a unidade flash; se sua entrada do fstab estiver correta, você pode simplesmente executar mount /boote ele será montado automaticamente com base no UUID especificado no fstab.
  • regenere a configuração do seu carregador de inicialização para refletir os UUIDs e a posição "física" da nova partição. Para o GRUB, a unidade flash aparecerá realmente como o primeiro disco rígido do computador ( hd0). Se você estiver satisfeito com o uso dos scripts de configuração padrão do GRUB fornecidos pela maioria das distribuições, é possível executar grub-mkconfig -o /path/to/grub.cfge ele gerará o arquivo de acordo com as partições atualmente montadas e / ou o fstab. Observe que, para o CentOS 7, o correto grub.cfgestá realmente localizado em /boot/grub2/grub.cfg.

Ao executar qualquer operação que possa acessar a partição de inicialização, conecte seu pendrive e execute mount /boot. Uma vez feito, você pode executar umount /boot. Observe que o último comando pode levar alguns instantes para ser concluído porque está liberando os buffers para o disco (o disco em si é lento, portanto o kernel armazena em buffer algumas operações de gravação para acelerar as coisas).


fonte
Não é nada sujo, é a maneira mais óbvia de fazer isso. Obrigado por escrever!
dbanet 25/09/16
0

Outra abordagem para esse problema específico é usar o TPM para armazenar uma chave de criptografia, mas a defesa depende do usuário para torná-la eficaz. Uma solução rudimentar baseada em RHEL7 é o tpm-luks ( https://github.com/GeisingerBTI/tpm-luks ).

O modo como funciona é na inicialização, cada etapa do processo de inicialização mede a próxima e armazena essa medida nas PCRs no TPM. Após a conclusão do processo de inicialização, o tpm-luks verifica o status dos PCRs em relação a uma configuração "conhecida". Se em uma configuração "conhecida", o TPM desmarcará a chave LUKS e o tpm-luks passará esses dados para desbloquear a partição LUKS raiz.

Como tudo o que é importante é medido com um hash criptográfico, não há como uma empregada do mal substituir seu GRUB / kernel / ramdisk para coletar nefasta sua senha do FDE. Como um bônus adicional, você não precisa de uma senha FDE! Em teoria, você poderia remover completamente a senha legível por humanos e confiar inteiramente no tpm-luks, mas se você seguir esse caminho, provavelmente é uma boa idéia armazenar o cabeçalho LUKS e mantê-lo como backup.

Como eu mencionei, isso requer alguma diligência no usuário. Se você deixou o computador sem vigilância e recebe uma solicitação de senha, provavelmente é uma má idéia digitá-lo até que você faça algumas investigações. Nesse ponto, você deve inicializar em um ambiente de CD ao vivo e verificar se há um erro no tpm-luks ou se a /bootpartição foi realmente alterada. Você ainda está deixando a /bootpartição não criptografada, mas se algo importante for alterado, o disco principal nunca será descriptografado.

John Wallace
fonte