En la última entrada del blog, aludíamos a los teoremas de la No-Free-Lunch (NFL) para la búsqueda y la optimización. Aunque los teoremas de la NFL son criminalmente malinterpretados y tergiversados al servicio de burdas generalizaciones que pretenden demostrar un punto de vista, tengo la intención de desplegar una burda generalización de la NFL para demostrar precisamente ese punto de vista.
Verás, los teoremas de la NFL (a grandes rasgos) afirman que dado un universo de conjuntos de problemas en los que el objetivo de un algoritmo es aprender una función que asigne un conjunto de datos de entrada X a un conjunto de etiquetas de destino Y, para cualquier subconjunto de problemas en los que el algoritmo A supere al algoritmo B, habrá un subconjunto de problemas en los que B supere a A. De hecho, promediando sus resultados sobre el espacio de todos los problemas posibles, el rendimiento de los algoritmos A y B será el mismo.
Con un poco de agitación de manos, podemos construir un teorema de la NFL para el ámbito de la ciberseguridad: Sobre el conjunto de todos los posibles vectores de ataque que podría emplear un hacker, ningún algoritmo de detección puede superar a todos los demás en todo el espectro de ataques.
Elección óptima de un algoritmo para la IA en ciberseguridad

Llegados a este punto, es posible que se pregunte: si un algoritmo determinado, por término medio, tiene el mismo rendimiento que todos los demás a la hora de detectar toda la gama de ataques posibles, ¿para qué esforzarse en desarrollar algoritmos de aprendizaje automático (ML) para la detección de intrusiones?
La razón es, sencillamente, que los teoremas de la NFL (para la búsqueda y la optimización, y ahora para la ciberseguridad) sólo son realmente aplicables en un mundo hipotético con una prioridad uniforme sobre el espacio de todos los problemas posibles. En el mundo real, sin embargo, sólo nos preocupamos por un pequeño subconjunto de estos problemas, y no es probable que la prioridad sobre ese subconjunto de problemas sea uniforme. Si a esto añadimos que cualquier algoritmo estará sujeto a restricciones de espacio y tiempo de ejecución, así como a otros factores del mundo real (por ejemplo, la necesidad de interpretabilidad), rápidamente se hace evidente que las opciones entre algoritmos pueden medirse fácilmente entre sí.
Sin embargo, aunque las aplicaciones prácticas de los teoremas de la NFL no resisten el rigor técnico, siguen sirviendo como una buena heurística: ningún algoritmo por sí solo satisfará de forma óptima las demandas de una amplia variedad de tipos de problemas para los que podría desplegarse. Prueba de ello es que las técnicas más avanzadas en tareas tan variadas como la visión por ordenador, el procesamiento del lenguaje natural y la predicción financiera utilizan algoritmos diferentes.
Entonces, ¿cómo elegir realmente el mejor algoritmo para la ciberseguridad?
La detección de una amplia gama de comportamientos de los atacantes requiere un conjunto de algoritmos, cada uno de los cuales debe diseñarse adecuadamente con un profundo conocimiento técnico de los algoritmos potenciales que podrían desplegarse y cómo se comparan entre sí, así como la integración de los conocimientos específicos del dominio necesarios para un rendimiento óptimo.
Cada algoritmo debe diseñarse teniendo en cuenta las siguientes cuestiones:
- ¿El algoritmo es supervisado o no supervisado? ¿Regresión o clasificación?
- ¿Existe un espacio natural en el que representar o proyectar las aportaciones?
- Si no es así, ¿debe el algoritmo aprender las representaciones de las características o debe utilizar directamente las entradas?
- ¿Es mejor representar las entradas como datos estáticos o secuenciales/temporales?
- Si es secuencial, ¿se trata de una tarea de clasificación o de etiquetado?
- ¿Existen dependencias temporales en un gran número de pasos temporales? O bien, ¿son los datos simplemente markovianos?
- ¿Cuántos datos de entrenamiento hay en relación con la dimensionalidad de la entrada? ¿Los datos son (muy) no lineales?
Conocimientos
Los algoritmos requieren conocimientos. Una vez determinadas las cuestiones básicas sobre la naturaleza del problema, pueden aplicarse muchas soluciones de aprendizaje automático disponibles en el mercado. Sin embargo, para obtener resultados fiables es necesario un conocimiento matemático relativamente profundo de las técnicas utilizadas, sobre todo a medida que los modelos se vuelven cada vez más complejos e intrincados.
Por ejemplo, consideremos el enorme interés en el uso de una red neuronal de última generación para procesar datos secuenciales y de series temporales conocida como modelo de memoria a corto plazo (LSTM). Aunque herramientas como TensorFlow, el marco de aprendizaje profundo de Google, tienden a abstraer la matemática subyacente necesaria para implementar LSTM (en este caso, una secuencia de derivadas parciales con mucha notación), sigue siendo necesario tener conocimientos para utilizar el algoritmo correctamente y para los tipos de problemas adecuados.
Como en este caso, muchos proveedores de ciberseguridad pregonan su uso del aprendizaje profundo y de los modelos LSTM en particular. Sin embargo, describen incorrectamente cómo funciona realmente esta red neuronal y cómo la han aplicado a la detección de amenazas. Además del conocimiento del dominio sobre los algoritmos, una comprensión profunda del dominio de entrada puede simplificar enormemente la detección de amenazas mediante algoritmos descendentes. Por ejemplo, consideremos una sencilla tarea de clasificación de dos clases, en la que los puntos que caen en un círculo pequeño se consideran de clase 0, y los puntos que caen en un círculo más grande y circundante se consideran de clase 1.
Si las entradas se representan en coordenadas cartesianas, ningún clasificador lineal podrá aprender a separar estas dos clases. Si, en cambio, sabemos que la forma natural de representar las entradas no son las coordenadas cartesianas, sino las polares, el problema puede ser aprendido fácilmente por un clasificador lineal. Esto se visualiza en la Fig. 1, donde no se puede trazar una frontera de decisión lineal en el caso cartesiano, pero es trivial en el caso polar.

Sin embargo, en coordenadas polares, el problema se vuelve trivial. Figura extraída de "Deep Learning "Goodfellow et al. (2016)
Detección de anomalías frente a comportamiento malicioso
En ciberseguridad, detectar anomalías no es lo mismo que detectar comportamientos maliciosos.
Incluso si un modelo estadístico aprende con precisión las distribuciones subyacentes de tiempos de conexión, puertos y otra información que un sistema de detección de amenazas debe rastrear, debe tomarse una decisión sobre lo que constituye un comportamiento normal y lo que constituye un valor atípico.
Supongamos que elegimos un umbral en el que cualquier entrada que se produzca con una probabilidad inferior al 0,01% se marca como anómala. Independientemente del modelo estadístico elegido, cuanto más preciso sea el modelo estadístico, más probabilidades tendremos de marcar el 0,01% de todas las entradas como anómalas.
Es fundamental evitar confundir los valores atípicos y las anomalías con los ciberataques. Para determinar si las entradas anómalas o atípicas son maliciosas es necesario modelar adecuadamente los distintos aspectos de un ciberataque.
Marcar datos anómalos o atípicos sin tener en cuenta el tipo de ataque puede hacer que se pase por alto un ataque, porque las características de entrada que se rastrean no son anómalas. Los ataques pueden modificarse para que se produzcan a horas normales, en puertos normales, desde geolocalizaciones normales, y eludirían los modelos de detección de anomalías o datos atípicos puros.
Aprendizaje no supervisado y dimensión/manifold
Aprender de datos no supervisados es difícil. Aprender correctamente a partir de datos no supervisados es aún más difícil. En general, el aprendizaje no supervisado es difícil debido a un problema conocido como la maldición de la dimensionalidad.
El problema es que la dimensionalidad de los datos de entrada suele ser lo suficientemente grande como para que el volumen de espacio que ocupa crezca a un ritmo mucho más rápido que el número de ejemplos de que dispone el algoritmo.
Esto se aplica a los datos con un elevado número de dimensiones o un gran número de características, así como a los datos de series temporales que suelen ser intrínsecamente de alta dimensión. Por ello, los algoritmos no supervisados a menudo deben hacer inferencias sobre las distribuciones de las que se extraen los datos, a pesar de no tener pruebas suficientes para las inferencias que hacen.
Peor aún, incluso en situaciones en las que la dimensionalidad de entrada es baja, las variedades específicas en las que se encuentran los datos pueden no ser propicias para las técnicas de aprendizaje específicas de los distintos algoritmos.
Imaginemos, por ejemplo, un conjunto de datos de entradas bidimensionales. Aunque los conglomerados parezcan obvios al ojo humano, varios algoritmos de aprendizaje no supervisado intentarán modelar los datos de múltiples maneras. Saber qué algoritmos son apropiados para un problema determinado resulta cada vez más pertinente.
La siguiente figura muestra un conjunto de algoritmos de aprendizaje no supervisado y cómo difieren incluso en las configuraciones más básicas.

Figura extraída de la documentación de scikit-learn. documentación de scikit-learn.
Incluso dentro de la misma clase de algoritmos de aprendizaje no supervisado, puede haber muchos resultados diferentes. La siguiente figura muestra las diferencias en las agrupaciones aprendidas en función del tipo específico de algoritmo de agrupación espectral elegido.

Figura extraída de "on Spectral Analysis and an Algorithm" [Ng, Jordan y Weiss (2001)].
Esperamos que los ejemplos y descripciones de esta entrada hayan demostrado por qué es tan importante una profunda comprensión matemática de los algoritmos, junto con una comprensión del ámbito de la ciberseguridad en el que se va a aplicar el algoritmo, para construir un sistema IDS eficaz.
No existe un algoritmo único que supere a todos los demás, ni una forma sencilla de utilizar algoritmos "listos para usar". Realmente no hay almuerzo gratis.