Cómo podría ayudar la Inteligencia Artificial al sector del Hosting

Cómo enfocar el proceso de aprendizaje del sistema

Cuando hablamos de Inteligencia Artificial hablamos de sistemas que consiguen tomar decisiones en función de una gran cantidad de datos que han sido usados en la fase de entrenamiento del “cerebro digital”.

De esta forma podemos ver cómo algunos programas consiguen diagnosticar enfermedades analizando una radiografía, gracias a las miles de imágenes analizadas antes, o comprobar como un sistema de reconocimiento de imágenes diferencia un perro de un lobo.

Las posibilidades son enormes, y todo depende de cómo se entrene el sistema y como queremos enfocar su proceso de aprendizaje, algo que se puede aplicar en prácticamente cualquier sector.

Hablemos ahora del sector del hosting y de cómo la IA podría ayudar a mejorar el servicio ofrecido por las empresas que ofrecen hospedaje de sitios web en todo el mundo.

Primero tenemos que enumerar los problemas que queremos solucionar, y en este caso nos enfocaremos en las caídas del servicio provocadas por ataques, tráfico no esperado,  problemas de configuración de los sitios web y detección de malware.

Evitando ataques

Hay diferentes tipos de ataques que puede sufrir una web, de forma que vamos a comentar los DDoS, los ataques “fuerza bruta”  y los ataques vía ftp.

DDoS: Es una de las mayores pesadillas de cualquier webmaster. Miles (incluso millones) de visitas en poco tiempo procedentes de ordenadores “zombie”, de cámaras de seguridad y de otros dispositivos conectados a Internet, visitas que consiguen derrumbar el sitio debido a su incapacidad de atender tantas solicitaciones. Este tipo de ataque podría evitarse con un sistema de Inteligencia Artificial que sea capaz de diferenciar entre un usuario normal y un acceso enviado como parte de un tsunami de visitas dañinas. Para ello sería necesario entrenar al sistema con direcciones IP que suelen provocar daños, con histórico de países que suelen originar este tipo de tráfico, con datos relacionados con el tiempo de cada visita, con información sobre el destino de las visitas (miles de personas accediendo a la home de un blog es mucho más sospechoso que miles de visitas accediendo a un artículo específico, por ejemplo, ya que el artículo puede haber salido en reddit, meneame, google news, flipboard, etc.).

Peter Ken Bediako, en 2017, realizó el estudio Long Short-Term Memory Recurrent Neural Network for detecting DDoS flooding attacks within TensorFlow Implementation framework (PDF) que muestra el uso de Tensorflow para ayudar a mitigar ataques DDOS, un documento que vale la pena leer para profundizar en el tema.

Entrenando a un sistema AI para clasificar ataques

Fuerza Bruta y FTP: Si alguien está intentando entrar con un login y contraseña aleatorio, varias veces por segundo, en una página web protegida, un sistema inteligente debería ser capaz de identificarlo simplemente analizando la cantidad de veces que se ha equivocado, la dirección IP de origen y la frecuencia de intentos. En este caso no es necesario tener un sistema extremadamente sofisticado para ello, aunque en grandes plataformas, como Facebook, o Gmail, sí cuentan con IAs que ayudan a determinar si el acceso a una página de login y password es realizado por el usuario adecuado. Lo mismo ocurre con un intento de acceso FTP, ya que el proceso para intentar entrar sin conocer la palabra clave es muy similar al de fuerza bruta en página web.

Tráfico no esperado

Si la caída del servicio ha sido causada por tráfico no esperado, el hosting debería poder aprender de la experiencia para prepararse para el futuro.

Imaginemos, por ejemplo, que un artículo de una web ha sido divulgado en reddit, recibiendo 6.000 visitas por segundo durante 2 horas. No puede bloquearse como si fuera un ataque DDoS, por lo que será necesario aumentar los recursos rápidamente para atender a todas esas peticiones no esperadas.

Para ello basta con aprender del tema. Si un cerebro artificial guardase la información de los recursos que habrían sido necesarios para atender las peticiones de reddit, meneame, flipboard, google news y otras fuentes de tráfico puntuales, cuando en una web comiencen a llegar peticiones de alguno de esos sitios, el hosting podría ponerse en estado de alerta para ir subiendo los recursos de forma óptima y automática.

Eso podría servir incluso para quien nunca ha sufrido una avalancha de tráfico de este tipo, ya que el sistema de Inteligencia Artificial podría aplicar lo que aprendió con otras webs de su hosting que sí tuvieron páginas enlazadas en sitios “reddit-like”.

Para ello el entrenamiento se basaría en guardar datos de diferentes sitios webs afectados por avalanchas puntuales, siendo necesario crear una infraestructura inteligente y escalable para que los recursos varíen en función de la demanda.

Esto podría incluso ayudar a optimizar los recursos de cualquier servidor, ya que una máquina de 64 Gigas de RAM seguramente no usará tanta memoria por la noche, cuando generalmente hay menos visitas. Una Inteligencia Artificial que ajuste recursos podría beneficiar a todos.

Problemas de configuración

Cuando aparece una nueva versión de un CMS específico (sea WordPress, Joomla o cualquier otro), suelen comenzar los problemas: miles de usuarios actualizan y se dan cuenta de algún problema específico (plugins incompatibles, por ejemplo).

Una Inteligencia Artificial podría prever esto con un entrenamiento basado en plugins, CMS, código, cachés… podría evitar la actualización con mensajes del tipo: “existe un 35% de posibilidades de que algo deje de funcionar después de esta actualización”, o incluso ser más específico con frases como: “En el 45% de los casos, el plugin de cache X ha dejado de funcionar de forma adecuada al instalar la extensión que quiere subir”.

Los problemas de incompatibilidad ocurren a diario, y esa información podría servir para entrenar a un sistema que ayude a prevenirlos.

Las organizaciones de TI utilizan Machine Learning para optimizar las estrategias de implementación de software y para reducir la tasa de fallos de las nuevas versiones en los ciclos de vida de entrega del software: analizando los archivos de registro y prediciendo fallas y fallas en el servidor. Eso es algo que ya se hace actualmente.

Detección de malware

Muchas veces los problemas en los servidores se deben a la existencia de malware oculto en alguno de los sitios web que aloja. La AI puede ayudar a identificar incluso los más camuflados, con técnicas que ya se han analizado en sitios como dzone.com.

La idea es usar CNN (Convolutional Neural Networks),  un enfoque de aprendizaje profundo para abordar el problema de clasificación de imágenes. Las CNN están dispuestas en estructuras tridimensionales con ancho, alto y profundidad como características. En el caso de las imágenes, la altura es la altura de la imagen, el ancho es el ancho de la imagen y la profundidad son los canales RGB.

Usando este modelo se suele realizar un clasificador de malware con CNN, convirtiendo el malware en una imagen para evitar que su lectura genere un problema de ejecución del problema.

Al resolver el problema de cómo alimentar a los clasificadores de aprendizaje automático de malware que usan CNN por imágenes, los profesionales de la seguridad de la información pueden usar el poder de las CNN para capacitar a los modelos. Uno de los conjuntos de datos de malware que se usa con más frecuencia para alimentar a las CNN es el conjunto de datos Malimg. Este conjunto de datos de malware contiene 9,339 muestras de malware de 25 familias de malware diferentes, una enorme cantidad que puede ayudar bastante a evitar problemas.

Son muchos más los casos en los que podemos aplicar IA para mejorar un servicio de hosting, y seguramente los iremos viendo aplicados durante los próximos años.

Juan Diego Polo
Ingeniero, trabajando en el mundo web desde el siglo pasado, cuando empecé programando en ASP y como analista en Infojobs. Director de la empresa de marketing online PoolDigital y creador y fundador de WWWhatsnew.com, donde escribe sobre tecnología desde 2005. Apasionado por la innovación y por el trabajo bien hecho.