
# Обучающая презентация, анализирующая CVE-2021-21193, уязвимость типа use-after-free в движке Blink браузера Google Chrome, включая детали эксплуатации и рекомендации по смягчению последствий.
Введение в хакинг
Презентации тематических исследований уязвимостей
Март 2022
Мехрзад Ходашенас, Сетарех Шейхолесламзадех
Запись в словаре CVE:
CVE-2021-21193
Дата публикации NVD:
16.03.2021
Дата последнего изменения NVD:
12.03.2021
Источник:
Chrome
| атрибут | значение |
|---|
| Серьёзность | 7 |
| CVSS | (AV:N/AC:M/Au:N/C:P/I:P/A:P) |
| Опубликовано | 05.03.2021 |
| Создано | 06.03.2021 |
| Добавлено | 05.03.2021 |
| Изменено | 09.04.2021 |
Использование после освобождения (use after free) в Blink в Google Chrome до версии 89.0.4389.90 позволяло удалённому злоумышленнику потенциально эксплуатировать повреждение кучи с помощью специально созданной HTML-страницы.
enter image description here
CVE, сокращение от Common Vulnerabilities and Exposures (Общие уязвимости и воздействия), — это список публично раскрытых недостатков компьютерной безопасности. Когда кто-то ссылается на CVE, он имеет в виду недостаток безопасности, которому был присвоен идентификационный номер CVE. Уведомления о безопасности, выпускаемые поставщиками и исследователями, почти всегда упоминают хотя бы один идентификатор CVE. CVE помогают ИТ-специалистам координировать свои усилия по определению приоритетов и устранению этих уязвимостей, чтобы сделать компьютерные системы более безопасными. источник

Команда Chrome опубликовала объявление в марте 2021 года о том, что если вы используете Google Chrome на любом из своих устройств, вам необходимо немедленно обновить его. Обновления Google Chrome выходят часто, но последний патч, стабильная сборка 89.0.4389.90, исправляет несколько уязвимостей, три из которых имеют высокий уровень серьёзности, а одна уже была использована киберпреступниками и хакерами. источник Это была одна из уязвимостей с высоким уровнем серьёзности, получившая название CVE-2021-21193. Это уязвимость в браузерном движке Google Chrome Blink — основном компоненте, отвечающем за преобразование HTML-кода в хорошо оформленные веб-страницы, которые вы привыкли просматривать. Эта проблема затрагивает определённые неидентифицированные процессы в компоненте Blink, а манипуляции с неизвестными входными данными приводят к уязвимости повреждения памяти. Эта уязвимость, которая уже была использована злоумышленниками, означает, что всем пользователям необходимо обновиться до версии 89.0.4389.90. Это уязвимость типа use-after-free, что означает, что у Blink возникали проблемы с очисткой памяти. источник
Слабость была раскрыта 05.03.2021. Для успешной эксплуатации не требуется никакой формы аутентификации, но она требует, чтобы жертва совершила какое-либо взаимодействие с пользователем. Также существует ориентировочная цена эксплойта, которая составляет около 5–25 тысяч долларов США по состоянию на 28.03.2021. https://vuldb.com/?id.170687
Хотя это может показаться тривиальным и обыденным, наиболее распространёнными последствиями уязвимости use-after-free являются повреждение данных и произвольное выполнение кода, что, согласно описанию самой уязвимости CVE-2021-21193 в Национальной базе данных уязвимостей, может позволить «удалённому злоумышленнику потенциально эксплуатировать повреждение кучи с помощью специально созданной HTML-страницы». источник
Use-After-Free (UAF) — это уязвимость, связанная с некорректным использованием динамической памяти во время работы программы. Если после освобождения участка памяти программа не очищает указатель на эту память, злоумышленник может использовать эту ошибку для взлома программы.
Уязвимости UAF возникают из-за механизма динамического выделения памяти. В отличие от стека, динамическая память (также известная как куча) предназначена для хранения больших объёмов данных. Программисты могут выделять в ней блоки произвольного размера, которые затем могут быть изменены или освобождены задачами внутри программы и возвращены в кучу для последующего использования другими задачами той же программы.
Программы должны постоянно проверять, какие области кучи свободны, а какие заняты, поскольку динамическая память часто перераспределяется. Заголовки помогают в этом, ссылаясь на выделенные области памяти. Начальный адрес соответствующего блока содержится в каждом заголовке. Ошибки UAF возникают, когда программы неправильно управляют этими заголовками.
Указатели в программе ссылаются на наборы данных в динамической памяти. Если набор данных удаляется или перемещается в другой блок, но указатель, вместо того чтобы быть очищенным (установленным в null), продолжает ссылаться на теперь уже освобождённую память, результатом является висячий указатель. Если затем программа выделяет этот же участок памяти другому объекту (например, данным, введённым злоумышленником), висячий указатель теперь будет ссылаться на этот новый набор данных. Другими словами, уязвимости UAF позволяют подменять код.
Злоумышленник может использовать UAF для передачи программе произвольного кода или ссылки на него и перехода к началу кода с помощью висячего указателя. Таким образом, киберпреступник может получить контроль над системой жертвы, выполняя вредоносный код. источник
Анонимный исследователь безопасности сообщил о CVE-2021-211193 9 марта, и Google в спешке выпустил исправление всего за три дня. Такая спешка может быть связана с реальной эксплуатацией уязвимости; преступники уже использовали эту уязвимость, и этого достаточно, чтобы каждый как можно скорее обновил Google Chrome. источник
Google обычно не публикует информацию об уязвимостях до тех пор, пока они не будут исправлены, а уязвимость CVE-2021-21193 была исправлена не позднее чем через три дня после того, как о ней сообщил анонимный исследователь безопасности, что, скорее всего, означает, что уязвимость уже была использована в реальных условиях. Хорошее практическое правило: если такая гигантская технологическая компания, как Google, серьёзно относится к проблеме безопасности, то и остальным следует делать то же самое.
Но здесь есть ещё один важный вывод: эти технологические гиганты и их продукты не идеальны; как и все мы, они тоже участвуют в постоянной гонке за обеспечение безопасности систем и инструментов для конечных пользователей, таких как вы. Крайне важно поддерживать ваше программное обеспечение обновлённым с помощью последних обновлений от разработчиков, поскольку именно последние обновления созданы для минимизации угрозы быстро развивающихся и совершенствующихся киберугроз. источник