SAC è una funzionalità inerente al sistema operativo: tienilo a mente, questa è una funzionalità del sistema operativo che, se abilitata, bloccherà le app dannose o non affidabili. Questo è molto simile, probabilmente potremmo dire è lo stesso, ad AppLocker , ma immagina che MS sia quello che ha scritto le regole/politiche.
SAC ha tre possibili stati e solo uno di essi applicherà le azioni:
- Applica : verrà applicato il blocco di app dannose o non attendibili – Stato = 1.
- Valutazione : in questa modalità la funzione continuerà a valutare se il tuo sistema è un buon candidato per la modalità di applicazione della funzione – Stato = 2.
- Spento : la funzione è disabilitata. Una volta disabilitato, non può essere riattivato a meno che non si esegua una nuova installazione del sistema operativo – Stato = 0.
Microsoft considera un buon candidato qualcuno a cui la funzionalità “non si intrometterà troppo spesso”. Purtroppo MS non ci fornisce ulteriori informazioni per quanto riguarda la modalità di valutazione. La modalità di valutazione può commutare la funzione sullo stato Enforce o Off. Ma l’utente può sempre decidere di disabilitare la funzionalità (modello Opt-In) – Come accennato in precedenza, ciò implica non poterla abilitare nuovamente a meno che non si reinstalli il sistema operativo.
Se ci riferiamo alla documentazione Microsoft su SAC. Possiamo constatare che al momento non saranno consentite esclusioni. Non è possibile consentire a un’applicazione di ignorare SAC una volta che la funzionalità è in modalità di applicazione. Ciò significa che le app non affidabili o dannose non avranno modo di essere eseguite. D’altra parte, questo potrebbe anche bloccare alcune app legittime che non sono firmate o la sicurezza del cloud MS non ha una reputazione per loro.
Installazione SAC
Scopri come viene installato. Questa funzione richiede una nuova installazione per essere attivata. Se montiamo l’ISO per Build 22621 e navighiamo attraverso install.wim
la cartella contenente gli hive del registro, possiamo caricare l’hive SYSTEM nell’editor del registro. All’interno della CI\Policy
chiave troviamo il Valore VerifiedAndReputablePolicyState
impostato a 2 (Stato di valutazione).

Sempre all’interno della CI
chiave abbiamo la SubKey Protected
dove troviamo il seguente valore VerifiedAndReputablePolicyStateMinValueSeen
anch’esso impostato a 2.

Più avanti vedremo di più su come queste chiavi vengono usate per controllare lo stato attuale di SAC, e vedremo anche come i valori sotto la Protected
Sottochiave sono protetti per evitare manomissioni.
Prima di concludere questa sezione vediamo cosa succede in caso di aggiornamento del sistema operativo. Per applicarlo durante l’aggiornamento, possiamo vedere che l’ISO di installazione ha il codice seguente nel manifest di sostituzione per l’elemento della configurazione – [ISO]\sources\replacementmanifests\codeintegrity-repl.man
.
<addObjects>
<conditions>
<condition negation="Yes">MigXmlHelper.DoesObjectExist("Registry", "HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy [VerifiedAndReputablePolicyState]")</condition>
</conditions>
<object>
<location type="Registry">HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy [VerifiedAndReputablePolicyState]</location>
<attributes>dword</attributes>
<bytes>00000000</bytes>
</object>
</addObjects>
Durante l’aggiornamento del sistema operativo questo pezzo di codice verificherà se il valore del Registro di sistema HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy\VerifiedAndReputablePolicyState
esiste, in caso contrario verrà creato con lo stato SAC 0 (stato Off).
Oltre a questi due nuovi valori di registro, il sistema operativo verrà fornito con due nuovi file di criteri di integrità del sistema ( .cip
) all’interno della System32\CodeIntegrity\CiPolicies
cartella.
- PolicyGUID: applica la
{0283AC0F-FFF1-49AE-ADA1-8A933130CAD6}
policy SAC, attiva quando lo stato SAC è impostato per l’applicazione (1) - PolicyGUID: criterio
{1283AC0F-FFF1-49AE-ADA1-8A933130CAD6}
Eval SAC, attivo quando lo stato SAC è impostato su valutazione (2)
Utilizzando lo script CIPolicyParser di WDACTools, convertiamo entrambi i .cip
file nella loro .xml
rappresentazione. Dall’XML possiamo prendere le Regole delle Politiche per avere un’idea delle opzioni di queste Politiche. Sono impostate le seguenti regole: entrambi i file XML possono essere trovati nell’Appendice.
- Abilitato: UMCI
- Abilitato: autorizzazione del grafico di sicurezza intelligente
- Abilitato: attendibilità del codice dinamico in modalità sviluppatore
- Abilitato: Consenti criteri supplementari
- Abilitato: revocato scaduto come non firmato
- Abilitato: eredita criterio predefinito
- Abilitato: criterio di integrità del sistema non firmato
- Abilitato: menu delle opzioni di avvio avanzate
- Disabilitato: applicazione dello script
- Abilitato: politica di aggiornamento senza riavvio
- Abilitato: criterio di blocco di Windows condizionale
- Abilitato:Modalità di controllo (solo nella politica di valutazione SAC)
Infine, possiamo cercare all’interno della System32
cartella per trovare binari/moduli che utilizzano i valori di registro precedentemente menzionati.
