Спеціалісти з кібербезпеки виявили критичну проблему в системі захисту операційної системи Apple macOS. Дослідники продемонстрували, що додатки, завантажені з джерел, відмінних від офіційного App Store, можуть бути непомітно замінені шкідливими копіями. Це ставить під сумнів ефективність технології Gatekeeper, призначеної для захисту користувачів від непідтвердженого програмного забезпечення.
Як працює захист і де він дає збій
Згідно з офіційною документацією Apple, механізм Gatekeeper виконує перевірку будь-якого програмного забезпечення, плагіна або інсталятора, отриманого не через магазин додатків. Система має переконатися, що ПЗ випущено підтвердженим розробником, сертифіковане компанією Apple як безпечне і не було змінено після підписання. Однак на практиці дослідники знайшли спосіб обійти ці перевірки.
Зловмисник може непомітно замінити основний виконуваний файл будь-якого додатка, завантаженого з інтернету. Для реалізації цієї атаки не потрібні підвищені привілеї або права адміністратора — достатньо засобів виконання коду на рівні звичайного користувача. Це може бути шкідливий додаток або скрипт, вже запущений на пристрої.
Механіка атаки та вразливі програми
Суть вразливості полягає в тому, що Gatekeeper недостатньо ретельно контролює доступ до файлів після їхнього першого завантаження. Метод атаки не застосовний до додатків з Mac App Store, оскільки вони виконуються з правами root, і процес з правами користувача не може їх перезаписати. У зоні ризику залишаються програми, встановлені з сторонніх джерел.
До потенційно вразливих додатків належать популярні інструменти, такі як:
- браузер Brave;
- месенджери Slack та Signal;
- редактор коду Visual Studio Code.
Для успішної атаки необхідно, щоб додаток було завантажено зі стороннього джерела та запущено хоча б один раз.
Обхід перевірок безпеки
Gatekeeper проводить початкову перевірку додатка, щоб запобігти його подальшій зміні. Однак дослідники показали, що завантажений додаток можна помістити в архів формату TAR, видалити оригінал і замінити його шкідливою версією. Після цього macOS не вимагатиме повторної авторизації, оскільки пакет буде вважатися локально створеним і не підлягаючим перевірці.
Реалізувати таку атаку можна кількома способами: через засоби командного рядка, через шкідливий запит до агента штучного інтелекту або через атаку на ланцюжок постачання з використанням менеджерів пакетів npm, brew та інших.
Реакція Apple та висновки експертів
Технологія Gatekeeper має перевіряти додатки при зміні їхнього цифрового підпису, але на практиці цього не відбувається. Apple поки що не пояснила, чому система пропускає такі зміни. Дослідники припускають, що проблема криється в кешуванні значення довіри: якщо перевірка була ініційована, то «злий двійник» легітимного додатка успішно проходить верифікацію, спираючись на збережені дані.