Verificare manomissione MBR e partizione /boot

Questo è per i paranoici o per chi ha veramente bisogno di essere sicuro che nessuna ha manipolato (per esempio installando un keylogger) la partizione di /boot o il MBR (avendo accesso fisico alla macchina) e ha già tutto il disco criptato. Il primo script crea i due checksum per il MBR e della partizione /boot.
Per sicurezza la partizione /boot non dovrebbe essere anche mai montato all’avvio ma solo quando si aggiorna il kernel.
Ovviamente va eseguito nuovamente dopo ogni aggiornamento dei kernel. Sostituire il nome del utente in entrambi e eseguire il primo da root o con sudo.
##Boot_Integrity_Update.sh #Controllo filesystem di /boot umount /boot e2fsck /dev/sda1 # creazione della directory per gli shasums mkdir -p /home/utente/.boot_integrity # creazione di immagine del settore boot dd if=/dev/sda of=/home/utente/.boot_integrity/bootsectorimage bs=512 count=1 #salva shasum del settore boot in ~/.boot_integrity shasum /home/utente/.boot_integrity/bootsectorimage > /home/utente/.boot_integrity/bootsector #pulizia rm /home/utente/.boot_integrity/bootsectorimage #salva shasum della partizione boot in ~/.boot_integrity shasum /dev/sda1 > /home/utente/.boot_integrity/bootpartition
Il secondo script paragona i valori salvati in precedenza con quelli attuali. Ogni modifica dell’initramd o del kernel o altre modifiche fatte in /boot o nel MBR vengono segnalati con un avviso.
#! /bin/bash xmessage -c -timeout 2 "Controllo modifiche file di boot.." # creazione hash 512 B boot sector mkdir -p /tmp/booted dd if=/dev/sda of=/tmp/booted/bootsectorimage bs=512 count=1 shasum /tmp/booted/bootsectorimage > /tmp/booted/bootsector rm /tmp/booted/bootsectorimage # creazione hash per partizione /boot shasum /dev/sda1 > /tmp/booted/bootpartition # Imposta variabili per i hash SECTORIMAGE=$(head -c 32 /tmp/booted/bootsector) PARTITION=$(head -c 32 /tmp/booted/bootpartition) # Imposta variabili per hash "buoni" KNOWNSECTORIMAGE=$(head -c 32 /home/utente/.boot_integrity/bootsector) KNOWNPARTITION=$(head -c 32 /home/utente/.boot_integrity/bootpartition) # Paragona i hash if test $SECTORIMAGE != $KNOWNSECTORIMAGE ; then xmessage -c “WARNING-BOOT SECTOR HASH MISMATCH-a password logger may be present in boot loader “ else xmessage -c -timeout 2 "MBR SECTOR CHECK OK" fi if test $PARTITION != $KNOWNPARTITION; then xmessage -c "WARNING-BOOT PARTITION HASH MISMATCH-a password logger may be present in bootloader stages, kernel or initramfs" else xmessage -c -timeout 2 "PARTZIONE BOOT CHECK OK" fi exit 0
[da qui]