Cuando se produce un interbloqueo, el procesamiento se detiene. Esta es una denegación de servicio, que, como cualquier otra DoS , puede servir como un paso intermedio para un ataque más grande. Por ejemplo, si un Sistema de detección de intrusiones deja de funcionar (por ejemplo, entra en un interbloqueo), entonces las intrusiones podrán continuar sin ser detectadas . Hollywood, en su infinita sabiduría, ha presentado exposiciones muy gráficas de tales escenarios ( ese es un clásico).
Deadlocks son un problema clásico en la programación concurrente. Son tan clásicos que algunos sistemas incluyen mecanismos de seguridad de "resurrección" que intentan reanimar un proceso más allá de un punto muerto. Por ejemplo, cuando un hilo intenta adquirir un bloqueo que cierra el círculo de interbloqueo, el sistema de bloqueo puede detectarlo y no adquiere el bloqueo, en lugar de eso, informa de un error. Si la persona que llama no comprueba correctamente la condición de error, puede continuar sin el bloqueo, modificando los datos sin sincronización con otras personas que llaman. La corrupción de datos y otras consecuencias indeseables pueden suceder.
Evitar los puntos muertos es una cuestión de corrección : se produce un punto muerto debido a una falla en el diseño general de la aplicación (se considera que los puntos muertos son un tipo de error "difícil" porque no se pueden identificar con precisión). ubicación única donde un programador olvidó poner una prueba o malinterpretó una constante; aparecen errores de interbloqueo en el nivel de la arquitectura). La relación con la seguridad es la genérica: no es suficiente para garantizar que los errores no se activen en condiciones normales, ya que los atacantes a menudo pueden imponer condiciones anormales. Por ejemplo, aunque el nombre de un usuario normal tiene menos de 100 caracteres, debe verificar que el nombre ingresado por el usuario no sea demasiado grande antes de intentar copiarlo en un 100%. búfer de caracteres. De manera similar, incluso si no se puede producir un interbloqueo en una aplicación dada cuando los eventos externos ocurren a un "ritmo normal", un atacante puede activar tiempos inusuales, por ejemplo. iniciando 15 operaciones de "cambio de contraseña" simultáneamente en la misma cuenta.