¿Cómo puedo probar mi aplicación web para detectar ataques de tiempo?

16

condiciones de carrera, etc.

¿Hay herramientas automáticas para esto? ¿Qué técnicas manuales debo usar?

De la propuesta de Area51

    
pregunta AviD 16.11.2010 - 08:34
fuente

2 respuestas

8

Los ataques de tiempo, condición de carrera (CWE-362) no son muy comunes para las aplicaciones web , estos son principalmente problemas de lenguajes de bajo nivel. Por ejemplo, en CVE-2006-5178 , La condición de carrera se debió a una implementación incorrecta en el propio intérprete de PHP. Pero la aplicación que confía en esas funciones también es vulnerable.

Podría ser desalentador intentar reproducir dicha vulnerabilidad, debido a problemas de tiempo y las necesidades de un entorno específico. Con los escáneres de vulnerabilidad automatizados no es factible realizar dicha prueba, incluso para los humanos no es fácil encontrar dicha vulnerabilidad.

En mi opinión, el desarrollador solo necesita tener en cuenta cuando se puede interrumpir el proceso principal. Se debe proporcionar atomicidad cuando la secuencia de acciones no debe ser interrumpible. Principalmente las acciones de la base de datos son susceptibles a tales ataques. Incluso cuando DBMS admite transacciones y proporciona medios para una sincronización segura, puede haber más acciones globales que están bajo el control de DBMS para hacerlas atómicas. Se debe prestar atención también a las situaciones en las que se utilizan hilos.

En el enlace a CWE-362, hay una lista de artículos que son útiles para leer. Esos proporcionarían mucha más información de la que he dado aquí.

    
respondido por el anonymous 16.11.2010 - 16:49
fuente
6

La discusión y las respuestas aquí parecen estar alrededor de condiciones de carrera , a las que generalmente se hace referencia con ese nombre.

Si realmente quiere decir ataques de sincronización , probablemente esté hablando de fugas de información a través de discrepancias en el tiempo de ejecución. Una lección en ataques de tiempo es una introducción agradable y accesible a esto.

No tengo conocimiento de ninguna herramienta que pueda ayudar específicamente a descubrirlas, pero las herramientas comunes de evaluación web pueden revelar otros problemas que podrían verse agravados por un ataque de tiempo.

Supongamos que tiene una vulnerabilidad que le permite a una parte externa ejecutar código SQL en su base de datos: inyección de SQL clásica. Supongamos que ha tomado algunas precauciones: no pueden recuperar los datos o escribir información arbitraria en su base de datos, simplemente devuelve un mensaje de error genérico de algún tipo. Sería posible para la parte externa probar el esquema de su base de datos utilizando declaraciones "selectas" y cronometrando el tiempo que tardó en recibir una respuesta; simplemente al observar cuánto trabajo está haciendo su sistema back-end, están aprendiendo algo sobre él que quizás no tengan de otra manera (ya sea que exista una tabla en particular, si hay muchos registros en una tabla, etc.). / p>     

respondido por el medina 18.12.2010 - 00:18
fuente