
En relaci贸n con el fin de las ventas en Rusia del sistema de registro y an谩lisis de Splunk, surgi贸 la pregunta de c贸mo se puede reemplazar esta soluci贸n. Despu茅s de pasar tiempo familiariz谩ndome con diferentes soluciones, me decid铆 por una soluci贸n para un hombre real:
"ELK stack" . Este sistema requiere tiempo para configurarlo, pero como resultado, puede obtener un sistema muy poderoso para analizar el estado y la respuesta operativa a los incidentes de seguridad de la informaci贸n en la organizaci贸n. En esta serie de art铆culos, consideraremos las caracter铆sticas b谩sicas (o quiz谩s no) de la pila ELK, consideraremos c贸mo analizar registros, c贸mo construir gr谩ficos y tableros, y qu茅 funciones interesantes se pueden hacer usando registros del firewall de Check Point o el esc谩ner de seguridad OpenVas como ejemplo. Para comenzar, considere de qu茅 se trata: la pila ELK y en qu茅 componentes est谩 compuesta.
La pila ELK es una abreviatura para tres proyectos de c贸digo abierto:
Elasticsearch, Logstash y
Kibana . Desarrollado por Elastic, junto con todos los proyectos relacionados. Elasticsearch es el n煤cleo de todo el sistema, que combina las funciones de una base de datos, b煤squeda y sistema anal铆tico. Logstash es un canal de procesamiento de datos del lado del servidor que recibe datos de varias fuentes al mismo tiempo, analiza el registro y luego lo env铆a a la base de datos de Elasticsearch. Kibana permite a los usuarios visualizar datos usando tablas y gr谩ficos en Elasticsearch. Tambi茅n a trav茅s de Kibana puedes administrar la base de datos. A continuaci贸n, consideramos cada sistema por separado con m谩s detalle.

Logstash
Logstash es una utilidad para procesar eventos de registro de varias fuentes, con el que puede seleccionar campos y sus valores en un mensaje, tambi茅n puede configurar el filtrado y la edici贸n de datos. Despu茅s de todas las manipulaciones, Logstash redirige los eventos al almac茅n de datos final. La utilidad se configura solo a trav茅s de archivos de configuraci贸n.
Una configuraci贸n t铆pica de logstash es un archivo (s) que consta de varios flujos de informaci贸n entrantes (entrada), varios filtros para esta informaci贸n (filtro) y varios flujos salientes (salida). Parece uno o m谩s archivos de configuraci贸n, que en la versi贸n m谩s simple (que no hace nada) se ve as铆:
input { } filter { } output { }
En INPUT, configuramos en qu茅 puerto entrar谩n los registros y de acuerdo con qu茅 protocolo, o desde qu茅 carpeta leer archivos nuevos o escritos constantemente. En FILTER, configuramos el analizador de registros: an谩lisis de campos, edici贸n de valores, adici贸n de nuevos par谩metros o eliminaci贸n. FILTER es un campo de gesti贸n de mensajes que llega a Logstash con toneladas de opciones de edici贸n. En la salida, configuramos d贸nde enviamos el registro ya analizado, en caso de que este elasticsearch env铆e una solicitud JSON en la que se env铆an los campos con los valores, o, como parte de la depuraci贸n, se puede enviar a stdout o escribir en un archivo.

B煤squeda el谩stica
Inicialmente, Elasticsearch es una soluci贸n de b煤squeda de texto completo, pero con servicios adicionales, como escalamiento f谩cil, replicaci贸n y m谩s, lo que hizo del producto una soluci贸n muy conveniente y buena para proyectos altamente cargados con grandes cantidades de datos. Elasticsearch es un repositorio no relacional (NoSQL) de documentos en formato JSON y un motor de b煤squeda basado en la b煤squeda de texto completo de Lucene. La plataforma de hardware es Java Virtual Machine, por lo que el sistema requiere una gran cantidad de recursos de procesador y RAM para funcionar.
Cada mensaje entrante, ya sea con Logstash o utilizando la API de consulta, se indexa como un "documento", un an谩logo de una tabla en SQL relacional. Todos los documentos se almacenan en el 铆ndice, un an谩logo de la base de datos en SQL.
Un ejemplo de un documento en la base de datos:
{ "_index": "checkpoint-2019.10.10", "_type": "_doc", "_id": "yvNZcWwBygXz5W1aycBy", "_version": 1, "_score": null, "_source": { "layer_uuid": [ "dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0", "dbee3718-cf2f-4de0-8681-529cb75be9a6" ], "outzone": "External", "layer_name": [ "TSS-Standard Security", "TSS-Standard Application" ], "time": "1565269565", "dst": "103.5.198.210", "parent_rule": "0", "host": "10.10.10.250", "ifname": "eth6", ] }
Todo el trabajo con la base de datos se basa en solicitudes JSON que utilizan la API REST, que emite documentos por 铆ndice o algunas estad铆sticas en el formato: pregunta - respuesta. Para visualizar todas las respuestas a las solicitudes, se escribi贸 Kibana, que es un servicio web.
Kibana
Kibana le permite buscar / tomar datos y solicitar estad铆sticas de la base de datos de Elasticsearch, pero muchos gr谩ficos y tableros hermosos se construyen en base a las respuestas. El sistema tambi茅n tiene la funcionalidad de administraci贸n de la base de datos de Elasticsearch, en art铆culos posteriores consideraremos este servicio con m谩s detalle. Ahora vamos a mostrar un ejemplo de paneles en el firewall de Check Point y el esc谩ner de vulnerabilidades OpenVas que se pueden construir.
Ejemplo de panel para Check Point, se puede hacer clic en la imagen:

Ejemplo de tablero de OpenVas, se puede hacer clic en la imagen:

Conclusi贸n
Examinamos en qu茅 consiste la
pila ELK , nos familiarizamos un poco con los productos principales, luego, en el curso, consideraremos por separado escribir el archivo de configuraci贸n de Logstash, configurar paneles en Kibana, familiarizarnos con las solicitudes de API, la automatizaci贸n y mucho m谩s.
As铆 que estad atentos (
Telegram ,
Facebook ,
VK ,
TS Solution Blog ),
Yandex.Zen .