Довіра до застосунку на Mac — це не одне рішення «так чи ні». Це чотири окремі запитання, на кожне з яких відповідає свій механізм: хто його створив, чи перевірила його Apple, до чого йому дозволено торкатися і що він насправді робить, коли запущений. Перші три Apple документує детально. Четверте — те, за яким ви маєте спостерігати самі, і саме воно ловить застосунок, який пройшов перші три перевірки, а потім збився зі шляху.
App Store чи пряме завантаження
Сторінка підтримки Apple Безпечне відкриття застосунків на Mac називає App Store найбезпечнішим місцем для отримання програм із двох конкретних причин: Apple перевіряє кожен застосунок перед прийняттям і може швидко видалити застосунок, якщо проблему буде виявлено пізніше. Застосунки з App Store також мусять працювати всередині App Sandbox, яку сторінка Apple про Gatekeeper і захист під час виконання описує як обмеження даних, до яких застосунок може дістатися, і примус використовувати API macOS для спілкування з іншими застосунками.
Це не робить кожне пряме завантаження підозрілим. Величезна кількість легітимних програм для Mac поширюється поза магазином, бо пісочниця забороняє те, що їм потрібно робити (дискові утиліти, інструменти розробки, фаєрволи включно). Різниця в тому, що при прямому завантаженні етап перевірки замінюється двома легшими перевірками, які Apple описує на тих самих сторінках: підписом, що говорить, хто створив застосунок, і скануванням при нотаризації.
Developer ID і нотаризація: що вони доводять
Сертифікат Developer ID видається Apple розробнику, зареєстрованому в Apple Developer Program, і дозволяє Gatekeeper підтвердити, що застосунок був підписаний цим розробником і відтоді не змінювався. Це все, що доводить підпис: ідентичність і цілісність. Про наміри він не каже нічого. Підписаний застосунок усе ще може бути поганим; підпис лише означає, що Apple знає, чиє ім’я на ньому стоїть, і може її відкликати.
Нотаризація — друга перевірка. Документація Apple для розробників про нотаризацію програм для macOS перед поширенням описує її як автоматизоване сканування підписаних Developer ID програм на відомий ворожий вміст і проблеми з підписом коду, після якого Apple видає квиток, який може прочитати Gatekeeper. Сторінка підтримки Apple обережна у формулюванні: нотаризація означає, що «Apple перевірила застосунок на наявність зловмисних програм, і нічого не було виявлено». Це сканування за тим, що Apple уже знає, а не перевірка того, що застосунок робить, і Apple може відкликати нотаризацію пізніше, якщо дізнається більше.
Прапорець карантину
Механізм, який прив’язує ці перевірки до конкретного завантаження, — розширений атрибут файлу com.apple.quarantine, який Safari і більшість інших браузерів та месенджерів ставлять на все, що зберігають. Коли ви вперше відкриваєте файл із цим атрибутом, Gatekeeper виконує свої перевірки і просить вашого підтвердження. Сторінка Apple про Gatekeeper описує налаштування за замовчуванням як перевірку всіх програм на відомий небезпечний вміст при першому відкритті. Ви можете побачити атрибут самі командою Terminal xattr -l на завантаженому файлі.
Якщо застосунок не підписаний або не нотаризований, macOS відмовляється його відкривати і пропонує спосіб обійти заборону. Сторінка підтримки Apple Відкриття застосунку для Mac від невідомого розробника пояснює кроки, а потім додає попередження, яке варто передати по суті: обхід цих налаштувань — найпоширеніший спосіб зараження Mac, і Apple рекомендує натомість знайти інший застосунок, навіть якщо розробник здається відомим. Практичне правило випливає напряму. Обхід має бути рідкісною, свідомою дією для програм, яким ви довіряєте з конкретної причини, і ніколи — рефлексом.
Дозволи: до чого застосунку можна торкатися
Третє запитання — обсяг. Починаючи з macOS 10.15, як пояснює сторінка Apple Platform Security Guide про керування доступом застосунків до файлів, застосунки мусять запитувати дозвіл, перш ніж читати Робочий стіл, Документи, Завантаження, iCloud Drive або мережеві томи, а доступ до камери, мікрофона, запису екрана, моніторингу натискань клавіш і повного доступу до диска надається лише через явні запити або ручну зміну в Системних параметрах, розділ «Приватність і безпека». Система за цими запитами називається TCC (Transparency, Consent and Control), і її принцип, словами Apple, полягає в тому, що користувачі повинні мати повну прозорість, згоду й контроль над тим, що застосунки роблять з їхніми даними.
Дозволи самі по собі — сигнал довіри. У менеджера буфера обміну, який просить доступ до Універсального доступу, є причина. У застосунку зі шпалерами, який просить повний доступ до диска і запис екрана, — немає. Невідповідність між тим, для чого застосунок призначений, і тим, що він просить, часто видно ще до того, як застосунок щось зробив, і нічого не коштує відмовити й подивитися, чи він досі працює.
Мережева поведінка: запитання, на яке інші перевірки відповісти не можуть
Підпис, нотаризація і дозволи оцінюються до запиту або в момент запиту. Жодна з них не спостерігає за застосунком у часі, і жодна не дивиться на єдину активність, яка перетворює проблему приватності на проблему безпеки: надсилання даних із Mac. Застосунок може бути підписаний справжнім розробником, нотаризований Apple, отримати лише ті дозволи, які йому правдоподібно потрібні, — і все одно вивантажувати ваші контакти аналітичному брокеру, опитувати трекінгову кінцеву точку кожні кілька хвилин або, після того як планове оновлення замінить його код, почати спілкуватися із сервером, до якого він ніколи раніше не звертався.
Читати мережеву поведінку як сигнал довіри — значить ставити про кожен застосунок кілька конкретних запитань. Чи підключається він узагалі, і якщо так, чи очікувано це для його завдання? З якими хостами він спілкується — з власними хостами розробника, з упізнаваним сервісом чи зі списком рекламних і аналітичних доменів? Чи використовує він зашифровані з’єднання, чи щось іде через звичайний HTTP? Чи змінюється його поведінка після оновлення? І чи підключається він за розкладом, коли ви ним не користуєтеся? Ніщо з цього не потребує експертизи; потрібно бачити з’єднання, а macOS за замовчуванням їх вам не показує.
Для цього й існує FireAI. Його мапа в реальному часі показує кожне з’єднання кожного застосунку — з адресатом, країною та мережею за ним, а перевірка Private AI, модель на пристрої, оцінює кожне нове з’єднання від невідомого застосунку за репутацією адресата, за тим, чи бачили бінарний файл раніше, за портом і протоколом і за тим, чи зашифроване з’єднання, а потім пояснює свою причину простою мовою. Його захист незашифрованих даних не дає номерам карток, паролям і ключам API піти через звичайний HTTP, який би застосунок їх не надсилав. Кожне рішення ШІ стає видимим правилом, яке ви можете скасувати, а правила можна писати простою англійською чи французькою («block Microsoft Teams») або експортувати в текстовий файл.
Блокувати непідписане і йти за підписом
Два проєктні рішення FireAI напряму випливають з описаної вище моделі Apple. По-перше, його суворіші режими безпеки, Paranoid і Under attack, повністю блокують підключення непідписаних застосунків, разом із телеметрією та трекерами, що перетворює діалог Apple «ви впевнені?» на правило за замовчуванням на рівні мережі: непідписаний бінарний файл може запуститися, якщо ви наполягли, але не може нікому подзвонити. По-друге, правила FireAI для кожного застосунку йдуть за підписом коду застосунку, а не за його ім’ям чи шляхом. Самозванець під назвою «Slack.app» у папці «Завантаження» не успадковує правило, яке ви написали для справжнього Slack, бо підпис не збігається; а коли справжній застосунок оновлюється, правило зберігається, бо збігається. Це та сама ідентичність, яку Apple використовує для Gatekeeper, застосована до мережі.
Чого це не робить
FireAI не сканує файли застосунку, не вивчає його код чи пам’ять і не є антивірусом; він не може сказати вам, що завантаження вороже, до того як ви його запустите. Якщо ви дозволили застосунок, трафік, що ховається всередині цього застосунку, успадковує його дозвіл. Зашифрований трафік до адресата з доброю репутацією оцінюється за адресатом і шаблоном, а не за вмістом. І жоден фаєрвол не замінює перші три перевірки: найдешевше й найнадійніше рішення про довіру на Mac — як і раніше, віддавати перевагу App Store або підписаному Developer ID і нотаризованому завантаженню, відмовлятися від діалогу обходу і відхиляти дозволи, в яких у застосунку немає видимої потреби.
Разом чотири запитання дають робоче визначення застосунку для Mac, гідного довіри: підписаний відомим розробником, нотаризований Apple, просить лише те, що йому правдоподібно потрібно, і спілкується лише з серверами, які мають сенс для його завдання. Перші три Apple дозволяє перевірити під час встановлення. Четверте можна побачити лише спостерігаючи — ось чому саме його варто додати.
Яке місце тут посідають FireAI та HisnLabs
Apple answers the first three trust questions at install time; FireAI exists for the fourth, showing what each app actually does on the network and keying every rule to the same code signature Gatekeeper already relies on.
FireAI — це власний продукт HisnLabs: ШІ-фаєрвол, який працює безпосередньо на вашому Mac. Він показує простою мовою кожне з’єднання, яке встановлюють ваші застосунки, і дає вам вирішувати, що покидає ваш Mac, — його ШІ працює локально, тож ваш трафік ніколи не надсилається ні нам, ні будь-кому іншому. Команда дослідників безпеки HisnLabs — саме вона підтримує точність цих рішень: каталогізує, які домени є звичайною телеметрією, а які — справжнім сервісом, відстежує країну та мережу за з’єднанням і навчає локальну модель (функцію Autopilot) на реальних шаблонах трафіку — і нічого з цього не покидає ваш Mac.
Ви можете почитати про технічні рішення, що лежать в його основі, або спробувати FireAI протягом 17 днів на сторінці FireAI від HisnLabs.
