Блог з безпеки FireAI

Автор FireAI Security & Research Team · Опубліковано

Вразливості нульового дня на macOS: чому невідомі загрози все одно мусять вийти на зв’язок

Вразливості нульового дня на macOS: чому невідомі загрози все одно мусять вийти на зв’язок

Вразливість нульового дня — це дефект безпеки, який експлуатують ще до того, як у виробника з’явилося виправлення; назва походить від того, що в захисників було нуль днів на реакцію. Це найтривожніша категорія загроз, бо звична порада «оновлюйте програми» тут поки що не працює: оновлюватися нема на що. У цій статті ми розглядаємо, як такі вразливості насправді виглядали на платформах Apple — спираючись на власні повідомлення Apple про безпеку, Google Project Zero і Citizen Lab, — а потім на те єдине, що невідомий експлойт усе одно мусить зробити після успіху.

Одне треба сказати одразу, бо маркетинг навколо цієї теми часто вводить в оману: жоден фаєрвол не зупиняє експлойт. Ні FireAI, ні будь-який інший. Фаєрвол не бачить викривленого зображення, яке розбирає iMessage, або помилки ядра, яку активують з вебсторінки. Що фаєрвол може — це спостерігати за тим, що відбувається далі, і виявляється, що це важливіше, ніж здається на перший погляд.

Що насправді показує історія

Apple документує кожне виправлення безпеки на сторінці Apple security releases, і коли вразливість уже використовували проти реальних людей, вона каже про це стандартною фразою: «Apple відомо про повідомлення, що ця проблема, можливо, активно експлуатувалася». Якщо читати цю сторінку кілька років поспіль, картина виходить більш приземленою, ніж будь-який заголовок. Google Project Zero веде доповнювальний публічний реєстр — свій трекер 0-day «In the Wild», який перелічує експлойти, виявлені в реальних атаках до появи патча. Project Zero обережно зауважує, що трекер містить лише виявлені випадки, тобто за визначенням невдачі атакувальників, тож за ним не можна порахувати, скільки експлуатації відбувається насправді, чи порівняти платформи.

Три задокументовані випадки показують форму проблеми.

FORCEDENTRY, 2021

У березні 2021 року Citizen Lab при Університеті Торонто проаналізувала телефон саудівського активіста й відновила експлойт, який назвала FORCEDENTRY. Це була атака без жодного кліку: спеціально сформований файл, доставлений через iMessage, який не вимагав від жертви жодного дотику й установлював шпигунське ПЗ Pegasus від NSO Group. Citizen Lab знайшла свідчення, що його використовували щонайменше з лютого 2021 року. Apple виправила вразливість, CVE-2021-30860 у парсері зображень CoreGraphics, 13 вересня 2021 року в iOS 14.8, macOS Big Sur 11.6 і оновленні безпеки для Catalina; її власні нотатки до випуску Big Sur 11.6 підтверджують, що вразливість «могла активно експлуатуватися».

Пізніше Google Project Zero опублікувала технічний аналіз, який пояснює, чому такі речі так важко спіймати. Помилка була в коді стиснення зображень JBIG2, який використовується всередині PDF. Експлойт NSO скористався логічними операторами самого формату, щоб із понад 70 000 команд сегментів зображення побудувати невеликий працездатний комп’ютер усередині декодера зображень і виконати на ньому решту атаки. Ззовні ніщо з цього не схоже на програму. Це зображення, відкрите легітимним, підписаним системним процесом.

Гонконзький watering hole, 2021

Наприкінці серпня 2021 року Threat Analysis Group від Google виявила кампанію типу watering hole, націлену на відвідувачів сайтів гонконзького медіа й продемократичної групи. Проти Mac вона поєднувала вразливість WebKit, уже виправлену в січні, з помилкою підвищення привілеїв у ядрі, CVE-2021-30869, яка на macOS Catalina ще залишалася невиправленою; Apple усунула її 23 вересня 2021 року. Корисне навантаження — бекдор, який Google назвала MACMA, — могло знімати відбиток машини, захоплювати екран, записувати звук, реєструвати натискання клавіш, вивантажувати й завантажувати файли та виконувати команди термінала.

Цей приклад повчальний, бо експлойт і корисне навантаження — це різні речі. Експлойт був невидимий: вебсторінка. Корисне навантаження було звичайною імплантованою програмою, яка, щоб бути хоч чимось корисною своїм операторам, мусила встановити канал командування й керування та вивести дані з Mac. Звіт Google описує саме цю інфраструктуру.

BLASTPASS, 2023

У вересні 2023 року Citizen Lab повідомила про BLASTPASS — ще один ланцюжок через iMessage без жодного кліку, що доставляв Pegasus, цього разу через вкладення PassKit зі зловмисними зображеннями. Apple присвоїла CVE-2023-41064 і CVE-2023-41061 та випустила виправлення для iPhone, iPad, Mac і Apple Watch. Примітно, що і інженери безпеки Apple, і Citizen Lab заявили, що, на їхню думку, режим блокування (Lockdown Mode) зупинив саме цей ланцюжок, — це найсильніше публічне свідчення того, що проти цього класу загроз працює зменшення поверхні атаки, а не виявлення атаки.

Чому виявити сам експлойт так важко

Поставте три випадки поряд, і закономірність стає очевидною. Експлойт приходить як дані (зображення, PDF, вебсторінка), а не як застосунок. Його обробляє легітимний код, підписаний Apple. Немає файлу, з яким міг би збігтися XProtect, немає непідписаного бінарного файлу, який відхилив би Gatekeeper, і часто немає нового процесу, який позначив би інструмент endpoint security, бо ворожий код виконується всередині процесу, якому вже довіряли. Виявлення, коли воно відбувається, зазвичай криміналістичне: Citizen Lab знайшла FORCEDENTRY, досліджуючи артефакти на пристрої постфактум, а не завдяки сканеру, який спіймав його наживо.

Саме тому порада Apple людям, які вважають, що можуть бути ціллю, — не «встановіть детектор», а режим блокування, який на macOS Ventura і новіших блокує більшість типів вкладень у повідомленнях, вимикає складні вебтехнології, відхиляє невідомих абонентів FaceTime і не дає встановлювати профілі конфігурації. Він працює, прибираючи шляхи в коді, потрібні експлойту, — ціною зручності, про яку Apple говорить прямо.

Чому мережевий крок — інший

Експлойт — це початок атаки, а не її мета. Pegasus існує, щоб надсилати повідомлення, фотографії та звук із мікрофона своєму оператору. Знімки екрана й натискання клавіш від MACMA нічого не варті на диску жертви. У кожному задокументованому випадку цінність реалізовувалася трафіком, що залишав машину, і в матриці MITRE ATT&CK для macOS ця фаза має два власні стовпці — командування й керування та ексфільтрація, — бо це окремий спостережуваний крок, який атакувальники не можуть пропустити.

У цього кроку є властивості, яких не мав експлойт. Він походить від ідентифікованого процесу з підписом коду (або, що показово, без нього). Він іде до призначення з IP, іменем хоста та історією. Він часто використовує незвичний порт, сиру IP-адресу замість імені або хостинг-провайдера, що не має жодного стосунку до будь-якого застосунку на Mac. Ніщо з цього не вимагає знати, яку вразливість було використано. Потрібно лише бачити з’єднання і мати право сказати «ні».

Саме для цього й створено FireAI. Його правила для кожного застосунку прив’язані до підпису коду процесу, що встановлює з’єднання, тож імплантований бінарний файл, який не є схваленим вами застосунком, отримує запит на дозвіл, а не вільний прохід, — із поясненням локальної моделі простою мовою. Його стрічки розвідки загроз (abuse.ch, Spamhaus, FireHOL, OpenPhish, Phishing Army і актуальний список вихідних вузлів Tor) застосовуються локально, тож відома адреса командування й керування відхиляється незалежно від того, чи розпізнало щось інше на Mac корисне навантаження. Режими «Under attack» і «Paranoid» посилюють типові налаштування до прямого блокування непідписаних застосунків і невідомих призначень, а аварійний вимикач (kill switch) відрізає інтернет, зберігаючи локальну мережу, — це правильний перший крок, коли ви підозрюєте компрометацію і хочете зберегти докази.

Чого це не покриває

Чесність вимагає другої половини списку. Якщо корисне навантаження працює цілком усередині дозволеного застосунку, наприклад у браузері, який ви вже дозволили, його трафік успадковує дозволи цього застосунку, і FireAI його не відрізнить. Зашифрований трафік до призначення з чистою репутацією виглядає як будь-яке інше з’єднання. Стрічка містить лише адреси, про які хтось уже повідомив; свіжого сервера командування й керування в ній ще немає. І FireAI не виявляє, не видаляє й не аналізує експлойт чи імплант: він не сканує файли чи пам’ять і не є антивірусом. На Mac, який, як ви вважаєте, скомпрометував актор державного рівня, правильний шлях — інструкції Apple щодо сповіщень про загрози та фахівець із криміналістики, а не налаштування фаєрвола.

Тому практичний захист від невідомих вразливостей багаторівневий і без гламуру: встановлюйте оновлення Apple того ж дня, коли вони виходять, бо більшість експлуатації націлена на вразливості, для яких виправлення вже є; увімкніть режим блокування, якщо ваша робота робить вас правдоподібною ціллю; тримайте поверхню атаки малою; і контролюйте, яким застосункам на вашому Mac узагалі дозволено говорити з інтернетом, — щоб, коли щось невідоме таки проникне, крок, який воно не може пропустити, був тим кроком, за яким ви стежите.

Яке місце тут посідають FireAI та HisnLabs

FireAI cannot stop an exploit and does not claim to; what it does is sit on the one step every documented case above could not skip, the connection out, and ask, for each unknown process, whether that connection should be allowed at all.

FireAI — це власний продукт HisnLabs: ШІ-фаєрвол, який працює безпосередньо на вашому Mac. Він показує простою мовою кожне з’єднання, яке встановлюють ваші застосунки, і дає вам вирішувати, що покидає ваш Mac, — його ШІ працює локально, тож ваш трафік ніколи не надсилається ні нам, ні будь-кому іншому. Команда дослідників безпеки HisnLabs — саме вона підтримує точність цих рішень: каталогізує, які домени є звичайною телеметрією, а які — справжнім сервісом, відстежує країну та мережу за з’єднанням і навчає локальну модель (функцію Autopilot) на реальних шаблонах трафіку — і нічого з цього не покидає ваш Mac.

Ви можете почитати про технічні рішення, що лежать в його основі, або спробувати FireAI протягом 17 днів на сторінці FireAI від HisnLabs.

Джерела