Hola, soy Luis y esta vez les traigo este nuevo post.
Índice
Lo que revela una baraja de cartas sobre la detección de valores atípicos
En ciberseguridad, la detección de anomalías se centra en encontrar eventos inusuales que podrían considerarse ciberataques. La promesa de la detección de anomalías es que el algoritmo detectará ataques que nunca antes se habían visto.
Algunos de los problemas con los datos de la red son que hay muchos, la cantidad de ataques es baja y los ataques evolucionan todos los días.
Muchas aplicaciones de detección de intrusiones del aprendizaje automático se basan en el aprendizaje supervisado. El aprendizaje automático supervisado es bueno para detectar ataques conocidos.
Con un ajuste adecuado, un algoritmo de aprendizaje automático supervisado puede incluso encontrar algunos ataques novedosos. Pero la detección de anomalías da una nueva mirada a los datos sin las firmas de ataque predefinidas.
Las anomalías son normales
Al procesar los datos del tráfico de la red, un algoritmo de detección de anomalías puede encontrar eventos que son realmente anomalías, pero es posible que no sean los eventos que estaba buscando.
Las grandes redes informáticas tienen ritmo. Tienen procesos que se ejecutan periódicamente. Generalmente tienen los mismos usuarios que hacen lo mismo todos los días. Pero los datos de la red están lejos de ser regulares.
Hay eventos que ocurren en las redes que interrumpen la rutina normal. Hay eventos operativos que resultan de errores del sistema, defectos o configuraciones incorrectas.
Hay cambios en el sistema que se implementan en los servidores para agregar funciones de software y corregir vulnerabilidades de seguridad.
Hay nuevos usuarios que empiezan a trabajar y otros cuyo trabajo cambia y que se encuentran con nuevas responsabilidades. Con todos estos cambios ocurriendo, ¿qué eventos son realmente anomalías?
Es importante darse cuenta de que las anomalías que encuentre pueden no ser las anomalías que realmente está buscando. Esto se aplica a la detección de intrusiones, así como a muchas otras áreas de aprendizaje no supervisado.
El hecho de que un dato sea diferente no significa que sea malo. En la detección de fraudes, puede observar los patrones de compra de los clientes y ver compras inusuales en una tienda donde el cliente nunca ha hecho negocios.
Puede ser una actividad fraudulenta o simplemente puede ser que el cliente haya decidido hacer algo al azar, diferente o fuera de lo normal. Esta es una de las razones por las que los detectores de anomalías tienen tasas tan altas de falsos positivos.
No se desanime y vuelva al aprendizaje supervisado. Hay formas de mejorar la detección de los eventos que realmente desea encontrar. ¿Cómo puede obtener mejores resultados con su algoritmo?
No hay una única forma correcta de agrupar
La detección de anomalías es similar a un problema de agrupación. La agrupación en clústeres también es un ejemplo de aprendizaje no supervisado.
El desafío de la agrupación es que los grupos pueden ser similares y diferentes por razones muy diferentes. Los conglomerados se pueden medir utilizando funciones de densidad o funciones de distancia, pero incluso entonces, algunos agrupamientos en los datos no se pueden encontrar fácilmente.
Por ejemplo, es posible que ciertas formas contiguas en los datos no se agrupen bien sin un algoritmo de agrupación especializado.
Es por eso que Estivill-Castro pronunció: «La agrupación está en el ojo del espectador». [1]
Argumentó que el agrupamiento es una definición matemática de cómo diferentes investigadores caracterizan un grupo.
Para cada principio inductivo, existen diferentes algoritmos de agrupamiento para adaptarse a las intenciones del investigador.
Lo que revela una baraja de cartas
Para ilustrarlo con un conjunto de datos con el que probablemente esté familiarizado, considere una baraja de cartas. Una baraja de cartas estándar tiene 52
cartas.
Cada tarjeta será un registro en nuestro conjunto de datos. Cada carta tiene un conjunto de características, como el palo, el valor nominal de la carta y el color. ¿Sabías que cada tarjeta tiene un valor Unicode? También podemos incluir eso como una característica.
La mayoría de los mazos también agregan dos cartas comodín. La carta comodín es una especie de anomalía, ya que no tiene un palo, ni un color específico, pero sí tiene un valor nominal y un valor Unicode.
Dada esta baraja de cartas, si se le pidiera que las agrupara en grupos razonables, ¿Cómo las organizaría? Recuerde, en la agrupación, su objetivo es seleccionar agrupaciones que hagan que cada tarjeta sea más similar a las de su propio grupo y más diferente a las de otros grupos.
Puede agrupar las cartas por palo. Podrías juntar todos los diamantes, todos los corazones juntos, todos los clubes juntos y todas las espadas juntas.
El resultado son 13
cartas de cada palo. ¿Y los bromistas? Son una especie de anomalía, por lo que tal vez deberían ir a su propio grupo.
Puede agrupar las tarjetas en grupos por color, con todas las tarjetas rojas en un grupo y todas las tarjetas negras en otro grupo.
Por lo tanto, 26
cartas en cada grupo, pero los comodines son claramente una anomalía, ya que no pertenecen a ninguno de los grupos de colores.
Finalmente, puede agrupar las cartas por su valor nominal. Podrías incluir todos los ases en un grupo, todos los dos en otro grupo, y así sucesivamente.
Dado que los comodines son similares en apariencia entre sí, nuevamente puede incluirlos en su propio grupo. En este caso, los comodines pueden no parecer anomalías, ya que tienen un valor nominal.
¿Qué solución de agrupamiento es la correcta? Cada uno es correcto. Depende de su objetivo y de cómo aborde el problema.
Si su objetivo era agrupar las tarjetas en el menor número posible de grupos, entonces el color parece ser la mejor característica. Si desea agrupar en tantos grupos como sea posible, entonces agrupar por valor nominal tiene más sentido.
Sería genial si los algoritmos de aprendizaje automático sin supervisión fueran mágicos. Si así fuera, podría darle al algoritmo un conjunto de datos sin ningún análisis inicial y obtener la solución correcta.
Pero como puede ver en el ejemplo del naipe, la solución que obtenga depende de las funciones que utilice para agrupar los datos.
Para esta discusión, también es importante considerar que algunas agrupaciones revelaron claramente a los bromistas como anomalías y otras soluciones no. A partir de este simple ejemplo, queda claro que la detección de anomalías también está en el ojo del espectador.
Selección de características
Al aplicar la detección de anomalías a la detección de intrusos, o cualquier otra aplicación, el paso más importante es seleccionar las funciones más adecuadas.
Si desea obtener resultados mágicos, puede utilizar un enfoque como el embolsado para probar funciones aleatorias, pero es posible que la selección de funciones desenfocadas no le brinde la solución que realmente estaba buscando.
En su lugar, piense en lo que significa una anomalía en el contexto de su red y su conjunto de datos.
Quizás desee ver qué es anormal para ciertos días de la semana u horas del día. Extraer el día de la semana y la hora del día de una función de fecha en los datos de la red permitirá que un algoritmo encuentre alguna actividad anómala.
Quizás quieras ver patrones a lo largo del tiempo. Por ejemplo, en los datos de red, es posible que desee encontrar patrones de usuarios que inician sesión en ciertos sistemas con patrones normales o anormales.
Las características normales no proporcionan este contexto, por lo que es posible que deba crear una serie de tiempo o crear N-gramas
a partir de los datos originales.
Definir anomalías con casos de uso
Pero, ¿qué pasa si busca varios tipos diferentes de anomalías? Por ejemplo, ¿qué sucede si desea distinguir entre un usuario que inicia sesión en un sistema diferente al normal y detectar un evento en el que un usuario inicia sesión en un momento diferente del día?
Quizás también esté interesado en los patrones de comportamiento de la red entre los sistemas de su red.
Una solución es crear casos de uso para cada tipo de anomalía que desee detectar. En ciberseguridad, estos a menudo se denominan casos de uso indebido, ya que no se trata de cómo deberían funcionar los sistemas informáticos, sino de cómo podrían ser atacados.
A continuación, se muestran algunos casos de uso de muestra que puede utilizar para la detección de intrusos:
- Usuario que inicia sesión en un momento inusual del día.
- Volumen inusual de tráfico de red entre dos sistemas informáticos.
- Mensaje de estado anormal.
- Cuenta del sistema iniciando sesión en una computadora inusual.
- Patrón irregular de inicios de sesión.
Una vez definidos los casos de uso, puede seleccionar las funciones que mejor ayuden a identificar anomalías para cada caso de uso.
Luego, ejecutando el algoritmo de detección de anomalías por separado para cada caso de uso, puede concentrarse en las anomalías en las que esté más interesado.
Con los resultados de diferentes detectores de anomalías, cada uno basado en un conjunto de características diferente, es útil tener algún método o fórmula para combinar los resultados de los casos de uso.
Aunque la combinación de resultados puede ser útil para priorizar anomalías, también es bueno presentar la puntuación para cada caso de uso. Presentar esta información al usuario final proporciona algunas explicaciones.
El usuario comprenderá por qué una alerta se considera una anomalía en función del caso de uso que la desencadenó.
También puede descubrir, a través de la experimentación, que algunos de los casos de uso con los que comenzó no valen la pena y solo generan ruido.
En estos casos, es bueno eliminar estos casos de uso, ya que no ayudan a encontrar las anomalías que está tratando de detectar. Esto ayudará a reducir su tasa de falsos positivos.
Conclusión
La detección de anomalías mediante el aprendizaje automático no es mágica. Se necesita planificación y análisis para encontrar el enfoque correcto y aprovechar al máximo su algoritmo.
Dado que la detección de anomalías está en el ojo del espectador, es importante definir los tipos de anomalías que desea detectar. Puede hacer esto acotando las características que son más relevantes para sus anomalías objetivo.
Ejecutar su algoritmo de detección de anomalías por separado con diferentes conjuntos de características que se han seleccionado para cada caso de uso puede producir resultados muy interesantes y explicables.
Para detectar intrusiones en la red, la detección de anomalías puede crear mucho ruido al detectar eventos anormales que no son ciberataques. Intente utilizar estos enfoques para ajustar su algoritmo y presentar datos más significativos a los analistas de seguridad que responden a los resultados.
Gracias por leer este post.
Añadir comentario