Proteggere il processo di avvio di Windows 10

Windows ha molte funzionalità per proteggerti dal malware e fa un ottimo lavoro. Fatta eccezione per le app che le aziende sviluppano e utilizzano internamente, tutte le app di Microsoft Store devono soddisfare una serie di requisiti per essere certificate e incluse in Microsoft Store. Il processo di certificazione esamina criteri diversi, tra cui la sicurezza ed è un mezzo efficace per impedire l'immissione di malware in Microsoft Store. Anche se un'app dannosa viene eseguita, Windows include una serie di funzionalità di sicurezza che possono mitigare l'effetto. Ad esempio, le app di Microsoft Store sono applicazioni sandbox e non dispongono dei privilegi necessari per accedere ai dati utente o modificare le impostazioni di sistema.

Windows offre anche più livelli di protezione per le app desktop e i dati. Windows Defender Antivirus usa il rilevamento in tempo reale basato sul cloud per identificare e mettere in quarantena le app note come dannose. Windows Defender SmartScreen avvisa gli utenti prima di consentire loro di eseguire un'app non attendibile, anche se è riconosciuta come malware. Prima che un'app possa cambiare le impostazioni di sistema, l'utente dovrebbe concedere all'app privilegi amministrativi tramite il Controllo dell'account utente.

Questi componenti sono solo alcuni dei modi in cui Windows ti protegge dal malware. Tuttavia, queste funzionalità di sicurezza ti proteggono solo dopo l'avvio di Windows. Il malware moderno e i bootkit in particolare sono in grado di iniziare prima di Windows, ignorando completamente la sicurezza del sistema operativo e rimanendo nascosti.

L'esecuzione di Windows 10 o Windows 11 in un PC con supporto UEFI (Unified Extensible Firmware Interface) garantisce che l'avvio attendibile protegge il PC dal malware fin dal momento in cui lo si accende. Questa protezione continua fino a quando il software antimalware non assume il controllo. Se, per caso, il malware riesce a infettare il PC, non sarà in grado di rimanere nascosto. Avvio attendibile può verificare l'integrità del sistema nell'infrastruttura in modo che il malware non possa mascherarsi. Anche per i PC senza UEFI, Windows offre una sicurezza di avvio avanzata rispetto alle versioni precedenti di Windows.

Per iniziare, esaminiamo più da vicino i rootkit e il loro funzionamento. Di seguito, verrà illustrato come Windows può garantire la protezione.

La minaccia: rootkit

I rootkit sono un tipo sofisticato e pericoloso di malware. Vengono eseguiti in modalità kernel, usando gli stessi privilegi del sistema operativo. Poiché i rootkit hanno gli stessi diritti del sistema operativo e iniziano prima di esso, possono nascondere completamente se stessi e altre applicazioni. Spesso i rootkit fanno parte di un'intera famiglia di malware in grado di ignorare gli accessi locali, registrare le password e le pressioni dei tasti, trasferire file privati e acquisire dati crittografici.

Diversi tipi di rootkit si caricano nelle varie fasi del processo di avvio:

  • Rootkit del firmware. Questi kit sovrascrivono il firmware del sistema di input/output di base del PC o di altro hardware in modo che il rootkit possa iniziare prima di Windows.
  • Bootkit. Questi kit sostituiscono il bootloader del sistema operativo (il piccolo software che avvia il sistema operativo) in modo che il PC carichi il bootkit prima del sistema operativo.
  • Rootkit kernel. Questi kit sostituiscono una parte del kernel del sistema operativo in modo che il rootkit possa iniziare automaticamente al caricamento del sistema operativo.
  • Rootkit dei driver. Questi kit fingono di essere uno dei driver attendibili che Windows usa per comunicare con l'hardware del PC.

Le contromisure

Windows supporta quattro funzionalità per impedire il caricamento di rootkit e bootkit durante il processo di avvio:

  • Avvio protetto I PC con firmware UEFI e un modulo TPM (Trusted Platform Module) possono essere configurati per caricare solo i caricatori di avvio del sistema operativo attendibili.
  • Avvio sicuro. Windows controlla l'integrità di ogni componente del processo di avvio prima di caricarla.
  • Antimalware ad esecuzione anticipata (Early Launch Antimalware o "ELAM"). Antimalware ad esecuzione anticipata verifica tutti i driver prima che vengano caricati e impedisce il caricamento dei driver non approvati.
  • Avvio con misurazioni. Il firmware del PC registra il processo di avvio e Windows può inviarlo a un server attendibile in grado di valutare oggettivamente l'integrità del PC.

La figura 1 mostra il processo di avvio di Windows.

Screenshot che mostra il processo di avvio di Windows.

Figura 1. Avvio protetto, Avvio sicuro e Avvio con misurazioni bloccano il malware in ogni fase:

Avvio sicuro e Avvio con misurazioni sono possibili solo sui PC con UEFI 2.3.1 e un chip TPM. Fortunatamente, tutti i PC Windows 10 e Windows 11 che soddisfano i requisiti del programma di compatibilità hardware Windows hanno questi componenti e molti PC progettati per le versioni precedenti di Windows li hanno anche.

Le sezioni che seguono descrivono Avvio protetto, Avvio sicuro, Antimalware ad esecuzione anticipata e Avvio con misurazioni.

Avvio protetto

All'avvio di un PC, viene prima trovato il bootloader del sistema operativo. I PC senza avvio protetto eseguono qualsiasi bootloader si trova sul disco rigido del PC. Il PC non può stabilire se si tratta di un sistema operativo attendibile o di un rootkit.

Quando un PC con UEFI viene avviato, verifica innanzitutto che il firmware sia firmato digitalmente, riducendo il rischio di rootkit del firmware. Se l'avvio protetto è abilitato, il firmware esamina la firma digitale del bootloader per verificare che non sia stata modificata. Se il bootloader è integro, il firmware lo avvia solo se si verifica una delle seguenti condizioni:

  • Il bootloader è stato sottoscritto con un certificato attendibile. Per i PC certificati per Windows, il certificato Microsoft è attendibile.
  • L'utente ha approvato manualmente la firma digitale del bootloader. Questa azione consente all'utente di caricare sistemi operativi non Microsoft.

Tutti i pc con certificazione x86 per PC Windows devono soddisfare diversi requisiti relativi all'avvio protetto:

  • Devono avere Avvio protetto abilitato per impostazione predefinita.
  • Devono considerare attendibile il certificato microsoft (e quindi qualsiasi caricatore di avvio firmato da Microsoft).
  • Devono consentire all'utente di configurare Avvio protetto per considerare attendibili altri bootloader.
  • Devono consentire all'utente di disabilitare completamente Avvio protetto.

Questi requisiti consentono di proteggere l'utente dai rootkit, consentendo di eseguire qualsiasi sistema operativo desiderato. Hai tre opzioni per eseguire sistemi operativi non Microsoft:

  • Usare un sistema operativo con un bootloader certificato. Poiché tutti i PC Certificati per Windows devono considerare attendibile il certificato Microsoft, Microsoft offre un servizio per analizzare e firmare qualsiasi bootloader non Microsoft in modo che venga considerato attendibile da tutti i PC Certificati per Windows. Infatti, un bootloader open source in grado di caricare Linux è già disponibile. Per iniziare il processo di recupero di un certificato, passare a https://partner.microsoft.com/dashboard.
  • Configura UEFI per considerare attendibile il bootloader personalizzato. Tutti i PC Certificati per Windows consentono di considerare attendibile un bootloader non certificato aggiungendo una firma al database UEFI, consentendo di eseguire qualsiasi sistema operativo, inclusi i sistemi operativi fatti in casa.
  • Disattiva Avvio protetto. Tutti i PC Certificati per Windows consentono di disattivare l'avvio protetto in modo da poter eseguire qualsiasi software. Questa azione non consente tuttavia di proteggere l'utente dai bootkit.

Per impedire al malware di utilizzare in modo improprio queste opzioni, l'utente deve configurare manualmente il firmware UEFI per considerare attendibile un bootloader non certificato o per disattivare Avvio protetto. Il software non può modificare le impostazioni di avvio protetto.

Lo stato predefinito dell'avvio protetto ha un ampio cerchio di attendibilità, che può comportare l'attendibilità dei clienti nei componenti di avvio che potrebbero non essere necessari. Poiché il certificato DELLA CA UEFI di terze parti firma i bootloader per tutte le distribuzioni Linux, considerare attendibile la firma DELLA CA UEFI di terze parti nel database UEFI aumenta la superficie di attacco dei sistemi. Un cliente che intende solo considerare attendibili e avviare una singola distribuzione Linux considererà attendibili tutte le distribuzioni, molto più della configurazione desiderata. Una vulnerabilità in uno dei bootloader espone il sistema e mette il cliente a rischio di exploit per un bootloader che non intende mai usare, come illustrato nelle vulnerabilità recenti, ad esempio con il bootloader GRUB o ilrootkit a livello di firmware che interessano i componenti di avvio. I PC con core protetti richiedono che l'avvio protetto sia abilitato e configurato in modo da non considerare attendibile la firma della CA UEFI di terze parti, per impostazione predefinita, per fornire ai clienti la configurazione più sicura possibile dei PC.

Per considerare attendibili i sistemi operativi di avvio, come Linux, e i componenti firmati dalla firma UEFI, i PC con core protetti possono essere configurati nel menu BIOS per aggiungere la firma nel database UEFI seguendo questa procedura:

  1. Aprire il menu del firmware:
    • Avviare il PC e premere il tasto del produttore per aprire i menu. Tasti comuni usati: Esc, Delete, F1, F2, F10, F11 o F12. Nei tablet, i pulsanti comuni sono Volume su o Volume in giù. Durante l'avvio, è spesso presente una schermata che indica la chiave. Se non è presente, o se lo schermo passa troppo velocemente per visualizzarlo, controllare il sito del produttore.
    • In alternativa, se Windows è già installato, dalla schermata Di accesso o dal menu Start selezionare Alimentazione ( ) > tenere premuto MAIUSC mentre si seleziona Riavvia. Selezionare Risoluzione dei problemi opzioni > avanzate > Impostazioni firmware UEFI.
  2. Dal menu del firmware passare a Avvio protetto di sicurezza > e selezionare l'opzione per considerare attendibile la "CA di terze parti".
  3. Salvare le modifiche e uscire.

Microsoft continua a collaborare con i partner dell'ecosistema Linux e IHV per progettare funzionalità con privilegi minimi che consentono di mantenere la sicurezza e l'attendibilità opt-in solo per gli editori e i componenti attendibili.

Come la maggior parte dei dispositivi mobili, i dispositivi basati su Arm, ad esempio il dispositivo Microsoft Surface RT, sono progettati per l'esecuzione solo Windows 8.1. Di conseguenza, l'avvio protetto non può essere disattivato e non è possibile caricare un sistema operativo diverso. Fortunatamente, esiste un grande mercato di dispositivi con processore ARM progettati per l'esecuzione di altri sistemi operativi.

Avvio sicuro

L'avvio attendibile prende il controllo della posizione in cui termina l'avvio protetto. Il bootloader verifica la firma digitale del kernel di Windows prima di caricarla. Il kernel Windows, a sua volta, verifica tutti gli altri componenti del processo di avvio di Windows, inclusi i driver di avvio, i file di avvio e ELAM. Se un file è stato modificato, il bootloader rileva il problema e si rifiuta di caricare il componente danneggiato. Spesso, Windows può ripristinare automaticamente il componente danneggiato, ripristinando l'integrità di Windows e consentendo al PC di avviarsi normalmente.

Antimalware ad esecuzione anticipata

Poiché Avvio protetto ha protetto il bootloader e Avvio sicuro ha protetto il kernel di Windows, la successiva opportunità che il malware ha di eseguire l'avvio è infettando un driver di avvio non Microsoft. Le app antimalware tradizionali non iniziano fino a quando non sono stati caricati i driver di avvio, dando a un rootkit travestito da driver l'opportunità di lavorare.

Antimalware ad esecuzione anticipata può caricare un driver antimalware Microsoft o non Microsoft prima di tutte le applicazioni e di tutti i driver di avvio non Microsoft, continuando quindi la catena di attendibilità stabilita da Avvio protetto e Avvio sicuro. Poiché il sistema operativo non è ancora stato avviato e windows deve essere avviato il più rapidamente possibile, ELAM ha un'attività semplice: esaminare ogni driver di avvio e determinare se è presente nell'elenco dei driver attendibili. Se non è attendibile, Windows non lo carica.

Un driver ELAM non è una soluzione antimalware completa; che viene caricato più avanti nel processo di avvio. Windows Defender (incluso in Windows) supporta ELAM, così come diverse app antimalware non Microsoft.

Avvio con misurazioni

Se un PC dell'organizzazione è infettato da un rootkit, devi saperlo. Le app antimalware aziendali possono segnalare infezioni da malware al reparto IT, ma questo non funziona con i rootkit che ne nascondono la presenza. In altre parole, non è possibile considerare attendibile il client per indicare se è integro.

Di conseguenza, i PC infettati da rootkit sembrano integri, anche con l'antimalware in esecuzione. I PC infetti continuano a connettersi alla rete aziendale, offrendo al rootkit l'accesso a quantità elevate di dati riservati e consentendogli potenzialmente di diffondersi attraverso la rete interna.

L'avvio misurato funziona con il software TPM e non Microsoft in Windows. Consente a un server attendibile nella rete di verificare l'integrità del processo di avvio di Windows. Avvio con misurazioni usa la procedura seguente:

  1. Il firmware UEFI del PC archivia nel TPM un hash del firmware, bootloader, driver di avvio e tutto ciò che viene caricato prima dell'app antimalware.
  2. Al termine del processo di avvio, Windows avvia il client di attestazione remoto non Microsoft. Il server di attestazione attendibile invia al client una chiave univoca.
  3. Il TPM utilizza la chiave univoca per firmare digitalmente il log registrato dall'UEFI.
  4. Il client invia il log al server, possibilmente con altre informazioni di protezione.

A seconda dell'implementazione e della configurazione, il server può ora determinare se il client è integro. Può concedere al client l'accesso a una rete di quarantena limitata o alla rete completa.

La figura 2 illustra l'Avvio con misurazioni e il processo di attestazione remoto.

Screenshot che mostra il processo di attestazione remota e avvio misurato.

Figura 2. L'avvio misurato dimostra l'integrità del PC in un server remoto:

Windows include le interfacce di programmazione delle applicazioni per supportare l'avvio misurato. Tuttavia, per sfruttarne i vantaggi, sono necessari strumenti non Microsoft per implementare un client di attestazione remoto e un server di attestazione attendibile. Ad esempio, vedere gli strumenti seguenti di Microsoft Research:

L'avvio misurato usa la potenza di UEFI, TPM e Windows per offrire un modo per valutare in tutta sicurezza l'affidabilità di un PC client attraverso la rete.

Riepilogo

Avvio protetto, Avvio sicuro e Avvio con misurazioni creano un'architettura che è essenzialmente resistente ai bootkit e ai rootkit. In Windows, queste funzionalità hanno il potenziale per eliminare il malware a livello di kernel dalla rete. Con Windows è possibile considerare attendibile l'integrità del sistema operativo.