Как работает шпионское ПО Pegasus: анализ изощрённой атаки через iMessage от экспертов Google

Летом 2021 года мировые новостные агентства облетела тревожная информация о шпионской программе Pegasus, которая в течение нескольких лет вела скрытую слежку за владельцами устройств на iOS и Android. Среди потенциальных жертв этого вредоносного ПО фигурировали видные общественные деятели: бизнесмены, правозащитники, политические лидеры и представители СМИ. Разработчиком этого инструмента слежки считается израильская компания NSO Group.

Анализ эксплойта ForcedEntry

Исследователи кибербезопасности из команды Google Project Zero смогли получить и детально изучить эксплойт под кодовым названием ForcedEntry («Принудительный вход»). После тщательного анализа они пришли к выводу, что это один из самых технически сложных и изобретательных методов взлома, когда-либо встречавшихся в истории.

Главная опасность этой атаки заключается в её полной скрытности — для успешного внедрения вируса не требуется никаких действий со стороны пользователя. Хотя метод изначально был нацелен на взлом iPhone, эксперты подчёркивают, что NSO Group также предлагает аналогичные решения для устройств под управлением Android.

Механизм атаки через iMessage

Всё начинается с обычного, на первый взгляд, сообщения в мессенджере iMessage. Злоумышленнику достаточно знать номер телефона или Apple ID жертвы. Для автоматического и циклического воспроизведения анимированных изображений (GIF) в iOS существует специальный конвейер обработки.

Ключевая уязвимость заключалась в том, что обработка файла происходила не в изолированной среде BlastDoor (которая как раз предназначена для безопасного приёма входящих данных), а в процессе IMTranscoderAgent.

Обратите внимание: Бывший босс Google: «Через десять лет в мире будет два интернета».

Парсер CoreGraphics преобразовывал исходный файл, а системная библиотека ImageIO проверяла лишь его текстовое расширение (например, .gif), но не анализировала реальный внутренний формат данных.

Этим и воспользовались хакеры: они отправляли поддельный файл с расширением .gif, который на самом деле являлся PDF-документом, способным исполнять код на JavaScript. Несмотря на то, что в системе существовали защитные механизмы против выполнения произвольного кода, специалистам NSO Group удалось найти способ их обойти.

Использование устаревшего формата JBIG2

Для обхода защиты злоумышленники внедрили в PDF-файл изображения в формате JBIG2 — это старый стандарт сжатия чёрно-белых изображений, разработанный ещё в 90-х годах для принтеров и сканеров. Алгоритм его работы основан на поиске и группировке повторяющихся областей (например, одинаковых букв в тексте), что позволяет значительно сократить размер файла.

Принцип сжатия JBIG2

Однако у этого метода нашлась серьёзная слабость: алгоритм мог ошибочно принять разные, но визуально похожие символы за одинаковые, что приводило к искажению данных при распаковке. Для решения этой проблемы в формат добавили режим сжатия без потерь, который хранит разницу между символами и использует для восстановления исходного изображения логические операции (AND, OR, XOR, XNOR).

Проблема для Apple заключалась в том, что реализация декодера JBIG2 в системе CoreGraphics была позаимствована из открытых источников, а не написана с нуля. Этот декодер оперирует 19 типами сегментов — прямоугольными массивами пикселей.

Достижение контроля над системой

Манипулируя контекстно-зависимой частью декомпрессора, авторы эксплойта смогли вызвать переполнение в некоторых сегментах, перезаписать критические указатели в памяти, получить доступ к логическим операциям и выйти за пределы выделенного буфера.

Схема памяти

Эксплойт ForcedEntry содержал колоссальные 70 тысяч сегментных команд, что по своей сложности напоминало создание виртуального процессора с собственной системой регистров, сумматором и компаратором. Хотя выполнение операций в такой схеме происходит медленнее, чем при использовании JavaScript, конечный результат был достигнут — злоумышленники получали полный контроль над взломанным устройством.

Реакция Apple и последствия

Компания Apple отреагировала на угрозу: в сентябрьском обновлении iOS 14.8 были исправлены уязвимости в парсере CoreGraphics, а в iOS 15 обработка GIF-изображений была окончательно перенесена в изолированную среду BlastDoor, что исключило возможность повторения подобной атаки.

В ноябре 2021 года Apple подала официальный иск против NSO Group, публично назвав причастных к созданию Pegasus «злоумышленниками, спонсируемыми государством», и начала уведомлять пользователей, которые могли стать потенциальными жертвами слежки.

#Наука #технологии #человек

#Знания #наука и образование #технологии будущего

#Мир #телефон

Еще по теме здесь: Новости науки и техники.

Источник: Специалисты Google объяснили принцип работы шпионского по Pegasus.