¿Cómo abordaría la ciberseguridad y el aprendizaje automático a través de un aprendizaje supervisado, no supervisado o de refuerzo?

Mi proyecto actual es trabajar en la intersección de la ciberseguridad y el aprendizaje automático.

Existen algunos métodos interesantes en estas tres áreas para abordar la ciberseguridad. Los algoritmos más comunes utilizan aprendizaje supervisado y no supervisado para detectar amenazas / anomalías.

Aprendizaje supervisado

El ejemplo más fundamental de aprendizaje supervisado en ciberseguridad es usar datos etiquetados (tráfico normal o tráfico anómalo) para hacer predicciones sobre el tráfico futuro de la red. Sin embargo, esto es particularmente desafiante por algunas razones.

Primero, la relación entre el tráfico normal y el tráfico anómalo es extremadamente alta, lo que hace que los algoritmos de aprendizaje supervisado tengan un rendimiento inferior al óptimo en general.

En segundo lugar, es realmente difícil encontrar conjuntos de datos que hayan etiquetado de manera confiable el tráfico anómalo y el tráfico normal, ya que a menudo no hay “expertos” que puedan hacer esta etiqueta y la variabilidad de las características en el tráfico anómalo es bastante alta. Esto no se hace más fácil por el hecho de que muchos datos modernos de tráfico de red están altamente encriptados.

Otro ejemplo de aprendizaje supervisado en este espacio es el análisis y pronóstico de series temporales. La idea básica es que, dada una gran cantidad de datos sobre el tráfico anterior (esto puede contener o no anomalías, generalmente se supone que contiene anomalías mínimas), puede predecir la naturaleza del tráfico de red futuro. Cualquier cosa que no se ajuste a sus predicciones en el futuro se clasifica como una anomalía, y esto ha mostrado algunos resultados prometedores. Esta es la idea que he estado explorando profundamente en mi investigación.

Hay otra clase de algoritmos que no son exactamente algoritmos de aprendizaje supervisados, sino que comparten muchas ideas llamadas algoritmos de detección de anomalías. La idea es que usted modele las características de los datos por una distribución gaussiana y luego le dé un nuevo punto de datos, lo clasifique como una anomalía si la probabilidad de que ese punto de datos ocurra es menor que algún umbral predeterminado. Puede leer más sobre estos algoritmos en las notas de Andrew Ng en Coursera. [1]

La razón por la que elegí no seguir el método de distribución gaussiana en mi investigación es que las características del tráfico de red han sido analizadas a fondo por la literatura y esta investigación ha concluido que el tráfico de red no está suficientemente modelado por una distribución gaussiana. [2]

Aprendizaje sin supervisión

Existen varios métodos intuitivos en el aprendizaje no supervisado para clasificar las anomalías. La idea más simple es simplemente tomar el tráfico de red y agruparlo en dos grupos separados: el que tenga menos puntos de datos es su tráfico anómalo.

Otro método intuitivo es observar los datos del tráfico “normal” y encontrar el centroide de este grupo único. Luego, para el tráfico futuro, simplemente defina una distancia predeterminada de este grupo y cualquier cosa mayor que esa distancia se clasifica como una anomalía. [3]

Los algoritmos de agrupamiento más comunes que se utilizan para este problema son k-Means o k-Medians, pero se han realizado investigaciones que utilizan otros algoritmos más sofisticados.

Aprendizaje reforzado

Sinceramente, no conozco ningún trabajo significativo en el área de seguridad informática del aprendizaje automático que utilice algoritmos de aprendizaje por refuerzo. En una búsqueda rápida en Google, encontré un trabajo interesante que modeló los escenarios de ataque cibernético como un juego de confrontación y utilicé algoritmos de Q-learning para resolver el problema. [4]

Notas al pie

[1] 15_Detección de anomalías

[2] http://www.utdallas.edu/~kxs0281…

[3] https: //pdfs.semanticscholar.org…

[4] http://ais.cs.memphis.edu/files/…

Puedo dar ejemplos de casos de uso para cada categoría que hemos explorado o que usamos actualmente para aplicar el aprendizaje automático a problemas de ciberseguridad.

Supervisado: uso de redes neuronales recurrentes para distinguir entre dominios DNS “normales” y los generados por algoritmos de generación de dominio

El objetivo aquí es distinguir entre el dominio “probablemente normal” y los generados aleatoriamente por malware, para comunicarse con sus servidores de comando y control. Este es un excelente ejemplo porque los enfoques basados ​​en firmas son inútiles aquí: los dominios generados aleatoriamente suelen ser realmente aleatorios y cambian con bastante frecuencia para adelantarse a las actualizaciones de firmas.

En realidad, existen muchas técnicas sobre cómo distinguir entre los dominios, como el uso del análisis lingüístico (por ejemplo … los dominios generados aleatoriamente tienden a tener una proporción extraña de consonantes a vocales cuando se come. Uno de los más efectivos y precisos que he visto hasta ahora es aprovechar las Redes Neuronales Recurrentes [RNN] para distinguir entre las dos. Las RNN se destacan en la búsqueda de estructuras temporales en secuencias (tenga en cuenta que un dominio es solo una secuencia de letras y símbolos). se parece a esto:

  1. Reúna su conjunto de datos de dominio normal (generalmente algo así como Alexa Top 1 Million Sites) y su conjunto de datos de dominios aleatorios (generalmente de Algoritmos de generación de dominio)
  2. Etiqueta “normal” como 0 y aleatoriamente generada como “1”
  3. Construya un RNN profundo (2 o más capas) cuya entrada es el dominio dividido en una secuencia de caracteres, y cuyo resultado deseado es un sigmoide (que genera un valor entre 0 y 1)
  4. Su función de pérdida minimiza el error entre la salida RNN para una secuencia dada y la etiqueta (0 o 1 según el paso 2)

Nota: Es un error común pensar que las redes neuronales están supervisadas y requieren un conjunto de datos etiquetado. Si bien esto es cierto en la mayoría de los casos, no siempre es así. De hecho, generalmente utilizamos variaciones no supervisadas de RNN (ver enlaces en “otros ejemplos” a continuación)

Sin supervisión: uso de mapas autoorganizados y técnicas de agrupamiento para identificar tráfico IP anómalo

Los mapas autoorganizados son un tipo genial de red neuronal. Cada neurona representa esencialmente un punto en el espacio multidimensional, y cada neurona está conectada a sus vecinos. Cada vez que se presenta una muestra de entrenamiento en este espacio multidimensional al SOM, la neurona más cercana “gana” y se acerca a la muestra de entrenamiento, y “atrae” a sus vecinos junto con ella. Una aplicación atractiva que he visto es hacer un SOM aproximado a un boceto de Maryln Monroe:

Los SOM son extremadamente útiles porque después del entrenamiento, la mayoría de las neuronas se agruparían hacia datos “normales”, mientras que una minoría se agruparía hacia datos anormales. Los SOM generalmente se usan como un “prefiltro” para organizar sus datos de prueba en un espacio multidimensional en el que posteriormente puede ejecutar algoritmos de agrupación basados ​​en la distancia, como DBSCAN.

En CyberSift hemos utilizado esta técnica con tráfico IP: si una muestra de prueba se pasa a través del SOM y se asocia con una neurona que está bastante lejos de sus vecinos, eso es claramente una anomalía

Otros ejemplos no supervisados ​​serían el uso de cadenas ocultas de Markov para determinar qué tan probable es una secuencia de llamadas al sistema; eso es esencialmente lo que usamos en nuestra demostración Anti-Ransomware (ver “otros ejemplos”)

Aprendizaje de refuerzo: llevar la inteligencia de amenazas y el usuario final al círculo

No vemos muchos ejemplos de esto en la academia porque es una de esas características que es más importante en la producción que en un laboratorio. Los algoritmos de aprendizaje automático basados ​​en anomalías aplicados en la práctica son notoriamente altos en falsos positivos [FP]. Una forma de lidiar con esto es mantener a un humano al tanto. En el caso de CyberSift, este suele ser el ingeniero de seguridad que utiliza nuestro producto. Apuntamos a que cuando ocurra un falso positivo, el ingeniero puede marcar una alerta como falsa y esto internamente ajustará los pesos de nuestros algoritmos, por ejemplo, cambiando los pesos de las muestras de entrenamiento o los pesos del modelo de un conjunto. Esto hace que nuestros algoritmos sean más precisos con el tiempo. En esencia, los modelos de CyberSift se convierten en los “Agentes”, mientras que el Ingeniero es el “Intérprete” o “Crítico”. Un concepto similar es utilizar fuentes de inteligencia de amenazas externas como su intérprete / crítico. Por ejemplo, aumente los pesos de las muestras que contienen direcciones IP erróneas conocidas, y así sucesivamente …

Otros ejemplos

  • Uso de LSTM (sin supervisión) como Docker HIDS: ¿Qué tienen en común el texto predictivo de teléfonos inteligentes y la ciberseguridad?
  • Uso de algoritmos basados ​​en frecuencia (sin supervisión) para detectar ransomware: más detección de anomalías frente a ransomware – Hacia la ciencia de datos – Medio
  • Cambiar la dimensión de los datos de entrada (esto suele ser un paso de preprocesamiento para facilitar los algoritmos de ML que vienen después): Más detección de anomalías frente a Ransomware – Hacia la ciencia de datos – Medio

No soy un tipo de inteligencia artificial, pero supongo que la ciberseguridad implica una actividad inusual en la que alguien intenta un “pirateo”.

Eso suena como una detección atípica, en cuyo caso agrupar todos los tipos de actividades ayudaría a detectar actividades inusuales.

Aprendizaje supervisado donde aprenderías a tu modelo. LO QUE es usual, para que pueda detectar actividades sospechosas y reportar que parece lo más probable.

Perdón por la respuesta básica, espero que esto ayude.