Los piratas informáticos del proyecto Project Zero de Google publicaron una herramienta de acceso abierto para la prueba automática de programas para
detectar errores: el
fuzzer Domato . La eficacia del programa se ha demostrado en la práctica:
encontró 31 errores en cinco navegadores populares. Los resultados de la prueba se muestran en la tabla.
Vendedor
| Navegador
| Motor
| Numero de errores
| Project Zero Bug IDs
|
Google
| Cromo
| Parpadear
| 2
| 994, 1024
|
Mozilla
| Firefox
| Gecko
| 4 **
| 1130, 1155, 1160, 1185
|
Microsoft
| Explorador de internet
| Tridente
| 4 4
| 1011, 1076, 1118, 1233
|
Microsoft
| Borde
| Edgehtml
| 6 6
| 1011, 1254, 1255, 1264, 1301, 1309
|
Manzana
| Safari
| Webkit
| 17
| 999, 1038, 1044, 1080, 1082, 1087, 1090, 1097, 1105, 1114, 1241, 1242, 1243, 1244, 1246, 1249, 1250
|
Total
| 31 *
|
* Dos errores se relacionan con dos navegadores, por lo que el número total es 31, no 33, como se deduce de la suma de los números en la columna
** Uno de los errores está en la biblioteca de gráficos de Skia, y no en el código fuente de Firefox. Pero dado que este código ha sido agregado al navegador por los desarrolladores de Firefox, será justo considerarlo en la tablaDomato está específicamente diseñado para abrir errores en los motores DOM del navegador. Los motores DOM son parte del motor de representación en todos los navegadores, y es en esta parte donde a menudo se esconden muchos errores. Ocasionalmente, incluso son utilizados por atacantes especialmente avanzados, incluidos los de las agencias de inteligencia estatales. Por ejemplo, fue un error en el motor DOM de Firefox que los servicios especiales utilizaron para crear un
exploit malicioso
para el navegador Tor . El exploit fue descubierto por expertos en seguridad en noviembre del año pasado. Más precisamente, como descubrieron: se
filtró accidentalmente de Exodus Intel, que se especializa en la compra y desarrollo de exploits con el fin de revenderlos a agencias de inteligencia y agencias de aplicación de la ley de diferentes países.
Los chicos de Google tradicionalmente luchan con tales métodos de vigilancia estatal. Quizás ese caso con el navegador Tor dio la idea de crear un fuzzer para identificar vulnerabilidades en los motores DOM. Su autor fue el famoso hacker Ivan Fratric. Sin embargo, incluso sin ese caso, la creación de una herramienta de este tipo era obvia: Fratrich escribe que una actualización de seguridad rara para algunos navegadores se realiza sin cerrar errores en el motor DOM, son muy comunes. Anteriormente, el título del agujero principal pertenecía a Flash, pero a medida que se abandona esta tecnología, este título se mueve gradualmente al motor DOM.
Ahora Fratrich ha hecho que
Domato esté disponible públicamente con la expectativa de que otros mejoren esta útil herramienta. Por cierto, casi todos los principales proveedores pagan por las vulnerabilidades encontradas, por lo que un buen fuzzer puede ganarle muchos miles de dólares.
Durante una prueba de navegador, cuyos resultados se proporcionaron anteriormente, el borrado consistió en generar código aleatorio y enviarlo al navegador con la esperanza de que se bloqueara, y así unas 100 millones de veces. Según Fratrich, la aparición de esta magnitud en la nube de Google Compute Engine costaría alrededor de $ 1,000.
Fazzer encontró aproximadamente la misma cantidad de errores en Chrome, Firefox, Internet Explorer y Edge, pero muchos más errores en Safari, que se destacan del resto. Por el momento, todos estos errores están cerrados, porque Apple tuvo acceso a Domato por adelantado al contratar a un miembro del equipo del Proyecto Cero que le pidió a Ivan que lo dejara usar el fuzzer (anteriormente Fratrich mismo se lo ofreció a Apple debido a la gran cantidad de errores en Safari, pero la compañía está orgullosa) rechazado). Fratrich escribe que demasiados errores en Safari son especialmente alarmantes, dado el interés de los ciberdelincuentes en esta plataforma, como lo demuestran los precios de explotación y los recientes ataques dirigidos.
También es interesante comparar la cantidad de errores en los navegadores Chrome y Safari, que hace varios años funcionaban en el mismo motor WebKit, hasta que Google lo bifurcó, creando Blink. Aparentemente, desde la bifurcación en 2013, se eliminaron una gran cantidad de errores en el motor Blink o se agregaron una gran cantidad de errores al motor WebKit.
Ivan Fratrich también rindió homenaje a los desarrolladores de Microsoft, que crearon un recolector de basura en la memoria de
MemGC para protegerse contra las vulnerabilidades que usan errores como use-after-free. La función está integrada en Edge e Internet Explorer 11. Dice que el efecto MemGC es obvio: si deshabilita esta función a través del indicador OverrideMemoryProtectionSetting, se detectarán muchos más errores que realmente están presentes en el código.