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.
-
Inicie sesión en Azure.
-
Haga clic en Crear un recurso.
-
En la barra de búsqueda, escriba Log Analytics Workspace y haga clic en Crear en Log Analytics Workspace.
-
En la página principal de Log Analytics Workspace, haga clic en Crear.
-
En el espacio de trabajo Crear análisis de registros:
- 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.
-
Especifique un nombre de su elección.
-
Seleccione su región de la lista.
-
Haga clic en Revisar + Crear.
-
Aparece un mensaje de validación aprobada. Haga clic en Crear para implementar el espacio de trabajo.
-
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.
El espacio de trabajo se creó correctamente.
- Seleccione la suscripción activa y el grupo de recursos.
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.
-
En su portal de Azure, escriba la palabra clave en la barra de búsqueda.
-
Haga clic en Microsoft Entra ID.
-
Haga clic en Agregar y seleccione Registro de aplicaciones.
-
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.
-
Después de registrar la solicitud:
-
Anote el ID de cliente y el ID de arrendatario.
-
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.
-
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.
-
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:
-
Navegue hasta Microsoft Entra ID en su portal de Azure.
-
Haga clic en Registros de aplicaciones y, a continuación, seleccione su aplicación.
-
Haga clic en Control de acceso (IAM) y, a continuación, en Agregar asignación de funciones.
-
En la barra de búsqueda, escriba la palabra clave sentinel, seleccione Microsoft Sentinel Contributor y haga clic en Siguiente.
-
En la pestaña Miembros, haga clic en Seleccionar miembros y seleccione la aplicación Entra que creó.
-
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.
-
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.
-
Haga clic en Crear en la página de puntos finales de recopilación de datos .
-
En Crear punto final de recopilación de datos:
-
Especifique un nombre de punto final de su elección
-
Seleccione la suscripción, grupo de recursos y región.
-
Haga clic en Revisar + Crear.
-
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.
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.
-
Navegue hasta su espacio de trabajo en el portal de Azure y haga clic en Tablas en Configuración.
-
Haga clic en Crear y seleccione Nuevo registro personalizado (basado en DCR)
-
En Crear un registro personalizado:
-
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.
-
Proporcione una descripción para agregar más información sobre el nombre de la tabla. Este paso es opcional.
-
Cree una nueva regla de recopilación de datos y agréguela.
-
Seleccione el punto final de recopilación de datos de la lista.
-
Haga clic en Siguiente.
-
-
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:
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)
-
-
Haga clic en Siguiente y, a continuación, en Crear para completar.
-
Navegue hasta Reglas de recopilación de datos y haga clic en el DCR que ha creado.
-
En Configuración, haga clic en Fuentes de datos para ver la tabla creada.
La DCR (regla de recopilación de datos) requiere acceso a la función de publicador de métricas de monitoreo.
-
Navegue hasta su DCR, al que puede acceder desde su portal de Azure, en Recientes.
-
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.
-
En la barra de búsqueda, escriba la palabra clave monitor para seleccionar Monitoring Metrics Publisher y haga clic en Siguiente.
-
En la pestaña Miembros, haga clic en Seleccionar miembros y seleccione la aplicación Entra que creó.
-
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.
-
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
-
Inicie sesión en NetScaler Console.
-
Vaya a Configuración > Integración de observabilidad.
-
En la página Integraciones, haga clic en Agregar.
-
En la página Crear suscripción, especifique los siguientes detalles:
-
Especifique un nombre de su elección en el campo Nombre de la suscripción.
-
Seleccione Consola de NetScaler como Origen y haga clic en Siguiente.
-
Seleccione Microsoft Sentinel y haga clic en Configurar. En la página Configurar punto final, introduzca todos los detalles y haga clic en Enviar.
-
Haga clic en Siguiente.
-
-
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.
-
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.
-
-
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.
-
En su portal de Azure, navegue hasta su espacio de trabajo de Log Analytics.
-
Haga clic en Registros, introduzca el nombre de la tabla y haga clic en Ejecutar para ver los resultados.