Добро пожаловать обратно, мои начинающие кибервоины!
В последние дни в экосистеме Android была обнаружена новая серьёзная уязвимость, которая ставит под угрозу все устройства Android, и даже устройства Apple iOS. Она позволяет злоумышленнику отправлять изображения через SMS и получать контроль над устройством без взаимодействия с пользователем! Эта уязвимость была впервые обнаружена Citizen Lab, исследовательской лабораторией при Университете Торонто, известной своим отслеживанием вредоносного ПО Pegasus. Уязвимость впервые была зарегистрирована как CVE-2023-41064, но с тех пор мы узнали, что она повсеместно распространена в экосистеме Android, Google Chrome и многих других системах на базе Linux/Unix. Кроме того, уязвимы Telegram, браузер ToR, Brave, Gimp, LibreOffice и многие другие приложения. Это, возможно, одна из самых серьёзных уязвимостей нашего времени!
Уязвимость связана с библиотекой (с повторно используемым кодом), разработанной Google более десяти лет назад для обработки изображений, известной как libwebp. Библиотека libwebp была разработана как более эффективный метод обработки изображений, чем, например, JPEG или другие алгоритмы обработки изображений. Поэтому она используется повсеместно на мобильных устройствах и во многих браузерах.
Опасность этой уязвимости заключается в том, что она позволяет злоумышленнику удаленно установить код на устройство и получить управление БЕЗ взаимодействия со стороны пользователя.
Давайте подробнее рассмотрим libwebp и эту уязвимость.
Что такое libwebp?
libwebp — это библиотека, используемая разработчиками для сжатия графических файлов для более простой и эффективной передачи через Интернет. Практически все знакомые вам графические файлы, такие как JPEG, TIFF, PNG и т. д., представляют собой сжатые форматы. Без этих алгоритмов сжатия интернет работал бы гораздо медленнее. Мы также используем сжатие в аудио- и видеофайлах, таких как MP3 и MP4.
Библиотека libwebp, разработанная Google, широко используется в телефонах, мобильных устройствах и браузерах. Её эффективность сжатия значительно выше, чем у других распространённых алгоритмов сжатия, таких как JPEG (до 30–40%).
Что такое сжатие без потерь и с потерями
Сжатие без потерь — это сжатие данных, при котором исходные данные могут быть идеально восстановлены из сжатых данных. Другими словами, при сжатии файла без потерь и его последующей распаковке информация не теряется, а выходной файл идентичен исходному. Форматы PNG, FLAC, GIF и ZIP — это алгоритмы сжатия без потерь. Сжатие без потерь используется в Интернете, где важны скорость и эффективность, но также необходима целостность данных.
Сжатие графических файлов с потерями — это метод сжатия данных, при котором часть данных файла безвозвратно теряется в процессе сжатия. В контексте графических файлов это означает, что часть информации об изображении теряется при сжатии файла и не может быть полностью восстановлена после распаковки. Основная цель — значительно уменьшить размер файла для экономии места на диске и сокращения времени загрузки, часто за счёт некоторого ухудшения качества изображения. Многие графические, аудио- и видеофайлы сжимаются с потерями, поскольку наши глаза и уши не настолько чувствительны, чтобы улавливать изменения отдельных пикселей или нот.
Как работает эксплойт
Этот эксплойт создаёт переполнение буфера в декодере изображений, позволяя злоумышленнику установить собственный удалённый код и управлять устройством. libwebp использует таблицы Хаффмана (разработанные Дэвидом А. Хаффманом в 1952 году, популярный метод сжатия данных без потерь. Основной принцип кодирования Хаффмана заключается в использовании более коротких двоичных кодов для более частых элементов данных и более длинных кодов для менее частых элементов) для сжатия и распаковки. Сжатые файлы изображений содержат информацию о форме таблиц Хаффмана, которые создаются декодером. Эти таблицы Хаффмана создаются в куче (куча — это область памяти, в которой хранятся данные приложения). Специально созданный файл WebP может создать дерево Хаффмана, которое переполняет кучу и позволяет выполнить код злоумышленника.
Краткое содержание
Уязвимость libwebp затрагивает практически все мобильные устройства, будь то Android или iOS. Она также затрагивает наиболее распространённые браузеры и многие приложения, позволяющие работать с графикой. Уязвимость libwebp, возможно, является самой серьёзной уязвимостью мобильных устройств нашего времени!
В последние дни в экосистеме Android была обнаружена новая серьёзная уязвимость, которая ставит под угрозу все устройства Android, и даже устройства Apple iOS. Она позволяет злоумышленнику отправлять изображения через SMS и получать контроль над устройством без взаимодействия с пользователем! Эта уязвимость была впервые обнаружена Citizen Lab, исследовательской лабораторией при Университете Торонто, известной своим отслеживанием вредоносного ПО Pegasus. Уязвимость впервые была зарегистрирована как CVE-2023-41064, но с тех пор мы узнали, что она повсеместно распространена в экосистеме Android, Google Chrome и многих других системах на базе Linux/Unix. Кроме того, уязвимы Telegram, браузер ToR, Brave, Gimp, LibreOffice и многие другие приложения. Это, возможно, одна из самых серьёзных уязвимостей нашего времени!
Уязвимость связана с библиотекой (с повторно используемым кодом), разработанной Google более десяти лет назад для обработки изображений, известной как libwebp. Библиотека libwebp была разработана как более эффективный метод обработки изображений, чем, например, JPEG или другие алгоритмы обработки изображений. Поэтому она используется повсеместно на мобильных устройствах и во многих браузерах.
Опасность этой уязвимости заключается в том, что она позволяет злоумышленнику удаленно установить код на устройство и получить управление БЕЗ взаимодействия со стороны пользователя.
Давайте подробнее рассмотрим libwebp и эту уязвимость.
Что такое libwebp?
libwebp — это библиотека, используемая разработчиками для сжатия графических файлов для более простой и эффективной передачи через Интернет. Практически все знакомые вам графические файлы, такие как JPEG, TIFF, PNG и т. д., представляют собой сжатые форматы. Без этих алгоритмов сжатия интернет работал бы гораздо медленнее. Мы также используем сжатие в аудио- и видеофайлах, таких как MP3 и MP4.
Библиотека libwebp, разработанная Google, широко используется в телефонах, мобильных устройствах и браузерах. Её эффективность сжатия значительно выше, чем у других распространённых алгоритмов сжатия, таких как JPEG (до 30–40%).
Что такое сжатие без потерь и с потерями
Сжатие без потерь — это сжатие данных, при котором исходные данные могут быть идеально восстановлены из сжатых данных. Другими словами, при сжатии файла без потерь и его последующей распаковке информация не теряется, а выходной файл идентичен исходному. Форматы PNG, FLAC, GIF и ZIP — это алгоритмы сжатия без потерь. Сжатие без потерь используется в Интернете, где важны скорость и эффективность, но также необходима целостность данных.
Сжатие графических файлов с потерями — это метод сжатия данных, при котором часть данных файла безвозвратно теряется в процессе сжатия. В контексте графических файлов это означает, что часть информации об изображении теряется при сжатии файла и не может быть полностью восстановлена после распаковки. Основная цель — значительно уменьшить размер файла для экономии места на диске и сокращения времени загрузки, часто за счёт некоторого ухудшения качества изображения. Многие графические, аудио- и видеофайлы сжимаются с потерями, поскольку наши глаза и уши не настолько чувствительны, чтобы улавливать изменения отдельных пикселей или нот.
Как работает эксплойт
Этот эксплойт создаёт переполнение буфера в декодере изображений, позволяя злоумышленнику установить собственный удалённый код и управлять устройством. libwebp использует таблицы Хаффмана (разработанные Дэвидом А. Хаффманом в 1952 году, популярный метод сжатия данных без потерь. Основной принцип кодирования Хаффмана заключается в использовании более коротких двоичных кодов для более частых элементов данных и более длинных кодов для менее частых элементов) для сжатия и распаковки. Сжатые файлы изображений содержат информацию о форме таблиц Хаффмана, которые создаются декодером. Эти таблицы Хаффмана создаются в куче (куча — это область памяти, в которой хранятся данные приложения). Специально созданный файл WebP может создать дерево Хаффмана, которое переполняет кучу и позволяет выполнить код злоумышленника.
Краткое содержание
Уязвимость libwebp затрагивает практически все мобильные устройства, будь то Android или iOS. Она также затрагивает наиболее распространённые браузеры и многие приложения, позволяющие работать с графикой. Уязвимость libwebp, возможно, является самой серьёзной уязвимостью мобильных устройств нашего времени!