Servicio NetScaler Console

Integración con Microsoft Sentinel

Puede integrar NetScaler Console con Microsoft Sentinel para exportar los siguientes análisis de NetScaler Console a Microsoft Sentinel:

  • Violaciones de WAF
  • Infracciones de bots
  • Información sobre certificados SSL
  • Información sobre Gateway

Microsoft Sentinel proporciona una recopilación de datos centralizada que reúne datos de diversas fuentes, como aplicaciones, servidores, etc. Como administrador, puede ver los datos y tomar decisiones después de que se notifiquen las ideas o las infracciones en Microsoft Sentinel.

Para que la integración se realice correctamente, asegúrese de tener una suscripción de Azure activa y, a continuación, siga el procedimiento que se indica en cada sección:

Configurar el espacio de trabajo de análisis de registros

Se requiere un espacio de trabajo de análisis de registros para almacenar y analizar los datos recopilados.

  1. Inicie sesión en Azure.

  2. Haga clic en Crear un recurso.

    Recurso

  3. En la barra de búsqueda, escriba Log Analytics Workspace y haga clic en Crear en Log Analytics Workspace.

    Espacio de trabajo de analíticas de registros

  4. En la página principal de Log Analytics Workspace, haga clic en Crear.

    Creación de espacios de trabajo

  5. En el espacio de trabajo Crear análisis de registros:

    1. Seleccione la suscripción activa y el grupo de recursos.

      Nota:

      También puede hacer clic en Crear nuevo para agregar un grupo de recursos si tiene el privilegio.

    2. Especifique un nombre de su elección.

    3. Seleccione su región de la lista.

    4. Haga clic en Revisar + Crear.

      Creación del espacio de trabajo antes de la etapa final

    5. Aparece un mensaje de validación aprobada. Haga clic en Crear para implementar el espacio de trabajo.

      Creación de espacios de trabajo

    6. Puede ver el mensaje de implementación en curso. Cuando vea el mensaje de finalización de la implementación, haga clic en Ir al recurso.

      Recurso de espacio de trabajo

      El espacio de trabajo se creó correctamente.

Crear una aplicación de Microsoft Entra

Debe crear una aplicación Entra asociada a su suscripción de Azure para comunicarse en nombre de Log Analytics Workspace. Tras crear la aplicación, también debe conceder el permiso con la función de colaborador de Microsoft Sentinel. La aplicación también proporciona detalles como el ID de cliente, el ID de arrendatario y el secreto del cliente. Le recomendamos que tome nota de estos detalles. Estos detalles son necesarios al crear una suscripción en NetScaler Console para completar el proceso de integración.

  1. En su portal de Azure, escriba la palabra clave en la barra de búsqueda.

  2. Haga clic en Microsoft Entra ID.

    Aplicación Entra

  3. Haga clic en Agregar y seleccione Registro de aplicaciones.

    Registrar una aplicación

  4. Especifique un nombre para la aplicación, seleccione la opción predeterminada en Tipos de cuentas compatibles y, a continuación, haga clic en Registrar.

    Registro de aplicaciones

  5. Después de registrar la solicitud:

    1. Anote el ID de cliente y el ID de arrendatario.

      Identificadores de clientes y arrendatarios

    2. Cree un identificador secreto para su aplicación. Haga clic en Certificados y secretos y, en Secretos de cliente, haga clic en Nuevo secreto de cliente. Proporcione una descripción, la validez y, a continuación, haga clic en Agregar para crear un ID secreto para su aplicación.

      ID secreto del cliente

    3. Se muestran los detalles de su solicitud. Asegúrese de anotar el ID que aparece en Valor inmediatamente después de crear el secreto. Este valor se oculta si navega a cualquier otra opción de la GUI.

      ID de valor

Asignar permiso para la aplicación Entra

Debe asignar a la aplicación la función de colaborador de Microsoft Sentinel. Para conceder el permiso:

  1. Navegue hasta Microsoft Entra ID en su portal de Azure.

  2. Haga clic en Registros de aplicaciones y, a continuación, seleccione su aplicación.

    Selección de aplicaciones

  3. Haga clic en Control de acceso (IAM) y, a continuación, en Agregar asignación de funciones.

    Asignación de funciones de aplicaciones

  4. En la barra de búsqueda, escriba la palabra clave sentinel, seleccione Microsoft Sentinel Contributor y haga clic en Siguiente.

  5. En la pestaña Miembros, haga clic en Seleccionar miembros y seleccione la aplicación Entra que creó.

  6. Haga clic en Revisar + asignar.

Configurar el punto final de recopilación de datos

Debe crear un punto final de recopilación de datos para obtener la URL del punto final. Esto es obligatorio al crear una suscripción en NetScaler Console.

  1. En el portal de Azure, en Servicios de Azure, seleccione Terminales de recopilación de datos o escriba la palabra clave en la barra de búsqueda.

    Selección DCR

  2. Haga clic en Crear en la página de puntos finales de recopilación de datos .

    Creación de DCR

  3. En Crear punto final de recopilación de datos:

    1. Especifique un nombre de punto final de su elección

    2. Seleccione la suscripción, grupo de recursos y región.

    3. Haga clic en Revisar + Crear.

    4. Cuando vea el mensaje de validación aprobada, haga clic en Crear.

Debe tomar nota de la URL del punto final. En la página principal del punto final de recopilación de datos, seleccione el punto final creado, haga clic en la vista JSON y anote el ID del punto final.

ID de DCR

Crear tablas para exportar datos

Debe crear una tabla y proporcionar la información de JSON para cada información que quiera exportar de NetScaler Console a Microsoft Sentinel. Puede consultar los siguientes detalles en la tabla de requisitos para cada información:

Ideas Número total de tablas requeridas
Información sobre SSL 3
WAF 1
Bot 1
Información sobre Gateway 5

Para cada espacio de trabajo, puede crear un máximo de 10 tablas. Más allá de 10 tablas, debe crear otro espacio de trabajo.

  1. Navegue hasta su espacio de trabajo en el portal de Azure y haga clic en Tablas en Configuración.

  2. Haga clic en Crear y seleccione Nuevo registro personalizado (basado en DCR)

    Tabla

  3. En Crear un registro personalizado:

    1. Especifique un nombre de tabla. El nombre de la tabla debe tener el formato console_insightname. Por ejemplo: console_ns_sslvserver, console_ns_ssl_certkey. Puede consultar el paso 4 para obtener los nombres de las tablas aplicables a cada información.

    2. Proporcione una descripción para agregar más información sobre el nombre de la tabla. Este paso es opcional.

    3. Cree una nueva regla de recopilación de datos y agréguela.

    4. Seleccione el punto final de recopilación de datos de la lista.

      Parámetros de tabla

    5. Haga clic en Siguiente.

  4. En la pestaña Esquema y transformación, debe cargar los registros de muestra de JSON para obtener la información que desea exportar. Puedes usar el siguiente ejemplo de JSON para cada información y crear un archivo JSON para subirlo:

    Ideas JSON Nombre de la tabla que se utilizará
    SSL (1) {"id": "3eb05733-c326-493c-9aa0-f7db3a6b4277", "ns_ip_address": "10.106.186.141", "name": "zeta_192_168_110_250", "vsvr_ip_address": "", "vsvr_port": -1, "vsvr_type": "", "state": "", "partition_name": "", "display_name": "10.106.186.141", "poll_time": 1716539986, "managed": "f", "ssl2": "f", "ssl3": "t", "tls10": "t", "tls11": "t", "tls12": "t", "dh": "f", "ersa": "t", "sslprofile": "", "tls13": "f", "dhkeyexpsizelimit": "DISABLED", "pushenctriggertimeout": 1, "sessionticket": "", "includesubdomains": "f", "sessionticketkeyrefresh": "", "ssllogprofile": "", "serverauth": "", "ssltriggertimeout": 100, "ersacount": 0, "strictcachecks": "NO", "dhfile": "", "sessreuse": "ENABLED", "redirectportrewrite": "DISABLED", "skipclientcertpolicycheck": "", "tls13sessionticketsperauthcontext": 1, "cipherredirect": "DISABLED", "dropreqwithnohostheader": "NO", "sessionticketlifetime": -1, "maxage": 0, "pushenctrigger": "Always", "strictsigdigestcheck": "f", "sslredirect": "DISABLED", "sessionkeylifetime": -1, "alpnprotocol": "", "clientauthuseboundcachain": "", "sesstimeout": 120, "clientcert": "", "snihttphostmatch": "CERT", "preload": "NO", "prevsessionkeylifetime": -1, "sessionticketkeydata": "", "encrypttriggerpktcount": 45, "cleartextport": "", "ssliocspcheck": "", "hsts": "f", "sslinterception": "", "commonname": "", "sslireneg": "", "ocspstapling": "DISABLED", "quantumsize": 8192, "insertionencoding": "Unicode", "sslimaxsessperserver": -1, "cipherurl": "", "pushflag": 0, "zerorttearlydata": "DISABLED", "allowextendedmastersecret": "", "dhekeyexchangewithpsk": "NO", "clientauth": "DISABLED", "denysslreneg": "NONSECURE", "sendclosenotify": "YES", "dhcount": 0, "snienable": "DISABLED", "table_name": "ns_sslvserver"} console_ns_sslvserver
    SSL (2) {"id": "a6673ab2-0b59-47b9-b530-bc30fb2b937c", "ssl_certificate": "/nsconfig/ssl/ca-cert.pem", "ssl_key": "/nsconfig/ssl/ca-key.pem", "certkeypair_name": "athul-ca", "cert_format": "PEM", "days_to_expiry": 281, "ns_ip_address": "10.106.186.141", "status": "Valid", "device_name": "10.106.186.141", "file_location_path": "", "certificate_data": "", "key_data": "", "poll_time": 1717434335, "no_domain_check": "f", "version": 3, "serial_number": "7B34B6A6A1A79E0FF168242D7BCFF78F04C9EE66", "signature_algorithm": "sha256WithRSAEncryption", "issuer": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "valid_from": "Mar 12 08:51:11 2024 GMT", "valid_to": "Mar 12 08:51:11 2025 GMT", "subject": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "public_key_algorithm": "rsaEncryption", "public_key_size": 4096, "no_of_bound_entities": 0, "partition_name": "", "display_name": "10.106.186.141", "hostname": "athulsadc", "key_name": "", "subjaltname": "", "managed_by": "", "certificate_dn": "", "linkcertkeyname": "", "table_name": "ns_ssl_certkey"} console_ns_ssl_certkey
    SSL (3) {"id": "2baffd1a-7ed6-4035-91e8-ad3a3125bff4", "certkeypair_name": "cert1", "ns_ip_address": "10.106.186.127", "poll_time": 1715671567, "partition_name": "", "display_name": "10.106.186.127", "hostname": "", "entity_name": "secure_gateway", "entity_type": "sslvserver", "table_name": "ns_sslcertkey_binding"} console_ns_sslcertkey_binding
    WAF [{"ip_address": "10.106.185.156", "ctnsappname": "vserver_1", "severity": 2, "violation_type": 19, "violation_type_desc": "Start URL", "block_flags": 1, "transformed_flags": 0, "not_blocked_flags": 0, "country_code": "-NA-", "region_code": "-NA-", "city": "-NA-", "latitude": 200.0, "longitude": 200.0, "signature_category": "", "attack_category": 2, "attack_category_desc": "Broken Authentication and Session Management", "total_attacks": 1, "rpt_sample_time": 1704783773, "source_ip_address": 174766492, "attack_time": 1704783538, "profile_name": "appfw_cs_lb_prof", "session_id": "", "http_req_url": "https://10.106.192.54/csrf_ffc/ffc.html?field10=asfasd", "violation_name": "-NA-", "violation_value": "-NA-", "violation_location": 4, "violation_threat_index": 5, "app_threat_index": 5, "http_method": 0, "violation_action": 3, "violation_action_desc": "Blocked", "severity_type": 2, "severity_type_desc": "Medium", "iprep_score": 0, "iprep_category": 0, "counter_value": 0, "appname": "vserver_1_10.106.185.156_lb", "violation_category": 12, "violation_category_desc": "Start URL", "source_ipv6_address": "", "true_client_ip": "\\N", "backend_vserver": "", "backend_appname": "", "transactionId": "0", "table_name": "af_threat_exporter_data_l2"}] console_af_threat_exporter_data_l2
    Bot {"ip_address": "10.106.186.122", "ctnsappname": "secure_gateway", "bot_type": "2", "bot_type_desc": "Bad", "action_type": "6", "action_type_desc": "Log", "country_code": "0.0", "region_code": "0.0", "city": "0.0", "bot_severity": "0", "bot_severity_desc": "Critical", "latitude": "0", "longitude": "0", "bot_detection_mechanism": "6", "bot_detection_mechanism_desc": "BlackList", "bot_category": "0", "bot_category_desc": "Uncategorized", "source_ip_address": "174758625", "bot_signature_category": "Custom Policy Expression", "appname": "secure_gateway_10.106.186.122_lb", "backend_vserver": "", "backend_appname": "", "total_attacks": "2", "rpt_sample_time": "1718783216", "table_name": "af_bot_attack_details_l2"} console_af_bot_attack_details_l2
    Gateway Insight (1) {"adc_ip_address": "10.106.186.141", "auth_server": "", "client_ip": 174766732, "epa_method_type": 0, "error_count": 14, "error_details": "Invalid credentials passed", "error_type": 1, "gateway_name": "vpn_vserver_142_6", "req_url": "", "resource": "", "rpt_sample_time": 1713505215, "sso_method_type": 0, "sta_ip": "", "table_name": "af_vpn_error_details", "username": "John"} console_af_vpn_error_details
    Gateway Insight (2) {"adc_ip_address": "10.102.71.166", "display_name": "10.102.71.166", "gateway_name": "firsthop", "ip_address": "10.102.71.168", "rpt_sample_time": "1718812158", "state": "Up", "table_name": "ns_vpnvserver"} console_ns_vpnvserver
    Gateway Insight (3) {"adc_ip_address": "10.106.186.141", "gateway_name": "vpn_vserver_141_7", "rpt_sample_time": 1702011308, "sessions": 1, "table_name": "af_vpn_session_details", "users": 1} console_af_vpn_session_details
    Gateway Insight (4) {"active_sessions": 59, "active_users": 1, "adc_ip_address": "10.106.186.136", "gateway_name": "vpnathul2", "rpt_sample_time": 1698919848, "table_name": "af_vpn_active_session_1"} console_af_vpn_active_session_1
    Gateway Insight (5) {"adc_ip_address": "10.106.186.136", "entity_type": 3, "gateway_name": "vpnathul2", "hits": 3, "rpt_sample_time": 1698052438, "table_name": "af_vpn_error_reports"} console_af_vpn_error_reports

    Tras cargar el JSON, puede ver los siguientes detalles:

    Detalles de JSON

    Haga clic en el editor de transformaciones, introduzca la siguiente consulta que sea aplicable para obtener la información adecuada y haga clic en Ejecutar para aceptar los datos a partir del momento del sondeo en NetScaler Console.

    • SSL - source | extend TimeGenerated = todatetime(poll_time) | project-rename sslvserver_id = id

    • WAF y Bot - source | extend TimeGenerated = todatetime(rpt_sample_time)

    • Gateway Insight - source | extend TimeGenerated = todatetime(rpt_sample_time)

      Ejecución de tabla

  5. Haga clic en Siguiente y, a continuación, en Crear para completar.

  6. Navegue hasta Reglas de recopilación de datos y haga clic en el DCR que ha creado.

  7. En Configuración, haga clic en Fuentes de datos para ver la tabla creada.

    Fuente de la tabla

    La DCR (regla de recopilación de datos) requiere acceso a la función de publicador de métricas de monitoreo.

    1. Navegue hasta su DCR, al que puede acceder desde su portal de Azure, en Recientes.

    2. Haga clic en Control de acceso (IAM) en la página de DCR y, a continuación, haga clic en Agregar asignación de funciones.

      Asignación de funciones

    3. En la barra de búsqueda, escriba la palabra clave monitor para seleccionar Monitoring Metrics Publisher y haga clic en Siguiente.

    4. En la pestaña Miembros, haga clic en Seleccionar miembros y seleccione la aplicación Entra que creó.

    5. Haga clic en Revisar + asignar.

      Debe anotar el ID de las reglas de recopilación de datos. Vaya a la página de reglas de recopilación de datos, seleccione su DCR y haga clic en la vista JSON para tomar nota del ID.

      ID de DCR

Crear una suscripción en NetScaler Console

Ya tiene todo listo. El último paso consiste en configurar NetScaler Console mediante la creación de una suscripción y la adición de los detalles necesarios. Para crear una suscripción en NetScaler Console, necesita los siguientes detalles que ha anotado:

  • URL de punto final
  • ID de reglas de recopilación de datos
  • ID de arrendatario
  • ID de cliente
  • Secreto del cliente
  1. Inicie sesión en NetScaler Console.

  2. Vaya a Configuración > Integración de observabilidad.

  3. En la página Integraciones, haga clic en Agregar.

  4. En la página Crear suscripción, especifique los siguientes detalles:

    1. Especifique un nombre de su elección en el campo Nombre de la suscripción.

    2. Seleccione Consola de NetScaler como Origen y haga clic en Siguiente.

    3. Seleccione Microsoft Sentinel y haga clic en Configurar. En la página Configurar punto final, introduzca todos los detalles y haga clic en Enviar.

    4. Haga clic en Siguiente.

  5. Haga clic en Agregar información y, en la pestaña Seleccionar función, según las tablas que haya agregado en Microsoft Azure, seleccione las funciones que desea exportar, haga clic en Agregar selección y, a continuación, haga clic en Siguiente.

  6. En la ficha Seleccionar instancia, puede elegir Seleccionar todas las instancias o Selección personalizada y, a continuación, hacer clic en Siguiente.

    • Seleccionar todas las instancias: exporta datos a Microsoft Sentinel desde todas las instancias de NetScaler.

    • Selección personalizada: permite seleccionar las instancias de NetScaler de la lista. Si selecciona instancias específicas de la lista, los datos se exportan a Microsoft Sentinel solo desde las instancias de NetScaler seleccionadas.

  7. Haga clic en Enviar.

Ver registros en Microsoft Azure

Después de configurar todo, le recomendamos que espere hasta 30 minutos para ver los detalles en Microsoft Azure.

  1. En su portal de Azure, navegue hasta su espacio de trabajo de Log Analytics.

  2. Haga clic en Registros, introduzca el nombre de la tabla y haga clic en Ejecutar para ver los resultados.

    Ver registros

Integración con Microsoft Sentinel