Tratar con API Webhooks que se niega a autenticarse

4

Actualmente estoy en el proceso de escribir un conector a una API. Es para un sistema de envío automatizado y debo escuchar los eventos de esa API dada, enviados a través de Webhooks.

El propietario de la API no agrega encabezados de autenticación a la solicitud que envían a mi webhook, en lugar de eso, usan un campo dentro del cuerpo para imitar algún tipo de autenticación. Eso significa que tengo que analizar el cuerpo de cada solicitud entrante, lo que facilita a los atacantes DDOS mi servidor (entre otros ataques). Les he pedido que cambien eso, pero se negaron.

{
   "token": "myToken",
   "otherData": ...
}

Estoy muy preocupado por la publicación de un punto final no autenticado en www.

1) ¿Es legítima mi preocupación?

2) ¿Qué puedo hacer para obligarlos a usar la autenticación?

    
pregunta baao 23.08.2018 - 11:23
fuente

2 respuestas

3

Para responder a su primera pregunta: No, no creo que tenga mucho de qué preocuparse. En particular, están autenticándose, y creo que hay una confusión en la terminología que está ocurriendo aquí. El hecho de que el token de autenticación esté en el cuerpo de la solicitud no cambia nada acerca de la autenticación. Muchas llamadas a la API funcionan de esta manera (aunque pasar el token de autenticación en el encabezado puede ser más común). Si los contactó y trató de solucionar la falta de autenticación (como usted está aquí), estoy seguro de que habrían descartado sus inquietudes, porque de hecho se están autenticando.

En lo que respecta a sus preocupaciones sobre DDOS, la diferencia entre obtener un token de autenticación de un encabezado (que probablemente sea el único lugar en el que puede vivir) y analizarlo fuera de un cuerpo JSON es mínima desde el punto de vista del uso de la CPU. No espero que haga ninguna diferencia práctica para ayudar a un atacante a tener éxito en un ataque DDOS. Es muy probable que tenga mucho más uso intensivo de CPU que esto, por lo que si alguien realiza un ataque dirigido contra su sistema y se toma el tiempo para tratar de encontrar el punto final más débil, es probable que encuentre muchas páginas más tentadoras.

Sin embargo, incluso eso no es una preocupación real. La mayoría de los ataques DDOS en estos días funcionan simplemente lanzando tantas solicitudes al objetivo como sea posible para saturar el ancho de banda de su red. Como resultado, el punto final real ni siquiera importa, y las solicitudes que envían los atacantes rara vez son solicitudes válidas. Dudo que muchos atacantes se molesten en hacer algo más que buscar la dirección IP de su (s) servidor (es), y probablemente haya muy pocas circunstancias en las que primero pasen tiempo buscando en su sitio web tratando de encontrar la página más vulnerable.

Si le preocupa que DDOS obtenga un socio para la mitigación de DDOS, como en la nube. Como lo menciona Josef, también puede probar los límites de direcciones IP en la página. Sin embargo, hay maneras mucho más efectivas de pasar su tiempo para proteger su sitio contra DDOS y luego tratar de cambiar la estructura de la API de un servicio de terceros cuando su aplicación tiene muchos más puntos finales para que un atacante los golpee de todos modos.

Aclaraciones adicionales

En el mundo de la seguridad, ninguna respuesta es especialmente útil sin un buen modelado de amenazas. Como resultado, vale la pena desglosar el "modelo de amenaza" que le preocupa. Tener una solicitud que pase el token de autenticación en el cuerpo es importante si :

  1. Alguien está apuntando a su sistema para un ataque DDOS
  2. No tienen suficiente ancho de banda a su disposición para simplemente invadir sus recursos de red ( DDOS de los recursos de la red a través de los ataques de amplificación solo representa ~ la mitad de todos los ataques DDOS )
  3. Por lo tanto, deciden apuntar a puntos finales particulares en su sistema que requieren muchos recursos
  4. Se encuentran con este punto final no publicado y son capaces de descubrir cómo funciona la llamada a la API
  5. No encuentran otro punto final en su sistema que requiera más recursos

Si todas estas condiciones se cumplen, entonces, de hecho, alguien podría usar este punto final para DDOS en su sistema, y la diferencia entre la autenticación en el encabezado y en el cuerpo puede ser importante. Sin embargo, en caso de que no quede claro, estas condiciones nunca se cumplirán . Si alguien quiere usar DDOS para sus sistemas, probablemente se irán y alquila un DDOS que inundará tus sistemas con tráfico de red sin sentido. Es más fácil y más efectivo que intentar identificar un punto débil real en su sistema. Esta es la razón principal por la que esto no importa desde la perspectiva de un DDOS: el ataque DDOS que le preocupa nunca va a suceder porque existen formas más rápidas y rápidas de hacer un sitio web para DDOS. La única forma de protegerse contra tipos realistas de ataques DDOS es con un proveedor de mitigación de DDOS.

Esta es la razón por la que modelar amenazas y comprender las amenazas del mundo real es tan importante. Puede pasar semanas trabajando con un proveedor externo para cambiar su API de manera que minimice el tiempo de CPU en su extremo, solo para que sus sistemas se vean bloqueados por un DDOS que envía ciegamente solicitudes no válidas a su red y supera su capacidad de red. Si dedica su tiempo a protegerse contra los tipos de amenazas incorrectos, puede terminar perdiendo mucho tiempo y (lo que es más importante) implementar los tipos incorrectos de guardias seguros.

    
respondido por el Conor Mancone 21.09.2018 - 12:50
fuente
1

Para responder a tus preguntas exactas:

  1. ¿Mi preocupación es legítima?
    • Yo creo que sí
  2. ¿Qué puedo hacer para obligarlos a usar la autenticación?
    • esto depende totalmente del contrato con ellos. Si desea ir en esta dirección, law.stackexchange.com podría ser más adecuado para su pregunta.

Si busca una solución técnica, puede preguntarles si las solicitudes provienen de un conjunto específico de direcciones IP y solo permitir el tráfico de esas direcciones a su sistema.

    
respondido por el Josef 21.09.2018 - 12:21
fuente

Lea otras preguntas en las etiquetas