Informazioni tecniche sulle connessioni agentless per i sistemi Windows

Le connessioni agentless sui sistemi Windows si basano sul protocollo di connessione remota WinRM. Questo protocollo deve quindi essere attivato sugli asset da monitorare.

Per impostazione predefinita, questo protocollo utilizza la porta 5985 in modalità WinRM HTTP e la 5986 in modalità WinRM HTTPS.

Il corretto funzionamento delle connessioni agentless su Windows può richiedere alcuni passaggi di configurazione descritti di seguito.

Prerequisiti necessari per l’utilizzo delle connessioni agentless

L’utilizzo di un account Amministratore locale è indispensabile, poiché gli script di analisi richiamano metodi che richiedono privilegi:

  • utilizzo di DISM (Deployment Imaging and Servicing Management) - recupero delle versioni delle KB installate -
  • utilizzo dell’API WUA (Windows Update Agent) - eliminazione / download / gestione del file .cab, gestione dei servizi WUA, distribuzione degli aggiornamenti -
  • accesso alle directory soggette a privilegi - %APPDATA% di tutti gli utenti per il recupero delle versioni delle applicazioni installate -
  • privilegi potenzialmente necessari per l’esecuzione degli script di analisi della conformità

È quindi necessario creare un utente Cyberwatch membro del gruppo Administrators locale, utilizzando ad esempio il comando seguente:

$UserPassword = Read-Host -AsSecureString       # Une fois la commande validée, saisir un mot de passe pour l'utilisateur Cyberwatch
New-LocalUser "Cyberwatch" -Password $UserPassword
Add-LocalGroupMember -Group 'Administrateurs' -Member Cyberwatch -Verbose

Su un sistema in lingua inglese è necessario utilizzare Administrators.

Gli utenti membri dei gruppi Protected Users o gMSA non possono utilizzare il servizio WinRM. È quindi necessario fare attenzione a non includere l’utente Cyberwatch in uno di questi gruppi.

Attivazione di WinRM

Il comando PowerShell seguente attiva il servizio WinRM se è disattivato e configura di conseguenza il firewall di Windows:

Enable-PSRemoting -Force

In alcuni casi, la sola attivazione di WinRM non è sufficiente: può essere necessario autorizzare gli account amministratore locali a connettersi tramite WinRM, altrimenti Cyberwatch riporterà l’errore WinRM::WinRMAuthorizationError durante la creazione della connessione agentless.

A tal fine, è necessario aggiungere la chiave seguente nel registro di sistema:

New-ItemProperty -Name LocalAccountTokenFilterPolicy -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -propertyType DWord -value 1

Infine, il comando seguente consente di verificare che il servizio WinRM sia avviato e lo avvia se ciò non è stato effettuato correttamente:

winrm quickconfig

Facoltativo - Disattivare manualmente il firewall per WinRM

Talvolta può essere necessaria una disattivazione manuale del firewall di Windows nonostante le operazioni precedenti, in particolare sulle macchine AWS-EC2. In questo caso, l’errore riportato da Cyberwatch è Connection expired.

Il comando PowerShell seguente consente di autorizzare le richieste TCP in ingresso sulla porta 5985 a livello del firewall di Windows:

netsh advfirewall firewall add rule name="WinRM-HTTP" dir=in localport=5985 protocol=TCP action=allow

Facoltativo - Utilizzo di WinRM-Kerberos

Kerberos è un protocollo di autenticazione basato sul principio di una terza parte attendibile. Il suo funzionamento si basa su un centro di distribuzione delle chiavi (KDC), che consente di emettere ticket che autorizzano l’utente ad accedere alle risorse di rete. Il funzionamento è simile a quello dei sistemi di autenticazione SSO.

Il processo di autenticazione Kerberos è il seguente:

  • Il client avvia una richiesta di autenticazione presso il KDC
  • Se le informazioni vengono convalidate dal KDC, questo emette un ticket di concessione ticket (TGT)
  • Il client presenta quindi il TGT per richiedere l’autenticazione su un servizio
  • Il servizio in questione invia il TGT al KDC per la convalida
  • Una volta convalidato, il KDC emette un ticket finale che consente l’autenticazione del client sul servizio

Per poter utilizzare questo protocollo, è necessario inserire diversi elementi:

  • Dominio: dominio in cui sono raggruppate le risorse Kerberos. Nel caso di un’autenticazione WinRM, rappresenta il dominio di Active Directory
  • KDC: server attendibile che consente la distribuzione dei ticket. In un dominio Active Directory, corrisponde al FQDN del domain controller
  • Server di amministrazione: server attendibile che consente la concessione dei ticket di servizio ai client. In un dominio Active Directory, corrisponde al FQDN del domain controller

È quindi necessario fornire una coppia nome utente/password autorizzata ad autenticarsi sul dominio Active Directory indicato.

Prerequisiti per l’utilizzo di WinRM-Kerberos

Il server Cyberwatch deve essere in grado di risolvere i nomi di dominio:

  • del KDC (Key Distribution Center)
  • del server di amministrazione
  • di ciascun asset da monitorare