Uno de los ejemplos es en seguridad cibernética. De hecho, este es el enfoque que adoptamos en CyberSift. Para dar un contexto sobre la terminología, la mayoría de las veces en seguridad cibernética:
Reglas de motores = firmas
Esto es lo primero que viene a la mente cuando se trata de la defensa contra los ciberataques: su antivirus que usa un motor de reglas para determinar si un programa es malware, o su firewall de próxima generación que usa un motor de reglas para determinar si una conexión es maliciosa o no . En general, estos productos tienen un motor de reglas que prueba si un programa o conexión coincide con una firma, como conectarse a una dirección IP “incorrecta” conocida o crear un archivo con un nombre que anteriormente se asociaba con malware.
- ¿Tomarías órdenes de un robot AI?
- ¿Alguien ha desarrollado una IA que pueda codificar contra el desarrollo impulsado por pruebas?
- ¿Existe un lenguaje diseñado para ser utilizado por la inteligencia humana y artificial?
- ¿Debo dominar las matemáticas / IA para comenzar a trabajar en un proyecto de reconocimiento facial?
- ¿Cómo debe un aspirante a programador de IA crear una cartera?
El concepto es muy fácil de entender y es muy preciso. Si se ha escrito una regla de buena calidad para una pieza de malware o para un ataque, está prácticamente garantizado que si el motor de reglas da un resultado positivo, realmente está ocurriendo un ataque. El problema es que un motor de reglas no detecta nuevos ataques cibernéticos, para los cuales no se han escrito reglas. Ahí es donde entra el aprendizaje automático.
Aprendizaje automático = detección de anomalías
En seguridad cibernética, las técnicas de aprendizaje automático como las siguientes se utilizan para detectar cada vez que un sistema se desvía significativamente del comportamiento “normal”:
- detección de anomalías de series de tiempo que puede detectar cosas como demasiada o muy poca actividad de un determinado sistema
- cadenas de markov que pueden detectar anomalías en secuencias de eventos
- aprendizaje automático basado en gráficos que puede detectar cambios en el comportamiento, como conexiones inusuales a servidores u otros clientes que utilizan métricas como “centralidad” o “cardinalidad”
Estas técnicas le permiten detectar nuevos ataques para los que aún no existen reglas. El problema con este enfoque es que “diferente” no significa necesariamente “malicioso”. Un ejemplo simple de este escenario sería:
- Su departamento de marketing lanza una campaña de marketing para promocionar un producto en youtube
- El video de marketing de youtube se vuelve viral, y las personas comienzan a visitar su sitio web con números récord
- La detección de anomalías de series temporales de su departamento de seguridad comienza a marcar esta actividad como anómala
En este caso, la detección de anomalías estaba haciendo su trabajo y detectando una actividad diferente de la habitual … pero es un comportamiento esperado, por lo que es un falso positivo.
Aquí es donde tiene una buena sinergia entre un motor de reglas y el aprendizaje automático:
Sus algoritmos de aprendizaje automático pueden detectar anomalías que pueden indicar ataques. Estas anomalías se introducen en un motor de reglas que intenta predecir con mayor certeza si la anomalía es un ataque mediante la aplicación de reglas como:
- ¿Se está comunicando la anomalía con servidores internos que tienen vulnerabilidades conocidas?
- ¿Se produce la anomalía en los sistemas que han activado previamente alertas de firma?
- ¿Es esta una anomalía única o hemos visto otras anomalías relacionadas en un corto período de tiempo provenientes del mismo host?
Estas reglas y otras similares reducen el número de falsos positivos a un nivel manejable. Esto es en esencia lo que hacemos en CyberSift, y creo que es un muy buen ejemplo de motores de reglas que trabajan simbióticamente con el aprendizaje automático para abordar un problema complejo.