
En artículos anteriores, nos familiarizamos un poco con el stack ELK y la configuración del archivo de configuración de Logstash para el analizador de registros. En este artículo, pasaremos a lo más importante desde el punto de vista analítico, lo que desea ver del sistema y por lo que todo fue creado: gráficos y tablas combinados en dashboards. Hoy nos familiarizaremos más con el sistema de visualización Kibana, veremos cómo crear gráficos, tablas, y como resultado construiremos un sencillo dashboard basado en los registros del firewall Check Point.
El primer paso para trabajar con Kibana es crear un patrón de índice, que lógicamente es una base de índices unificados según un principio determinado. Por supuesto, esto es exclusivamente una configuración para que Kibana busque información en todos los índices de manera más conveniente. Se establece mediante la coincidencia de la cadena, digamos “checkpoint-*” y el nombre del índice. Por ejemplo, «checkpoint-2019.12.05» encajaría con el patrón, mientras que simplemente «checkpoint» no. Cabe destacar que no se puede buscar información basada en diferentes patrones de índices simultáneamente. Más adelante, en artículos posteriores, veremos que las solicitudes de API se hacen ya sea por el nombre del índice, o por un solo patrón de línea, la imagen es clicable:
Después de esto, comprobamos en el menú Discover que todos los registros se están indexando y que el analizador está correctamente configurado. Si hay alguna discrepancia, por ejemplo, cambiar el tipo de dato de cadena a entero, es necesario editar el archivo de configuración de Logstash, y como resultado, los nuevos registros se grabarán correctamente. Para que los registros antiguos adopten el formato necesario antes del cambio, solo ayuda el proceso de reindexación. En artículos posteriores, esta operación se examinará con más detalle. Asegurémonos de que todo esté bien, la imagen es clicable:
Los registros están en su lugar, así que podemos proceder a construir dashboards. Con base en el análisis de dashboards de productos de seguridad, se puede entender el estado de la ciberseguridad en la organización, visualizar claramente los puntos vulnerables en la política actual y elaborar formas para abordarlos. Construiremos un pequeño dashboard utilizando varios medios de visualización. El dashboard constará de 5 componentes:
- tabla para contar el número total de registros por blades
- tabla de firmas críticas de IPS
- diagrama circular de eventos de Prevención de Amenazas
- diagrama de los sitios web más visitados
- diagrama del uso de las aplicaciones más peligrosas
Para crear figuras de visualización, debes ir al menú Visualizar, y seleccionar la figura que deseamos construir. Sigamos un orden.
Tabla para contar el número total de registros por blades
Para esto, seleccionaremos la figura Tabla de Datos, ingresamos en la herramienta para crear gráficos, a la izquierda se configuran las opciones de la figura, a la derecha se muestra cómo lucirá con la configuración actual. Primero, mostraré cómo se verá la tabla lista, luego revisaremos las configuraciones, la imagen es clickeable:
Configuraciones más detalladas de la figura, la imagen es clickeable:
Vamos a desglosar las configuraciones.
Inicialmente se configura métrica, este es el valor por el cual se agregarán todos los campos. Las métricas se calculan en base a los valores extraídos de una u otra manera de los documentos. Los valores generalmente se extraen de los campos del documento, pero también pueden ser generados usando scripts. En este caso, configuramos en Agregación: Contar (número total de registros).
Después de esto, dividimos la tabla por segmentos (campos) según los cuales se calculará la métrica. Esta función la realiza la configuración de Buckets, que a su vez consta de 2 opciones de configuración:
- dividir filas — agregar columnas y posteriormente dividir la tabla en filas
- dividir tabla — dividir en varias tablas por los valores de un campo específico.
En buckets se pueden agregar varias divisiones para crear varias columnas o tablas, las limitaciones aquí son más bien lógicas. En agregación se puede elegir cómo se dividirá en segmentos: rango ipv4, rango de fecha, Términos, etc. La opción más interesante es precisamente Términos y Términos Significativos, la división en segmentos se realiza según los valores de un campo específico del índice, la diferencia entre ellos radica en la cantidad de valores retornados y su visualización. Dado que queremos dividir la tabla por el nombre de los blades, elegimos el campo — product.keyword y establecemos el tamaño en 25 valores retornados.
En lugar de filas, en Elasticsearch se utilizan 2 tipos de datos — text y palabra clave. Si desea realizar una búsqueda de texto completo, debe utilizar el tipo text, lo cual es muy útil al crear su propio servicio de búsqueda, por ejemplo, busca una mención de la palabra en un campo de texto específico. Si solo desea coincidencias exactas, debe utilizar el tipo keyword. También se debe usar el tipo de datos keyword para campos que requieren clasificación o agregación, es decir, en nuestro caso.
Como resultado, Elasticsearch cuenta el número de logs en un período determinado, agregando según el valor en el campo product. En Custom Label, definimos el nombre de la columna que se mostrará en la tabla, establecemos el período para recoger los logs, iniciamos la representación: Kibana envía una consulta a Elasticsearch, espera la respuesta y luego visualiza los datos obtenidos. ¡La tabla está lista!
Gráfico circular de eventos de Prevención de Amenazas
Es de particular interés la información sobre cuántas reacciones hay en términos porcentuales detect y prevent los incidentes de seguridad de la información en la política de seguridad actual. Para este caso, un gráfico circular es muy adecuado. Seleccionamos en Visualize — Gráfico circular. También en la métrica establecemos la agregación por el número de logs. En buckets colocamos términos => action.
Parece que todo es correcto, pero los resultados muestran valores de todos los blades; necesitamos filtrar solo aquellos blades que operan en el marco de la Prevención de Amenazas. Por lo tanto, es indispensable configurar filtro para buscar información solo sobre los blades responsables de los incidentes de seguridad de la información — product: («Anti-Bot» OR «New Anti-Virus» OR «DDoS Protector» OR «SmartDefense» OR «Threat Emulation»). La imagen es clicable:
Y configuraciones más detalladas, la imagen es clicable:
Tabla de eventos IPS
Luego, desde el punto de vista de la seguridad de la información, es muy importante revisar y verificar los eventos en el blade IPS y Emulación de Amenazas, que no bloqueados por la política actual, para que en el futuro se pueda cambiar la firma a prevent, o si el tráfico es válido, no verificar la firma. Creamos la tabla de la misma manera que en el primer ejemplo, solo con la diferencia de que creamos varias columnas: protections.keyword, severity.keyword, product.keyword, originsicname.keyword. Es esencial configurar un filtro para buscar información solo sobre los blades responsables de los incidentes de seguridad de la información — product: ( «SmartDefense» OR «Threat Emulation»). La imagen es clicable:
Configuraciones más detalladas, la imagen es clicable:
Gráficos de los sitios más visitados
Para esto creamos una figura — Barra Vertical. También utilizamos la métrica count (eje Y), y en el eje X usaremos como valores los nombres de los sitios visitados — “appi_name”. Aquí hay un pequeño truco, si ejecutamos la configuración en su variante actual, todos los sitios se marcarán en el gráfico con un solo color, para que sean multicolores utilizamos una configuración adicional — “split series”, que permite dividir la columna ya preparada en varios valores, dependiendo del campo seleccionado, ¡por supuesto! Esta división se puede usar como una única columna multicolor en modo apilado, o en modo normal para crear varias columnas según un valor en el eje X. En este caso, aquí usamos el mismo valor que en el eje X, esto permite que todas las columnas sean multicolores, a la derecha en la parte superior se indicarán con colores. En el filtro establecemos — product: «URL Filtering» para ver información solo sobre los sitios visitados, la imagen es clickeable:
Configuraciones:
Diagrama sobre el uso de las aplicaciones más peligrosas
Para esto creamos una figura — Barra Vertical. También utilizamos la métrica count (eje Y), y en el eje X usaremos como valores los nombres de las aplicaciones utilizadas — “appi_name”. Lo más importante es establecer el filtro — product: «Application Control» AND app_risk: (4 OR 5 OR 3) AND action:«accept». Filtramos los registros por el blade de Application control, tomamos solo aquellos sitios que están categorizados como sitios con riesgo Crítico, Alto, Medio y solo en el caso de que el acceso a esos sitios esté permitido. La imagen es clickeable:
Configuraciones, clickeable:
Panel de control
La visualización y creación de dashboards se encuentra en un menú separado — Tablero. Aquí todo es simple, se crea un nuevo dashboard, se añade visualización, se organiza y ¡listo!
Creamos un dashboard que permitirá entender la situación básica de la seguridad de la información en la organización, claro, solo a nivel de Check Point, la imagen es clickeable:
Con base en estos gráficos podemos entender qué firmas críticas no están bloqueadas en el firewall, a dónde navegan los usuarios, y cuáles son las aplicaciones más peligrosas que utilizan.
Conclusión
Hemos revisado las capacidades de visualización básica en Kibana y hemos creado un panel de control, pero esto es solo una pequeña parte. Más adelante en el curso, discutiremos la configuración de mapas, el trabajo con el sistema Elasticsearch, nos familiarizaremos con las solicitudes de API, la automatización y mucho más.
Así que estén atentos a las actualizaciones (, , , ), .
Fuente: habr.com
