Доверие к приложению на 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.
