NSO Group створила експлойт для злому iOS-пристроїв, що не потребує взаємодії з жертвою

Учасники проєкту Google Project Zero, які працюють у сфері інформаційної безпеки, спільно з колегами з Apple Security Engineering and Architecture детально вивчили складний експлойт FORCEDENTRY, розроблений ізраїльською компанією NSO Group і призначений для зламування пристроїв на базі iOS. Результати виконаної роботи нещодавно були опубліковані в офіційному блозі проєкту.

У повідомленні наголошується, що згаданий експлойт є одним із найскладніших інструментів з технічного погляду, з якими доводилося працювати дослідникам. Для його використання на пристрої жертви через програму iMessage передається особливим чином налаштований файл з розширенням GIF, який емулює віртуальний процесор на 70 тис. логічних елементах, що використовується для виходу за межі пісочниці. Після цього зловмисники отримують повний контроль за пристроєм жертви, що дозволяє здійснювати віддалене виконання коду та інші дії.

Експлойт використовує вразливість CVE-2021-30860, виправлену 13 вересня, коли Apple випустила iOS 14.8. Зразок шкідливого програмного забезпечення було надано співробітниками Citizen Lab. Однією з особливостей експлойту є те, що для його використання не потрібно взаємодіяти з жертвою, тоді як багато інших інструментів стеження активуються тільки після того, як жертва перейде за шкідливим посиланням. У випадку FORCEDENTRY зловмиснику не потрібно надсилати фішингове повідомлення.

Атака починається з відправки на смартфон жертви файлу з розширення GIF. В iOS для роботи з текстовими та анімованими повідомленнями використовується програма iMessage, яка автоматично зациклює GIF-анімації для зручнішого перегляду. Відразу після отримання анімації iMessage використовує спеціальний API для рендерингу вихідного файлу в новий, який відтворюватиметься в зацикленому режимі при перегляді.

Однак розширення GIF ще не означає, що файл є анімацією. Насправді зловмисник використовує таке розширення передачі PDF-файлу, який iMessage також намагається обробити як звичайний GIF-файл. Це відбувається через те, що бібліотека, що використовується для визначення формату файлів, не звертає уваги на їх розширення. Всередині PDF-файлу знаходяться зображення у форматі JBIG2 (формат стиснення картинок, який у минулому використовувався у принтерах та копіювальних апаратах). У такому форматі стиснення відбувається шляхом поділу зображення на елементи й, якщо знаходяться досить схожі один на одного частини, для їх подальшого відображення використовується один і той же елемент.

Кінець кінцем шкідливе програмне забезпечення використовує ціле численне переповнення для виходу за межі буфера, для чого застосовується віртуальний процесор, побудований на основі базових логічних операцій при накладанні різниці елементів зображень в потоці JBIG2. Понад 70 тис. логічних елементів визначають архітектуру віртуального комп’ютера з такими функціями, як регістри та повний 64-бітний суматор та компаратор, які використовуються для пошуку зсувів пам’яті та виходу за межі пісочниці. Після цього зловмисники отримують повний контроль над пристроєм, що атакується.

Дослідники з Project Zero вчасно повідомили Apple про виявлену проблему. Виправлення вразливості стало частиною iOS 14.8, випущеної у вересні цього року.