Блог о безопасности FireAI

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

FireAI 1.0: обновлённый интерфейс, показывающий состояние сети Mac с одного взгляда

FireAI 1.0: обновлённый интерфейс, показывающий состояние сети Mac с одного взгляда

FireAI 1.0, выпущенный 30 сентября 2026 года, переосмысливает то, как файрвол показывает, что Mac делает в сети. FireAI — сетевой файрвол для macOS, разработанный HisnLabs, с моделью ИИ на устройстве, которая предлагает решения. В этой заметке перечислены изменения по сравнению с 0.1.8, и каждое из них следует одному из четырёх описанных ниже проектных решений.

Эти четыре решения таковы: показывать состояние, а не заставлять пользователя читать числа; действовать там, куда смотришь; ничего не должно двигаться, если ничего не происходит, что также снижает нагрузку на процессор; и каждое оповещение должно простыми словами говорить, что произошло и что с этим можно сделать.

Что изменилось по сравнению с 0.1.8

Примечания к выпуску для каждой сборки — на странице выпусков.
ОбластьРаньше (0.1.8)Теперь (1.0)
World mapДуги показывали суммы за всё время; точки продолжали двигаться на неактивных соединенияхПотоки данных: ширина и движущиеся точки отражают текущую пропускную способность и только пока идут данные; затенение дня и ночи; кольцо текущего трафика
СтраныНе показывались списком«Requests by country» под глобусом, с кнопками Filter и Block в каждой строке
Оповещения о выгрузкеОтдельного оповещения о выгрузке не былоНеобычная выгрузка в страну отмечается в списке, на глобусе, на Home и в строке меню
ActivityСписки соединенийПолоса «пульса» за 60 секунд для каждого соединения; Replay для заблокированных соединений
HomeЦифрыПлашка «погоды приватности» и маскот, реагирующий на события
ПредложенияСписок предложенийСтопка карточек Quick Review с ответами перетаскиванием и с клавиатуры
УгрозыСведения об угрозеХронология «Why?» с тем, что было замечено
Строка менюЗначок состоянияКрасная вспышка при блокировке; красная стрелка и код страны во время всплеска выгрузки
FireAI PilotОдин профиль для всего Mac в 0.1.8; для каждой сети начиная с 0.1.8 build 3Обучается отдельно для каждой сети Wi-Fi и каждого режима безопасности
Нагрузка на процессорСнижена начиная с 0.1.8 build 3Перерисовывается только изменившееся; глобус приостанавливается в фоновом режиме

World map: пропускная способность как форма

В 0.1.8 дуги на карте отображали суммы за всё время, а их точки продолжали двигаться даже на соединениях, которые уже затихли. Сумма мало говорит о настоящем, а движущаяся точка на неактивной линии создаёт видимость активности, которой нет. Теперь World map рисует «потоки данных». Ширина линии отражает текущую пропускную способность в логарифмической шкале примерно от 1 КБ/с до примерно 1 МБ/с. Белые точки бегут от Mac, пока приложение выгружает данные, а цветные — обратно, пока оно загружает, и только пока данные идут. Неактивные линии остаются тонкими и неподвижными, поэтому движение на карте всегда означает трафик. Подробности — в документации World map.

Контекст добавляется там, где он меняет восприятие соединения. Реальная ночная сторона Земли затенена, небольшая луна отмечает адреса, активные в то время, когда там ночь, а карточка соединения показывает примерное местное время в месте назначения, например «About 1 AM there». Кольцо вокруг глобуса показывает долю каждой страны в текущем трафике с подписью «LIVE · 1.2 MB/s». При наведении на сегмент отображаются страна, её доля и скорость, а линии других стран тускнеют, так что одну страну можно рассмотреть отдельно.

Requests by country: действовать там, куда смотришь

Под глобусом новый список показывает каждую страну с флагом, полосой и числом запросов — суммой соединений и заблокированных попыток. При выборе строки глобус плавно поворачивается к этой стране кратчайшим путём и подписывает её. Повторный выбор строки позволяет глобусу продолжить вращение без рывка. Подписи соседних стран выстраиваются друг над другом, а не перекрываются.

Проектная причина — близость наблюдения и действия. При наведении на строку появляются две кнопки. Filter ограничивает и глобус, и список этой страной. Block после подтверждения создаёт правила блокировки для адресов, уже замеченных в этой стране. Новые адреса в этой стране по-прежнему вызывают запрос или следуют текущему режиму, поэтому действие охватывает то, что наблюдалось, и не распространяется незаметно на то, что не наблюдалось. См. Requests by country и всплески выгрузки.

Всплески выгрузки: оповещение, которое называет страну

Страна помечается, когда за последние 10 секунд она получает не менее 5 МБ и не менее чем в 10 раз больше обычного. Страна поднимается в начало списка, выделяется красным и показывает скорость, например «↑ 4.2 MB/s», а красная строка гласит «Unusual upload to France · since 14:02». На глобусе появляются красные линии и пульсирующий маркер, «погода» на Home меняется на «Storm» (буря), а в строке меню отображается красная ↑ с кодом страны.

Таким образом, один и тот же факт показан в четырёх местах, каждое из которых соответствует вероятному уровню внимания пользователя: строка меню — для беглого взгляда, Home — для рабочего сеанса, карта — для расследования, список — для принятия решения. Метка сохраняется в течение минуты после окончания всплеска. Устойчивая выгрузка, например резервное копирование, примерно через две минуты становится нормой, что ограничивает повторные оповещения об ожидаемом поведении. FireAI не блокирует трафик самостоятельно: оповещение сообщает, что произошло, и оставляет решение за пользователем.

Activity: минута поведения в одной полосе

У каждого соединения теперь есть полоса «пульса» за 60 секунд — на его карточке и в виде столбца «Last minute» в таблице. Пик — это всплеск, волна — устойчивый поток, красная засечка — заблокированная попытка, а ровная линия — тихое соединение. Полоса обновляется раз в секунду и только пока она видна на экране. Она заменяет ряд показателей скорости формой, которую можно сравнивать между соединениями с одного взгляда. Подробности — в разделе Activity и история соединений.

У заблокированного соединения есть кнопка Replay. Она воспроизводит двухсекундную анимацию: пакет покидает приложение, маскот FireAI того компонента, который его заблокировал, перехватывает пакет, и в месте назначения появляется ✕. После анимации показывается, что заблокировало соединение и сколько раз оно пыталось подключиться. Цель — ответить на вопрос «что это остановило?» в том порядке, в котором происходили события, без отдельного просмотра журнала.

Home, строка меню и маскот: ничего не движется без причины

Теперь Home открывается плашкой «погоды приватности». «Clear» (ясно) означает, что за этот час ничего не было заблокировано, «A few clouds» (небольшая облачность) и «Showers» (ливни) — что заблокировано несколько или много соединений, «Storm» (буря) — всплеск выгрузки, а «Sheltered» (в укрытии) — что включён аварийный выключатель (kill switch). «Calm» (штиль) и «Calm night» (тихая ночь) означают, что наружу почти ничего не уходит. При выборе плашки открывается Activity или, во время бури, World map. Каждое состояние описано в документации Home.

Трёхмерный маскот реагирует на те же события. Он качает головой при серии блокировок — пяти или более за 10 секунд, — подпрыгивает при всплеске выгрузки и дремлет поздно ночью, когда почти ничего не передаётся. Когда ничего не происходит, он ничего не отрисовывает. Значок в строке меню следует тому же правилу: при блокировке он примерно на секунду вспыхивает красным, не чаще одного раза в 3 секунды, а во время всплеска выгрузки показывает красную ↑ с кодом страны (см. виджет строки меню). Анимация здесь используется как сигнал, поэтому её отсутствие тоже несёт информацию.

Quick Review, хронология Threats и FireAI Pilot

Quick Review превращает список предложений в стопку карточек. Перетаскивание карточки или нажатие ← блокирует, → разрешает, ↓ пропускает, а Esc завершает просмотр. Во время перетаскивания появляются штампы BLOCK и ALLOW, так что результат виден до того, как карточка будет отпущена, а в конце показывается сводка. Каждый ответ создаёт правило и обучает FireAI Pilot, так что решение принимается один раз, а используется дважды.

На странице Threats хронология «Why?» показывает, когда приложение впервые вышло в сеть и было ли оно подписано, его первое обращение к серверу и страну сервера, тревожные признаки и действия FireAI. Таким образом, вердикт сопровождается доказательствами в хронологическом порядке.

FireAI Pilot обучается отдельно для каждой сети Wi-Fi и каждого режима безопасности — это изменение началось в 0.1.8 build 3 и вошло в 1.0. Сеть хранится как короткий отпечаток её имени или сохранённого места, но никогда не как само имя, и только на Mac. Для чтения имени сети Wi-Fi требуется разрешение на доступ к геопозиции. Решение, принятое в другой сети, учитывается примерно с третью веса решения, принятого в текущей сети.

Меньшая нагрузка на процессор

У правила «ничего не движется, если ничего не происходит» есть побочный эффект для потребления ресурсов. Home перерисовывает только изменившееся, глобус отрисовывается с частотой 24 кадра в секунду и приостанавливается, пока FireAI работает в фоне, а трёхмерный маскот перестаёт отрисовываться после своего появления. Полосы «пульса» обновляются, только пока они видны. FireAI — программа, которая работает постоянно рядом с другими задачами, поэтому интерфейс спроектирован так, чтобы обходиться дёшево, когда в сети тихо.

Принципы дизайна, которых мы придерживались

  • Показывать состояние, а не числа: ширина, цвет, форма и «погодное» слово передают смысл ещё до того, как прочитана какая-либо цифра.
  • Действовать там, куда смотришь: Filter и Block находятся в строке страны, Replay — у заблокированного соединения, ответы — на карточке.
  • Ничего не движется, если ничего не происходит: движение сигнализирует о трафике, неподвижность — о тишине.
  • Каждое оповещение простыми словами говорит, что произошло и что можно сделать, и FireAI не предпринимает действий по всплеску выгрузки без пользователя.
  • Действия охватывают то, что наблюдалось: блокировка страны применяется к уже замеченным адресам, а новые оставляет текущему режиму.

Ограничения

  • Порог выгрузки (не менее 5 МБ за 10 секунд и в 10 раз больше обычного) — эвристика. Короткая легитимная выгрузка ниже порога не помечается, а крупная выгрузка в страну, которая регулярно получает крупные выгрузки, может быть не помечена.
  • Страна адреса назначения определяется по его адресу, а местное время и ночной маркер являются приближениями для этой страны.
  • Блокировка по стране охватывает уже замеченные адреса. Это не правило против страны в целом.
  • Устойчивая выгрузка намеренно становится нормой примерно через две минуты, поэтому медленная непрерывная передача данных после этого периода не помечается.
  • Без разрешения на доступ к геопозиции FireAI не может прочитать имя сети Wi-Fi, и тогда FireAI Pilot не может различать сети.

Как обновиться

FireAI обновляется сам через Settings. Пользователи без автоматических обновлений могут загрузить FireAI 1.0 и бесплатно пользоваться им в течение 17 дней. На странице выпусков перечислены изменения каждой сборки.

Какое место здесь занимают FireAI и HisnLabs

Смотрите, с кем общается ваш Mac, и действуйте на том же экране.

FireAI — это собственный продукт HisnLabs: ИИ-файрвол, работающий прямо на вашем Mac. Он показывает простым языком каждое соединение, которое устанавливают ваши приложения, и позволяет вам решать, что покидает ваш Mac, — его ИИ работает локально, поэтому ваш трафик никогда не отправляется ни нам, ни кому-либо ещё. Команда исследователей безопасности HisnLabs — это те, кто поддерживает точность этих решений: они каталогизируют, какие домены являются обычной телеметрией, а какие — реальным сервисом, отслеживают страну и сеть, стоящие за соединением, и обучают локальную модель (функцию FireAI Pilot) на реальных шаблонах трафика — и ничего из этого не покидает ваш Mac.

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

Источники