Consentire automaticamente le app distribuite da un programma di installazione gestito con Controllo app per le aziende

Nota

Alcune funzionalità di Controllo app per le aziende sono disponibili solo in versioni specifiche di Windows. Altre informazioni sulla disponibilità delle funzionalità di Controllo app.

Controllo app per le aziende include un'opzione denominata programma di installazione gestito che consente di bilanciare la sicurezza e la gestibilità quando si applicano i criteri di controllo delle app. Questa opzione consente di consentire automaticamente le applicazioni installate da una soluzione di distribuzione software designata, ad esempio Microsoft Configuration Manager (MEMCM) o Microsoft Intune.

Come funziona un programma di installazione gestito?

Il programma di installazione gestito usa una raccolta di regole speciale in AppLocker per designare i file binari considerati attendibili dall'organizzazione come origine autorizzata per l'installazione dell'applicazione. Quando viene eseguito uno di questi file binari attendibili, Windows monitora il processo del file binario (e tutti i processi figlio che avvia) e controlla i file scritti su disco. Durante la scrittura dei file, vengono contrassegnati come originati da un programma di installazione gestito.

È quindi possibile configurare Controllo app per considerare attendibili i file installati da un programma di installazione gestito aggiungendo l'opzione "Enabled:Managed Installer" ai criteri di Controllo app. Quando questa opzione è impostata, Controllo app verificherà la presenza di informazioni sull'origine del programma di installazione gestito per determinare se consentire o meno l'esecuzione di un file binario. Finché non sono presenti regole di negazione per il file binario, Controllo app consentirà l'esecuzione in base esclusivamente all'origine del programma di installazione gestito.

Considerazioni sulla sicurezza del programma di installazione gestito

Poiché il programma di installazione gestito è un meccanismo basato su euristica, non offre le stesse garanzie di sicurezza delle regole di autorizzazione o negazione esplicite. Il programma di installazione gestito è più adatto in cui gli utenti operano come utente standard e in cui tutto il software viene distribuito e installato da una soluzione di distribuzione software, ad esempio MEMCM.

Gli utenti con privilegi di amministratore o malware in esecuzione come utente amministratore nel sistema potrebbero essere in grado di aggirare la finalità dei criteri di Controllo app quando è consentita l'opzione del programma di installazione gestito.

Se un processo del programma di installazione gestito viene eseguito nel contesto di un utente con privilegi standard, è possibile che gli utenti standard o il malware in esecuzione come utente standard siano in grado di aggirare la finalità dei criteri di Controllo app.

Alcuni programmi di installazione dell'applicazione possono eseguire automaticamente l'applicazione alla fine del processo di installazione. Se l'applicazione viene eseguita automaticamente e il programma di installazione è stato eseguito da un programma di installazione gestito, il rilevamento euristico e l'autorizzazione del programma di installazione gestito si estenderanno a tutti i file creati durante la prima esecuzione dell'applicazione. Questa estensione potrebbe comportare l'autorizzazione involontaria di un eseguibile. Per evitare questo, assicurarsi che il metodo di distribuzione dell'applicazione usato come programma di installazione gestito limiti l'esecuzione di applicazioni come parte dell'installazione.

Limitazioni note con il programma di installazione gestito

  • Controllo app, basato sul programma di installazione gestito, non supporta le applicazioni che si aggiornano automaticamente. Se un'applicazione distribuita da un programma di installazione gestito si aggiorna in un secondo momento, i file dell'applicazione aggiornati non includeranno le informazioni di origine del programma di installazione gestito e potrebbero non essere in grado di essere eseguiti. Quando si usano programmi di installazione gestiti, è necessario distribuire e installare tutti gli aggiornamenti dell'applicazione usando un programma di installazione gestito oppure includere regole per autorizzare l'app nei criteri di controllo delle app. In alcuni casi, può essere possibile designare anche un file binario dell'applicazione che esegue gli aggiornamenti automatici come programma di installazione gestito. Una revisione appropriata dei livelli di sicurezza e delle funzionalità deve essere eseguita per l'applicazione prima di usare questo metodo.

  • Alcune applicazioni o programmi di installazione possono estrarre, scaricare o generare file binari e tentare immediatamente di eseguirli. I file eseguiti da tale processo potrebbero non essere consentiti dall'euristica del programma di installazione gestito. In alcuni casi, potrebbe essere possibile designare anche un file binario di un'applicazione che esegue tale operazione come programma di installazione gestito. Una revisione appropriata dei livelli di sicurezza e delle funzionalità deve essere eseguita per l'applicazione prima di usare questo metodo.

  • L'euristica del programma di installazione gestito non autorizza i driver del kernel. I criteri di Controllo app devono avere regole che consentono l'esecuzione dei driver necessari.

Configurare il rilevamento del programma di installazione gestito con AppLocker e Controllo app

Per attivare il rilevamento del programma di installazione gestito, è necessario:

  • Creare e distribuire un criterio di AppLocker che definisce le regole del programma di installazione gestito e abilita l'imposizione dei servizi per eseguibili e DLL.
  • Abilitare i servizi Application Identity e AppLockerFltr di AppLocker.

Nota

Il criterio AppLocker del programma di installazione gestito seguente è progettato per essere unito in modo sicuro a tutti i criteri appLocker preesistenti e non modifica il comportamento di tali criteri. Tuttavia, se applicato a un dispositivo che attualmente non dispone di criteri di AppLocker, si noterà un aumento elevato degli eventi di avviso generati nel registro eventi AppLocker - EXE e DLL . Se si usa un servizio di inoltro e raccolta di eventi, ad esempio LogAnalytics, è possibile modificare la configurazione per il registro eventi in modo da raccogliere solo gli eventi di errore o interrompere completamente la raccolta di eventi da tale log.

Nota

MEMCM si configurerà automaticamente come programma di installazione gestito e abiliterà i componenti AppLocker necessari, se si distribuisce uno dei relativi criteri di Controllo app nella posta in arrivo. Se si configura MEMCM come programma di installazione gestito usando qualsiasi altro metodo, è necessaria una configurazione aggiuntiva. Usare l'opzione cmdline ManagedInstaller nella configurazione ccmsetup.exe. In alternativa, è possibile distribuire uno dei criteri della modalità di controllo della posta in arrivo MEMCM insieme ai criteri personalizzati.

Creare e distribuire un criterio di AppLocker che definisce le regole del programma di installazione gestito e abilita l'imposizione dei servizi per eseguibili e DLL

L'interfaccia utente di creazione dei criteri di AppLocker nell'oggetto Criteri di gruppo Editor e i cmdlet di PowerShell di AppLocker non possono essere usati direttamente per creare regole per la raccolta di regole del programma di installazione gestita. È tuttavia possibile usare un editor di testo o XML per convertire un criterio di raccolta di regole EXE in una raccolta di regole ManagedInstaller.

Nota

Solo i tipi di file EXE possono essere designati come programmi di installazione gestiti.

  1. Usa New-AppLockerPolicy per creare una regola EXE per il file che stai designando come programma di installazione gestito. In questo esempio viene creata una regola per l'estensione di gestione Intune di Microsoft usando il tipo di regola del server di pubblicazione, ma è possibile usare qualsiasi tipo di regola AppLocker. Potrebbe essere necessario riformattare l'output per la leggibilità.

    Get-ChildItem ${env:ProgramFiles(x86)}'\Microsoft Intune Management Extension\Microsoft.Management.Services.IntuneWindowsAgent.exe' | Get-AppLockerFileInformation | New-AppLockerPolicy -RuleType Publisher -User Everyone -Xml > AppLocker_MI_PS_ISE.xml
    
  2. Modificare manualmente il tipo di raccolta regole da "Exe" a "ManagedInstaller" e impostare EnforcementMode su "AuditOnly"

    Cambiare:

    <RuleCollection Type="Exe" EnforcementMode="NotConfigured">
    

    A:

    <RuleCollection Type="ManagedInstaller" EnforcementMode="AuditOnly">
    
  3. Modificare manualmente i criteri di AppLocker e aggiungere le raccolte di regole EXE e DLL con almeno una regola per ognuna. Per garantire che i criteri possano essere applicati in modo sicuro nei sistemi che potrebbero avere già un criterio AppLocker attivo, è consigliabile usare una regola DENY non dannosa per bloccare un file binario falso e impostare EnforcementMode della raccolta di regole su AuditOnly. Inoltre, poiché molti processi di installazione si basano sui servizi, è necessario abilitare il rilevamento dei servizi per ognuna di queste raccolte di regole. L'esempio seguente mostra un criterio appLocker parziale con la raccolta di regole EXE e DLL configurata come consigliato.

    <RuleCollection Type="Dll" EnforcementMode="AuditOnly" >
      <FilePathRule Id="86f235ad-3f7b-4121-bc95-ea8bde3a5db5" Name="Benign DENY Rule" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
        <Conditions>
          <FilePathCondition Path="%OSDRIVE%\ThisWillBeBlocked.dll" />
        </Conditions>
      </FilePathRule>
      <RuleCollectionExtensions>
        <ThresholdExtensions>
          <Services EnforcementMode="Enabled" />
        </ThresholdExtensions>
        <RedstoneExtensions>
          <SystemApps Allow="Enabled"/>
        </RedstoneExtensions>
      </RuleCollectionExtensions>
    </RuleCollection>
    <RuleCollection Type="Exe" EnforcementMode="AuditOnly">
      <FilePathRule Id="9420c496-046d-45ab-bd0e-455b2649e41e" Name="Benign DENY Rule" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
        <Conditions>
          <FilePathCondition Path="%OSDRIVE%\ThisWillBeBlocked.exe" />
        </Conditions>
      </FilePathRule>
      <RuleCollectionExtensions>
        <ThresholdExtensions>
          <Services EnforcementMode="Enabled" />
        </ThresholdExtensions>
        <RedstoneExtensions>
          <SystemApps Allow="Enabled"/>
        </RedstoneExtensions>
      </RuleCollectionExtensions>
    </RuleCollection>
    
  4. Verificare i criteri di AppLocker. Nell'esempio seguente viene illustrato un criterio AppLocker completo che imposta Configuration Manager e Microsoft Intune come programmi di installazione gestiti. Nel codice XML finale sono incluse solo le raccolte di regole di AppLocker con regole effettive definite. Questa inclusione basata su condizione assicura che i criteri vengano uniti correttamente nei dispositivi che potrebbero avere già un criterio AppLocker.

    <AppLockerPolicy Version="1">
      <RuleCollection Type="Dll" EnforcementMode="AuditOnly" >
        <FilePathRule Id="86f235ad-3f7b-4121-bc95-ea8bde3a5db5" Name="Benign DENY Rule" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
          <Conditions>
            <FilePathCondition Path="%OSDRIVE%\ThisWillBeBlocked.dll" />
          </Conditions>
        </FilePathRule>
        <RuleCollectionExtensions>
          <ThresholdExtensions>
            <Services EnforcementMode="Enabled" />
          </ThresholdExtensions>
          <RedstoneExtensions>
            <SystemApps Allow="Enabled"/>
          </RedstoneExtensions>
        </RuleCollectionExtensions>
      </RuleCollection>
      <RuleCollection Type="Exe" EnforcementMode="AuditOnly">
        <FilePathRule Id="9420c496-046d-45ab-bd0e-455b2649e41e" Name="Benign DENY Rule" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
          <Conditions>
            <FilePathCondition Path="%OSDRIVE%\ThisWillBeBlocked.exe" />
          </Conditions>
        </FilePathRule>
        <RuleCollectionExtensions>
          <ThresholdExtensions>
            <Services EnforcementMode="Enabled" />
          </ThresholdExtensions>
          <RedstoneExtensions>
            <SystemApps Allow="Enabled"/>
          </RedstoneExtensions>
        </RuleCollectionExtensions>
      </RuleCollection>
      <RuleCollection Type="ManagedInstaller" EnforcementMode="AuditOnly">
        <FilePublisherRule Id="55932f09-04b8-44ec-8e2d-3fc736500c56" Name="MICROSOFT.MANAGEMENT.SERVICES.INTUNEWINDOWSAGENT.EXE version 1.39.200.2 or greater in MICROSOFT&reg; INTUNE&trade; from O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" Description="" UserOrGroupSid="S-1-1-0" Action="Allow">
          <Conditions>
              <FilePublisherCondition PublisherName="O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" ProductName="*" BinaryName="MICROSOFT.MANAGEMENT.SERVICES.INTUNEWINDOWSAGENT.EXE">
                <BinaryVersionRange LowSection="1.39.200.2" HighSection="*" />
              </FilePublisherCondition>
        </Conditions>
        </FilePublisherRule>
        <FilePublisherRule Id="6ead5a35-5bac-4fe4-a0a4-be8885012f87" Name="CMM - CCMEXEC.EXE, 5.0.0.0+, Microsoft signed" Description="" UserOrGroupSid="S-1-1-0" Action="Allow">
          <Conditions>
            <FilePublisherCondition PublisherName="O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" ProductName="*" BinaryName="CCMEXEC.EXE">
              <BinaryVersionRange LowSection="5.0.0.0" HighSection="*" />
            </FilePublisherCondition>
          </Conditions>
        </FilePublisherRule>
        <FilePublisherRule Id="8e23170d-e0b7-4711-b6d0-d208c960f30e" Name="CCM - CCMSETUP.EXE, 5.0.0.0+, Microsoft signed" Description="" UserOrGroupSid="S-1-1-0" Action="Allow">
          <Conditions>
            <FilePublisherCondition PublisherName="O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" ProductName="*" BinaryName="CCMSETUP.EXE">
              <BinaryVersionRange LowSection="5.0.0.0" HighSection="*" />
              </FilePublisherCondition>
            </Conditions>
          </FilePublisherRule>
        </RuleCollection>
      </AppLockerPolicy>
    
  5. Distribuire i criteri di configurazione del programma di installazione gestito di AppLocker. È possibile importare i criteri di AppLocker e distribuirli con Criteri di gruppo oppure usare uno script per distribuire i criteri con il cmdlet Set-AppLockerPolicy, come illustrato nel comando di PowerShell seguente.

    Set-AppLockerPolicy -XmlPolicy <AppLocker XML FilePath> -Merge -ErrorAction SilentlyContinue
    
  6. Se si distribuiscono i criteri di AppLocker tramite script, usare appidtel.exe per configurare il servizio Application Identity di AppLocker e il driver di filtro di AppLocker.

    appidtel.exe start [-mionly]
    

    Specificare "-mionly" se non si prevede di usare Intelligent Security Graph (ISG).

Nota

Il rilevamento del programma di installazione gestito verrà avviato alla successiva esecuzione di un processo corrispondente alle regole del programma di installazione gestito. Se un processo previsto è già in esecuzione, è necessario riavviarlo.

Abilitare l'opzione del programma di installazione gestito nei criteri di Controllo app

Per abilitare l'attendibilità per i file binari previsti dai programmi di installazione gestiti, è necessario specificare l'opzione "Abilitato: Programma di installazione gestito" nei criteri di Controllo app. Questa impostazione può essere definita usando il cmdlet Set-RuleOption con l'opzione 13.

Di seguito sono riportati i passaggi per creare un criterio di controllo delle app che consente l'avvio di Windows e abilita l'opzione del programma di installazione gestito.

  1. Copiare i criteri di DefaultWindows_Audit nella cartella di lavoro da "C:\Windows\schemas\CodeIntegrity\ExamplePolicies\DefaultWindows_Audit.xml"

  2. Reimpostare l'ID criterio per assicurarsi che sia in formato multi-criterio e assegnargli un GUID diverso dai criteri di esempio. Inoltre, assegnargli un nome descrittivo per facilitare l'identificazione.

    Ad esempio:

    Set-CIPolicyIdInfo -FilePath <XML filepath> -PolicyName "<friendly name>" -ResetPolicyID
    
  3. Impostare l'opzione 13 (Enabled:Managed Installer).

    Set-RuleOption -FilePath <XML filepath> -Option 13
    
  4. Distribuire i criteri di Controllo app. Vedere Distribuzione del controllo app per i criteri aziendali.

Nota

I criteri di Controllo app devono includere regole per tutti i componenti di sistema/avvio, i driver del kernel e tutte le altre applicazioni autorizzate che non possono essere distribuite tramite un programma di installazione gestito.

Rimuovere la funzionalità Programma di installazione gestito

Per rimuovere la funzionalità Programma di installazione gestita dal dispositivo, è necessario rimuovere i criteri di AppLocker del programma di installazione gestita dal dispositivo seguendo le istruzioni riportate in Eliminare una regola di AppLocker: Cancellare i criteri di AppLocker in un singolo sistema o in un sistema remoto.