Як читати сокет VPN, не довіряючи імені домену
Ім'я хоста поруч із процесом — це здогад про адресу. Прочитайте числові кінцеві точки, стан з'єднання та PID, якому належить сокет, перш ніж звинувачувати клієнт VPN.
Ваш переглядач кінцевих точок перелічує процес VPN поруч із доменом рекламної компанії, і ця пара починає історію, яку дані не можуть підтвердити. Ім'я — це зворотний пошук, намальований поверх числової кінцевої точки, і воно змінюється щоразу, коли змінюється пошук. Стовпці, що витримують перевірку, — це адреси, стан з'єднання та PID, якому належить сокет.
Ніщо в таблиці сокетів не описує, що пройшло всередині з'єднання. Усе, що несе ім'я хоста, уже витлумачено за вас.
Розв'язане ім'я — це переклад, а не поле
Переглядач просить розв'язувач перетворити адресу на ім'я так само, як працює запит PTR у DNS. Відповідь може надійти з локального кешу, із запису у файлі hosts, з оголошення про виявлення сусідів або від постачальника, який минулого тижня віддав адресу комусь іншому, і інструмент не має способу розрізнити ці джерела. Дві машини, що спостерігають одне з'єднання, можуть надрукувати різні імена для однієї й тієї самої адреси партнера, що важко пояснити, якщо ви вірите, що ім'я прийшло з дроту. Ставтеся до мітки як до зручності для людського ока, а не як до твердження про те, хто отримав байти.
Документація TCPView описує стовпці кінцевої точки, стану й процесу та документує вимкнення розв'язаних імен, що варто зробити, перш ніж вчитувати в домен будь-який сенс. Вимкнення розв'язування робить невизначеність видимою, а не створює її: адреса у вас усе ще є, а робота з вирішення, що вона означає, просто повернулася до вас.
Читайте числові стовпці по порядку
Працюйте зліва направо і зупиніться на першому стовпці, який відповідає на ваше запитання. Локальна кінцева точка показує, до чого прив'язався процес, віддалена кінцева точка показує, чи існує взагалі партнер, стан показує, чи живе зіставлення, а PID пов'язує рядок із виконуваним файлом.
Три спостереження нижче — це ілюстративні форми, а не вивід, знятий із якоїсь машини тут. Вони згруповані за тим, що кожне може підтвердити, бо саме це питання люди й ставлять рядку сокета:
| What the row shows | What it rules out | What it cannot show |
|---|---|---|
| An open listener with no peer address | Any remote party; nothing beyond this host has reached the port | Whether the local service is well configured, or who is allowed to use it |
| An association in the open state | That the entry is cosmetic; a peer address exists and was accepted | Which application data crossed it, or whether that peer is trustworthy |
| An association whose counters move | That the conversation is idle or already stale | What was requested, what came back, or who started it |
Відкритий слухач, до якого інші машини не можуть дістатися, прив'язаний до адреси зворотної петлі, — це спосіб, яким багато клієнтів VPN виставляють власний канал керування. Прив'язка до підстановної адреси означає, що процес приймав з'єднання на кожному інтерфейсі, і чи це небезпечно, залежить від брандмауера хоста, а не від самого рядка. Лише зіставлення, що існує й несе лічильники, схоже на звинувачення, яке люди зазвичай хочуть висунути, і навіть цей рядок зупиняється перед корисним навантаженням.
Перевірте власність, перш ніж назвати винного
Ідентичність процесу — це місце, де більшість звинувачень насправді руйнується. PID використовуються повторно, програми оновлення та помічники браузера породжують недовговічних нащадків, а клієнт VPN може передати свій трафік привілейованій системній службі. Порівнюйте шлях виконуваного файлу й батьківський процес, а не відображуване ім'я, бо відображуване ім'я обирає той, хто збудував бінарник.
tcpvcon -n -a
Get-Process -Id 4188 | Select-Object Id, ProcessName, Path
Те саме читання існує в Linux, де статистика сокетів може нести відомості про процес, коли у вас достатньо прав, щоб бачити сокети інших користувачів. Запит встановлених сокетів, прив'язаних до порту 443 або від нього, звужує вивід до рядків, які мають значення:
ss -tunp state established '( sport = :443 or dport = :443 )'
Зафіксуйте позначку часу разом із рядком. Один PID — це рухома ланка, бо на момент, коли ви відкриєте диспетчер процесів, сокет може вже належати наступнику, а шлях, який ви перевіряєте, може бути не тим, що тримав з'єднання. Запишіть пару кінцевих точок, стан і PID як одне спостереження, і знахідка переживе перезапуск або другу думку.
Чого ще варте ім'я
Ім'я хоста — не марний доказ. Воно фіксує, що хтось колись пов'язав цю адресу з цим ім'ям. Цей зв'язок вартий уваги, коли адреса належить постачальнику, що обслуговує тисячі не пов'язаних клієнтів. Це слабше твердження, ніж пункт призначення, і це єдине твердження, яке мітка може підтвердити.
Коли ім'я здається неправильним, порівняйте адресу з опублікованими діапазонами постачальника, а потім запитайте, що робив процес у той момент: перевірку оновлення, виклик ліцензії, надсилання телеметрії чи рукостискання тунелю. Ці дії залишають різні форми з'єднання, і зіставлення форми з моментом інформативніше, ніж зіставлення імені з компанією, якій ви не довіряєте.
Збережіть рядок, перш ніж завершити спільний помічник або щось видалити. Захищуваний висновок охоплює одну спостережену кінцеву точку, її стан і власника; вердикт у масштабі бренду, збудований на розв'язаній мітці, не є доказом, і заспокоєння, що знайомий хост завантаження має бути нешкідливим, теж не доказ.