Хакеры из проекта Project Zero компании Google выложили в открытый доступ инструмент автоматического тестирования программ на баги — фаззер Domato. Эффективность программы доказана на практике: она нашла 31 баг в пяти популярных браузерах. Результаты тестирования показаны в таблице.
Вендор |
Броузер |
Движок |
Кол-во багов |
Идентификаторы багов Project Zero |
|
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 | |
Apple | Safari | WebKit | 17 | 999, 1038, 1044, 1080, 1082, 1087, 1090, 1097, 1105, 1114, 1241, 1242, 1243, 1244, 1246, 1249, 1250 |
|
Всего | 31** |
Domato специально разработан, чтобы вскрывать баги в DOM-движках браузеров. DOM-движки являются частью движка рендеринга в каждом браузере, и именно в этой части зачастую скрывается много багов. Изредка они даже используются особо продвинутыми злоумышленниками, в том числе из государственных спецслужб. Например, именно баг в DOM-движке Firefox использовали спецслужбы при создании вредоносного эксплоита для браузера Tor. Эксплоит обнаружили специалисты по безопасности в ноябре прошлого года. Точнее, как обнаружили: он случайно утёк из компании Exodus Intel, которая специализируется на покупке и разработке эксплоитов с целью перепродажи их разведывательным агентствам и правоохранительным структурам из разных стран.
Ребята из Google традиционно сражаются с подобными методами государственной слежки. Возможно, тот случай с браузером Tor и подал идею о создании фаззера для выявления уязвимостей в DOM-движках. Его автором стал известный хакер Иван Фратрич (Ivan Fratric). Впрочем, даже без того случая создание подобного инструмента напрашивалось само собой: Фратрич пишет, что редкое обновление безопасности для какого-нибудь браузера обходится без закрытия багов в DOM-движке, настолько часто они встречаются. Раньше звание главной дыры принадлежало Flash, но по мере отказа от этой технологии это звание постепенно переходит к DOM-движку.
Теперь Фратрич выложил Domato в открытый доступ с расчётом, что другие усовершенствуют этот полезный инструмент. Кстати, почти все крупные вендоры платят за найденные уязвимости, так что хороший фаззер может заработать вам много тысяч долларов.
Во время проверки браузеров, результаты которой приведены выше, фаззинг заключался в генерации случайного кода и подаче его браузеру в надежде, что тот обрушится, и так примерно 100 млн раз. По оценке Фратрича, фаззинг такого масштаба в облаке Google Compute Engine стоил бы около $1000.
Браузер нашёл примерно одинаковое количество багов в Chrome, Firefox, Internet Explorer и Edge, но намного больше багов в Safari, который выделяется среди остальных. К настоящему моменту все эти баги закрыты, потому что Apple заранее получила доступ к Domato, наняв в штат члена команды Project Zero, который попросил Ивана дать попользоваться фаззером (ранее Фратрич сам предлагал его Apple в связи с большим количеством багов в Safari, но компания гордо отказалась). Фратрич пишет, что слишком большое количество багов в Safari особенно настораживает, учитывая интерес злоумышленников к этой платформе, о чём говорят цены на эксплоиты и недавние таргетированные атаки.
Ещё интересно сравнить количество багов в браузерах Chrome и Safari, которые ещё несколько лет назад работали на одном движке WebKit, пока Google не форкнула его, создав Blink. Судя по всему, с момента форка в 2013 году в движке Blink устранили большое количество багов либо большое количество багов добавили в движок WebKit.
Иван Фратрич также отдал должное разработчикам из Microsoft, которые создали сборщик мусора в памяти MemGC для защиты от эксплоитов, использующих баги типа use-after-free. Функция встроена в Edge и Internet Explorer 11. Он говорит, что эффект MemGC очевиден: если через флаг OverrideMemoryProtectionSetting отключить эту функцию, то выявляется намного больше багов, которые реально присутствуют в коде.
Автор: Анатолий Ализар