Saltar a contenido

Instalación y uso del agente de grabación para Windows

  • Instalación


    Instalación y despliegue del agente de grabación para Windows.

    Instalar

  • Configuración


    Configurar el agente de grabación para Windows para que funcione con aplicaciones RDP y RDP HTML5 y/o con los accesos directos.

    Configurar

El agente de grabación de Windows lo utiliza CyberElements para añadir nuevas funcionalidades a las sesiones RDP:

  • Posibilidad de filtrar los flujos TCP y UDP accesibles para el usuario
  • Posibilidad de desencadenar la grabación de la sesión de cualquier usuario que se conecte al servidor sin pasar por el portal de usuario ni por el cliente Desktop (funcionalidad de acceso directo)

Además, durante las sesiones de los usuarios se capturan eventos adicionales:

  • Apertura de ventanas
  • Cierre de ventanas
  • Inicio de programas
  • Cierre de programas
  • Contenido del portapapeles
  • Actividad del usuario

Requisitos previos

Compatibilidad del cliente

Para saber si el agente es compatible con los distintos sistemas operativos Microsoft Windows, consulte la matriz de compatibilidad.

El agente de grabación exige algunos requisitos previos para funcionar correctamente. Unos solo conciernen a la funcionalidad de grabación con agente de las aplicaciones RDP y HTML5 RDP, y otros al acceso directo con agente.

Requisitos previos generales

El agente de grabación devuelve la grabación de la sesión del usuario a CyberElements conectándose a la Edge Gateway por el puerto TCP 8443. Para ello es necesario que el flujo de red entre ambas máquinas esté abierto.

Para devolver la grabación a la Edge Gateway de forma segura, el agente de grabación establece con ella una conexión segura mediante TLS. TLS se basa en el uso de certificados, y deben cumplirse las restricciones siguientes para que la conexión se considere fiable y segura:

  • El certificado del servidor, en este caso la Edge Gateway, no debe haber caducado (fecha máxima de validez).
  • El certificado del servidor, en este caso la Edge Gateway, debe haber sido emitido por una autoridad de certificación reconocida como de confianza por la máquina en la que está instalado el agente de grabación.

    Información adicional

    El servidor en el que está instalado el agente de grabación debe tener, como mínimo, la autoridad de certificación (CA) raíz del certificado del servidor de grabación en su almacén local de autoridades de certificación de confianza.

    Por lo tanto, es necesario:

    1. Recuperar la CA raíz del certificado del servicio de grabación de la Edge Gateway.
    2. Cargar esa CA en el servidor en el que está instalado el agente de grabación.
    3. Instalar la CA en el almacén de certificados « Entidades de certificación raíz de confianza » de la máquina local.
    Ejemplo con PowerShell

    Un certificado en formato .cer puede importarse fácilmente mediante PowerShell.
    Para ello, abra un terminal de PowerShell como administrador de la máquina y ejecute el comando siguiente:

    1
    Import-Certificate -FilePath "<PAHT_TO_CERT>" -CertStoreLocation "Cert:\LocalMachine\Root"
    
    Sustituya <PATH_TO_CERT> por la ruta del fichero del certificado.

    Ejemplo con PowerShell para el certificado de Systancia, sin enviar ficheros

    Este ejemplo consiste en instalar la CA raíz de Systancia, se utiliza de forma predeterminada en CyberElements.

    También es posible importar el certificado sin tener que enviar o descargar el fichero en la máquina en la que está instalado el agente de grabación.
    Para ello, abra un terminal de PowerShell como administrador de la máquina y ejecute los comandos siguientes:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    # Systancia Root certificate
    $base64Cert = "MIIFIDCCBAigAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjTELMAkGA1UEBhMCRlIx
    FDASBgNVBAoTC0lQZGl2YSBSb290MR0wGwYDVQQLExRJUGRpdmEgU2VjdXJpdHkg
    RGVwdDEqMCgGA1UEAxMhSVBkaXZhIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
    MR0wGwYJKoZIhvcNAQkBFg5wa2lAaXBkaXZhLmNvbTAeFw0wNTA4MjIxNTAwMzla
    Fw0zMDA4MjIxNTAwMzlaMIGNMQswCQYDVQQGEwJGUjEUMBIGA1UEChMLSVBkaXZh
    IFJvb3QxHTAbBgNVBAsTFElQZGl2YSBTZWN1cml0eSBEZXB0MSowKAYDVQQDEyFJ
    UGRpdmEgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHTAbBgkqhkiG9w0BCQEW
    DnBraUBpcGRpdmEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
    ua59tx+RkIPZbGaSwkV0w5fuPBpY3sbLTk/eR2uN7j9zMu0pq38LfibCVsNGlifh
    GfT5CEbrNL7KvlEVY/It1QluYxNgknlcBP1roJG/xHNcUNmbvCFYLy9N3Nd0J/gC
    Vd8tdB4exqyKEoNuqX18rLpSJJOUZdQCeGdF9r+w6vmHdRMeVS44qIiBPv9Bxzgf
    GXBxAlSqfuDDJ3eZEMsWF/kJrbm4Uhav2ACl5qjHgSSTKMoGoEWOJNkB7Mq/khxc
    TnixIpM2s1rpEfhIetPo4BHsyKv7wqWrS6ouwu5AbzT5t3UqaN77CLqcZJGQ3vC0
    IGKBuEcwigd7W6qkX1/XMwIDAQABo4IBhzCCAYMwDwYDVR0TAQH/BAUwAwEB/zAd
    BgNVHQ4EFgQU+lu7XBGohR2DKD+D+abZEODRHjkwgboGA1UdIwSBsjCBr4AU+lu7
    XBGohR2DKD+D+abZEODRHjmhgZOkgZAwgY0xCzAJBgNVBAYTAkZSMRQwEgYDVQQK
    EwtJUGRpdmEgUm9vdDEdMBsGA1UECxMUSVBkaXZhIFNlY3VyaXR5IERlcHQxKjAo
    BgNVBAMTIUlQZGl2YSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eTEdMBsGCSqG
    SIb3DQEJARYOcGtpQGlwZGl2YS5jb22CAQAwCwYDVR0PBAQDAgEGMBkGA1UdEQQS
    MBCBDnBraUBpcGRpdmEuY29tMBkGA1UdEgQSMBCBDnBraUBpcGRpdmEuY29tMBEG
    CWCGSAGG+EIBAQQEAwIABzA+BglghkgBhvhCAQ0EMRYvSVBkaXZhIFJvb3QgQ2Vy
    dGlmaWNhdGlvbiBBdXRob3JpdHkgQ2VydGlmaWNhdGUwDQYJKoZIhvcNAQEFBQAD
    ggEBACaAgBQK7TATXieb9OdKm+l7/GpePo8f2bRKnkqeRS+HXBKYkvqVJdbJnhJm
    YPOdmhr9ATzt+488tQREAGzqPCp5eiVExPgvomNeG77X57KqbgCA1F7zGJqjP1FL
    771FIWvFXp80ReM/zhcM+MY3sa5LADgOEl5NhoMNHT8AhLKwZ81j5nuwxyG9ICCN
    5GjwgsnK/agmum4+RKeybIWuC/JTsSnu5OImXsmrlUiakp2l+VsZ1rRRNRNUlSbg
    Q3T8kj5ajB0lv2I0kj4fN9wDxzdHEn7nEAmv0t6Y5Te0g/VK3VWhuqeLStaahgip
    hmOVxbu5Ijfug5/3Eemep34NsYk="
    
    # Convertir el certificado y almacenarlo en memoria
    $certBytes = [Convert]::FromBase64String($base64Cert)
    
    # Crear un objeto de certificado
    $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
    $cert.Import($certBytes)
    
    # Abrir el almacén de certificados raíz de confianza de la máquina local y añadir el certificado raíz de Systancia
    $store = New-Object System.Security.Cryptography.X509Certificates.X509Store("Root", "LocalMachine")
    $store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
    $store.Add($cert)
    $store.Close()
    

    Para utilizar este método con otra CA, cambie el valor de la variable base64Cert por el certificado de su elección codificado en base 64.

  • El certificado del servidor, en este caso la Edge Gateway, no debe estar revocado.

  • La máquina en la que está instalado el agente de grabación debe poder contactar con el servidor, en este caso la Edge Gateway, con un nombre DNS o una dirección IP cubiertos por el certificado del servidor mediante su Common Name (CN).

Requisitos previos específicos de las aplicaciones RDP con agente utilizadas en un puesto de usuario macOS o Ubuntu

Atención

Los requisitos previos siguientes solo son necesarios si el usuario inicia una aplicación RDP con agente y su puesto no es Windows (macOS o Ubuntu).

Si los usuarios de CyberElements tienen puestos exclusivamente Windows o, en su defecto, utilizan exclusivamente aplicaciones HTML5 RDP, los requisitos previos siguientes pueden ignorarse.

Las claves de registro siguientes son necesarias en el servidor de destino en el que está desplegado el agente de grabación.

En primer lugar, la primera clave desactivará la lista de programas de inicio autorizados (documento de Microsoft). De forma predeterminada, una máquina Windows solo autoriza explorer.exe como programa de inicio.

1
2
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList]
"fDisabledAllowList"=dword:00000001

Si la máquina no es un servidor RDS, se recomienda siempre aplicar la clave de registro siguiente para permitir que el agente de grabación se abra como programa de inicio:

1
2
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"HonorLegacySettings"=dword:00000001

Requisitos específicos del acceso directo

Funcionalidad de acceso directo

La funcionalidad de acceso directo permite desencadenar la grabación de la sesión del usuario en los accesos RDP o de consola (conexión física a la máquina o mediante el modo consola del hipervisor) que no pasan directamente por CyberElements.

Si el usuario tiene permiso para acceder al servidor, su sesión se grabará. Si no es el caso, de forma predeterminada el usuario será desconectado.

Para que el agente de grabación funcione en modo de acceso directo se requiere un certificado x509. Ese certificado debe cumplir los requisitos siguientes:

  • El certificado debe seguir siendo válido (periodo de validez no caducado).
  • El certificado debe ser del tipo (campo de uso mejorado de clave) client authentication (OID: 1.3.6.1.5.5.7.3.2).
  • El certificado no debe estar revocado.
  • Las restricciones derivadas del nivel de seguridad 2 de OpenSSL implican que:
    • El certificado debe tener una clave privada de al menos 2048 bits con los cifrados RSA, DSA y DH; en las claves de curva elíptica (ECC) deben ser de al menos 224 bits.
    • La firma del certificado no debe ser MD5 ni SHA-1 (se prefiere SHA-512).
  • El servidor de grabación utilizará el campo Common Name (CN) para identificar el certificado y, por tanto, la máquina en la que se desencadena una grabación directa. Ese campo debe estar rellenado.

Uso del agente de grabación con aplicaciones RDP y RDP HTML5

Activar el uso del agente de grabación

Si el agente de grabación está correctamente instalado y configurado, su uso se activa en la aplicación RDP o RDP HTML5 correspondiente:

En el mecanismo intervienen tres parámetros:

Without agent mode
Esta opción debe permanecer sin marcar para que el agente de grabación funcione.
Disconnect session if the recorder is not working
Activa o desactiva una medida de seguridad cuando la grabación de la sesión falla por cualquier motivo. Si la grabación no puede realizarse, la sesión RDP o RDP HTML5 del usuario se cerrará. Recomendamos activar este parámetro para evitar conexiones de usuario sin grabación (por ejemplo, en caso de fallo del agente de grabación).
Time before disconnection
Si la opción anterior está activada, este parámetro permite definir el tiempo, en segundos, antes de que se produzca la desconexión. El valor predeterminado es de 30 segundos, pero puede reducirse para ganar en capacidad de reacción, o aumentarse si se sabe, por ejemplo, que las sesiones de los usuarios son largas.

Limitar los movimientos laterales

La limitación de los movimientos laterales es una función que restringe las conexiones de red de la sesión del usuario. De forma predeterminada, bloquea todo el tráfico TCP/UDP dentro de la sesión, pero los administradores pueden abrir distintos flujos de acceso.

Las restricciones se configuran en la access policy y pueden por tanto variar según el usuario, e incluso tener valores distintos para un mismo usuario (multiplicando las políticas de acceso que se le asignan). Un usuario con varias políticas de acceso para una misma aplicación verá aplicarse las restricciones de red del acceso más permisivo.

Una vez autorizada en una política de acceso una aplicación RDP o RDP HTML5 con agente, la pestaña Network connections queda disponible. Desde ella es posible activar el filtrado e indicar las redes autorizadas para el usuario:

Información

Cualquier cambio en estos parámetros solo se aplicará a los usuarios en su siguiente uso de la aplicación RDP o RDP HTML5 correspondiente.

Configurar las grabaciones de los accesos directos con agente

Declarar los servidores preparados para el acceso directo con agente

Para declarar un servidor que debe funcionar en modo de acceso directo con agente, primero hay que abrir el módulo Machines management:

A continuación, haga clic en el botón para añadir un nuevo servidor. Aparecerá una nueva ventana para configurarlo:

Name
Nombre de la máquina tal como se muestra en la consola de CyberElements.
Notification text
Mensaje de notificación que recibirán los usuarios al conectarse al servidor.
Record sessions as videos
Activa o desactiva la grabación de la sesión en vídeo. Si se desactiva, solo se capturarán y registrarán los eventos de la sesión.
Check video integrity at playback
Al crear el archivo de vídeo se calcula y se almacena un hash (SHA-256) del fichero. Cuando los administradores consultan el archivo, se comprueba que el hash no ha cambiado. Si ha cambiado, se envía un mensaje de alerta al administrador, ya que la grabación habrá sido modificada (por ejemplo, sustituida o con secuencias cortadas).
Allow manual removal of archives
Autoriza o deniega a los administradores la eliminación de los archivos de vídeo.

Información

Los archivos generados conservan los parámetros vigentes en el momento de la grabación. Modificar este parámetro solo afectará a los nuevos archivos.
Delete archives automatically
Configuración de la eliminación automática de los archivos una vez superado un número determinado de días.

Información

Los archivos generados conservan los parámetros vigentes en el momento de la grabación. Modificar este parámetro solo afectará a los nuevos archivos.
Use agent mode
Opción que debe estar activada para que el servidor disponga del mecanismo de acceso directo con agente activo.
Host (CN of the certificate)
Indicación del CN del certificado que utiliza el agente de grabación para autenticarse ante la Edge Gateway. Corresponde a la configuración del certificado de máquina.
Use no agent
Si un parámetro no resulta útil para el modo de funcionamiento deseado, puede dejarse sin marcar.

Configurar los derechos de acceso directo con agente

La configuración de los derechos de acceso directo con agente es similar a la de las políticas de acceso de las aplicaciones. Los nuevos derechos se declaran, y los existentes se modifican, desde Direct recording configuration:

Puede añadir una nueva configuración haciendo clic en el botón .

Las distintas pestañas de parámetros son similares a las de las políticas de acceso de las aplicaciones, salvo la pestaña de grupos, que permite añadir un grupo manualmente:

Tras hacer clic en el botón de adición manual, aparecerá una nueva ventana para indicar el nombre del grupo y su dominio:

Consejo

Esta función resulta especialmente útil si desea añadir un grupo local, o un grupo situado en una OU distinta de la definida en la configuración del dominio LDAP.

Las demás pestañas son:

  • Sites: sitúa la configuración en uno o varios sitios y, por extensión, permite al agente de grabación conectarse a una o varias Edge Gateways asociadas a los sitios autorizados.
  • Machines: añade los servidores RDP declarados en el capítulo anterior.
  • Alerts: asocia alertas a la configuración.
  • Network connections: limita los movimientos laterales de los usuarios durante sus sesiones, con un funcionamiento idéntico a la limitación de los movimientos laterales de las aplicaciones RDP y RDP HTML5.

Registros del agente de grabación

Activar los registros del agente de grabación

Atención

La activación de los registros requiere reiniciar el servicio del agente de grabación, lo que detendrá las grabaciones de sesión en curso en el servidor.
Según la configuración de la clave LogOffOnFailure, el usuario será desconectado o permanecerá conectado.

Para activar los registros del agente de grabación, debe realizar los pasos siguientes:

  1. Cree un directorio llamado Log en el directorio de instalación del agente (de forma predeterminada, C:\Program Files (x86)\Systancia\cyberelements).

  2. Reinicie el servicio CleanroomAgent, por ejemplo con el comando de PowerShell siguiente, ejecutado como administrador:

    1
    Restart-Service -Name 'CleanroomAgent'
    

Cada vez que se inicie el servicio del agente de grabación se generará un nuevo fichero de registro en el directorio Log creado en el paso 1.

Contenido de los registros del agente de grabación

Los registros que genera el agente de grabación tienen este aspecto:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem System directory: C:\Windows\system32
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem Windows directory: C:\Windows
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem Windows temporary directory: C:\Windows\TEMP\
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem User profile directory: C:\Windows\system32\config\systemprofile
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem Current directory: C:\Windows\system32
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem Application Data directory: C:\Windows\system32\config\systemprofile\AppData\Roaming
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Command line: C:\Program Files (x86)\Systancia\Safe\IpDivaCareSupervisor.exe
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Current exe directory: C:/Program Files (x86)/Systancia/Safe/
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Root directory: C:/Program Files (x86)/Systancia/
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Microsoft Windows NT family
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Service Pack 0.0
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem OEM ID: 0
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Number of Processors: 8
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Page size: 4096
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Processor Type: 586
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Active processor mask: 255
16-06-25 14:49:02.608 [6364] TRACE Console.infoSystem Username: Système
16-06-25 14:49:02.608 [6364] TRACE Console.infoSystem -----------------------------------
16-06-25 14:49:02.609 [4620] TRACE main.run Loaded 1 gateways from file C:/Program Files (x86)/Systancia/Safe/gateways.xml
16-06-25 14:49:02.610 [4620] ERROR main.run Error loading public keys. boost::filesystem::directory_iterator::construct: Le fichier spécifié est introuvable [system:2]: "C:/Program Files (x86)/Systancia/pubkeys"
16-06-25 14:49:02.610 [4620] TRACE main.wtssessionchange Copying C:/Program Files (x86)/Systancia/Safe/CareInit.exe to C:/Windows/system32/CareInit.exe
16-06-25 14:49:12.298 [6364] TRACE main.wtssessionchange Session logon or connect :6 event:3
16-06-25 14:49:12.299 [6364] TRACE main.wtssessionchange
16-06-25 14:49:13.301 [6364] TRACE main.wtssessionchange Session logon or connect :6 event:5
16-06-25 14:49:13.303 [6364] TRACE main.wtssessionchange cyberelements_user
16-06-25 14:49:13.319 [6364] TRACE wtssessionchange.wtssessionchange 17 bytes written
16-06-25 14:49:13.319 [6364] TRACE wtssessionchange.wtssessionchange Opened VC clr
16-06-25 14:49:13.371 [6364] TRACE main.wtssessionchange Recording server retrieved via VC clr:my-edge-gateway.domain.local
16-06-25 14:49:13.371 [6364] TRACE main.wtssessionchange care password :K5efPBwVM2cIU0LaYQucZp0FV19nRIE5f5VYoBZz6EqlZOxNGM
16-06-25 14:49:13.371 [6364] TRACE SelectConfig.autoconf poll() is not supported on this platform, using select()
16-06-25 14:49:13.418 [6364] TRACE main.getNetFilterRulesInformation Filter not enabled
16-06-25 14:49:13.419 [6364] TRACE main.getNetFilterRulesInformation FALSE
16-06-25 14:49:13.419 [6364] ERROR main.getNetFilterRulesInformation No public key configured. Cannot verify net filtering rules.
16-06-25 14:49:13.419 [6364] TRACE Socket.incrCounters 0 UDP, 0 TCP, 1 Objs
16-06-25 14:49:13.421 [6364] TRACE main.createRecorderProcess launching whith password :K5efPBwVM2cIU0LaYQucZp0FV19nRIE5f5VYoBZz6EqlZOxNGM
16-06-25 14:49:26.664 [4620] TRACE main.createRecorderProcess Calling logoff.exe 6
16-06-25 14:49:26.990 [6364] TRACE main.wtssessionchange User DOMAIN\cyberelements_user has no other session. Dropping network filter rules
16-06-25 14:49:26.990 [6364] TRACE main.wtssessionchange Session logoff or disconnect :6 event:6
16-06-25 14:49:27.331 [6364] TRACE main.wtssessionchange Session logoff or disconnect :6 event:4
16-06-25 14:49:38.964 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:3
16-06-25 14:49:38.965 [6364] TRACE main.wtssessionchange
16-06-25 14:49:40.75 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:5
16-06-25 14:49:40.76 [6364] TRACE main.wtssessionchange cyberelements_user
16-06-25 14:49:40.178 [6364] TRACE wtssessionchange.wtssessionchange WTSVirtualChannelOpenEx failure.31 Not a Cleanroom session, or the client has no support for the clr virtual channel
16-06-25 14:49:40.179 [6364] TRACE main.wtssessionchange prog :
16-06-25 14:49:40.185 [6364] TRACE main.createRecorderProcess User groups :DOMAIN\Utilisateurs du domaine domain.local\Utilisateurs du domaine \Tout le monde domain.local\Tout le monde BUILTIN\Utilisateurs BUILTIN\Utilisateurs du Bureau à distance AUTORITE NT\REMOTE INTERACTIVE LOGON AUTORITE NT\INTERACTIF AUTORITE NT\Utilisateurs authentifiés domain.local\LOCAL DOMAIN\cyberelements_users domain.local\cyberelements_users 
16-06-25 14:49:40.186 [6364] TRACE getDirectRecordInformation.getDirectRecordInformation gateways: my-edge-gateway.domain.local
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server.domain.local in the local machine store
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate subject:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=my-rds-server.domain.local
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate issuer:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=SUB-CA
16-06-25 14:49:40.404 [6364] TRACE Socket.incrCounters 0 UDP, 0 TCP, 1 Objs
16-06-25 14:49:40.404 [6364] TRACE main.createRecorderProcess Net filter enabled
16-06-25 14:49:40.426 [3948] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Remote address: 168427818 (10.10.1.42) Remote port: 443 Protocol condition: TCP
16-06-25 14:49:40.427 [3948] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Remote address: 168432641 (10.10.20.1) Remote port: 53 Protocol condition: UDP
16-06-25 14:49:40.428 [6364] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Application: C:/Program Files (x86)/Systancia/Safe/IpdivaCareRecorder.exe Remote address: 168427791 (10.10.1.15) Remote port: 8443 Protocol condition: TCP
16-06-25 14:49:40.430 [6364] TRACE main.createRecorderProcess launching whith password :DIRECT_33fRBYAwVDEKs8n3bGFwlIgKYd39C2Ubcl4pkLLC0YAouL4Gml
16-06-25 14:49:48.690 [4620] TRACE main.createRecorderProcess Calling logoff.exe 7
16-06-25 14:49:50.13 [6364] TRACE main.wtssessionchange User DOMAIN\cyberelements_user has no other session. Dropping network filter rules
16-06-25 14:49:50.13 [6364] TRACE main.wtssessionchange Session logoff or disconnect :7 event:6
16-06-25 14:49:50.379 [6364] TRACE main.wtssessionchange Session logoff or disconnect :7 event:4
16-06-25 14:49:54.658 [6364] TRACE main.wtssessionchange Removing C:/Windows/system32/CareInit.exe
Inicialización del agente de grabación (líneas 1-21)

Cuando el agente de grabación se inicializa (líneas 1-18), se registran distintos datos sobre el sistema.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem System directory: C:\Windows\system32
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem Windows directory: C:\Windows
16-06-25 14:49:02.604 [6364] TRACE Console.infoSystem Windows temporary directory: C:\Windows\TEMP\
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem User profile directory: C:\Windows\system32\config\systemprofile
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem Current directory: C:\Windows\system32
16-06-25 14:49:02.605 [6364] TRACE Console.infoSystem Application Data directory: C:\Windows\system32\config\systemprofile\AppData\Roaming
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Command line: C:\Program Files (x86)\Systancia\Safe\IpDivaCareSupervisor.exe
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Current exe directory: C:/Program Files (x86)/Systancia/Safe/
16-06-25 14:49:02.606 [6364] TRACE Console.infoSystem Root directory: C:/Program Files (x86)/Systancia/
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Microsoft Windows NT family
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Service Pack 0.0
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem OEM ID: 0
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Number of Processors: 8
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Page size: 4096
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Processor Type: 586
16-06-25 14:49:02.607 [6364] TRACE Console.infoSystem Active processor mask: 255
16-06-25 14:49:02.608 [6364] TRACE Console.infoSystem Username: Système
16-06-25 14:49:02.608 [6364] TRACE Console.infoSystem -----------------------------------

La línea 19 indica el número de Edge Gateways encontradas en el fichero gateways.xml para el funcionamiento en modo directo.

19
16-06-25 14:49:02.609 [4620] TRACE main.run Loaded 1 gateways from file C:/Program Files (x86)/Systancia/Safe/gateways.xml

La línea 20 señala un problema de carga de claves en un directorio inexistente. Se trata de una función antigua que no afecta al funcionamiento general del agente, por lo que este registro de error puede ignorarse.

20
16-06-25 14:49:02.610 [4620] ERROR main.run Error loading public keys. boost::filesystem::directory_iterator::construct: Le fichier spécifié est introuvable [system:2]: "C:/Program Files (x86)/Systancia/pubkeys"

La línea 21 indica la copia del ejecutable CareInit.exe en System32, con el fin de cubrir los casos en los que una aplicación RDP con agente se inicia desde una máquina macOS o Ubuntu.
En ese caso, la conexión al servidor solicita la ejecución de CareInit.exe como programa de inicio.

21
16-06-25 14:49:02.610 [4620] TRACE main.wtssessionchange Copying C:/Program Files (x86)/Systancia/Safe/CareInit.exe to C:/Windows/system32/CareInit.exe
Conexión de una aplicación RDP o RDP HTML5 con agente (líneas 22-39)

Cuando se detecta una nueva sesión RDP, se escriben los registros siguientes, que indican la detección de la sesión y anotan el nombre del usuario que se ha conectado:

22
23
24
25
16-06-25 14:49:12.298 [6364] TRACE main.wtssessionchange Session logon or connect :6 event:3
16-06-25 14:49:12.299 [6364] TRACE main.wtssessionchange
16-06-25 14:49:13.301 [6364] TRACE main.wtssessionchange Session logon or connect :6 event:5
16-06-25 14:49:13.303 [6364] TRACE main.wtssessionchange cyberelements_user

En los registros anteriores, el usuario que se ha conectado por RDP es cyberelements_user.

Al iniciar una aplicación RDP o RDP HTML5 con agente se crea un canal virtual RDP específico, para enviar al agente de grabación la dirección de conexión de la Edge Gateway y la contraseña única de conexión a su servicio de grabación.
Esto indica dos cosas:

  1. El agente de grabación ha detectado que se trata de una conexión RDP iniciada por CyberElements, por lo que no debe tratar la sesión como un acceso directo.
  2. El agente de grabación ha podido obtener la dirección de la Edge Gateway a la que debe enviar las grabaciones de vídeo y los eventos.

Esta información corresponde a las líneas 27-29, en las que, en el ejemplo, el agente de grabación ha obtenido la dirección de conexión de la Edge Gateway (my-edge-gateway.domain.local) y una contraseña de un solo uso (K5efPBwVM2cIU0LaYQucZp0FV19nRIE5f5VYoBZz6EqlZOxNGM):

29
30
31
16-06-25 14:49:13.319 [6364] TRACE wtssessionchange.wtssessionchange Opened VC clr
16-06-25 14:49:13.371 [6364] TRACE main.wtssessionchange Recording server retrieved via VC clr:my-edge-gateway.domain.local
16-06-25 14:49:13.371 [6364] TRACE main.wtssessionchange care password :K5efPBwVM2cIU0LaYQucZp0FV19nRIE5f5VYoBZz6EqlZOxNGM

A continuación vienen los registros relativos a la aplicación de las reglas de filtrado de red, que se detallan en otra sección informativa más abajo.

Un registro indica el momento en que el agente de grabación inicia la conexión con la Edge Gateway y con qué contraseña única se autentica.

35
16-06-25 14:49:13.421 [6364] TRACE main.createRecorderProcess launching whith password :K5efPBwVM2cIU0LaYQucZp0FV19nRIE5f5VYoBZz6EqlZOxNGM

Por último, cuando el usuario inicia una desconexión, el agente de grabación la detecta para finalizar la grabación y retirar las posibles reglas de filtrado de red. Corresponde a las líneas 36-39 del fichero de registro del ejemplo:

36
37
38
39
16-06-25 14:49:26.664 [4620] TRACE main.createRecorderProcess Calling logoff.exe 6
16-06-25 14:49:26.990 [6364] TRACE main.wtssessionchange User DOMAIN\cyberelements_user has no other session. Dropping network filter rules
16-06-25 14:49:26.990 [6364] TRACE main.wtssessionchange Session logoff or disconnect :6 event:6
16-06-25 14:49:27.331 [6364] TRACE main.wtssessionchange Session logoff or disconnect :6 event:4
Conexión de un acceso directo RDP (líneas 40-61)

Cuando se detecta una nueva sesión RDP, se escriben los registros siguientes, que indican la detección de la sesión y anotan el nombre del usuario que se ha conectado:

40
41
42
43
16-06-25 14:49:38.964 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:3
16-06-25 14:49:38.965 [6364] TRACE main.wtssessionchange
16-06-25 14:49:40.75 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:5
16-06-25 14:49:40.76 [6364] TRACE main.wtssessionchange cyberelements_user

En los registros anteriores, el usuario que se ha conectado por RDP es cyberelements_user.

En una conexión RDP directa no se utiliza el canal virtual RDP específico de las aplicaciones RDP o RDP HTML5 con agente. El agente de grabación concluye por tanto que la sesión abierta es un acceso directo.

44
16-06-25 14:49:40.178 [6364] TRACE wtssessionchange.wtssessionchange WTSVirtualChannelOpenEx failure.31 Not a Cleanroom session, or the client has no support for the clr virtual channel

Al haber detectado un acceso directo, el agente de grabación registra los distintos grupos del usuario que acaba de conectarse:

46
16-06-25 14:49:40.185 [6364] TRACE main.createRecorderProcess User groups :DOMAIN\Utilisateurs du domaine domain.local\Utilisateurs du domaine \Tout le monde domain.local\Tout le monde BUILTIN\Utilisateurs BUILTIN\Utilisateurs du Bureau à distance AUTORITE NT\REMOTE INTERACTIVE LOGON AUTORITE NT\INTERACTIF AUTORITE NT\Utilisateurs authentifiés domain.local\LOCAL DOMAIN\cyberelements_users domain.local\cyberelements_users 

Consejo

Con esta información puede determinar por qué no se activan las grabaciones de los accesos directos: porque el contrato de acceso directo no autoriza ninguno de los grupos del usuario, o porque el nombre de dominio indicado debe ser el nombre corto (nombre netBIOS) o el nombre completo.

El agente de grabación indica a qué Edge Gateways podrá conectarse para enviar la grabación de la sesión del usuario.
Recuerde que son las Edge Gateways que figuran en el fichero gateways.xml configurado durante la configuración del agente de grabación.

47
16-06-25 14:49:40.186 [6364] TRACE getDirectRecordInformation.getDirectRecordInformation gateways: my-edge-gateway.domain.local

Después viene el certificado de cliente que el agente de grabación utiliza para autenticarse ante el servicio de grabación.
De forma predeterminada, el agente busca un certificado cuyo CN contenga el nombre del servidor RDP, salvo que se haya definido la clave MachineName.
A continuación indica el certificado seleccionado y los datos de la autoridad de certificación que lo ha generado.

48
49
50
51
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server.domain.local in the local machine store
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate subject:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=my-rds-server.domain.local
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate issuer:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=SUB-CA

En el ejemplo anterior, el agente de grabación ha buscado un certificado que contenga my-rds-server y ha encontrado uno con el CN my-rds-server.domain.local, emitido por la autoridad de certificación SUB-CA.

A continuación vienen los registros relativos a la aplicación de las reglas de filtrado de red, que se detallan en otra sección informativa más abajo.

Un registro indica el momento en que el agente de grabación inicia la conexión con la Edge Gateway y con qué contraseña única se autentica.

57
16-06-25 14:49:40.430 [6364] TRACE main.createRecorderProcess launching whith password :DIRECT_33fRBYAwVDEKs8n3bGFwlIgKYd39C2Ubcl4pkLLC0YAouL4Gml

Por último, cuando el usuario inicia una desconexión, el agente de grabación la detecta para finalizar la grabación y retirar las posibles reglas de filtrado de red. Corresponde a las líneas 58-61 del fichero de registro del ejemplo:

58
59
60
61
16-06-25 14:49:48.690 [4620] TRACE main.createRecorderProcess Calling logoff.exe 7
16-06-25 14:49:50.13 [6364] TRACE main.wtssessionchange User DOMAIN\cyberelements_user has no other session. Dropping network filter rules
16-06-25 14:49:50.13 [6364] TRACE main.wtssessionchange Session logoff or disconnect :7 event:6
16-06-25 14:49:50.379 [6364] TRACE main.wtssessionchange Session logoff or disconnect :7 event:4
Aplicación de las reglas de filtrado de red (líneas 31 y 53-56)

Para cada sesión que detecta, el agente de grabación determina si es necesario aplicar reglas de filtrado de red a la sesión del usuario.

Si no hay que aplicar ninguna regla de filtrado, el agente de grabación indica Filter not enabled.

31
16-06-25 14:49:13.418 [6364] TRACE main.getNetFilterRulesInformation Filter not enabled

Si hay que aplicar reglas de filtrado de red, aparece el mensaje Net filter enabled.
Tras esta línea de activación del filtrado se indica cada uno de los filtros aplicados, uno por línea:

53
54
55
56
16-06-25 14:49:40.404 [6364] TRACE main.createRecorderProcess Net filter enabled
16-06-25 14:49:40.426 [3948] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Remote address: 168427818 (10.10.1.42) Remote port: 443 Protocol condition: TCP
16-06-25 14:49:40.427 [3948] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Remote address: 168432641 (10.10.20.1) Remote port: 53 Protocol condition: UDP
16-06-25 14:49:40.428 [6364] TRACE CleanroomNetFilter.addRule User DOMAIN\cyberelements_user Application: C:/Program Files (x86)/Systancia/Safe/IpdivaCareRecorder.exe Remote address: 168427791 (10.10.1.15) Remote port: 8443 Protocol condition: TCP

Recuerde que, cuando el filtrado de red está activado, el comportamiento predeterminado es bloquear todo el tráfico TCP/UDP. Los filtros indicados son por tanto el único tráfico TCP/UDP autorizado para los programas que se ejecutan en el contexto del usuario.
En el ejemplo anterior están autorizadas las conexiones a TCP 10.10.1.42:443 y UDP 10.10.20.1:53. Además de estos dos flujos autorizados por el administrador, el flujo de conexión al servicio de grabación también está abierto, para que el programa encargado de ello pueda enviar la grabación de la sesión.

Consejo

Si no se autoriza ningún flujo para el usuario, solo aparecerán las líneas que indican que el filtrado está activo y que el proceso de grabación puede contactar con el servicio de grabación de la Edge Gateway.

Fallo de conexión al servicio de grabación

Varios problemas pueden impedir que el agente de grabación se conecte al servicio de grabación de una Edge Gateway.

El primero es un bloqueo del flujo de red. En ese caso, cuando el agente intenta conectarse al servicio de grabación, escribe registros similares a estos:

1
2
3
4
18-06-25 15:29:45.805 [2456] TRACE Socket.connect error during select or socket not writable, rc=0
18-06-25 15:29:45.805 [2456] TRACE Socket.raise error not registered: 0
18-06-25 15:29:45.809 [2456] ERROR main.getDirectRecordInformation Could not connect to gateway my-edge-gateway.domain.local Exception :ESocket:errors.cpp:242
18-06-25 15:29:45.809 [2456] ERROR main.getDirectRecordInformation No gateway available

En este ejemplo, la línea 1 indica que el flujo no ha podido iniciarse, mientras que la línea 3 precisa la Edge Gateway afectada y el fallo de conexión (observe también el número 242 al final de la línea 3, característico de este tipo de problema).

El segundo problema posible es la incapacidad del agente de grabación, y por extensión del servidor RDP, de resolver el nombre de la Edge Gateway:

1
2
3
18-06-25 15:37:07.539 [2456] ERROR Socket.DNSLookup getaddrinfo() Hôte inconnu. 
18-06-25 15:37:07.539 [2456] ERROR main.getNetFilterRulesInformation Could not retrieve netfilter rule with gateway wrong-dns-edge-gateway.domain.local Exception :ESocketLookupFailed:socket2.cpp:232
18-06-25 15:37:07.539 [2456] ERROR main.getNetFilterRulesInformation The gateway may need an upgrade

En este ejemplo, la línea 1 confirma el problema de resolución DNS del nombre de la Edge Gateway.
La segunda línea precisa el fallo de conexión y el nombre de la Edge Gateway. Observe que la línea termina con el número 232 cuando se trata de un fallo de resolución DNS.

El tercer problema posible es una conexión a un servicio que no es un servicio de grabación, por ejemplo un servidor web a la escucha en el puerto 8443. En ese caso se obtienen los registros siguientes:

1
2
3
18-06-25 15:38:33.607 [2456] TRACE IO.read problem when read data
18-06-25 15:38:33.608 [2456] ERROR main.getNetFilterRulesInformation Could not retrieve netfilter rule with gateway wrong-server.domain.local Exception :IOException:io.cpp:140
18-06-25 15:38:33.608 [2456] ERROR main.getNetFilterRulesInformation The gateway may need an upgrade

La línea 1 señala un problema con los datos intercambiados; la línea 2 confirma el problema de conexión y precisa el error 140 al final de la línea.

Ningún contrato de acceso directo permite activar la grabación de la sesión directa

En los accesos directos, no todos los usuarios tienen necesariamente que ser grabados. Cuando es el caso, se obtienen los registros siguientes:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
16-06-25 14:49:38.964 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:3
16-06-25 14:49:38.965 [6364] TRACE main.wtssessionchange
16-06-25 14:49:40.75 [6364] TRACE main.wtssessionchange Session logon or connect :7 event:5
16-06-25 14:49:40.76 [6364] TRACE main.wtssessionchange cyberelements_user
16-06-25 14:49:40.178 [6364] TRACE wtssessionchange.wtssessionchange WTSVirtualChannelOpenEx failure.31 Not a Cleanroom session, or the client has no support for the clr virtual channel
16-06-25 14:49:40.179 [6364] TRACE main.wtssessionchange prog :
16-06-25 14:49:40.185 [6364] TRACE main.createRecorderProcess User groups :DOMAIN\Utilisateurs du domaine domain.local\Utilisateurs du domaine \Tout le monde domain.local\Tout le monde BUILTIN\Utilisateurs BUILTIN\Utilisateurs du Bureau à distance AUTORITE NT\REMOTE INTERACTIVE LOGON AUTORITE NT\INTERACTIF AUTORITE NT\Utilisateurs authentifiés domain.local\LOCAL DOMAIN\cyberelements_users domain.local\cyberelements_users 
16-06-25 14:49:40.186 [6364] TRACE getDirectRecordInformation.getDirectRecordInformation gateways: my-edge-gateway.domain.local
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server
16-06-25 14:49:40.199 [6364] TRACE SecChannelClient.ClientCreateCredentials looking for a certificate with name containing:my-rds-server.domain.local in the local machine store
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate subject:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=my-rds-server.domain.local
16-06-25 14:49:40.201 [6364] TRACE SecChannelClient.ClientCreateCredentials certificate issuer:C=FR, S=Grand-Est, L=Sausheim, O=Systancia, CN=SUB-CA
16-06-25 14:49:40.404 [6364] TRACE Socket.incrCounters 0 UDP, 0 TCP, 1 Objs
16-06-25 14:49:40.406 [6364] TRACE main.createRecorderProcess no need to record

Los registros obtenidos empiezan como en cualquier sesión directa capturada por el agente de grabación. Sin embargo, una vez establecida la conexión con el servicio de grabación de la Edge Gateway, este devuelve al agente la información de que el usuario conectado no está sujeto a grabación.
El agente de grabación indica entonces que no es necesario grabar la sesión del usuario (línea 14 del ejemplo anterior).

La línea 7 enumera todos los grupos que el agente de grabación ha obtenido para el usuario conectado.
Esta información permite determinar por qué no se activan las grabaciones de los accesos directos: porque el contrato de acceso directo no autoriza ninguno de los grupos del usuario, o porque el nombre de dominio indicado debe ser el nombre corto (nombre netBIOS) o el nombre completo.