Pull to refresh

Comments 18

У вас в таблице есть звездочки-сноски, но нет пояснения
*While adding the number of bugs results in 33, 2 of the bugs affected multiple browsers
**The root cause of one of the bugs found in Mozilla Firefox was in the Skia graphics library and not in

У багов огнелиса две звездочки, у общего кол-ва — одна (почему тут наоборот — хз)
Перевод через транслейт.ру для желающих:
Перевод
*Добавляя количество результатов ошибок в 33, 2 из ошибок затронули многократные браузеры
** Первопричина одной из ошибок, найденных в Mozilla Firefox, была в библиотеке графики Skia а не в
Большое спасибо, как-то не обратил внимание. Добавил описание.
браузерах

Броузер

Пора определиться уже.
UFO just landed and posted this here
Не совсем понятна критичность багов и их возможная эксплуатация хакерами. Увы, кол-во багов без понимания их реальной угрозы мало что говорит.
фаззинг такого масштаба в облаке Google Compute Engine стоил бы около $1000.

зачем об этом вообще упомянули? А он на локальном РС запускал или на серваке? С чем сравнивать-то?
Полагаю, речь идёт о том, что 100+млн тестов можно сделать довольно быстро, если юзать клауд и финансовые затраты весьма скромны по меркам корпорации-разработчика браузера.
Именно. Автор говорит, что сам-то он юзал клауд бесплатно, но по такой цене это может сделать каждый.

Что-то среди идентификаторов багов я вижу только один повтор (1011). Количество чисел в последней колонке соответствует числу в предпоследней. Но в сумме все равно почему-то на один баг меньше. Потом, я как-то не очень понимаю — что значит один и тот же баг, движки-то разные? Если вы залатаете в одном, в другом же сам собой не починится. И еще, почему нельзя сразу дать ссылки на баги вместо каких-то непонятных идентификаторов?

Как сказано в статье, один из багов Firefox это на самом деле баг в гугловской библиотеке skia, которая используется и в Chrome. Возможно, он является повторением одного из багов Хрома.

Я специально отметил в комментарии, что в списках багах есть только один повтор, и он для майкрософтских браузеров. Это еще можно понять, вряд ли они новый движок с нуля писали. Если просуммировать количества, то получим 33 бага, но нам говорят, что 2 бага — это повторы, значит всего 31. Но если посмотреть на идентификаторы багов — то там уникальных 32 значения. Поэтому непонятно, как их все-таки суммировали.

Простите, я один не понимаю, как это — "фаззинг заключался в генерации случайного кода и подаче его браузеру в надежде, что тот обрушится"?

О, там очень интересная тема. Вначале программа компилируется со специальными настройками в компиляторе (сегодня вроде только clang поддерживается) чтобы можно было детально отслеживать ход его выполнения и возникающие при этом проблемы. Затем фаззер начинает пытаться генерировать входные последовательности которые проведут его по всем ветвям исполняемого кода. Он подает на вход случайную последовательность и следит за тем какие фрагменты исполняемого кода выполнились. Поначалу это скорее всего будет ветка «вы подали на вход неправильную последовательности данных». Затем фаззер берет какое-нибудь из начальных ветвлений где одна из возможных ветвей кода не выполнилась и начинает целенаправленно модифицировать входную последовательность в поиске последовательности обработка которой пойдет по этой ранее не выполнявшейся ветви кода. А как только найден фрагмент входных данных «анлочащий» новую ветку фаззер начинает использовать его чтобы пройти по этой ветке дальше. И так до бесконечности, пытаясь пройти через весь доступный код. В подходящих условиях фаззер даже ничего не зная о программе способен на удивление быстро «нащупать» подобным образом основную структуру входных данных которую ожидает программа. А как показывает вышеприведенный опыт, в процессе подобного перебора находятся некоторое количество ветвлений после прохождения которых софт радостно крэшится.
Мне очень нравятся такие статьи, в которых написано «всё плохо», но конкретных версий нет.
Sign up to leave a comment.

Articles