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

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

Моніторинг мережі на Mac: побачте кожне з’єднання, яке встановлюють ваші застосунки

Моніторинг мережі на Mac: побачте кожне з’єднання, яке встановлюють ваші застосунки

Ваш Mac розмовляє прямо зараз. Не метафорично: у цю мить кілька десятків процесів тримають відкриті сокети до серверів, про які ви ніколи не чули, і здебільшого це нормально. Перевірки оновлень, синхронізація, push-сповіщення, телеметрія, шрифт, що завантажується. Сенс моніторингу мережі не в тому, щоб панікувати через обсяг, а в тому, щоб уміти відповісти на одне запитання про будь-який окремий рядок: який застосунок, до кого і чому. macOS дає вам три безкоштовні інструменти, які проводять частину шляху. Ця стаття пояснює, що показує кожен із них, де він зупиняється і що додає поверх них фаєрвол для кожного застосунку.

Монітор активності: підсумки, а не адресати

Відкрийте Монітор активності, натисніть вкладку «Мережа», і ви отримаєте чесний огляд, для якого Apple його і створила. Посібник Apple описує нижню панель: пакети вхідні та вихідні, отримані й надіслані дані в мегабайтах і графік, який можна перемикати між пропускною здатністю за пакетами та за даними. Список процесів над нею показує, скільки кожен процес надіслав і отримав. Чого він не показує — куди. Немає стовпця для віддаленого хоста, ні порту, ні країни. Монітор активності відповідає на запитання «чи щось використовує багато трафіку?» і на цьому зупиняється. Це правильний інструмент, щоб помітити, що допоміжний процес за ніч вивантажив два гігабайти, і неправильний, щоб з’ясувати, кому.

lsof: знімок кожного відкритого сокета

Інструмент командного рядка lsof виводить список відкритих файлів, а в Unix мережевий сокет — це файл. З параметром -i, який сторінка man у macOS описує як вибір файлів, чия інтернет-адреса збігається, ви отримуєте кожне відкрите з’єднання з назвою процесу-власника, його ідентифікатором, протоколом, а також локальною й віддаленою адресою та портом. Додайте -n і -P, щоб адреси й порти залишалися числовими, а не чекали на зворотний DNS. Результат — найповніша безкоштовна картина поточного моменту, яку можна отримати, і наголос тут на слові «момент»: lsof — це знімок. З’єднання, яке відкрилося, надіслало кілобайт і закрилося за півсекунди до того, як ви натиснули Enter, там просто немає. До того ж він ідентифікує процес за назвою та PID, а не за тим, хто його підписав, тож бінарний файл із назвою «Adobe Update Helper» у тимчасовій папці виглядає точно як справжній.

nettop: той самий вигляд, оновлюваний наживо

nettop — найближче до монітора з’єднань у реальному часі з того, що постачає macOS. Його сторінка man описує його як виведення списку сокетів або маршрутів з періодично оновлюваною мережевою статистикою. На практиці ви бачите кожен процес, його відкриті з’єднання, байти вхідні та вихідні для кожного з’єднання, використовуваний інтерфейс і стан з’єднання з оновленням щосекунди. Він розв’язує проблему знімка lsof і залишається найкращою вбудованою відповіддю на запитання «що цей застосунок робить прямо зараз». Його обмеження в усьому іншому такі ж, як у lsof: жодної ідентичності, окрім назви процесу, жодного уявлення про країну чи організацію за адресою, жодної пам’яті про те, що сталося годину тому, і жодної можливості сказати «ні». Ви можете спостерігати за з’єднанням у nettop; ви не можете його зупинити.

Вбудований фаєрвол тут не допомагає

Люди часто припускають, що ввімкнення фаєрвола в Системних параметрах усе це покриває. Це не так. Власний посібник Apple обережний у формулюваннях: фаєрвол macOS захищає ваш Mac від небажаного контакту, ініційованого іншими комп’ютерами. Це вхідний фільтр. Йому нічого сказати про те, що надсилають ваші застосунки, а саме в цей бік вказує кожне запитання в цій статті. Для вихідного контролю за окремими застосунками Apple надає фреймворк Network Extension, чиї постачальники фільтрів вмісту дозволяють сторонньому застосунку бачити й фільтрувати мережеві потоки разом з ідентичністю застосунку, який їх створив. Це основа, на якій будуються сучасні фаєрволи для кожного застосунку на macOS, і саме вона перетворює список сокетів на список рішень.

Що додає фаєрвол для кожного застосунку

Конкретно чотири речі. Ідентичність: потік приписується підписаному застосунку, тож правило для Slack стосується Slack, а не чогось, що випадково має таку ж назву; правила FireAI для кожного застосунку саме тому йдуть за підписом коду застосунку. Видимість: кожне з’єднання показується в момент, коли воно відбувається, включно з тими, що тривають півсекунди. Контекст: сира IP-адреса розпізнається до організації та країни за нею, що FireAI показує на мапі світу в реальному часі із заблокованими з’єднаннями червоним. І контроль: з’єднання можна дозволити або заборонити за хостом, доменом, IP чи портом, а невідомий застосунок мусить запитати перед своїм першим з’єднанням, і в запиті показується обґрунтування вердикту моделі, що працює на пристрої. Якщо ви не згодні з рішенням, яке ухвалив ШІ, ви його скасовуєте, і скасування стає видимим правилом, яке можна прочитати пізніше або експортувати як текстовий файл.

FireAI також приймає команди звичайною мовою, англійською або французькою, наприклад «block Microsoft Teams», що є швидшим способом написати правило, ніж діалог із чотирма полями. Чого він не робить, варто сказати так само прямо: він не перевіряє вміст зашифрованого трафіку, не сканує файли і не досліджує процеси чи пам’ять. Він працює на рівні «хто до чого підключається» і чесний щодо цієї межі.

Як читати одне з’єднання

Візьміть будь-який рядок із nettop або з журналу фаєрвола і поставте три запитання. Перше — компанія: кому належить адреса? Більшість трафіку йде до кількох хостинг-провайдерів і мереж доставки контенту, і музичний застосунок, що розмовляє з Amazon чи Cloudflare, зазвичай просто розмовляє зі своїм бекендом. Патерн, на який варто звернути увагу, — невідповідність: застосунок для нотаток, що підключається до рекламної мережі, або утиліта для знімків екрана, що підключається до хостинг-провайдера, яким їй немає причин користуватися. Друге — країна: не тому, що іноземний сервер поганий, а тому, що зміна інформативна. Застосунок, який рік підключався до Ірландії, а сьогодні вперше підключається до нової країни, щось змінив. Третє — порт. 443 — це HTTPS, і він покриває майже все; 80 — звичайний HTTP, і в 2026 році він має бути рідкістю; 53 — DNS; 22 — SSH; 445 — спільний доступ до файлів SMB; 5353 — Bonjour у локальній мережі. Споживчий застосунок, що відкриває порт 22 або 445 до адреси в інтернеті, досить незвичний, щоб виправдати запитання.

Патерни, гідні другого погляду

  • Beaconing: той самий процес звертається до тієї самої адреси з фіксованим інтервалом, щошістдесят секунд або щодесять хвилин, із крихітними корисними навантаженнями. MITRE ATT&CK описує командування й контроль як спробу зловмисника комунікувати зі скомпрометованими системами, щоб керувати ними, і регулярний «пульс» — найпоширеніша форма, якої це набуває. Перевірки оновлень також «б’ються», тож ознакою є незнайомий процес, а не сам ритм.
  • Вихідні вузли Tor: Tor Project публікує список своїх вихідних вузлів, і немає звичайної причини, з якої застосунок для продуктивності мав би до одного з них звертатися. FireAI застосовує цей список локально як одне зі своїх джерел даних про загрози.
  • Звичайний HTTP, що переносить облікові дані: форма входу, ключ API або номер картки, надіслані через порт 80, читаються будь-ким на шляху. Захист незашифрованих даних FireAI створений саме для цього випадку і зупиняє номери карток, паролі та ключі API, щоб вони не витікали через звичайний HTTP.
  • Перше з’єднання від давно встановленого застосунку: застосунок, який місяцями мовчав і раптом відкриває сокет, оновився, був замінений або перехоплений плагіном. Про всі три випадки варто знати.
  • Непідписані або невідомі бінарні файли, що взагалі виходять у мережу: на Mac, де все, чим ви користуєтеся, підписане, непідписаний бінарний файл, що встановлює перше з’єднання, — найкорисніше окреме попередження, яке може підняти фаєрвол. Суворіші режими безпеки FireAI, Paranoid і Under attack, блокують непідписані застосунки одразу.
  • Адреси з опублікованих списків блокування: Spamhaus описує свій список DROP як діапазони настільки небезпечні, що надає їх безкоштовно кожному, хто хоче цього рівня захисту; FireHOL агрегує й документує публічні IP-джерела, зосереджені на атаках і зловживаннях; abuse.ch веде спільнотні платформи даних про загрози. FireAI застосовує ці джерела локально, як загальносистемні списки блокування IP, нікуди не надсилаючи ваш трафік.

Фільтрація DNS, чесно

DNS — це те місце, де живе багато продуктів для фільтрації мережі, тож справедливо запитати, де стоїть FireAI. Сьогодні FireAI фільтрує на рівні самого з’єднання: він застосовує джерела даних про загрози та списки блокування IP до адрес, до яких ваші застосунки реально звертаються, а правила для кожного застосунку можуть збігатися з іменем хоста чи домену. Чого він поки не робить — не працює як ваш DNS-резолвер і не пропонує власного зашифрованого DNS; це заплановано, і ми радше скажемо про це, ніж натякнемо. Тут є практичний наслідок, який варто розуміти. Зашифрований DNS, визначений як DNS over TLS у RFC 7858 і DNS over HTTPS у RFC 8484 і підтримуваний на рівні системи в macOS із сесії Apple на WWDC 2020 про ввімкнення зашифрованого DNS, приховує ваші запити від будь-кого на мережевому шляху. Це добре для приватності, і це також означає, що фільтр, який спостерігає лише за DNS-запитами, сліпне, коли браузер використовує власний резолвер DoH. Фільтр, що діє на адресу призначення, все одно бачить з’єднання, бо застосунок усе одно мусить його відкрити. Жоден із підходів сам по собі не є повним, тому чесна позиція — «обидва, з часом», а не твердження, що один замінює інший.

Практична рутина

Вам не потрібно спостерігати за мережею весь день. Робоча рутина — три хвилини раз на тиждень: відкрийте список з’єднань FireAI, пройдіться по ньому застосунок за застосунком і подивіться на ті, яких не впізнаєте. Перевірте компанію та країну за всім новим. Напишіть правило для того, що вирішили, щоб ніколи не переглядати те саме з’єднання двічі, і час від часу експортуйте свої правила, щоб новий Mac починав із ваших рішень, а не з нуля. Безкоштовні інструменти завжди будуть поруч, коли ви захочете сирого вигляду; фаєрвол для кожного застосунку — це те, що робить цей вигляд чимось, на що можна діяти.

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

lsof and nettop will show you a snapshot; what they cannot do is stop a connection, remember your decision, or tell you in plain words which company and country sit behind an IP address — and that gap is exactly the one FireAI was built to fill.

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

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

Джерела