8 minute read
Protección de servidores ante ataques de denegación de servicios implementando un proxy inverso
Por: Cristian Alexander Avila González Estudiante de la carrera de Ingeniería en Ciencias y Sistemas
Desde hace muchos años la tecnología ha ido evolucionando, año tras año, llegando hoy en día a ser una necesidad para poder desempeñar cualquier tipo de actividad. Todos estos avances tienen la finalidad de simplificar las labores cotidianas para ayudar al ser humano a ser mas productivo en su entorno, sin embargo con estos avances y la implementación de los distintos servicios que brinda la industria en general tambien es factible enfrentarse a riesgos de seguridad. Se utiliza el teléfono o computadora personal para acceder y consumir servicios que cualquier proveedor brinda, en alguna ocasión se ha podido observar que dichos servicios no se encuentran disponibles. Esto puede ser debido a que la empresa que presta el servicio ha apagado sus servidores para actualizarlos o también esta latente la posibilidad de que dichos servicios se han visto interrumpidos por una brecha de seguridad que ha sido vulnerada por un tipo de ciber ataque. A medida que la tecnología se implementa en el entorno laboral, se puede observar que también aumentan los ciber ataques y es debido a esto que las empresas que prestan servicios se ven obligados a adoptar medidas preventivas para poder afrontar estas dificultades. Actualmente la tecnología ha dado grandes pasos, se ha implementado en diferentes campos como puede ser el servicio de mensajería hasta llegar al mundo de la realidad virtual. A diario es posible observar el incremento de las empresas que van implementando tecnología a sus modelos de negocio con la finalidad de prestar un mejor servicio al consumidor. Hay un factor que debe estar presente en cada instante tras la implementación de servicios web, la seguridad. La seguridad informática es un tema de gran amplitud debido a que en el se toman en consideración diversas áreas, pero el efoque a mostrar ahora es el área de la seguridad en servidores de aplicaciones web. Cada servicio que brindan las diferentes empresas debe ser alojado en algún lugar, hoy en día estos sitios de alojamiento varían desde fuentes físicas como también en fuentes virtuales (en la nube). Estos alojamientos comúnmente llamados “servidores”, los cuales pueden ser privados o públicos. Con el notable aumento de servicios brindados a través de internet, también existe un considerable incremento de ataques a los servidores para interrumpir el funcionamiento de dichos servicios, el más común es un ciber ataque denominado denegación de servicio, también llamado DoS (por sus siglas en inglés, Denial of Service) y su forma mejorada denominada denegación de servicio distribuido DDoS (por sus siglas en inglés, Distributed Denial of Service). Despues de conocer este tipo de ataques y saber lo que es un servidor, ¿Cómo funcionan estos ataques y de que manera es posible protegerse de ellos? Partiendo con el método simple de este ataque: el DoS. Este tipo de ciber ataque se caracteriza por enviar desde un solo equipo grandes flujos de datos hacia el servidor objetivo, aprovechando el ancho de banda de la red desde la cual el ataque ha sido iniciado; dicho ataque cuenta con la particularidad que debe poseer un mayor ancho de banda que su objetivo para así poder lograr que el servidor que esta recibiendo el ataque no sea capaz de procesar el número excesivo de datos que reciba de su atacante y de esta manera el servicio se vea detenido. La desventaja de dicho ataque se presenta al momento de realizarlo, debido a que es un único dispositivo efectuándolo, esto le permite al dueño del servidor poder bloquear la procedencia de datos de dicha dirección de red, denominada IP. Al momento que la IP es bloqueada, el atacante no podrá ser capaz de seguir atacando al mismo objetivo.
Advertisement
En su método mejorado de ataque, DDoS, la desventaja anteriormente mencionada es eliminada, este tipo de ataque ya no es enviado desde un equipo centralizado, en el se suma una cantidad indefinida de dispositivos infectados en la red enviando grandes cantidades de datos hacia un único objetivo, lo cual dificulta al propietario del servidor poder mitigar los ataques y así poder reestablecer el servicio a su funcionamiento normal. Aunque esta forma de ataque conlleva una mayor labor de parte del atacante, el resultado de este suele tener mayor éxito que su forma mas simple. Este incremento en la tasa de éxito en la detención del servicio se debe a que no se tendrá un número preciso de atacantes simultáneos, debido a que en otro ataque realizado por el mismo atacante; puede efectuarse con distintos dispositivos infectados. También se agrega que el ancho de banda por el cual ataca cada dispositivo infectado no se ve limitado a que debe ser mayor que el ancho de banda que posee el servidor donde se aloja el servicio objetivo, esto debido a que son múltiples dispositivos enviando la cantidad de datos permitida por su ancho de banda hacia el mismo objetivo y el servidor no puede procesar toda la información recibida por parte de todas las fuentes, por no poder procesar tanta información en tan poco tiempo; el servicio se detiene. ¿Cómo prevenir este método mejorado de ataque de denegación de servicio? Para poder realizar este tipo de ataques es necesario que la persona que lo realiza conozca la dirección web del servidor que desea atacar o la dirección IP donde se encuentra alojado el servicio que la empresa provee. El mas conocido puede ser la dirección web, pero en el caso que el servicio no sea una aplicación web, sino de otro tipo, entonces el atacante deberá conocer la dirección IP del servidor, la cual puede ser obtenida por algunos métodos de ingeniería inversa. Una de las soluciones es el uso de un proxy inverso (también conocido por su nombre en inglés, Reverse Proxy). Un proxy inverso es un dispositivo de seguridad que suele ser implementado en la zona desmilitarizada de una red para proteger los servidores de distintos protocolos, como puede ser un servidor bajo el protocolo de transferencia de hipertexto, más conocido como hypertext transfer protocol (por sus siglas en inglés, HTTP) o servidor de aplicaciones. La función del servidor de proxy inverso es actuar como un servidor de aplicaciones web ante un cliente que este consumiendo el servicio, las peticiones o envío de datos de parte del cliente deberán pasar primero por el servidor de proxy inverso, el cual consta de un firewall externo, un firewall interno y un servidor proxy inverso el cual puede ser creado desde distintas plataformas tales como Nginx o Apache Web Server. Luego de que la petición ha pasado las reglas del firewall externo, llega al servidor de proxy inverso donde será filtrada para determinar la validez de la petición, si la petición resulta ser inválida debido a que procede de un ataque de denegación de servicio, será procesada por el servidor de proxy inverso y responderá al cliente de quien recibió la petición con una respuesta configurada por el creador del servidor de proxy inverso. La respuesta que el proxy inverso emite dependerá del tipo de petición que el cliente envíe, por ejemplo, si la petición es derivada de un DoS o DDoS, el proxy inverso puede redirigir dichos datos hacia un servidor de mitigación y no al servidor donde se encuentre alojada la aplicación web. Con esta medida de protección el servidor donde se aloja el servicio brindado por la empresa podrá continuar funcionando normalmente, en caso contrario el servidor de mitigación dejará de ser accesible hasta que finalice el ataque en curso. Después de que el ataque ha culminado, el servidor de proxy inverso guardará en una bitácora la información del suceso acontecido, en la cual puede conllevar agregar en lista negra todas las direcciones IP de las cuales recibió las peticiones masivas de información enviada por los dispositivos atacantes y rechazar futuras incidencias provenientes de dichas direcciones. Si la petición recibida en el proxy inverso supera los filtros del firewall externo y del servidor de proxy inverso, se someterá a las reglas del firewall interno y si cumple con estas reglas enviará esta petición al servidor de aplicaciones origen para procesar los datos que contenga. Tras recibir el servidor origen la petición enviada desde el cliente y analizada por todo el proceso que conlleva el proxy inverso, finalmente el servidor origen resolverá la petición y responderá al cliente según sea el funcionamiento del servicio prestado por la empresa. En adición, un proxy inverso tiene más ventajas por ofrecer, las cuales dependerá del protocolo de servicio para el cual se implemente, aunque existen otros métodos de prevención o protección de servidores ante ataques de denegación de servicio, la planteada anteriormente es una solución robusta para considerar, también puede ser implementada junto a otra solución que cubra otro tipo de vulnerabilidad en el sistema.
Se debe resaltar que la implementación de un proxy inverso genera una importante ventaja respecto a la seguridad del servicio que una empresa provea, ya que fomenta la creación de valor añadido al servicio brindado, permitiendo que siempre esté accesible para los consumidores así mismo mejora el rendimiento al balancear la carga de peticiones recibidas para poder responder con mayor velocidad. Es responsabilidad de la empresa proveedora de cualquier tipo de servicio web asegurar que su servicio tendrá disponibilidad de acceso todo el tiempo y que los datos que se intercambian serán protegidos de terceras personas.
Referencias Bibliográficas: Avansis. (2021). Ataque DoS y DDoS [Artículo Web]. Recuperado de https://www.avansis.es/ ciberseguridad/ataque-dos-ddos/#Que_es_un_ Ataque_de_Denegacion_de_Servicio_DoS_y_DDoS Oracle Corporation. (2010). Reverse Proxy integrado [Artículo Web]. Obtenido de https://docs.oracle. com/cd/E19146-01/820-5658/gduto/index.html Sommerland, P. (2003). Reverse Proxy Patterns [Documento PDF]. Recuperado de https://www.researchgate.net/ publication/221034753_Reverse_Proxy_Patterns Sysone - Insurance Suite. (s.f.). Qué es un proxy reverso [Artículo Web]. Recuperado de https://sysone.gitbooks. io/isb/content/infrastructure/reverse-proxy.html Co-Autora: Samy Eunice Pinto C.
Ingeniera en Ciencias y Sistemas egresada de la Universidad de San Carlos de Guatemala, con maestría en Administración de Empresas por parte de la Universidad Rafael Landivar
Entusiasta de compartir con las nuevas generaciones la innovación en el desarrollo de soluciones tecnológicas