Configurazione firmware
Scrivere sul BIOS è un'operazione privilegiata, fatta solo dal superutente. Molti BIOS tentano di impedirlo, ad esempio bloccando il bit di scrittura SPI e limitando la capacità di SMM di interagire con il BIOS. Sfortunatamente, ci sono tanti modi per modificare il BIOS che molti (più?) Fornitori di firmware non bloccano adeguatamente la configurazione, permettendo al superutente di modificarlo. Se un determinato sistema ha o meno un BIOS vulnerabile può essere determinato utilizzando il framework CHIPSEC . Esamina il sistema per errori di configurazione comuni e li segnala, insieme alle implicazioni. Riporterà se tutti i bit di blocco richiesti sono impostati all'avvio. In molti casi semplicemente non lo sono.
Questo non è necessariamente sufficiente per proteggere contro un utente malintenzionato con accesso privilegiato. Un attaccante sufficientemente avanzato, anche se non può modificare il BIOS, può ancora essere in grado di modificare ROM opzioni o anche firmware del dispositivo di archiviazione . Per lo meno, potrebbero essere in grado di danneggiare fisicamente il computer scrivendo ripetutamente su memoria non volatile sensibile alla scrittura come NVRAM. Ma indipendentemente dagli altri rischi rimanenti, il primo passo è bloccare il BIOS, o almeno determinare se è bloccato.
Inoltre, le attività privilegiate hanno accesso a interfacce di basso livello sul sistema. C'è stato un aumento nella ricerca sulla sicurezza del firmware ultimamente che ha dimostrato che, anche con tutti i blocchi configurati correttamente, la pura complessità e la difficoltà nel patching dei sistemi rende i bug pervasivi. Questo può manifestarsi semplicemente come modi per aggirare la sicurezza del firmware, o addirittura modi per ottenere ancora più privilegi .
Avvio misurato
Molti sistemi moderni sono dotati di Intel BootGuard , una tecnologia che consente a un BIOS firmato di essere verificato dal chipset fisico stesso prima dell'avvio. Mentre è non perfetto , tenta di impedire l'esecuzione del firmware non firmato, anche se il firmware è in grado di essere modificato. Ciò richiede un sistema moderno che è stato pre-assemblato da un OEM. Se questo non è il caso, è possibile utilizzare un TPM per verificare l'integrità del BIOS, avvisandoti se ci sono state modifiche.
BootGuard funziona firmando digitalmente il BIOS. La chiave utilizzata per la verifica viene masterizzata nel PCH in fase di assemblaggio dall'OEM. All'avvio del sistema, la firma del BIOS viene verificata dalla chiave pubblica. Un utente malintenzionato non è in grado di modificare questa chiave pubblica poiché è stata scritta su fusibili OTP (programmabili una sola volta).
Il TPM funziona in modo leggermente diverso. Un bit di codice di sola lettura nel BIOS chiamato CRTM invia una copia del BIOS al TPM, che lo blocca. Ciò accade quindi con il resto della configurazione del sistema, ad esempio le impostazioni di avvio, le ROM opzionali e l'MBR. Se tutti questi hash corrispondono al valore previsto, il TPM annulla un valore segreto che è stato memorizzato in modo sicuro. Questo valore può essere una chiave di crittografia necessaria per completare l'avvio oppure può essere un valore segreto noto solo a te, in modo tale che un utente malintenzionato, anche uno che può modificare il contenuto dello schermo, non possa impersonare un TPM non sealed.
Sommario
Non è sempre possibile proteggere la scrittura in modo efficace, a prescindere dalle minacce hardware o software. In generale, se un utente malintenzionato dispone dell'accesso locale malevolo (anche se non fisico) alla sua macchina con privilegi elevati, in genere può fare tutto ciò che desidera. La soluzione migliore è impedire loro di ottenere privilegi elevati in primo luogo. Se ciò non è possibile, allora ci sono solo tre soluzioni:
- Verifica che il tuo BIOS blocchi tutti i bit necessari, come può essere determinato da CHIPSEC.
- Utilizza un sistema con Intel BootGuard supportato e abilitato.
- Utilizzare un TPM per fornire un avvio misurato. Questo non è sempre pratico.