¿Es posible aprovechar DOS al activar un gran número de excepciones de aplicaciones?

2

Un aspecto clave de un DOS o DDOS parece ser aprovechar el poder computacional requerido en el lado de los atacantes para maximizar el impacto en el lado objetivo. Este artículo de wiki enumera muchos ejemplos de tales ataques.

Imagine un sitio web .Net con una página que por cualquier motivo se bloquea en una solicitud GET estándar. El experto residente en .Net, Jon Skeet , entró en el desempeño de las excepciones de .Net por un momento . Su conclusión parece ser que durante la operación regular no vale la pena preocuparse por el impacto en el rendimiento, ya que el número de excepciones debería ser bastante pequeño.

¿Pero qué pasaría si este sitio web que se estrella siempre se inundara con solicitudes que desencadenaran excepciones en el lado del servidor? ¿Podría ser un ataque viable que debería tenerse en cuenta al probar vulnerabilidades en un sitio web?

    
pregunta Bananenaffe 05.02.2018 - 15:01
fuente

2 respuestas

3

Las excepciones son muy rápidas. Incluso si hacen un rastreo completo y hacen un buen HTML con él.

Si golpea una excepción porque proporcionó un argumento ilegal, puede que ni siquiera se realice una consulta de un solo sql, lo que lo haría más rápido que la solicitud normal.

Mis sitios web siempre registran excepciones en la base de datos, pero esa base de datos no es parte de un sistema en vivo, por lo que su desaceleración no afecta el rendimiento de todo el sistema, sino que solo controla una parte de él.     

respondido por el Aria 05.02.2018 - 16:17
fuente
0

Este es, de hecho, uno de los casos en que los "atacantes" también pueden usar las mismas herramientas utilizadas por los "defensores". Hay un libro que fue único por su época, ya que fue el primero en documentar las formas en que la criptografía podría usarse no solo como defensa, sino también como ofensiva (Cryptography malicioso: Exponer Cryptovirology, FWIW). >

Sin embargo, le explico que se está perdiendo el cuello de botella más importante, que debe medirse utilizando los mismos perfiladores que usarían los desarrolladores de software. Determine el cuello de botella más importante utilizando perfiladores y úselo; no asuma automáticamente que encontrará ese cuello de botella en el código cargado de excepciones.

El problema computacional con excepciones es que hay clases de optimizaciones que se pueden desactivar, pero nos centramos demasiado en eso. El problema real, y uno que no discutimos con suficiente frecuencia, es que las excepciones son como goto , pero en tres dimensiones (que abarcan no solo una función, sino múltiples niveles de llamadas de función, para crear potencialmente un "código spaghetti") ; Cuando se usan de manera inapropiada (lo que es fácil de hacer, como en el caso de goto ), ¡pueden convertir el mantenimiento en un dolor de cabeza serio! Por lo tanto, el cuello de botella más importante de las excepciones es mucho más probable que se mida en horas humanas, en lugar de microsegundos de CPU ...

Por lo tanto, desde una perspectiva de seguridad, y en un nivel mucho más alto que el nivel de máquina ... a un nivel personal , Ciertamente podría utilizar excepciones como una forma de denegación de servicio. DEFCON 23 presentó una idea similar en una presentación titulada Repsych: Guerra psicológica en ingeniería inversa . Sin embargo, el objetivo no es derribar un sistema , sino convencer a los curiosos de que se rindan y se vayan . Es una denegación de servicio interpersonal. Podría utilizar esta idea suya con éxito moderado, por ejemplo, para atormentar a los analistas antivirus.

De lo contrario, creo que debería centrarse en usar su generador de perfiles para determinar el cuello de botella más importante.

    
respondido por el autistic 05.02.2018 - 21:24
fuente

Lea otras preguntas en las etiquetas