Por lo tanto, además de WAF, usamos ELK . Ayuda a recopilar todos los eventos en un solo lugar, acumula estadísticas, las visualiza y nos permite ver el ataque dirigido a tiempo.
Hoy os contaré con más detalle cómo cruzamos el “árbol de Navidad” con WAF y qué salió de él.
La historia de un ataque: cómo funcionaba todo antes de cambiar a ELK
En nuestra nube, el cliente ha implementado la aplicación detrás de nuestro WAF. De 10,000 a 100,000 usuarios conectados al sitio por día, el número de conexiones alcanzó los 20 millones por día. 3-5 de ellos eran ciberdelincuentes e intentaron piratear el sitio.FortiWeb bloqueó una forma de fuerza bruta regular de una dirección IP con bastante facilidad. El número de visitas al sitio por minuto fue superior al de los usuarios legítimos. Simplemente configuramos umbrales de actividad desde una dirección y repelimos el ataque.
Es mucho más difícil combatir los "ataques lentos" cuando los atacantes tardan en actuar y se hacen pasar por clientes habituales. Usan muchas direcciones IP únicas. Tal actividad no parecía una fuerza bruta masiva para WAF, era más difícil rastrearla automáticamente. También existía el riesgo de bloquear a los usuarios normales. Buscamos otras señales de un ataque y configuramos una política para bloquear automáticamente las direcciones IP en función de este atributo. Por ejemplo, muchas sesiones ilegítimas tenían campos comunes en los encabezados de la solicitud http. A menudo tuve que buscar manualmente dichos campos en los registros de eventos de FortiWeb.
Resultó largo e inconveniente. En la funcionalidad estándar de FortiWeb, los eventos se registran en texto en 3 registros diferentes: ataques detectados, información sobre solicitudes y mensajes del sistema sobre el funcionamiento de WAF. Decenas o incluso cientos de eventos de ataque pueden ocurrir en un minuto.
No tanto, pero debe rastrear manualmente varios registros e iterar sobre muchas líneas:
en el registro de ataque vemos las direcciones de los usuarios y la naturaleza de la actividad.
No es suficiente simplemente escanear la tabla de registro. Para encontrar la información más interesante y útil sobre la naturaleza de un ataque, debe mirar dentro de un evento específico:
Los campos resaltados ayudan a detectar un "ataque lento". Fuente: captura de pantalla del sitio web de Fortinet .
Bueno, el problema más importante es que solo un especialista de FortiWeb puede resolverlo. Si durante el horario laboral aún pudiéramos monitorear la actividad sospechosa en tiempo real, entonces la investigación de incidentes nocturnos podría retrasarse. Cuando las políticas de FortiWeb por alguna razón no funcionaron, los ingenieros del turno de noche de guardia no pudieron evaluar la situación sin acceso al WAF y despertaron al especialista de FortiWeb. Examinamos los registros durante varias horas y encontramos el momento del ataque.
Con tales volúmenes de información, es difícil comprender el panorama general de un vistazo y actuar de manera proactiva. Luego decidimos recopilar datos en un solo lugar para analizar todo de forma visual, encontrar el inicio del ataque, identificar su dirección y método de bloqueo.
De que elegiste
En primer lugar, miramos las soluciones ya utilizadas, para no multiplicar entidades innecesariamente.
Una de las primeras opciones fue Nagios , que usamos para monitorear la infraestructura de ingeniería , infraestructura de red y alertar sobre situaciones de emergencia. Los agentes de seguridad también lo utilizan para avisar a los asistentes en caso de tráfico sospechoso, pero no sabe cómo recoger los registros dispersos y por tanto desaparece.
Había una opción para agregar todo usando MySQL y PostgreSQL u otra base de datos relacional. Pero para extraer los datos, tuvo que esculpir su aplicación.
Nuestra empresa también utiliza FortiAnalyzer como recolector de registros .de Fortinet. Pero en este caso, tampoco encajaba. Primero, está más diseñado para trabajar con el firewall de FortiGate . En segundo lugar, faltaban muchas configuraciones y la interacción con ellas requería un excelente conocimiento de las consultas SQL. Y en tercer lugar, su uso incrementaría el coste del servicio para el cliente.
Así es como llegamos al código abierto en la persona de ELK .
Por qué elegir ELK
ELK es un paquete de software de código abierto:
- Elasticsearch es una base de datos de series de tiempo que se acaba de crear para trabajar con grandes cantidades de texto;
- Logstash es un motor de recopilación de datos que puede convertir registros al formato deseado;
- Kibana es un buen visualizador y una interfaz bastante amigable para administrar Elasticsearch. Puede utilizarlo para crear gráficos que los ingenieros de servicio puedan observar por la noche.
El umbral de entrada ELK no es alto. Todas las funciones básicas son gratuitas. ¿Qué más se necesita para la felicidad?
¿Cómo lo pusiste todo en un solo sistema?
Formamos índices y dejamos solo la información necesaria . Cargamos las tres revistas FortiWEB en ELK; la salida fueron índices. Estos son archivos con todos los registros recopilados durante un período, por ejemplo, un día. Si los visualizáramos de inmediato, solo veríamos la dinámica de los ataques. Para obtener más detalles, debe "caer" en cada ataque y observar campos específicos.
Nos dimos cuenta de que primero necesitamos configurar el análisis de información no estructurada. Tomamos campos largos como cadenas como "Mensaje" y "URL" y los analizamos para obtener más información para tomar decisiones.
, . - . , 2 .
Después de analizar, comenzaron a buscar qué información almacenar y visualizar. No era aconsejable dejar todo en el diario: el tamaño de un índice era grande: 7 GB. ELK tardó mucho en procesar el archivo. Dicho esto, no toda la información fue útil. Algo se duplicó y ocupó espacio adicional; era necesario optimizarlo.
Al principio, simplemente recorrimos el índice y eliminamos los eventos innecesarios. Resultó ser incluso más inconveniente y más largo que trabajar con revistas en FortiWeb. La única ventaja del "árbol de Navidad" en esta etapa es que pudimos visualizar un gran período de tiempo en una pantalla.
No nos desesperamos, seguimos
Se registró el momento del ataque . Ahora era necesario entender cómo se ve el inicio del ataque en el gráfico. Para encontrarlo, miramos las respuestas del servidor al usuario (códigos de retorno). Estábamos interesados en las respuestas del servidor con los siguientes códigos (rc):
| Código (rc)
|
Nombre
|
Descripción
|
| 0
|
SOLTAR
|
La solicitud del servidor está bloqueada
|
| 200
|
Okay
|
Solicitud procesada con éxito
|
| 400
|
Solicitud incorrecta
|
Solicitud incorrecta
|
| 403
|
Prohibido
|
Autorización denegada
|
| 500
|
error de servidor interno
|
El servicio no está disponible
|
Si alguien comenzaba a atacar el sitio, la proporción de códigos cambiaba:
- 400 , 200 , - .
- 0 , FortiWeb «» .
- 500, IP- – .
Para el tercer mes, configuramos un tablero para rastrear esta actividad.
Para no monitorear todo manualmente, configuramos la integración con Nagios, que sondeó ELK a intervalos regulares. Si registraba el logro de los valores umbral mediante códigos, enviaba una notificación a los oficiales de servicio sobre actividad sospechosa.
4 gráficos combinados en el sistema de seguimiento . Ahora era importante ver en los gráficos el momento en que el ataque no está bloqueado y se necesita la intervención del ingeniero. En 4 gráficos diferentes, nuestro ojo estaba borroso. Por lo tanto, combinamos los gráficos y comenzamos a observar todo en una pantalla.
Durante el seguimiento, observamos cómo cambiaban las gráficas de diferentes colores. Un toque de rojo indicó que el ataque había comenzado, mientras que los gráficos naranja y azul indicaron la reacción de FortiWeb:
Todo está bien aquí: hubo un estallido de actividad "roja", pero FortiWeb se las arregló y el cronograma de ataques fracasó.
También dibujamos un ejemplo de un gráfico para nosotros que requiere intervención:
Aquí vemos que FortiWeb aumentó la actividad, pero el gráfico de ataque rojo no disminuyó. Necesita cambiar la configuración WAF.
La investigación de incidentes nocturnos también se ha vuelto más fácil. El gráfico muestra de inmediato el momento en que es el momento de salir en defensa del sitio.
Esto es lo que ocurre a veces por la noche. Gráfico rojo: el ataque ha comenzado. Azul: actividad de FortiWeb. El ataque no fue bloqueado por completo, así que tuvimos que intervenir.
A dónde vamos
Ahora estamos capacitando a los administradores de turno para trabajar con ELK. Los asistentes aprenden a evaluar la situación en el tablero y toman una decisión: es hora de escalar a un especialista de FortiWeb, o habrá suficientes políticas WAF para repeler automáticamente un ataque. De esta manera reducimos la carga de trabajo de los ingenieros de seguridad de la información durante la noche y dividimos los roles en soporte a nivel del sistema. El acceso a FortiWeb permanece solo en el centro de la defensa cibernética, y solo ellos realizan cambios en la configuración de WAF cuando se necesitan con urgencia.
También estamos trabajando en la elaboración de informes para los clientes. Planeamos que los datos sobre la dinámica del trabajo WAF estarán disponibles en la cuenta personal del cliente. ELK hará que la situación sea más transparente sin tener que acudir al WAF.
Si el cliente quiere ver su propia protección en tiempo real, ELK también le resultará útil. No podemos dar acceso a WAF, ya que la intervención del cliente en el trabajo puede afectar a otros. Pero puedes criar un ELK separado y darle a "jugar".
Estos son los escenarios para utilizar el "árbol de Navidad" que hemos acumulado recientemente. Comparte tus ideas sobre esto y no olvides configurar todo correctamente para evitar fugas de las bases de datos.