Vai al contenuto

Gruppo Protected Users, autenticazione Kerberos, compartimentazione dell'AD e postazione PAW

La messa in sicurezza delle directory Active Directory è una sfida importante nella sicurezza delle infrastrutture.

L'ANSSI (l'Agenzia nazionale francese per la cibersicurezza) pone un accento particolare sull'importanza della compartimentazione in questa sicurezza e sull'implementazione della compartimentazione dei server con autenticazione Kerberos. Ciò è menzionato nelle sue raccomandazioni per l'amministrazione sicura dei SI basati su AD.

Le nostre soluzioni CyberElements Bastion offrono grande flessibilità nell'implementazione di questa sicurezza, che può essere suddivisa in quattro diversi livelli di integrazione applicabili progressivamente:

Configurare le applicazioni RDP per il supporto di Kerberos

Attenzione!

Per configurare un'applicazione RDP privilegiata o HTML5 RDP privilegiata in modo che supporti Kerberos, è necessario prima eseguire la configurazione 1 dell'Edge Gateway (o degli Edge Gateway) che verranno utilizzati per connettersi in RDP con Kerberos.

Perché un'applicazione RDP o HTML5 RDP privilegiata si connetta a un server RDP con Kerberos sono necessarie quattro condizioni di configurazione:

  1. L'impostazione SSO non può essere impostata su Disabled, deve quindi essere Enabled, Fixed o Request
  2. La modalità senza agente deve essere abilitata
  3. Il nome del server immesso deve essere un FQDN (l'immissione dell'indirizzo IP del server farà fallire l'autenticazione).
  4. Kerberos non deve essere disabilitato nelle impostazioni avanzate dell'applicazione RDP o HTML5 RDP.
Example

Per configurare un'applicazione RDP privilegiata in modo che si connetta al server RDP my-rds-server utilizzando Kerberos, occorrerà:

  • Impostare il livello SSO su un valore diverso da Disabled, in questo caso su Enabled (1), abilitare poi la modalità senza agente (2) e infine immettere l'FQDN del server RDP (3).
  • Verificare che Kerberos non sia disabilitato (4)
Diagramma di flusso
flowchart LR 
    subgraph WAN 
        USER(Postazione di lavoro dell'utente)
    end 
    subgraph Cloud o DMZ
        MEDIA(Mediation Controller) 
    end 
    subgraph LAN 
        GW(Edge Gateway) 
        KDC(Kerberos Domain Controller) 
        RDP(Server RDP)
    end

    USER --- |1| MEDIA --> |1| GW
    GW -.- |2| MEDIA -.-> |2| USER
    GW --> |3| KDC
    KDC -.-> |4| GW
    GW --> |5| KDC
    KDC -.-> |6| GW
    GW --> |7| RDP
    RDP -.-> |8| GW
Hold "Ctrl" to enable pan & zoom
  1. L'utente apre un'applicazione RDP o HTML5 RDP privilegiata con supporto dell'autenticazione Kerberos.
  2. L'utente è connesso all'Edge Gateway in modalità senza agente
  3. L'Edge Gateway richiede un token TGT al controller di dominio Kerberos (KDC).
  4. Il KDC restituisce un TGT cifrato e firmato
  5. L'Edge Gateway richiede un ticket di servizio che include il TGT precedente
  6. Il KDC restituisce il ticket di servizio cifrato con la chiave di servizio
  7. L'Edge Gateway invia una richiesta di accesso al server RDP, includendo il ticket di servizio.
  8. Il server RDP approva l'accesso al servizio e la connessione RDP viene inizializzata.

Configurare le applicazioni RDP per il supporto della blindatura Kerberos

Attenzione!

Per configurare correttamente un'applicazione RDP o HTML5 RDP privilegiata in modo che supporti la blindatura Kerberos, è necessario prima completare le configurazioni 1 e 2 per gli Edge Gateway che verranno utilizzati per connettersi in RDP con la blindatura Kerberos.

Perché un'applicazione RDP o HTML5 RDP privilegiata si connetta a un server RDP con la blindatura Kerberos sono necessarie cinque condizioni di configurazione:

  1. L'impostazione SSO non può essere impostata su Disabled, deve quindi essere Enabled, Fixed o Request
  2. La modalità senza agente deve essere abilitata
  3. Il nome del server immesso deve essere un FQDN (l'immissione dell'indirizzo IP del server farà fallire l'autenticazione).
  4. Kerberos non deve essere disabilitato nelle impostazioni avanzate dell'applicazione RDP o HTML5 RDP.
  5. Indicare il nome dell'account computer di servizio da utilizzare per la blindatura Kerberos aggiungendo un $ alla fine
Example

Per configurare un'applicazione RDP privilegiata in modo che si connetta in modalità blindata Kerberos al server RDP my-rds-server utilizzando l'account computer svc_cyberelements, occorrerà:

  • Impostare il livello SSO su un valore diverso da Disabled, in questo caso su Enabled (1), abilitare poi la modalità senza agente (2) e infine immettere l'FQDN del server RDP (3).
  • Verificare che Kerberos non sia disabilitato (4) e che il nome dell'account computer di servizio sia indicato, ricordandosi di aggiungere il carattere $ (5).
Diagramma di flusso
flowchart LR 
    subgraph WAN 
        USER(Postazione di lavoro dell'utente)
    end 
    subgraph Cloud o DMZ
        MEDIA(Mediation Controller) 
    end 
    subgraph LAN 
        GW(Edge Gateway) 
        KDC(Kerberos Domain Controller) 
        RDP(Server RDP)
    end

    USER --- |1| MEDIA --> |1| GW
    GW -.- |2| MEDIA -.-> |2| USER
    GW --> |3| KDC
    KDC -.-> |4| GW
    GW --> |5| KDC
    KDC -.-> |6| GW
    GW --> |7| RDP
    RDP -.-> |8| GW
Hold "Ctrl" to enable pan & zoom
  1. L'utente apre un'applicazione RDP o HTML5 RDP privilegiata con supporto dell'autenticazione Kerberos.
  2. L'utente è connesso all'Edge Gateway in modalità senza agente
  3. L'Edge Gateway richiede un token TGT al controller di dominio Kerberos (KDC) utilizzando le informazioni dell'account computer di servizio
  4. Il KDC restituisce un TGT cifrato e firmato
  5. L'Edge Gateway richiede un ticket di servizio che include il TGT precedente
  6. Il KDC restituisce il ticket di servizio cifrato con la chiave di servizio
  7. L'Edge Gateway invia una richiesta di accesso al server RDP, includendo il ticket di servizio.
  8. Il server RDP approva l'accesso al servizio e la connessione RDP viene inizializzata.

Specificità dell'architettura in un ambiente AD compartimentato

Attenzione!

In un ambiente Active Directory compartimentato, Kerberos blindato è normalmente configurato per gli account amministratore. È quindi necessario eseguire le configurazioni 1 e 2 per gli Edge Gateway che verranno utilizzati per connettersi ai server RDP.

Quando CyberElements Bastion viene utilizzato in un ambiente AD compartimentato, l'account computer di servizio utilizzato per la blindatura Kerberos deve essere assegnato a un silo.
Ciò significa che, se è necessario accedere a macchine RDP appartenenti a terze parti diverse, sarà necessario creare tanti account computer di servizio collocati nelle diverse destinazioni di terze parti.

Anche l'architettura del prodotto può esserne influenzata.
Questa modifica riguarda principalmente il numero di Edge Gateway distribuiti, per i quali si raccomanda di averne almeno uno dedicato all'accesso da parte di una terza parte specifica. Tuttavia, se il contesto non consente la distribuzione di un numero così elevato di Edge Gateway, è possibile utilizzare anche un'architettura con un solo Edge Gateway:

flowchart LR
    subgraph WAN
        USER(Postazione di lavoro dell'utente)
    end
    subgraph Cloud o DMZ
        MED(Mediation Controller)
    end
    subgraph LAN
        subgraph T2
            GW-T2(Edge Gateway T2)
            RDP-T2(Server RDP T2)
        end
        subgraph T1
            GW-T1(Edge Gateway T1)
            RDP-T1(Server RDP T1)
        end
        subgraph T0
            GW-T0(Edge Gateway T0)
            KDC(Kerberos Domain Controller)
            RDP-T0(Server RDP T0)
        end
    end

    USER ==TLS/HTTPS==> MED

    MED ~~~ GW-T0
    MED ~~~ GW-T1
    MED ~~~ GW-T2

    GW-T0 ==TLS==> MED
    GW-T0 ~~~ MED
    GW-T0 ~~~ MED
    GW-T0 ~~~ MED
    GW-T0 --Kerberos/LDAPS--> KDC
    GW-T0 -..-> |RDP| RDP-T0

    GW-T1 ==TLS==> MED
    GW-T1 ~~~ MED
    GW-T1 ~~~ MED
    GW-T1 --Kerberos/LDAPS--> KDC
    GW-T1 -..-> |RDP| RDP-T1

    GW-T2 ==TLS==> MED
    GW-T2 ~~~ MED
    GW-T2 --Kerberos/LDAPS--> KDC
    GW-T2 -..-> |RDP| RDP-T2
Hold "Ctrl" to enable pan & zoom

Con questa architettura, la configurazione delle applicazioni RDP è identica a quella del supporto della blindatura Kerberos.

flowchart LR
    subgraph WAN
        USER(Postazione di lavoro dell'utente)
    end
    subgraph Cloud o DMZ
        MED(Mediation Controller)
    end
    subgraph LAN
        GW(Edge Gateway)
        subgraph T2
            RDP-T2(Server RDP T2)
        end
        subgraph T1
            RDP-T1(Server RDP T1)
        end
        subgraph T0
            KDC(Kerberos Domain Controller)
            RDP-T0(Server RDP T0)
        end
    end

    USER ==TLS/HTTPS==> MED

    MED ~~~ GW

    GW ==TLS==> MED
    GW ~~~ MED
    GW --Kerberos/LDAPS--> KDC
    GW-.-> |RDP| RDP-T0
    GW -.-> |RDP| RDP-T1
    GW -.-> |RDP| RDP-T2
Hold "Ctrl" to enable pan & zoom

Con questa architettura, la configurazione delle applicazioni RDP è identica a quella del supporto della blindatura Kerberos.
Tuttavia, è necessario prevedere anche di applicare all'Edge Gateway di connessione un file keytab contenente diversi account di servizio.

Specificità della connessione a una postazione PAW

Una PAW (Privileged Access Workstation) è una postazione di lavoro dedicata alle attività di amministrazione su una terza parte definita.
Data la natura critica di questa postazione, molto spesso vengono applicate impostazioni di sicurezza rafforzate. Tra i rafforzamenti applicati, il principio di non esporre servizi sulla rete garantisce che non possano essere sfruttate backdoor o servizi con vulnerabilità di sicurezza.

Questo principio rende quindi teoricamente impossibile l'accesso remoto alla postazione PAW. Tuttavia, CyberElements Bastion permette di stabilire una connessione alla postazione PAW senza avere alcun servizio in ascolto sulla rete locale grazie a:

  • L'attivazione dei servizi Remote Desktop
  • La configurazione del firewall locale per vietare l'accesso al servizio Remote Desktop da parte di qualsiasi indirizzo IP diverso da quello della postazione PAW, oppure da localhost
  • L'installazione di un Edge Gateway integrato che consentirà l'accesso locale al servizio Remote Desktop della postazione PAW
flowchart LR
    subgraph WAN
        USER(Postazione di lavoro dell'utente)
    end
    subgraph Cloud o DMZ
        MED(Mediation Controller)
    end
    subgraph LAN
        subgraph T1
            GW(Edge Gateway T1)
            subgraph PAW_T1 [PAW T1]
                RDP{{Server RDP}}
                GW-WIN{{Embeded Edge Gateway}}
            end
        end
        subgraph T0
            KDC(Kerberos Domain Controller)
        end
    end

    USER ==TLS/HTTPS==> MED

    MED ~~~ GW & GW-WIN
    GW & GW-WIN ==TLS==> MED
    GW & GW-WIN ~~~ MED

    GW & PAW_T1 --> |Kerberos/LDAPS| KDC

    GW-WIN -.-> |RDP| RDP

    GW --x |Nessuna connessione disponibile| PAW_T1
Hold "Ctrl" to enable pan & zoom
flowchart LR
    subgraph WAN
        USER(Postazione di lavoro dell'utente)
    end
    subgraph Cloud o DMZ
        MED(Mediation Controller)
    end
    subgraph LAN
        subgraph T1
            GW(Edge Gateway T1)
            subgraph PAW_T1 [PAW T1]
                RDP{{Server RDP}}
                GW-WIN{{Embeded Edge Gateway}}
            end
        end
        subgraph T0
            KDC(Kerberos Domain Controller)
        end
    end

    USER --- |1| MED --> |1| GW
    GW -.- |2| MED -.-> |2| USER
    GW --> |3| KDC
    KDC -.-> |4| GW
    GW --> |5| KDC
    KDC -.-> |6| GW
    MED --> |7| GW & GW-WIN
    GW --- |8| MED --- |8| GW-WIN --> |8| RDP
    RDP -.- |9| GW-WIN -.- |9| MED -.-> |9| GW
Hold "Ctrl" to enable pan & zoom
  1. L'utente apre un'applicazione RDP o HTML5 RDP privilegiata con supporto dell'autenticazione Kerberos verso una postazione PAW
  2. L'utente è connesso all'Edge Gateway in modalità senza agente
  3. L'Edge Gateway richiede un token TGT al controller di dominio Kerberos (KDC) utilizzando le informazioni dell'account computer di servizio
  4. Il KDC restituisce un TGT cifrato e firmato
  5. L'Edge Gateway richiede un ticket di servizio che include il TGT precedente
  6. Il KDC restituisce il ticket di servizio cifrato con la chiave di servizio
  7. Il Mediation Controller notifica all'Edge Gateway e all'Edge Gateway integrato che tra loro è stato aperto un tunnel, tunnel che passa attraverso il Mediation Controller
  8. L'Edge Gateway invia una richiesta di accesso al server RDP, includendo il ticket di servizio, tramite il Mediation Controller e l'Edge Gateway integrato
  9. Il server RDP approva l'accesso al servizio e la connessione RDP viene inizializzata

Prerequisiti sulla postazione PAW

I prerequisiti specifici da applicare sulla postazione PAW (Privileged Access Workstation) per la connessione a CyberElements Bastion si riassumono come segue:

  1. Abilitare il servizio Remote Desktop
  2. Modificare il firewall locale per negare l'accesso al servizio Remote Desktop a tutte le macchine, tranne la postazione PAW stessa
  3. Modificare il comportamento di Kerberos blindato per fornire sempre i claim
  4. Installare un Windows Edge Gateway in modalità integrata

Abilitare il servizio Remote Desktop

Il servizio Remote Desktop può essere abilitato manualmente come descritto nella documentazione Microsoft Enable Remote Desktop on your PC.
Tuttavia, è possibile anche utilizzare una GPO per abilitare il servizio:

  • Percorso dell'impostazione GPO: Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections
  • Impostazione: Allow users to connect remotely by using Remote Desktop Services
  • Valore: Enabled

Modificare le regole del firewall

Per motivi di sicurezza è importante limitare l'accesso a livello del firewall, in modo da impedire l'accesso dall'esterno sulla porta RDP.

Per impostazione predefinita, quando RDP è abilitato Windows imposta 2 regole del firewall che autorizzano l'accesso alla porta 3389 in UDP e TCP.
Queste due regole devono essere modificate per consentire unicamente le connessioni RDP dall'indirizzo IP remoto 127.0.0.1.

Se queste regole non esistono, devono essere create manualmente sul server oppure tramite una GPO.

Modificare il comportamento di Kerberos blindato

È inoltre necessario modificare il comportamento di Kerberos.

A tale scopo è possibile configurare la GPO seguente:

  • Percorso dell'impostazione GPO: Computer Configuration > Policies > Administrative Templates > System > KDC
  • Impostazione: KDC support for claims, compound authentication and Kerberos armoring
  • Valore: Enabled, Always provide claims

Questa modifica non ha alcun impatto sulla sicurezza della compartimentazione dell'AD e dell'implementazione rafforzata di Kerberos.

Installare un Windows Edge Gateway in modalità integrata

Prerequisiti

Prima di continuare, installare un Windows Edge Gateway sulla postazione PAW e connetterlo al Mediation Controller: Installare un Windows Edge Gateway

Dopo l'installazione del Windows Edge Gateway è necessario passarlo in modalità integrata.

Accedere all'interfaccia web del server Mediation Controller con l'URI /console.

Esempi

Se l'accesso al Mediation Controller tramite il suo indirizzo IP web è 10.0.10.10, si accede alla console di amministrazione all'indirizzo https://10.0.10.10/console.

Se il Mediation Controller è raggiungibile tramite un nome DNS, per esempio cyberelements-bastion.domain.local, si accede alla console di amministrazione all'indirizzo https://cyberelements-bastion.domain.local/console.

Una volta connesso, assicurarsi di rimuovere la dichiarazione del Windows Edge Gateway dal modulo Gateways Management.

Il Windows Edge Gateway è ora pronto per essere utilizzato come Edge Gateway integrato.

All'apertura di una sessione, il monitor del Windows Edge Gateway si avvia automaticamente (visibile con l'icona type:inline nella barra delle applicazioni). Poiché questo avvio automatico non è necessario per le postazioni PAW, deve essere disabilitato:

  1. Aprire l'editor delle chiavi di registro regedit.exe come amministratore
  2. Accedere all'hive di registro HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
  3. Eliminare la chiave IPdivaGateway Monitor
  4. Riavviare la postazione PAW

Configurare le applicazioni RDP per connettersi a una postazione PAW

Attenzione!

Per configurare un'applicazione RDP o HTML5 RDP privilegiata in modo che si connetta a una postazione PAW, è necessario prima completare le configurazioni da 1 a 3 per gli Edge Gateway che verranno utilizzati per connettersi alle postazioni PAW.

Perché un'applicazione RDP o HTML5 RDP privilegiata si connetta a una postazione PAW devono essere soddisfatte sei condizioni di configurazione:

  1. L'impostazione SSO non può essere impostata su Disabled, deve quindi essere Enabled, Fixed o Request
  2. La modalità senza agente deve essere abilitata
  3. Il nome del server immesso deve essere un FQDN (l'immissione dell'indirizzo IP del server farà fallire l'autenticazione).
  4. Configurare l'instradamento attraverso un Edge Gateway integrato
  5. Kerberos non deve essere disabilitato nelle impostazioni avanzate dell'applicazione RDP o HTML5 RDP.
  6. Indicare il nome dell'account computer di servizio da utilizzare per la blindatura Kerberos aggiungendo un $ alla fine

La condizione 4 è indotta dalla configurazione delle postazioni PAW, che non devono avere alcun servizio in ascolto sulla rete locale. Installando un Edge Gateway sotto forma di programma Windows, quest'ultimo può accedere solo ai servizi in ascolto su localhost.

Example

Per configurare un'applicazione RDP privilegiata in modo che si connetta in modalità blindata Kerberos al server RDP my-rds-server utilizzando l'account computer svc_cyberelements, occorrerà:

  • Impostare il livello SSO su un valore diverso da Disabled, in questo caso su Enabled (1), abilitare poi la modalità senza agente (2), immettere l'FQDN del server RDP (3) e infine abilitare la modalità Edge Gateway integrato e indicare il nome del Windows Edge Gateway installato sulla postazione PAW (4).
  • Verificare che Kerberos non sia disabilitato (5) e che il nome dell'account computer di servizio sia indicato, ricordandosi di aggiungere il carattere $ (6).

Debug dell'apertura delle applicazioni RDP con autenticazione Kerberos

Per effettuare una prima analisi o recuperare le informazioni necessarie a Systancia per un'analisi avanzata dei fallimenti di autenticazione Kerberos, eseguire le azioni seguenti:

  1. Abilitare i log di debug: a tale scopo, portare il parametro debug sotto il tag [Kerberos] a true nel file /etc/ipdiva/cleanroom/xrdprecord.ini del server Edge Gateway utilizzato per la connessione. Questa azione può essere eseguita con il comando seguente:

    1
    sed -i "3s/false/true/" /etc/ipdiva/cleanroom/xrdprecord.ini
    
  2. Accedere al portale utente e avviare un'applicazione privilegiata, RDP o HTML5 RDP, in modalità senza agente e configurata per utilizzare Kerberos. Annotare le informazioni seguenti:

    • Ora di apertura dell'applicazione
    • Il nome utente utilizzato per connettersi al server RDP
  3. Sull'Edge Gateway utilizzato per la connessione precedente, recuperare i file seguenti:

    • /var/log/syslog: questo file contiene, in particolare, i log di avvio della sessione in modalità senza agente.
    • /var/lib/ipdiva/carerecord/log/freerdpout-<USER>-<DATE>.txt: sostituire <USER> con il nome utente e <DATE> con la data e l'ora di apertura dell'applicazione, recuperate al passaggio precedente. Questo file contiene i log relativi allo stabilirsi della sessione RDP, compresa la fase di autenticazione Kerberos.
  4. Disabilitare i log di debug: a tale scopo, portare il parametro debug sotto il tag [Kerberos] a false nel file /etc/ipdiva/cleanroom/xrdprecord.ini del server Edge Gateway utilizzato per la connessione. Questa azione può essere eseguita con il comando seguente:

    1
    sed -i "3s/true/false/" /etc/ipdiva/cleanroom/xrdprecord.ini