Los chatbots han existido durante mucho tiempo y, según el tamaño del mercado global de chatbots (y el crecimiento esperado), se mantendrán durante mucho tiempo e irán ganando importancia. En el pasado, rara vez cumplían con las expectativas de los clientes o brindaban una experiencia muy positiva. Sin embargo, en los últimos años, los avances en la IA conversacional han transformado la forma en que se pueden usar.

Dado que los chatbots ofrecen una amplia gama de aplicaciones, en ciertos casos también se vuelven responsables de recopilar y proteger información personal. En consecuencia, son una gran atracción para los piratas informáticos y también para los ataques maliciosos. La responsabilidad de garantizar la seguridad de los chatbots se ha pronunciado después de la introducción de GDPR en Europa. Como las estadísticas muestran que esta tecnología será un factor determinante en nuestras vidas, las pruebas de seguridad también deben formar parte de nuestras tareas diarias, para que estos chatbots puedan usarse con confianza.

Tabla de contenidos

Riesgos de seguridad, amenazas y vulnerabilidades

Las palabras riesgo, amenaza y vulnerabilidad a menudo se confunden o se usan indistintamente cuando se lee sobre seguridad informática, así que primero aclaremos la terminología:

  • La vulnerabilidad se refiere a una debilidad en su software (o hardware, o en sus procesos, o cualquier cosa relacionada). En otras palabras, es una forma en que los piratas informáticos pueden encontrar el camino y explotar sus sistemas.
  • Una amenaza aprovecha una vulnerabilidad y puede provocar la pérdida, el daño o la destrucción de un activo: las amenazas aprovechan las vulnerabilidades.
  • El riesgo se refiere a la posibilidad de que se pierdan, dañen o destruyan activos: ¡amenazas + vulnerabilidad = riesgo!

El conocido OWASP Top 10 es una lista de los principales riesgos de seguridad para una aplicación web. La mayoría de los chatbots están disponibles a través de una interfaz web pública y, como tal, todos los riesgos de seguridad de OWASP también se aplican a esos chatbots. De estos riesgos, hay dos especialmente importantes contra los que defenderse, ya que, en contraste con los otros riesgos, esos dos son casi siempre una amenaza grave: XSS (Cross Site Scripting) y SQL Injection.

Además, para los chatbots habilitados con inteligencia artificial, existe un mayor riesgo de ataques de denegación de servicio, debido a la mayor cantidad de recursos informáticos involucrados.


Vulnerabilidad 1: XSS – Cross Site Scripting

Una implementación típica de una interfaz de usuario de chatbot:

  • Hay una ventana de chat con un cuadro de entrada.
  • Todo lo que el usuario ingresa en el cuadro de entrada se refleja en la ventana de chat.
  • La respuesta del chatbot se muestra en la ventana de chat.

La vulnerabilidad XSS se encuentra en el segundo paso: al ingresar texto que incluye código Javascript malicioso, el ataque XSS se completa cuando el navegador web ejecuta el código inyectado:

<script>alert(document.cookie)</script>

Posible vector de ataque

Para explotar una vulnerabilidad XSS, el atacante tiene que engañar a la víctima para que envíe un texto de entrada malicioso.

  1. El atacante engaña a la víctima para que haga clic en un hipervínculo que apunta al chatbot e incluye algún código malicioso en el hipervínculo.
  2. El código malicioso se inyecta en el sitio web, lee las cookies de las víctimas y las envía al atacante sin que la víctima se dé cuenta.
  3. El atacante puede usar esas cookies para obtener acceso a la cuenta de la víctima en el sitio web de la empresa.

Defensa

Esta vulnerabilidad es realmente fácil de defender al validar y desinfectar la entrada del usuario, pero aún así vemos que esto sucede una y otra vez.


Vulnerabilidad 2: Inyección SQL

Una implementación típica de un backend de chatbot orientado a tareas:

  • El usuario le dice al chatbot algún elemento de información.
  • El backend del chatbot consulta una fuente de datos para este elemento de información.
  • Basándose en el resultado, se genera una respuesta en lenguaje natural y se presenta al usuario.

Con SQL Injection, el atacante engaña al backend del chatbot para que considere el contenido malicioso como parte del elemento de información:

my order number is "1234; DELETE FROM ORDERS"

Posible vector de ataque de Chatbot

Cuando el atacante tiene acceso personal al chatbot, el atacante puede explotar directamente una inyección SQL (consulte el ejemplo anterior), realizando todo tipo de consultas SQL (o no SQL).

Defensa

Los desarrolladores suelen confiar en sus tokenizadores y extractores de entidades para defenderse de los ataques de inyección. Además, en la mayoría de los casos, las comprobaciones simples de expresión regular de la entrada del usuario cerrarán esta vulnerabilidad.


Vulnerabilidad 3: Denegación de servicio

La inteligencia artificial requiere un alto poder de  computación, especialmente cuando se trata de deep learning como en los algoritmos de comprensión del lenguaje natural (NLU) de última generación. El ataque de Denegación de Servicio (Denial of Service, DoS, en sus siglas en inglés) se centra en hacer que un recurso no esté disponible para el propósito para el que fue diseñado, y no es difícil imaginar que los chatbots son más vulnerables a los ataques de Denegación de Servicio (DoS) que los backends habituales basados ​​en sistemas altamente optimizados. Si un chatbot recibe una gran cantidad de solicitudes, es posible que deje de estar disponible para usuarios legítimos. Estos ataques introducen grandes retrasos en la respuesta, pérdidas excesivas e interrupciones del servicio, lo que tiene un impacto directo en la disponibilidad.

Posible vector de ataque de Chatbot

Un ataque de este tipo envía una gran cantidad de solicitudes al chatbot para agotar intencionalmente los recursos disponibles. Sucederá que los recursos informáticos ya no estarán disponibles para los usuarios legítimos, es decir, los que verdaderamente están haciendo uso de la plataforma.

Pero hay un riesgo adicional a considerar: es bastante común que los desarrolladores de chatbots utilicen servicios basados ​​en la nube como IBM Watson o Google Dialogflow. Dependiendo del plan elegido, existen límites de uso y/o cuotas vigentes que pueden agotarse con bastante rapidez; por ejemplo, el plan gratuito Google Dialogflow Essential limita el acceso a 180 solicitudes por minuto, todas las demás solicitudes serán denegadas. Para un plan basado en el uso sin límites, un ataque DoS puede costar fácilmente una fortuna debido al aumento del número de solicitudes.

Defensa

Los métodos establecidos para defenderse de los ataques de denegación de servicio también se aplican a los chatbots.


Estrategias de mitigación

Además de las estrategias de defensa han explicado en las líneas anteriores, existen reglas genéricas para mitigar los riesgos de brechas en el sistema.

Educación para desarrolladores de software

Naturalmente, la mejor manera de defenderse de las vulnerabilidades es ni siquiera dejar que ocurran en primer lugar. Los desarrolladores de software deben recibir capacitación especial para considerar la seguridad del sistema como parte de su rutina diaria de desarrollo. Establecer la mentalidad y los procesos en el equipo de desarrollo es el primer paso y el más importante.

Pruebas de seguridad continuas

Las pruebas de seguridad deben ser parte de tu proceso continuo de pruebas. Cuanto antes se identifique y repare una vulnerabilidad de seguridad, más económico será el cambio.

page5image19164336
Las pruebas básicas basadas en OWASP Top 10 deben realizarse tanto en el nivel de API como en el nivel End-2-End. Por lo general, la defensa contra inyecciones de SQL se prueba mejor en el nivel de API (debido a la velocidad), mientras que la defensa contra XSS se prueba mejor en el nivel de extremo a extremo (debido a la ejecución de Javascript).
Las herramientas especializadas como Botium ayudan a configurar tu proceso continuo de pruebas de seguridad para chatbots.

Conclusión

Los chatbots abren el mismo tipo de vulnerabilidades, amenazas y riesgos que otras aplicaciones web orientadas al cliente. Debido a la naturaleza de los chatbots, algunas vulnerabilidades son más probables que otras, pero las estrategias de defensa bien establecidas funcionarán para los chatbots.
Florian Treml

Por Florian Treml

Trabajé como ingeniero de software en varios dominios, incluidos banca, telecomunicaciones, logística y bienestar. Primer contacto con la IA conversacional en 2015 cuando se desarrolló un chatbot para apoyar el aprendizaje a distancia. Dos años más tarde, el viaje de Botium comenzó con su amigo cercano, Christoph Börner.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *