O que muda minha partição de inicialização e como evitá-la?

0

Como outra medida preventiva contra ameaças de segurança, escrevi um pequeno script que calcula o MBR e a soma de verificação de inicialização e depois a compara com a antiga. Enquanto o computador estiver funcionando, tudo bem, mas quando eu reiniciá-lo, a soma de verificação é alterada.

PERGUNTA - qual é a causa da mudança e como evitá-la?

Detalhes:

openSUSE 13.2, noatime para /boot set, a partição de inicialização é uma partição separada (não é apenas um diretório no sistema de arquivos raiz), a partição é desmontada logo após o login e é o primeiro passo antes do cálculo do a checsum.

O script:

#!/bin/sh

sudo umount /boot
# MBR
sudo dd if=/dev/sda bs=512 status=noxfer count=1 | sha1sum | diff bootcheck_mbr.sha1 -
MBR_RES=$?
# boot partition
sudo dd if=/dev/sda1 bs=1M status=noxfer | sha1sum | diff bootcheck_boot.sha1 -
BOOT_RES=$?

if [[ $MBR_RES -ne 0 ]] || [[ $BOOT_RES -ne 0 ]]
then
  kdialog --sorry "WARNING:\nBoot disk is changed." --title "BOOT CHECK" --geometry 0x0++300+400
else
  kdialog --title "Boot check" --passivepopup "The disk is unchanged." 25 --geometry 0x0++300+400
fi
    
por greenoldman 25.04.2015 / 13:18

1 resposta

1

# tune2fs -l $(df -P /boot | awk 'NR==2 {print $1}') | grep Last
Last mounted on:          /boot
Last mount time:          Mon Mar 30 10:40:08 2015
Last write time:          Mon Mar 30 10:40:08 2015
Last checked:             Mon Mar 30 10:40:01 2015

Cada vez que você monta sua partição de leitura-gravação, o último tempo de montagem é atualizado (pelo menos para os sistemas de arquivos ext2 / ext3 / ext4). Se você não quiser que isso aconteça, monte /boot somente leitura, exceto ao atualizar seu gerenciador de inicialização ou kernel.

O MBR normalmente não seria atualizado, exceto em uma atualização do gerenciador de inicialização (e nem sempre nessa época). Um motivo comum para as alterações do MBR é se você tiver um sistema de inicialização dupla e tiver configurado seu carregador de inicialização para gravar o último sistema inicializado para torná-lo o padrão da próxima vez ou fornecer instruções para reinicializar um sistema diferente (por exemplo, com grub-set-default ).

A quantidade de segurança obtida com essas verificações é mínima. Um invasor competente que tenha modificado o seu kernel faria com que o kernel informasse o conteúdo que você espera em /boot , você só seria capaz de dizer observando o sistema de fora.

    
por 25.04.2015 / 15:40