Vuln research: ingeniería inversa, depuración o fuzzing?

9

Me pregunto cómo los hackers encuentran vulnerabilidades.

Si usan fuzzing, los ingenieros de seguridad lo hacen, y es probable que los ingenieros de seguridad (que trabajan en una empresa) tengan más recursos que un grupo de hackers.

La ingeniería inversa lleva mucho tiempo, y creo que no es lo suficientemente confiable para depender. ¿Es ese realmente el caso, o me estoy perdiendo algo?

Lo que tengo en mente es estos concursos donde los piratas informáticos tienen un día para encontrar una vulnerabilidad para un navegador y explotarla. ¿Cómo lo hacen? Y el tiempo asignado para un navegador de código abierto (chrome) es el mismo tiempo asignado a un navegador de código cerrado (Internet Explorer).

    
pregunta jaja 08.11.2011 - 11:39
fuente

3 respuestas

12

La ruta básica para explotar una vulnerabilidad relacionada con el desbordamiento es encontrar una falla (a menudo mediante la confusión), evaluar la falla y si presenta una ruta de ataque, y luego construir algo para explotarla.

A veces, donde uno se ve puede implicar el conocimiento de la arquitectura, como cuando Charlie Miller notó que iOS 4.3 tiene una sección de memoria que ejecutar código sin firmar . En el caso de todos sus ataques de Apple, creo que la fuente estaba cerrada. Las debilidades de la inyección de SQL son similares: estás empezando con una cuna sabiendo dónde es un buen lugar para mirar.

Si bien es más sencillo identificar y corregir un error a través de la fuente después de encontrar un fallo, el trabajo para configurar el entorno puede carecer de valor si el objetivo es simplemente escribir un exploit operativo. A menudo, el espacio relevante de un programa implica mirar menos de 1 KB de código de máquina.

Desde mi perspectiva, el código abierto permite ver los errores que se agregan a medida que ocurren y decir: "Oye, ese fragmento del código parece una locura". Más allá de eso, el trabajo para explotar el trabajo de código abierto y de código abierto es a menudo el mismo. En cuanto a la ingeniería inversa, es raro, a menos que intentes alterar o recrear una aplicación en lugar de lanzar un exploit desde ella.

No subestimaría la capacidad de los grupos de hackers para dedicar una gran cantidad de recursos informáticos a una tarea. Los grupos de Warez han sido conocidos a lo largo de la historia de Internet por reunir importantes recursos de almacenamiento y ancho de banda. Podría ser ingenuo pensar que los grupos de hackers no reúnen la misma potencia de CPU.

Finalmente, la mayoría de las personas que hacen esto durante un tiempo lo suficientemente largo conservan uno o dos ataques descubiertos en lugar de liberarlos.

    
respondido por el Jeff Ferland 08.11.2011 - 14:21
fuente
9

Para ver sus suposiciones:

muchos grupos de ataque tienen recursos mucho más grandes que el de las compañías

  • en una empresa típica, la seguridad es un centro de costos, por lo que nunca tienen suficiente personal o dinero
  • en el mundo del sombrero negro, encontrar fallas de seguridad es un flujo de ingresos

los ingenieros de seguridad y los sombreros negros llevan a cabo las difusas

  • fuzzing es por su propia naturaleza falible. Se pueden utilizar tantos algoritmos de fuzzing diferentes que no encontrará todos los problemas (esto es obviamente cierto para todas las pruebas de seguridad)

la ingeniería inversa requiere mucho tiempo

  • absolutamente, sin embargo esto es algo que tienen los sombreros negros. Algunos contratan equipos de niños inteligentes para hacer nada más que hacer ingeniería inversa con el código. Algunos colocan a individuos en equipos de desarrollo para contrabandear código. Si gana dinero, la regla general es que alguien lo intente.

las competiciones de explotación de un día

  • El mismo Charlie Miller afirma que desarrolla exploits en el período previo a estas competiciones, por lo que tiene algunas herramientas listas.
respondido por el Rory Alsop 08.11.2011 - 17:30
fuente
1

La fuente principal de vulnerabilidades son los accidentes en lugar de los intencionales.

Cuando el navegador falla, los expertos en seguridad depuran cómo sucedió con un depurador y ver si pueden reproducir el bloqueo. Por lo tanto, se trata de darse cuenta de las vulnerabilidades a medida que ocurren, en lugar de buscarlas.

Al programar, como crear un sitio web, al usar alguna característica oscura, los expertos se preguntan cómo funciona esa característica oscura y qué sucede cuando la usan de manera incorrecta.

Al igual que Charlie Miller encuentra una cantidad relativamente pequeña de vulnerabilidades. En esos casos, es porque han pasado años desarrollando ingeniería inversa de un producto y pueden encontrar repetidamente vulnerabilidades basadas en el conocimiento existente.

    
respondido por el Robert David Graham 09.11.2011 - 00:31
fuente

Lea otras preguntas en las etiquetas