Chrome: Encontrar vulnerabilidades usando AddressSanitizer

2

Estoy leyendo sobre AddressSanitizer , una herramienta que se puede usar para encontrar Errores de memoria para Chrome (y otro software C / C ++). Tengo un poco de curiosidad sobre lo que implica el proceso de uso de la herramienta:

1) ¿Es solo cuestión de ejecutar Chrome compilado con AddressSanitizer, jugar con Chrome y esperar que AddressSanitizer marque una advertencia?

2) Si la respuesta a 1) es "sí", ¿puedo usar herramientas como Selenium para automatizar el proceso?

3) Si la respuesta a 1) es "no", ¿debería estar examinando el código fuente de Chrome y luego usar AddressSanitizer para confirmar / explotar el error? ¿O debería usar AddressSanitizer de alguna otra manera?

    
pregunta Randomblue 01.08.2012 - 22:40
fuente

1 respuesta

1
  1. Esa es una forma de usar AddressSanitizer, pero no es la única. AddressSanitizer es solo una herramienta. Depende de usted cómo desea utilizarlo.

    AddressSanitizer es muy parecido a Valgrind, si está familiarizado con él. (Si no está familiarizado con Valgrind, podría pensar que AddressSanitizer es más o menos similar a Purify, si está familiarizado con eso). Es una herramienta de tiempo de ejecución que controla la ejecución del programa y marca una advertencia si ocurre. para ver algo que se parece a un error relacionado con la memoria.

    Si desea utilizar AddressSanitizer para encontrar nuevos errores, dependerá de usted determinar cómo ejercer la mayor cantidad de aplicaciones que desee y cómo obtener una buena cobertura. Podría hacer cualquier cosa desde "ejecutarlo una vez" hasta "fuzzing completo y ejecutar en una prueba de regresión detallada".

  2. Sí, si quieres. Depende de usted cómo desea generar pruebas.

Le sugiero que lea sobre fuzz-testing. Hay muchos recursos. Vea, por ejemplo, diapositivas de Charlie Miller y las preguntas etiquetadas con en este sitio. También puede consultar este esfuerzo de Google y mis experimentos sobre cómo las banderas de compilación afectaron a fuzz-testing .

    
respondido por el D.W. 01.08.2012 - 23:09
fuente

Lea otras preguntas en las etiquetas