¿Qué vulnerabilidades clasifican las distribuciones como causantes de que un programa se bloquee, lo que da como resultado una denegación de servicio, o posiblemente ejecute un código arbitrario?

4

Al leer los correos de la lista de seguridad de la distro, veo con frecuencia que una vulnerabilidad descubierta podría hacer que foo se "bloquee, lo que resulta en una denegación de servicio, o posiblemente ejecute código arbitrario". Esta frase exacta se usa literalmente en con bastante frecuencia , pero generalmente no hay mucha información adicional.

¿De qué tipo de vulnerabilidad están hablando? ¿Se trata de un buffer overread ? ¿Usar después del libre ?

    
pregunta Xiong Chiamiov 29.03.2016 - 20:44
fuente

3 respuestas

1

La etiqueta es bastante transparente, pero sí, creo que tienes razón al suponer que se trata principalmente de problemas de administración de memoria. Estas son las causas más frecuentes de la falla, ya que causará que el sistema operativo elimine el proceso de buggy o que el programa se bloquee al tratar de procesar datos dañados.

En la mayoría de los proyectos de software libre, podrá obtener más detalles sobre cada vulnerabilidad. Cuando encuentres uno, observa más de cerca para descubrir qué tipo de error es.

    
respondido por el Arno 29.03.2016 - 20:57
fuente
1

En general, eso significa que "encontramos un error, causa bloqueos. Una persona inteligente podría convertirlo en algo aún más poderoso, pero no tenemos tiempo para estudiarlo nosotros mismos".

Sí, significa buffer overread. Sí, significa una UAF. También significa un desbordamiento de refcount, un doble libre y un (inserta tu clase de error aquí). La razón de esto es que muchos errores se encuentran primero porque causan bloqueos debido a problemas con la memoria. Un error inocente, encontrado accidentalmente, o uno encontrado con análisis dinámico (fuzzing) simplemente no saldrá con un exploit de ejecución de código perfectamente formado, completo con shellcode e printf ("w00t w00t \ n") ;. A menudo se necesita mucho trabajo para convertir un error que provoca un bloqueo en algo que provoca una corrupción de memoria tan predecible que secuestra el programa de la forma que desee. Entonces, como resultado, casi todos son "fallos, que podrían, con esfuerzo, ser capaces de ser utilizados para la ejecución de código".

Si está preguntando desde el punto de vista de un defensor, significa "esta es una vulnerabilidad grave de ejecución de código arbitrario, así que repárela AHORA".

Si está preguntando desde el punto de vista de un proveedor, significa "aw, no es nada, solo un pequeño problema, no hay nada que ver aquí, por cierto, alguien me envíe el departamento de relaciones públicas".

    
respondido por el forest 02.04.2016 - 04:43
fuente
-1

crash = el programa o el subproceso deja de ejecutarse

denegación de servicio = los usuarios normales no pueden acceder porque está inactivo, inundado con solicitudes falsas, o el pirata informático ha agotado toda la CPU, la memoria y / o el disco y su programa no puede funcionar.

ejemplo: (d) dos ataque, cargue un archivo zip que contenga 10 gb de a (o lo que sea) que se comprimirá en una carga pequeña, pero posiblemente agotará toda la RAM o la parte del disco duro reservado para descomprimir archivos.

Ejecutar código arbitrario = el pirata informático puede ejecutar lo que quiera y básicamente es el propietario de su sistema de forma remota. por lo general, inyectan un RAT, ssh y / o irc para el comando y control remoto.

Por lo general, el búfer sobre ejecuciones y ejecuciones, pero hay muchos tipos diferentes. Código de inyección, apilar sobre flujos.

    
respondido por el cybernard 31.03.2016 - 03:19
fuente

Lea otras preguntas en las etiquetas