¿Cuáles son ejemplos de motores de reglas combinados con aprendizaje automático?

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.

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:

  1. Su departamento de marketing lanza una campaña de marketing para promocionar un producto en youtube
  2. El video de marketing de youtube se vuelve viral, y las personas comienzan a visitar su sitio web con números récord
  3. 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.

Aquí hay un par de ejemplos.

Algunos sistemas de fraude de pagos utilizan motores de reglas combinados con aprendizaje automático. La idea básica es que algunas cosas son prácticamente seguras para garantizar que una transacción necesita revisión, mientras que otras solo dan una pista de que una transacción necesita revisión. Por ejemplo, si una sola cuenta ha realizado compras con cinco tarjetas de crédito diferentes en un solo día, puede y debe marcar todas sus transacciones para su revisión. Es posible que no tenga datos de capacitación para esto, por lo que no habrá aprendizaje automático; Es una regla simple codificada por el programador. Por otro lado, ML puede manejar mejor otras cosas: el número de dígitos en una dirección de correo electrónico, combinado con el dominio del correo electrónico, combinado con la red IP, combinado con la hora del día de la transacción, puede ser todo características que empujan un sistema ML al límite para rechazar una transacción.

Otro ejemplo de una combinación de un motor de reglas combinado con un sistema ML es la función de mapa de un motor de búsqueda. Cuando busca una ubicación en el motor de búsqueda principal, como “San Francisco, CA”, es muy probable que un clasificador basado en ML o NLP detecte que la consulta es una ubicación; y un sistema basado en reglas decidirá mostrar un mapa en el panel lateral dados los resultados de ese clasificador. Es poco probable que un sistema de este tipo esté totalmente basado en el aprendizaje automático porque un sistema de aprendizaje automático tendría dificultades para aprender cuándo mostrar un mapa (tendría que experimentar, a veces mostrando mapas cuando es inapropiado y otras veces no mostrando mapas cuando es apropiado) , algo que probablemente no sería aceptable a corto plazo).