E 'possibile determinare se il BIOS è stato modificato tra due punti nel tempo?

9

È possibile determinare se il BIOS di un computer è stato modificato tra due punti nel tempo da quel computer mentre è in esecuzione?

Effettivamente mi piacerebbe essere in grado di raccogliere l'equivalente di snapshot hash crittografici del BIOS (o il più possibile) tramite il sistema operativo host locale (idealmente una risposta per Linux sarebbe ottima ma qualsiasi funzionerebbe) o tramite qualcosa come IPMI senza riavviare il computer.

So che c'è anche il problema di non essere in grado di fidarsi del computer stesso, ma sto solo cercando funzionalità di base.

Nota: non sto cercando di dimostrare che il computer non è stato spedito con un BIOS infetto o qualcosa semplicemente che non sono state apportate nuove modifiche tra qualcosa come 1pm e 3pm.

    
posta Trey Blalock 08.12.2015 - 23:08
fonte

3 risposte

4

Se la tua board è compatibile dovresti essere in grado di utilizzare flashrom con -r arg per eseguire il backup del BIOS in un file. È quindi possibile utilizzare md5, sha256, ecc per afferrare un hash che può essere successivamente confrontato.

//baseline.sh
//first make your baseline bios checksum with
flashrom -r ./bios.bios
sha256sum bios.bios > bios.checksum

//check.sh
//now periodically check again
flashrom -r ./bios.bios
sha256sum bios.checksum -c
//if your output looks like "bios.bios: FAILED" you have a problem.
    
risposta data 09.12.2015 - 00:30
fonte
3

Se il tuo sistema ha un TPM, puoi controllare le sue PCR per eventuali modifiche tra gli stivali del sistema. Le prime PCR sono state estese con hash di parti separate del BIOS, dovresti cercare alcuni documenti e vedere quali PCR vuoi usare per i tuoi controlli. Leggere PCR su Linux è solo questione di leggere i nodi dei dispositivi corretti sotto / sys, su Windows è un po 'più complicato e credo che avresti bisogno di scrivere un codice personalizzato per questo.

    
risposta data 09.12.2015 - 11:42
fonte
2

Nope.

Ci sono possibilità di leggere il BIOS e amp; checksum, ma un bios dannoso può facilmente intercettarlo. Quindi, mentre si controlla il checksum del BIOS e / o il TPM può mostrare qualcosa, un utente malintenzionato con una conoscenza sufficiente delle proprie misure di sicurezza può facilmente aggirare questo problema (e qualcuno avrà accesso illimitato al proprio hardware).

Tuttavia ...

Se il PC è sempre online (come verificato da un heartbeat a un secondo server), si può essere certi che il BIOS non sia stato proiettato sul lato hardware delle cose. Il flashing del BIOS in fase di esecuzione è probabilmente non banale finché l'utente malintenzionato non dispone dell'accesso root al server. Dovrai essere sicuro che il PC sia sempre online (ad es. Con pacchetti heartbeat specificati su IPSec e latenza richiesta inferiore a 10 ms).

Tieni presente che c'è no come sicuro al 100% .

    
risposta data 09.12.2015 - 12:37
fonte

Leggi altre domande sui tag