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

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

Розширене виявлення загроз на macOS: що насправді роблять ці рівні

Розширене виявлення загроз на macOS: що насправді роблять ці рівні

Кожен продукт, який називає себе «розширеним виявленням загроз» для Mac, побудований на невеликій кількості механізмів, більшість із яких задокументувала сама Apple. Знаючи, на який механізм спирається та чи інша функція, ви розумієте, що вона справді здатна побачити, а до чого сліпа. У цій статті ми проходимо ці рівні один за одним: що таке сигнатура, що перевіряє нотаризація, що фреймворк Endpoint Security від Apple відкриває захисному ПЗ, що на практиці означає поведінковий аналіз і що модель, яка спостерігає за мережевими з’єднаннями, може й не може оцінити.

Якщо коротко: жоден рівень не бачить усього. Файловий сканер ніколи не бачить з’єднання. Мережевий монітор ніколи не бачить файл. Продукти, які чесно визнають цю межу, корисніші за ті, що її розмивають.

Рівень перший: сигнатури (XProtect)

Найстаріша техніка виявлення — сигнатура: шаблон, який збігається з відомим зразком зловмисного ПЗ. На Mac цю роботу виконує XProtect. Посібник Apple з безпеки платформи на сторінці Захист від шкідливих програм описує XProtect як сигнатурний засіб і зазначає, що він спрацьовує у три моменти: під час першого запуску застосунку, коли застосунок було змінено на диску та коли оновлюються сигнатури XProtect.

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

Рівень другий: нотаризація і Gatekeeper

Другий рівень спрацьовує перед тим, як застосунок відкриється вперше. Сторінка Apple про Gatekeeper і захист під час виконання пояснює, що Gatekeeper перевіряє, чи походить завантажений застосунок від ідентифікованого розробника, чи нотаризувала його Apple і чи не був він змінений, і запитує згоду користувача перед відкриттям завантаженого ПЗ. Сама нотаризація — це перевірка, яку Apple виконує над ПЗ, підписаним Developer ID, перед його поширенням; посібник Apple додає, що згодом вона може видати квиток відкликання для ПЗ, визнаного зловмисним, навіть якщо раніше його було схвалено.

Цей рівень — перевірка на вході. Він відповідає на запитання «чи знаємо ми, хто це зібрав, і чи знайшла Apple щось очевидно погане?». Він не стежить за застосунком, коли той уже всередині. Застосунок, який пройшов через двері, а потім поводиться погано, або застосунок, поведінка якого змінюється після оновлення, від цього моменту випадає з поля зору Gatekeeper.

Рівень третій: фреймворк Endpoint Security

Сторонні продукти виявлення на Mac — категорія, яку зазвичай називають EDR (endpoint detection and response) — здебільшого побудовані на одному API Apple: фреймворку Endpoint Security. Apple представила його в macOS 10.15, щоб захисне ПЗ могло отримувати потік системних подій із простору користувача (запуск процесу, відкриття або запис файлу, створення задачі) замість завантаження розширення ядра, від яких Apple поступово відмовляється.

Це рівень, який бачить дерева процесів: який процес породив який, з якими аргументами, до яких файлів торкався. Це також рівень, де зазвичай живе «поведінковий аналіз». Поведінкове виявлення означає порівняння того, що робить процес, із відомими техніками атакувальників, а не з відомим файлом. Публічний довідник цих технік — матриця MITRE ATT&CK для macOS, яка каталогізує тактики від початкового доступу та закріплення до командування й керування та ексфільтрації, і кожну з них розбито на конкретні спостережувані техніки.

У поведінкового аналізу є реальна ціна: застосунок, який легітимно створює launch agents, читає keychain або запускає команди оболонки, з погляду самого лише потоку подій дуже схожий на той, що робить це зі зловмисною метою. Кожен постачальник EDR налаштовує цей компроміс по-своєму, і жоден не публікує достатньо деталей, щоб сторонній міг їх порівняти. З упевненістю можна сказати одне: для роботи цього рівня потрібен або платний продукт, або чимало експертизи. Для приватних користувачів некомерційна Objective-See Foundation публікує безкоштовні інструменти з відкритим кодом, побудовані на тих самих фреймворках Apple, наприклад TaskExplorer для перегляду запущених процесів і KnockKnock для переліку всього, що налаштовано на автоматичний запуск.

Рівень четвертий: пам’ять і вміст файлів

Ще нижче за рівень Endpoint Security лежать два види аналізу: глибока перевірка вмісту файлу (статичний аналіз — те, що робить антивірусний сканер) і перевірка пам’яті запущеного процесу. Це єдині способи дізнатися, що програма насправді містить, і це сфера антивірусних та криміналістичних інструментів. Варто сказати прямо, бо маркетингові тексти часто натякають на інше: фаєрвол, зокрема FireAI, нічого з цього не робить. FireAI не сканує файли, не читає пам’ять процесів і не є антивірусом.

Рівень п’ятий: мережа

Останній рівень — той, до якого не дотягуються інші. Майже все, що атакувальник хоче зробити після того, як його код опинився на Mac, потребує мережі: завантажити другу стадію, доповісти серверу керування, вивести викрадені дані. У матриці ATT&CK ці кроки мають власні стовпці — командування й керування та ексфільтрація — саме тому, що це окрема спостережувана фаза.

Мережевий рівень бачить інший набір фактів, ніж рівні вище. Для кожного нового вихідного з’єднання він знає, який підписаний бінарний файл його відкрив, хост, IP і порт призначення, протокол, чи зашифроване з’єднання, а також час. Цього достатньо, щоб перевіряльник — людина чи модель — зробив кілька корисних висновків:

  • Репутація призначення: чи є хост або IP у публічному списку блокування, як-от abuse.ch, Spamhaus, Phishing Army чи OpenPhish, і чи не є він вихідним вузлом Tor? Стрічки розвідки загроз — це пошук у списку, а не здогадка, і їх можна застосовувати локально, нікуди не надсилаючи трафік.
  • Уперше побачений бінарний файл: чи це перший раз, коли цей підпис коду відкриває з’єднання на цьому Mac? Щойно встановлений непідписаний інструмент, який одразу з’єднується з незнайомим IP, — це інший ризик, ніж Safari, що з’єднується з CDN.
  • Дивні порти й протоколи: текстовий редактор, який спілкується через порт 4444, застосунок, який використовує сирі IP-адреси замість імен хостів, або з’єднання з країною, де застосунку нічого робити.
  • Облікові дані у відкритому HTTP: якщо з’єднання незашифроване, його вміст можна прочитати на Mac ще до відправлення, і номер картки, пароль або ключ API, які йдуть відкритим текстом, можна зупинити саме в цей момент.

Саме це робить перевірка Private AI у FireAI. Невелика локальна модель (необов’язкове завантаження обсягом 1,5 ГБ) розглядає кожне з’єднання від невідомого застосунку, спираючись саме на перелічені вище факти, і або блокує його, або позначає, або пропускає — з поясненням простою мовою, яке ви можете прочитати і скасувати. Рішення ухвалюється на Mac; трафік ніколи не надсилається для аналізу ні HisnLabs, ні комусь іншому.

Обмеження так само конкретні. Мережевий перевіряльник не бачить вмісту файлів, тож не скаже вам, що завантаження вороже, до його запуску. Він не бачить пам’яті, тож не виявить впроваджене корисне навантаження всередині довіреного процесу, а якщо ворожий код ховається за підписаним дозволеним застосунком, його трафік успадковує дозволи цього застосунку. Він не розшифровує TLS, тож для зашифрованого з’єднання оцінює призначення й шаблон, а не вміст. А стрічка репутації знає лише про ті призначення, про які хтось уже повідомив.

Складаємо рівні докупи

Якщо читати це як стек, картина цілісна. Нотаризація і Gatekeeper вирішують, чи потрапить код усередину. XProtect видаляє те, що вже відоме як погане. Інструменти на базі Endpoint Security стежать за тим, що роблять процеси. Антивірус і криміналістика читають вміст файлів і пам’ять. Мережевий рівень стежить за тим, що виходить назовні. Кожен відповідає на запитання, на яке не можуть відповісти інші, і корисний тест для будь-якої заяви про «розширене виявлення» простий: який із цих рівнів це і що цей рівень бачить?

Це також пояснює, чому рівні не конкурують між собою. Продукт EDR і фаєрвол із правилами для кожного застосунку можуть працювати на одному Mac і ніколи не дивитися на той самий факт: один читає дерево процесів, інший — таблицю з’єднань. Компанія, яка вже платить за виявлення на кінцевих точках, мало виграє від другого монітора процесів, але може дуже багато виграти від можливості сказати — для кожного застосунку й кожного призначення — що дозволено випускати назовні. Домашній користувач без жодного EDR отримує від самого лише мережевого рівня той єдиний сигнал, який рівні Apple ніколи не показують.

Для більшості власників Mac практична комбінація — вбудовані рівні Apple, які регулярно оновлюються, плюс видимість тієї єдиної фази, яку Apple вам не показує: які застосунки з’єднуються і куди. Це вужча обіцянка, ніж «зупиняє будь-яку загрозу», і саме її можна насправді дотримати.

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

FireAI is the network layer of that stack and nothing more: it does not scan files or read memory, but it is the one place every app’s outbound connection has to pass through, reviewed on your Mac by a model that explains what it saw.

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

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

Джерела