Os hackers do projeto Project Zero do Google publicaram uma ferramenta de acesso aberto para testes automáticos de programas de bugs - o
fuzzer Domato . A eficácia do programa foi comprovada na prática:
encontrou 31 bugs em cinco navegadores populares. Os resultados do teste são mostrados na tabela.
Fornecedor
| Navegador
| Engine
| Número de bugs
| Project Zero Bug IDs
|
Google
| Chrome
| Blink
| 2
| 994, 1024
|
Mozilla
| Firefox
| Gecko
| 4 **
| 1130, 1155, 1160, 1185
|
Microsoft
| Internet Explorer
| Trident
| 4
| 1011, 1076, 1118, 1233
|
Microsoft
| Edge
| Edgehtml
| 6
| 1011, 1254, 1255, 1264, 1301, 1309
|
Maçã
| Safari
| Webkit
| 17
| 999, 1038, 1044, 1080, 1082, 1087, 1090, 1097, 1105, 1114, 1241, 1242, 1243, 1244, 1246, 1249, 1250
|
Total
| 31 *
|
* Dois bugs estão relacionados a dois navegadores; portanto, o número total é 31, não 33, conforme segue a soma dos números na coluna
** Um dos erros está na biblioteca de gráficos do Skia, e não no código fonte do próprio Firefox. Mas como esse código foi adicionado ao navegador pelos desenvolvedores do Firefox, será justo considerá-lo na tabelaO Domato foi projetado especificamente para abrir bugs nos mecanismos DOM do navegador. Os mecanismos DOM fazem parte do mecanismo de renderização em todos os navegadores, e é nessa parte que muitos bugs geralmente são ocultados. Ocasionalmente, eles são usados até por atacantes especialmente avançados, incluindo os de agências de inteligência estaduais. Por exemplo, foi um bug no mecanismo DOM do Firefox que os serviços especiais usaram para criar uma
exploração maliciosa
para o navegador Tor . A exploração foi descoberta por especialistas em segurança em novembro do ano passado. Mais precisamente, como eles descobriram: ele
acidentalmente vazou da Exodus Intel, especializada na compra e desenvolvimento de explorações com o objetivo de revendê-las a agências de inteligência e órgãos de aplicação da lei de diferentes países.
Os caras do Google tradicionalmente lutam com esses métodos de vigilância estatal. Talvez esse caso com o navegador Tor tenha dado a ideia de criar um fuzzer para identificar vulnerabilidades nos mecanismos DOM. Seu autor foi o famoso hacker Ivan Fratric. No entanto, mesmo sem esse caso, a criação de uma ferramenta desse tipo era óbvia: Fratrich escreve que uma rara atualização de segurança para alguns navegadores ocorre sem fechar bugs no mecanismo DOM, eles são muito comuns. Anteriormente, o título do furo principal pertencia ao Flash, mas como essa tecnologia é abandonada, esse título passa gradualmente para o mecanismo DOM.
Agora Fratrich disponibilizou
publicamente a Domato com a expectativa de que outras pessoas melhorem essa ferramenta útil. A propósito, quase todos os principais fornecedores pagam pelas vulnerabilidades encontradas, de modo que um bom fuzzer pode lhe render milhares de dólares.
Durante um teste de navegador, cujos resultados são apresentados acima, a difusão consistiu em gerar código aleatório e enviá-lo ao navegador na esperança de que ele travasse, e cerca de 100 milhões de vezes. Segundo Fratrich, a difusão dessa magnitude na nuvem do Google Compute Engine custaria cerca de US $ 1.000.
Fazzer encontrou aproximadamente o mesmo número de bugs no Chrome, Firefox, Internet Explorer e Edge, mas muito mais bugs no Safari, que se destacam dos demais. No momento, todos esses bugs estão fechados, porque a Apple teve acesso antecipadamente ao Domato, contratando um membro da equipe do Project Zero que pediu a Ivan para deixá-lo usar o fuzzer (anteriormente o próprio Fratrich o ofereceu à Apple devido ao grande número de bugs no Safari, mas a empresa está orgulhosa recusado). Fratrich escreve que muitos bugs no Safari são particularmente alarmantes, dado o interesse dos cibercriminosos nessa plataforma, como evidenciado pelos preços das explorações e pelos recentes ataques direcionados.
Também é interessante comparar o número de bugs nos navegadores Chrome e Safari, que há vários anos trabalhavam no mesmo mecanismo WebKit, até que o Google o bifurcou, criando o Blink. Aparentemente, desde o fork em 2013, um grande número de erros foi eliminado no mecanismo Blink ou um grande número de erros foi adicionado ao mecanismo WebKit.
Ivan Fratrich também prestou homenagem aos desenvolvedores da Microsoft, que criaram um coletor de lixo na memória do
MemGC para se proteger contra explorações que usam bugs como usar após livre. A função está embutida no Edge e no Internet Explorer 11. Ele diz que o efeito MemGC é óbvio: se você desabilitar essa função por meio do sinalizador OverrideMemoryProtectionSetting, muito mais erros serão detectados que realmente estão presentes no código.