Explotación sistemática de componentes de software [cerrado]

3

Mi pregunta es bastante genérica. Es probable que las personas rechacen la pregunta y los administradores se sientan tentados a cerrarla en off-topic , etc. Pero, no pude evitar hacer la pregunta para buscar algunas respuestas fructíferas.

Se encuentran diariamente numerosos errores de software / vulnerabilidades / vulnerabilidades. Los foros de seguridad y las listas de correo se ven abrumados al recibir la cantidad de publicaciones que los investigadores / usuarios / ingenieros publican diariamente. Las bases de datos CVE / NVD se están llenando a la velocidad de la luz. Lo que me ha sorprendido durante bastante tiempo es cómo la gente está encontrando tantos errores en un corto período de tiempo, a menos que un gran número de software sea explorado / buscado sistemáticamente en busca de lagunas. Por ejemplo, este tipo ha reportado seis errores en este año hasta ahora.

En lo que respecta a las técnicas de búsqueda de errores, puedo pensar en lo siguiente:

  1. Fuzzing de caja negra (para productos de código abierto y cerrado (COTS))
  2. Fuzzing de caja blanca (solo para productos de código abierto)
  3. Búsqueda guiada de ejecución simbólica (no tan escalable, que yo sepa)
  4. Ingeniería inversa (agitado, muchas horas de trabajo involucradas)
  5. Alcanzar un error por casualidad (probablemente aplicable a los casos reportados por la mayoría de los usuarios finales)
  6. Tutorial del código (necesita acceso al código fuente, adecuado para auditorías internas o productos de código abierto)
  7. Herramientas de análisis estático que ayudan a encontrar errores de patrones conocidos
  8. Herramientas de análisis dinámico (no muy familiarizadas con esto)

Todavía me pregunto si alguna combinación de todo lo anterior puede llevar al descubrimiento de tantos errores a una velocidad tan rápida. ¿Hay / hay técnicas principales que me faltan?

    
pregunta Holmes.Sherlock 06.10.2015 - 10:29
fuente

1 respuesta

0

Creo que este es probablemente un juego de números puros: hay muchos de personas cuya única ocupación es buscar agujeros de seguridad. Muchas de estas personas trabajan para consultoras de seguridad y compañías de servicios de seguridad, y el reconocimiento de encontrar e informar vale mucho para su marca.

También hay algunas estrategias fructíferas, por ejemplo, los parámetros de entrada de fuzzing a menudo pueden causar bloqueos inesperados y mensajes de error y estos pueden no ser problemas de seguridad, pero ciertamente sugieren que sería útil realizar más investigaciones. Perseguir los ciclos de actualización de productos también es interesante: las actualizaciones de software son sorprendentemente ricas en problemas de seguridad con bastante frecuencia porque pueden publicarse en circunstancias excepcionales, como limitaciones de tiempo o pruebas de control de calidad más bajas, etc.

Al final, aunque es solo la cantidad de personas y la cantidad de horas aplicadas, sospecho.

    
respondido por el David Scholefield 06.10.2015 - 11:55
fuente

Lea otras preguntas en las etiquetas