Security Operations Center

Сети — шпаргалка

Справочное руководство SOC-аналитика по сетевым основам.
От моделей OSI и TCP/IP до прикладных вопросов

🏗️

OSI vs TCP/IPДве сетевые модели — теоретическая и практическая

Модель OSI (Open Systems Interconnection) — теоретический эталон с 7 уровнями, созданный ISO для описания сетевого взаимодействия. Модель TCP/IP — практическая модель с 4 уровнями, на которой построен реальный интернет. OSI используется для обучения и стандартизации терминологии, TCP/IP — для реальных протоколов и реализаций. SOC-аналитику нужны обе: OSI для общения с коллегами («проблема на L3»), TCP/IP для понимания реального трафика.

OSI # OSI уровень TCP/IP уровень PDU Ключевые протоколы Устройства / ПО
7 Прикладной (Application) Прикладной
(Application)
Данные HTTP, HTTPS, DNS, FTP, SMTP, SSH, SNMP, LDAP, RDP Браузер, email-клиент, DNS-сервер
6 Представления (Presentation) Данные TLS/SSL*, JPEG, MPEG, ASCII, сжатие, шифрование TLS-библиотеки, кодеки
5 Сеансовый (Session) Данные NetBIOS, RPC, SMB (частично), SOCKS Сессионные менеджеры, API
4 Транспортный (Transport) Транспортный
(Transport)
Сегмент / Датаграмма TCP, UDP, SCTP, QUIC Стек ОС, файрволы L4, балансировщики
3 Сетевой (Network) Межсетевой
(Internet)
Пакет (Packet) IP (v4/v6), ICMP, IGMP, IPsec, OSPF, BGP Маршрутизатор (Router), L3 коммутатор
2 Канальный (Data Link) Сетевого доступа
(Network Access)
Кадр (Frame) Ethernet, Wi-Fi (802.11), ARP, VLAN (802.1Q), PPP, STP Коммутатор (Switch) L2, сетевая карта (NIC)
1 Физический (Physical) Биты Среда передачи: ЭМ-волны, напряжение, свет Хаб, репитер, модем, кабели, трансиверы
Мнемоника OSI:
Сверху вниз: «All People Seem To Need Data Processing».
Снизу вверх: «Please Do Not Throw Sausage Pizza Away».
На русском, снизу вверх: «Фиолетовые Коты Спят Тихо — Сны Про Пиццу» (Физический, Канальный, Сетевой, Транспортный, Сеансовый, Представления, Прикладной).
* Про TLS: в учебниках TLS относят к L6 (шифрование = функция Presentation). На практике TLS работает поверх TCP (L4) и обслуживает данные L7, то есть занимает «промежуток» между транспортом и приложением. На собеседовании корректный ответ — «педагогически L6, реализационно сессия поверх TCP».
📦

Инкапсуляция и PDUКак данные «заворачиваются» на каждом уровне

Принцип инкапсуляции

Каждый уровень модели добавляет свой заголовок (а иногда трейлер) к данным от верхнего уровня. Этот процесс называется инкапсуляцией. На принимающей стороне — обратный процесс: деинкапсуляция, от L1 вверх к L7. На каждом уровне единица данных называется по-своему — PDU (Protocol Data Unit):

ИнкапсуляцияL5–L7 Данные = Приложение генерирует данные L4 [TCP-заголовок] + Данные = Сегмент (TCP) / Датаграмма (UDP) L3 [IP-заголовок] + Сегмент = Пакет L2 [Ethernet-заг.] + Пакет + [FCS] = Кадр (Frame) L1 01101001... = Биты → провод / радио

Почему это важно для SOC

В Wireshark вы видите эту инкапсуляцию визуально: каждый пакет раскладывается на уровни (Frame → Ethernet → IP → TCP → HTTP). Понимая инкапсуляцию, вы знаете, где искать: MAC-адреса — в Ethernet-заголовке (L2), IP-адреса — в IP-заголовке (L3), порты — в TCP/UDP-заголовке (L4), содержимое запроса — в данных приложения (L7).

📡

Протоколы по уровнямТаблица: уровень | протокол | транспорт | порт | назначение | что интересно SOC

Ур.ПротоколТранспортПортНазначениеЧто интересно SOC
L7HTTPTCP80Веб-трафик (незашифрованный)C2, загрузка пейлоадов, веб-шеллы
L7HTTPSTCP443Зашифрованный веб-трафикJA3/SNI анализ, скрытый C2
L7DNSUDP (TCP)53Разрешение доменных имёнDGA, tunneling, C2 через DNS
L7FTPTCP21 (control), 20 (data)Передача файлов (открытый текст)Credentials в открытом виде, эксфильтрация
L7FTPSTCP21 (explicit), 990 (implicit)FTP over TLSСодержимое зашифровано; всё ещё встречается в legacy-обменах (B2B)
L7SFTPTCP22SSH File Transfer Protocol (подсистема SSH, не FTP!)Туннель внутри SSH-сессии, эксфильтрация
L7SSHTCP22Безопасное удалённое управлениеBrute force, tunnel-пробросы, lateral movement
L7SMTPTCP25 (587)Отправка emailФишинг, спам, эксфильтрация через email
L7RDPTCP3389Удалённый рабочий столBrute force, lateral movement, начальный доступ
L7SMBTCP445Файловые шары, печать (Windows)Lateral movement (PsExec), ransomware, EternalBlue
L7LDAPTCP389 (636)Каталог Active DirectoryEnumeration, Kerberoasting, credential theft
L7SNMPUDP161 (162)Мониторинг сетевых устройствРазведка инфраструктуры, community strings
L4TCPНадёжная доставка с контролемSYN flood, handshake-анализ, RST-инъекции
L4UDPБыстрая доставка без гарантийDNS amplification, NTP reflection DDoS
L3IPАдресация и маршрутизация пакетовSpoofing, fragmentation attacks
L3ICMPДиагностика и ошибки (ping, traceroute)ICMP tunneling, сканирование, exfiltration
L2ARPСвязь IP → MAC-адресARP spoofing / poisoning (MitM)
L2STPПредотвращение петель в L2Поддельные BPDU → перехват root bridge (MitM)

DNS — типы записей

DNS не сводится к «имя → IP». Типы записей — основа для threat hunting по DNS-трафику.

ТипНазначениеSOC-контекст
AИмя → IPv4DGA: множество запросов к случайным доменам, резолвящимся в один IP
AAAAИмя → IPv6Те же атаки, что A, но часто игнорируются SIEM-правилами
CNAMEАлиас имени на другое имяFast-flux, CDN-маскировка C2, DNS rebinding
MXПочтовый сервер доменаФишинг-инфраструктура, BEC-атаки
TXTПроизвольный текст (255 байт на строку; строк в записи может быть несколько)Главный канал DNS-эксфильтрации и C2. SPF/DKIM/DMARC — тоже TXT
NSДелегирование зоны на nameserverПодмена NS — захват поддомена
PTRОбратное преобразование IP → имяReverse lookup в threat hunting, аномалии при энумерации
SRVСервис + порт для протокола (LDAP, SIP, Kerberos)AD-энумерация: _ldap._tcp.dc._msdcs.domain
SOAStart of Authority — метаданные зоныПопытки zone transfer (AXFR)

Индикаторы DNS-tunneling: длинные поддомены (>50 символов), высокая энтропия имени, множество уникальных запросов к одному родительскому домену, TXT-ответы >100 байт, ненормально высокая частота запросов к одному домену.

TLS handshake, SNI и JA3/JA4

Даже когда содержимое HTTPS зашифровано, TLS handshake виден в открытом виде до установления шифрования. Это источник сигнатур:

  • SNI (Server Name Indication) — поле в ClientHello, содержит имя домена, к которому подключается клиент. Видно в Wireshark и NSM-системах. На один IP может приходиться тысяча сайтов — SNI показывает, к какому именно идёт запрос. Фильтр Wireshark: tls.handshake.extensions_server_name.
  • ECH (Encrypted Client Hello) — новый стандарт (2024+), шифрует SNI. Постепенно раскатывается (Cloudflare, Firefox). Для SOC это проблема — SNI как источник видимости исчезает.
  • JA3 — хэш ClientHello-параметров (версии TLS, список cipher suites, расширения, эллиптические кривые). Разные TLS-стеки (OpenSSL, BoringSSL, Windows Schannel) дают разные JA3. Malware часто использует кастомные стеки → уникальный JA3 → детекция даже при ротации доменов и IP.
  • JA3S — JA3 для ServerHello.
  • JA4 — эволюция JA3 (2023), более устойчивая к изменениям порядка расширений. Suricata, Zeek, большинство NSM поддерживают.

Структура MAC-адреса

MAC-адрес — 48 бит = 6 байт = 12 hex-символов. Делится на две части:

MAC: 3C:5A:B4:12:34:563C:5A:B4 12:34:56 └──────┘ └──────┘ OUI NIC-specific (вендор) (серийник)
  • OUI (Organizationally Unique Identifier) — первые 3 байта, идентификатор вендора. База: standards-oui.ieee.org/oui/oui.txt. Wireshark подставляет вендора автоматически.
  • U/L бит (Universally/Locally administered) — второй младший бит первого байта. 0 = присвоен вендором (universal), 1 = сконфигурирован локально. Случайно сгенерированные MAC (Android/iOS privacy, спуферы) почти всегда имеют U/L = 1.
  • I/G бит — младший бит первого байта. 0 = unicast, 1 = multicast/broadcast.

Для SOC: аномальный OUI для известного вендорского устройства, или MAC с U/L=1 там, где должен быть «настоящий» MAC — индикатор спуфинга или rogue-устройства.

🚪

Порты и службыСводная таблица: порт | протокол | транспорт | служба | SOC-контекст

Диапазоны портов

  • 0–1023 — Well-Known Ports (привилегированные). Назначены IANA. Стандартные службы: HTTP (80), HTTPS (443), SSH (22).
  • 1024–49151 — Registered Ports. Назначены по запросу: MySQL (3306), RDP (3389), PostgreSQL (5432).
  • 49152–65535 — Dynamic / Ephemeral Ports. Автоматически назначаются ОС для клиентских соединений.
ПортПротоколТранспортСлужба / НазначениеSOC-контекст
20/21FTPTCPПередача файлов (открытый текст)Credentials открытым текстом, эксфильтрация
990FTPSTCPFTP over TLS (implicit)FTP+TLS, explicit FTPS — на 21
22SSH / SFTP / SCPTCPБезопасный удалённый доступ + передача файловBrute force, reverse tunnel, lateral, SFTP-эксфильтрация
23TelnetTCPУдалённый доступ (устаревший)Всё открытым текстом, Mirai-ботнет
25SMTPTCPОтправка emailФишинг, спам-рассылки, open relay
53DNSUDP/TCPРазрешение доменных имёнDGA, tunneling, cache poisoning
67/68DHCPUDPВыдача IP-конфигурации (67 — сервер, 68 — клиент)Rogue DHCP, starvation — см. раздел 11
80HTTPTCPВеб-трафикC2, пейлоады, веб-шеллы
88KerberosTCP/UDPАутентификация ADKerberoasting, Golden Ticket, AS-REP
110POP3TCPПолучение emailCredentials открытым текстом
123NTPUDPСинхронизация времениNTP amplification (DDoS); сбитые часы ломают корреляцию логов
135RPC/DCOMTCPWindows RPCWMI lateral movement, enumeration
139/445SMBTCPФайловые шары WindowsEternalBlue, PsExec, ransomware spread
143IMAPTCPПолучение emailCredentials открытым текстом
161/162SNMPUDPМониторинг устройств (161 — запросы, 162 — trap)Разведка, дефолтные community strings
389/636LDAP/LDAPSTCPActive DirectoryAD enumeration, BloodHound, credential theft
443HTTPSTCPЗашифрованный веб-трафикСкрытый C2, JA3-фингерпринтинг
514SyslogUDPПередача логов (TLS-вариант — TCP 6514)Открытый текст: логи можно перехватить или подделать
993/995IMAPS/POP3STCPЗашифрованная почтаБезопасные версии POP3/IMAP
1433MSSQLTCPMicrosoft SQL ServerSQL injection, xp_cmdshell
3306MySQLTCPMySQL DatabaseSQL injection, data exfiltration
3389RDPTCPRemote DesktopBrute force, BlueKeep, initial access
5432PostgreSQLTCPPostgreSQL DatabaseSQL injection, exposure
5985/5986WinRMTCPPowerShell RemotingLateral movement, PS Remoting
8080/8443HTTP(S) AltTCPАльтернативные веб-портыПрокси, C2, нестандартные веб-сервисы
Для SOC: Нестандартный порт для известного протокола — подозрительный индикатор. HTTP на порту 8443? SSH на порту 2222? Cobalt Strike teamserver по умолчанию слушает на 50050 (но операторы его меняют); сами C2-listener'ы обычно маскируются под 80/443/8080. Всегда проверяйте, соответствует ли протокол ожидаемому порту.
SFTP ≠ FTPS — частая ошибка: три разные сущности с похожими названиями.
  • FTP — File Transfer Protocol, TCP 21 (control) + 20 (data в active mode). Открытый текст, включая пароли.
  • FTPS — FTP over TLS. Порт 21 (explicit) или 990 (implicit). Это FTP, завёрнутый в TLS.
  • SFTP — SSH File Transfer Protocol. Подсистема SSH, работает на порту 22. К FTP никакого отношения не имеет, кроме трёх букв в названии.
Классический вопрос на собеседовании — «на каком порту SFTP?». Ответ 21 — неверный.
🏓

ICMPПочему «на каком порту работает ICMP?» — вопрос с подвохом

Почему ICMP не имеет порта

ICMP (Internet Control Message Protocol) работает на уровне L3 (сетевой), наравне с IP. Он инкапсулируется непосредственно в IP-пакет (IP Protocol Number: 1), минуя транспортный уровень (L4) полностью. TCP и UDP — это L4-протоколы, и именно они используют порты для мультиплексирования соединений. ICMP не создаёт «соединений» и не нуждается в портах — он использует тип (type) и код (code) вместо портов.

Поэтому вопрос «на каком порту работает ICMP?» — это как спросить «какой этаж у фундамента?». Ответ: ICMP работает ниже уровня портов, у него нет и не может быть порта.

Основные типы ICMP

TypeCodeНазваниеИспользование
00Echo ReplyОтвет на ping
30–15Destination UnreachableХост/порт/сеть недоступны
50–3RedirectИзменение маршрута (опасно: MitM)
80Echo RequestЗапрос ping
110–1Time ExceededTTL истёк (используется traceroute)
Для SOC: ICMP может использоваться как канал эксфильтрации (ICMP tunneling) — данные встраиваются в поле payload Echo Request/Reply. Стандартный ping имеет небольшой предсказуемый размер payload: Linux — 56 байт (итого ICMP = 64 байта), Windows — 32 байта, Cisco IOS — 100 байт. ICMP-пакеты с аномально большим телом или высокой частотой — подозрительны. Wireshark-фильтр: icmp and frame.len > 100.
🔢

IP-адресация, подсети, NAT, IPv6Маски, CIDR, wildcard, «белые» и «серые» IP, NAT, основы v6

«Белые» (публичные) и «серые» (частные) IP

Частные диапазоны (RFC 1918)

Эти адреса не маршрутизируются в интернете — используются только внутри локальных сетей. Для выхода в интернет преобразуются через NAT.

ДиапазонCIDRМаскаКол-во адресовТипичное использование
10.0.0.0 – 10.255.255.25510.0.0.0/8255.0.0.0~16.7 млнКрупные корпоративные сети
172.16.0.0 – 172.31.255.255172.16.0.0/12255.240.0.0~1 млнСредние сети, облачные VPC
192.168.0.0 – 192.168.255.255192.168.0.0/16255.255.0.0~65 тыс.Домашние сети, малый бизнес

Также важны: 127.0.0.0/8 (loopback), 169.254.0.0/16 (link-local / APIPA), 100.64.0.0/10 (CGNAT — carrier-grade NAT).

Маски подсетей и Wildcard

Таблица масок

Маска подсети определяет, какая часть IP-адреса — это сеть, а какая — хост. Wildcard — инверсия маски (используется в ACL Cisco, OSPF). Wildcard = 255.255.255.255 − маска.

CIDRМаскаWildcardХостовПримечание
/32255.255.255.2550.0.0.01Один хост (host route)
/30255.255.255.2520.0.0.32Point-to-point линк
/28255.255.255.2400.0.0.1514Малая подсеть
/24255.255.255.00.0.0.255254Стандартная подсеть (исторически «класс C»*)
/16255.255.0.00.0.255.25565 534Крупная подсеть (исторически «класс B»*)
/8255.0.0.00.255.255.255~16.7 млнОгромная сеть (исторически «класс A»*)
/00.0.0.0255.255.255.255ВсеDefault route (весь интернет)

* Classful addressing (классы A/B/C) устарел с 1993 года — заменён CIDR (RFC 1519). Термины встречаются в литературе и на собеседованиях, но в реальных сетях классовая маршрутизация не используется. В современных сетях маска задаётся через CIDR независимо от первого октета.

Адрес сети, хост и broadcast

Что такое адрес сети

Каждая подсеть имеет три особых адреса: адрес сети (все биты хостовой части = 0), broadcast-адрес (все биты хостовой части = 1) и адреса хостов (всё между ними). Адрес сети — это идентификатор самой сети, он не назначается никакому устройству. Broadcast — адрес для отправки пакета всем устройствам в сети.

Пример: 192.168.1.0/24192.168.1.0 ← Адрес сети (не назначается устройствам) 192.168.1.1 ← Первый хост (обычно шлюз / роутер) 192.168.1.2 ← Второй хост ... 192.168.1.254 ← Последний хост 192.168.1.255 ← Broadcast (пакет всем в сети)

Маска /24 (255.255.255.0) означает: первые 3 октета — адрес сети, четвёртый октет — адреса хостов. Меняться может только четвёртый октет (0–255), из которых доступны 1–254 для устройств.

Что означает число после / (CIDR)

Число после / — это количество бит, отведённых под сетевую часть адреса. Оставшиеся биты (32 − CIDR) — хостовая часть, определяющая сколько устройств можно «повесить» на сеть. Чем больше число — тем больше бит занято сетью и тем меньше устройств.

Практические примеры: где какой октет меняется

CIDR → что меняется── /24: меняется только 4-й октет ────────────────────────── Сеть: 192.168.1.0 /24 Маска: 255.255.255.0 Диапазон: 192.168.1.1 – 192.168.1.254 └── меняется только этот октет Хостов: 254 Пример: типичная сеть офиса, этажа, VLAN ── /16: меняются 3-й и 4-й октеты ────────────────────────── Сеть: 10.10.0.0 /16 Маска: 255.255.0.0 Диапазон: 10.10.0.1 – 10.10.255.254 └─┴── меняются оба октета Хостов: 65 534 Пример: крупный корпоративный сегмент ── /8: меняются 2-й, 3-й и 4-й октеты ────────────────────── Сеть: 10.0.0.0 /8 Маска: 255.0.0.0 Диапазон: 10.0.0.1 – 10.255.255.254 └─┴─┴── меняются три октета Хостов: ~16.7 млн Пример: весь частный диапазон 10.x.x.x ── /28: меняется часть 4-го октета ────────────────────────── Сеть: 192.168.1.0 /28 Маска: 255.255.255.240 Диапазон: 192.168.1.1 – 192.168.1.14 └── только 4 бита свободны (2⁴ − 2 = 14) Хостов: 14 Пример: маленький сегмент DMZ, серверная подсеть
Быстрый расчёт: в работе выручит любой subnet-калькулятор, но формулу знать обязательно. Количество хостов = 2^(32 − CIDR) − 2. Минус 2: один адрес — сеть (все нули в хостовой части), другой — broadcast (все единицы). Пример: /24 → 2⁸ − 2 = 254 хоста; /16 → 2¹⁶ − 2 = 65 534 хоста. Исключения: /31 (point-to-point, RFC 3021 — 2 хоста без broadcast) и /32 (один конкретный хост, host route).

NAT — трансляция адресов

Типы NAT

NAT (Network Address Translation) — механизм подмены IP-адресов и/или портов в заголовках пакетов при их прохождении через маршрутизатор. Появился как костыль для экономии IPv4, стал де-факто механизмом периметровой защиты.

  • SNAT (Source NAT) — подменяется исходный адрес. Пример: внутренний хост 10.0.0.5 идёт в интернет, пакет выходит с адресом маршрутизатора 203.0.113.1. Классический выход LAN в WAN.
  • DNAT (Destination NAT) — подменяется адрес назначения. Пример: снаружи приходит пакет на 203.0.113.1:443, маршрутизатор подменяет адрес на 10.0.0.10:443. Это и есть «проброс портов» (port forwarding).
  • PAT (Port Address Translation) / NAPT / Masquerading — разновидность SNAT, когда несколько внутренних хостов выходят наружу через один внешний IP. Различаются по исходящему порту (который тоже подменяется). Это то, что делает домашний роутер.
  • Hairpin NAT (NAT loopback) — когда внутренний хост обращается к публичному IP собственного роутера и должен попасть на другой внутренний хост. Не все роутеры это умеют.
  • CGNAT (Carrier-Grade NAT) — NAT уровня провайдера. Клиенты получают адреса из 100.64.0.0/10, провайдер делает второй SNAT в публичный IP. Бич расследований: один публичный IP = сотни абонентов.

Для SOC: NAT-таблица маршрутизатора — единственный источник, связывающий внутренний IP с внешним потоком. Без логов NAT (conntrack, netflow на внутренней стороне) невозможно восстановить, какой хост в 10.0.0.0/8 ходил на IP-адрес злоумышленника. Логи NAT-трансляций — обязательный источник для SOC.

IPv6 — основы, которые надо знать

Почему IPv6 нельзя игнорировать

IPv6 — 128 бит вместо 32. В корпоративных сетях обычно dual-stack (v4 + v6 одновременно). Если SOC мониторит только v4 — половина трафика проходит мимо. Атакующие этим пользуются.

  • Представление: 8 групп по 4 hex-символа через «:». Примеры: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Сокращение нулей: 2001:db8:85a3::8a2e:370:7334 (двойное двоеточие — один раз в адресе).
  • Link-localfe80::/10, аналог 169.254/16 в v4. Есть у каждого интерфейса, не маршрутизируется. Используется для NDP, RA, соседских коммуникаций.
  • Global Unicast2000::/3, маршрутизируется в интернете. Аналог «белого» IP.
  • ULA (Unique Local)fc00::/7, аналог RFC 1918 для v6. Внутрикорп.
  • Multicastff00::/8. Broadcast в IPv6 не существует вообще.

NDP и SLAAC — замена ARP и DHCP

  • NDP (Neighbor Discovery Protocol) — заменяет ARP. Работает через ICMPv6 типы 133–137 (RS, RA, NS, NA, Redirect). «NDP spoofing» = ARP spoofing в мире v6.
  • SLAAC (Stateless Address Autoconfiguration) — хост сам генерирует IP-адрес на основе префикса из Router Advertisement и своего MAC/случайного токена. DHCP-сервер не нужен.
  • Privacy extensions (RFC 4941) — временные случайные адреса, меняются периодически. Усложняют корреляцию в логах: один хост может за день выйти в интернет с десятком разных v6.
  • RA Guard — защита на коммутаторе от rogue Router Advertisements. Без неё атакующий на том же L2 может объявить себя маршрутизатором и перехватить весь v6-трафик.

Для SOC: атаки класса rogue RA + SLAAC известны как «SLAAC attack» (или mitm6 — в контексте AD). Если в сети разрешён v6, но не настроен RA Guard — lateral movement и DNS-редирект из коробки.

🔌

Сокеты и TCP-окноЧто такое сетевой сокет, как работает управление потоком

Сетевой сокет

Сокет — это комбинация IP-адреса + порта, уникально идентифицирующая один конец сетевого соединения. Полное TCP-соединение определяется парой сокетов (четвёрка): IP_источника:Порт_источника ↔ IP_назначения:Порт_назначения.

ПримерКлиент: 192.168.1.100:52431 ← ephemeral port, назначен ОС Сервер: 203.0.113.10:443 ← well-known port (HTTPS) Сокет клиента: 192.168.1.100:52431 Сокет сервера: 203.0.113.10:443 Соединение: 192.168.1.100:52431 ↔ 203.0.113.10:443

Один сервер (один IP, один порт 443) может обслуживать тысячи клиентов одновременно — потому что каждое соединение уникально определяется четвёркой (src_ip, src_port, dst_ip, dst_port).

TCP-окно (Window Size)

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

  • Маленькое окно — получатель перегружен, просит замедлиться. Window Size = 0 → полная остановка (flow control).
  • Большое окно — получатель готов принимать много данных. Увеличивает throughput.
  • TCP Window Scaling (RFC 7323) — расширение, позволяющее окну превышать 65 535 байт. Критично для высокоскоростных каналов.

TCP Three-Way Handshake

HandshakeКлиент → Сервер: SYN (seq=100) Сервер → Клиент: SYN, ACK (seq=300, ack=101) Клиент → Сервер: ACK (seq=101, ack=301) ── Соединение установлено ── Завершение (4-way close): Клиент → Сервер: FIN, ACK (инициирует закрытие своей стороны) Сервер → Клиент: ACK (подтверждает FIN клиента; сервер ещё может слать данные) Сервер → Клиент: FIN, ACK (сервер готов закрыть свою сторону) Клиент → Сервер: ACK (подтверждает FIN сервера) ── Соединение закрыто ──

Флаг ACK установлен почти во всех сегментах после первого SYN — это норма. Когда говорят «сегмент SYN-ACK» или «FIN-ACK», имеется в виду сегмент с установленными флагами SYN (или FIN) и ACK одновременно, а не отдельный тип пакета.

Для SOC: SYN без последующего ACK = SYN scan (nmap -sS) или SYN flood DDoS. Множество SYN-пакетов к разным портам с одного IP — сканирование. Множество SYN к одному порту с разных IP — DDoS. Wireshark: tcp.flags.syn == 1 && tcp.flags.ack == 0.
🗺️

Протоколы маршрутизацииКак маршрутизаторы узнают, куда отправлять пакеты, и кто вообще рядом с ними?

Статическая vs Динамическая маршрутизация

Статическая: маршруты прописаны администратором вручную. Просто, но не масштабируется: при изменении топологии нужно менять вручную. Подходит для малых сетей и default route.

Динамическая: маршрутизаторы автоматически обмениваются информацией о маршрутах через протоколы маршрутизации. Адаптируется к изменениям топологии. Используется в средних и крупных сетях.

Основные протоколы

Обзор

ПротоколТипАлгоритмADМасштабОсобенности
RIPDistance VectorBellman-Ford120Малые сетиМакс. 15 хопов. Медленная сходимость. Устаревший, но встречается.
OSPFLink StateDijkstra (SPF)110Средние–крупныеБыстрая сходимость, area-based иерархия. Стандарт для enterprise.
EIGRPAdvanced DV (гибрид)DUAL90Средние (Cisco)Проприетарный Cisco (теперь открыт). Быстрая сходимость, unequal cost load balancing.
BGPPath VectorBest path selection20 (eBGP)Интернет«Протокол интернета». Соединяет автономные системы (AS). Политики маршрутизации.
IS-ISLink StateDijkstra (SPF)115Крупные (ISP)Альтернатива OSPF. Популярен у провайдеров и в дата-центрах.

Сходимость (convergence) — процесс, в ходе которого все маршрутизаторы сети приходят к единому согласованному представлению о топологии после изменения (упал линк, добавился маршрутизатор, изменилась стоимость маршрута). Время сходимости — одна из ключевых характеристик протокола: чем оно меньше, тем короче простой при отказе.
AD (Administrative Distance) — приоритет маршрута: чем ниже число, тем более «доверенным» считается маршрут. Если один маршрут получен через OSPF (AD=110) и через BGP (AD=20) — выиграет BGP.

Подробнее о каждом

RIP (Routing Information Protocol)

Самый простой протокол. Метрика — количество хопов (hop count). Максимум 15 хопов, 16 = «бесконечность» (сеть недоступна). Обновления — каждые 30 секунд. RIPv1 использует broadcast, RIPv2 — multicast на адрес 224.0.0.9 и добавил поддержку VLSM/CIDR. На практике: встречается в устаревших сетях и на экзаменах CCNA.

OSPF (Open Shortest Path First)

Стандарт де-факто для корпоративных сетей. Каждый маршрутизатор строит полную карту топологии (Link-State Database) и рассчитывает кратчайшие пути алгоритмом Dijkstra. Поддерживает area-based иерархию: Area 0 (backbone) связывает все остальные area, что масштабирует OSPF на тысячи маршрутизаторов. Метрика — cost (обратно пропорционален bandwidth).

BGP (Border Gateway Protocol)

BGP — единственный протокол, который связывает автономные системы (AS) интернета. Каждый провайдер, облако, крупная организация — это AS с уникальным номером (ASN). BGP не ищет «кратчайший путь» — он выбирает «лучший путь» по набору атрибутов и политик (AS-path, local preference, MED). eBGP — между AS (AD=20), iBGP — внутри AS (AD=200).

Для SOC: BGP-hijacking — атака, при которой злоумышленник анонсирует чужие IP-префиксы, перенаправляя трафик через себя (MitM на уровне интернета). Мониторинг: BGPStream, RIPE RIS, Cloudflare Radar. OSPF-инъекция в скомпрометированной корпоративной сети может перенаправить внутренний трафик через хост атакующего.
⚖️

L2 vs L3 — ключевая разницаИ почему L3-коммутатор — не маршрутизатор

Фундаментальное различие

L2 (канальный уровень)Работает с MAC-адресами (48-бит, аппаратные). Область действия — один широковещательный домен (broadcast domain). L2-коммутатор пересылает кадры (frames) между портами на основе таблицы MAC-адресов. Не знает об IP-адресах. Не может связать две разные подсети.
L3 (сетевой уровень)Работает с IP-адресами (32/128-бит, логические). Область действия — между подсетями и сетями. Маршрутизатор принимает пакет, смотрит IP-адрес назначения, ищет маршрут в таблице маршрутизации и пересылает в нужный интерфейс. Связывает разные подсети.

Почему L3-коммутатор — не маршрутизатор

L3-коммутатор (например, Cisco Catalyst 9300) умеет и коммутировать (L2), и маршрутизировать (L3). Но он не заменяет полноценный маршрутизатор. Вот ключевые отличия:

  • Стоимость: в пересчёте на порт L3-коммутатор заметно дешевле полноценного маршрутизатора — десятки портов в одном корпусе против нескольких у роутера.
  • Интерфейсы: L3-коммутатор — это десятки Ethernet-портов. Маршрутизатор — это WAN-интерфейсы (Serial, DSL, 4G/5G, MPLS), поддержка разных типов каналов.
  • NAT: Маршрутизатор выполняет NAT (трансляция адресов) для выхода в интернет. Большинство L3-коммутаторов — нет (или ограниченно).
  • Полные протоколы маршрутизации: Маршрутизатор поддерживает BGP, policy-based routing, VPN (IPsec, GRE), QoS на WAN. Исторически L3-коммутатор — только OSPF и статические маршруты для inter-VLAN routing. Современные enterprise-модели (Catalyst 9500, Arista 7280, Juniper QFX) тянут полный набор (BGP, EIGRP, IS-IS), но рассчитаны на DC/campus, а не на WAN.
  • Производительность: L3-коммутатор маршрутизирует аппаратно (ASIC) на скорости линии. Edge/branch маршрутизаторы часто CPU-based и медленнее, но флагманы уровня Cisco ASR 9000 или Juniper MX тоже используют NPU/ASIC и работают на терабитных скоростях. Упрощённая формула «switch = ASIC, router = CPU» верна только для массового сегмента.
  • Типичная роль: L3-коммутатор — «быстро маршрутизировать между VLAN внутри campus-сети». Маршрутизатор — «связать campus с интернетом/WAN/филиалами».

Broadcast Domain vs Collision Domain

  • Collision domain: область, где кадры могут «столкнуться» (актуально для хабов, не для коммутаторов). Каждый порт коммутатора — отдельный collision domain.
  • Broadcast domain: область, куда доходит широковещательный кадр (FF:FF:FF:FF:FF:FF). Все порты одного VLAN = один broadcast domain. Маршрутизатор (или L3-интерфейс) — граница broadcast domain.
Для SOC: ARP spoofing работает только внутри L2-домена (одного VLAN). Если сеть правильно сегментирована через VLAN + inter-VLAN routing на L3 — ARP-атаки ограничены одним сегментом. Поэтому сегментация сети (L3-границы между подсетями) — одна из ключевых мер защиты от lateral movement.
🖥️

Устройства по уровнямКакое оборудование и ПО работает на каком уровне модели

УровеньУстройствоЧто делаетРаботает сSOC-контекст
L1 Хаб, репитер, медиаконвертер Усиливает/повторяет сигнал на все порты, меняет среду передачи Биты, среда передачи Практически не используется. Весь трафик виден всем (нет изоляции).
L2 Коммутатор (Switch) Пересылает кадры по MAC-адресу, VLAN MAC-адреса, кадры Port security, 802.1X, VLAN segmentation, ARP inspection.
L2 Точка доступа Wi-Fi (AP) Мост между проводной и беспроводной сетью Кадры 802.11 Rogue AP, evil twin, деаутентификация, WPA-атаки.
L3 Маршрутизатор (Router) Пересылает пакеты между подсетями, NAT, WAN IP-адреса, пакеты ACL, BGP hijacking, route injection, VPN-терминация.
L3 L3-коммутатор Коммутация + inter-VLAN routing аппаратно MAC + IP Inter-VLAN routing, DHCP snooping, dynamic ARP inspection.
L3–L4 Stateful firewall Фильтрация по IP, портам, состоянию соединений IP, TCP/UDP, состояния Периметровая защита, сегментация, логирование deny/allow.
L3–L7 NGFW (Palo Alto, Fortinet, Check Point) App-ID, deep packet inspection, IPS, SSL decryption IP + TCP/UDP + содержимое приложения L7-логи — ключевой источник для SOC: какое приложение, какой пользователь (через AD-integration).
L4 Балансировщик нагрузки (L4 LB) Распределяет TCP/UDP-соединения между серверами IP:Port Скрывает реальные IP серверов, точка мониторинга трафика.
L7 WAF (Web Application Firewall) Инспектирует HTTP/HTTPS-содержимое HTTP-запросы, URI, headers Детекция SQLi, XSS, LFI. Логи WAF — ключевой источник для SOC.
L7 Прокси-сервер Посредник для HTTP/HTTPS, кеширование, фильтрация URL, HTTP-заголовки Логи прокси: кто, куда, когда. URL-фильтрация, SSL inspection.
L7 IDS/IPS (Suricata, Snort) Глубокая инспекция пакетов, сигнатурный анализ Полное содержимое пакетов Обнаружение атак, C2, эксплойтов. Алерты → SIEM.
Правило: Чем выше уровень устройства — тем больше контекста оно видит, но тем медленнее обработка. L2-коммутатор обрабатывает миллионы кадров в секунду аппаратно, но не видит содержимого. L7 WAF видит каждый HTTP-запрос, но создаёт задержку. SOC-аналитику нужны логи со всех уровней: L2 (MAC, VLAN) + L3 (IP, маршруты) + L4 (порты, файрвол) + L7 (содержимое, IDS).
📨

DHCPКак хост получает IP, и как это атакуют

DORA — 4 шага получения адреса

DHCP (Dynamic Host Configuration Protocol) работает на UDP: сервер 67, клиент 68. Клиент не имеет IP, поэтому диалог начинается с broadcast.

DHCP DORA1. Клиент → 255.255.255.255 DHCPDISCOVER «Кто тут DHCP-сервер?» 2. Сервер → MAC клиента* DHCPOFFER «Предлагаю 192.168.1.42» 3. Клиент → 255.255.255.255 DHCPREQUEST «Беру 192.168.1.42 от сервера X» 4. Сервер → MAC клиента* DHCPACK «Подтверждаю. Вот маска, шлюз, DNS, lease time»

После ACK клиент конфигурирует интерфейс. DISCOVER и REQUEST — всегда broadcast: своего IP у клиента ещё нет. * OFFER и ACK сервер обычно отправляет L2-unicast'ом на MAC клиента; broadcast используется, только если клиент выставил флаг Broadcast. Начало обмена в любом случае видно всем в broadcast domain.

Что ещё раздаёт DHCP, кроме IP

DHCP-сервер отдаёт не только адрес. Через «опции» (options) клиенту приходят:

  • Option 1 — маска подсети
  • Option 3 — default gateway
  • Option 6 — DNS-серверы
  • Option 15 — domain name (для search suffix)
  • Option 51 — lease time (типично — от нескольких часов до нескольких суток)
  • Option 66/67 — TFTP-сервер и boot filename (PXE-загрузка)
  • Option 121 — classless static routes (можно «дорисовать» маршрут к любой подсети через свой шлюз — это вектор атаки)
  • Option 252 — WPAD URL (автоконфигурация прокси; вектор WPAD-атак)

Атаки через DHCP

АтакаСутьЗащита
DHCP StarvationАтакующий заваливает сервер запросами с разными MAC — пул IP исчерпывается, легальные клиенты не получают адреса.Port security на коммутаторе (лимит MAC на порт), rate-limit.
Rogue DHCPАтакующий поднимает свой DHCP-сервер. Раздаёт свой IP как default gateway и DNS → MitM всего трафика.DHCP Snooping на коммутаторе: доверенные порты (trusted) — только туда, откуда легитимный сервер.
Option 121 injectionRogue DHCP отдаёт static route, уводящий трафик к конкретной подсети (например, VPN-шлюз) через хост атакующего. Работает в обход VPN-туннеля — свежая тема (2024, «TunnelVision»).DHCP Snooping + недоверие к DHCP в публичных сетях (отключать option 121 на клиенте, если возможно).
DHCPv6 spoofТо же для v6. Dual-stack сеть с жёстко настроенным DHCPv4, но свободным v6 — часто дырявая.DHCPv6 Guard + RA Guard на коммутаторе.
Для SOC: DHCP-логи (на самом сервере или через DHCP Snooping на коммутаторе) — связывают MAC, IP и время аренды. Без этой связки невозможно сказать, «какой хост имел IP 10.0.0.42 в момент инцидента три дня назад». DHCP-логи — обязательный источник для SIEM наряду с DNS и прокси.
🛡️

VPN-протоколыIPsec, OpenVPN, WireGuard — что видно снаружи, что внутри

ПротоколТранспорт / портШифрованиеОсобенности
IPsec (IKEv2) UDP 500 (IKE), UDP 4500 (NAT-T), IP protocol 50 (ESP) / 51 (AH) ESP (шифрует payload) / AH (только аутентификация, без шифрования) Стандарт корпоративных site-to-site VPN. Tunnel mode (шифрует весь IP-пакет) vs transport mode (только payload).
OpenVPN UDP 1194 (по умолчанию) или TCP 443 TLS (на базе OpenSSL) + собственный протокол Легко маскируется под HTTPS на 443/TCP. Популярен для обхода блокировок.
WireGuard UDP (произвольный порт, по умолчанию 51820) ChaCha20, Curve25519, BLAKE2s (жёстко прибитые примитивы) Простой, быстрый, в ядре Linux. Минимальный трафик — сложно детектировать. Использует Noise Protocol Framework.
L2TP/IPsec UDP 1701 + IPsec (500, 4500, ESP) IPsec снаружи, L2TP внутри Legacy. В Windows из коробки. Безопасность — через IPsec (сам L2TP шифрования не даёт).
PPTP TCP 1723 + GRE (protocol 47) MPPE (слабое) Считается сломанным. Если видишь в сети — это либо legacy, либо повод для алерта.
SSL/TLS VPN (OpenConnect, Cisco Secure Client / AnyConnect) TCP 443 (+ DTLS на 443/UDP) TLS Корпоративный remote access. Трафик неотличим от HTTPS снаружи.
VLESS+XTLS-Reality TCP 443 TLS с маскировкой под реальный сайт (SNI подменяется на настоящий) Современный антицензурный протокол. SNI идентичен легитимному, JA3 имитирует браузер. DPI практически бессилен.
Для SOC: VPN в исходящем трафике сотрудника — повод для вопроса «почему». Корпоративный VPN? OK. Коммерческий (NordVPN, Mullvad)? Нарушение политики и возможная эксфильтрация. Самописный WireGuard на нестандартный порт в облако с неизвестной репутацией? Потенциальный C2-канал. Детекция по метаданным: для IPsec — сам факт ESP-трафика (protocol 50) в потоке; для WireGuard — характерный хендшейк; для Reality — аномалия между SNI и назначением (SNI = cloudflare.com, но destination IP не принадлежит CF).
📡

Источники видимости для SOCКак трафик вообще попадает в поле зрения аналитика

SOC не видит пакеты напрямую — их нужно предъявить аналитическим системам (IDS, NSM, SIEM). Есть несколько способов, и каждый даёт свой уровень детализации.

NetFlow / IPFIX / sFlow

Метаданные потоков, а не сами пакеты. Маршрутизатор/коммутатор экспортирует записи вида «src_ip → dst_ip, порт, протокол, байт, пакетов, длительность» на коллектор.

  • NetFlow v5/v9 — формат Cisco. v5 — фиксированный, v9 — шаблонный (расширяемый).
  • IPFIX — IETF-стандарт (RFC 7011), эволюция NetFlow v9. Де-факто современный стандарт.
  • sFlow — sampling-based (статистическая выборка), не поток-ориентированный. Подходит для DC с гигантским трафиком.

Не видит содержимого пакетов, зато видит ВСЁ, и хранится в разы дешевле PCAP. Основной источник для baseline поведения сети и детекции аномалий.

SPAN / RSPAN / ERSPAN — зеркалирование порта

  • SPAN (Switched Port Analyzer) — коммутатор копирует трафик одного порта или VLAN на другой порт, к которому подключён сенсор (Suricata, Zeek, Wireshark).
  • RSPAN (Remote SPAN) — зеркало между коммутаторами через выделенный VLAN.
  • ERSPAN (Encapsulated RSPAN) — зеркало через L3 (GRE-инкапсуляция), можно слать через маршрутизированную сеть.

Минус SPAN: при перегрузке кадры дропаются (коммутатор приоритизирует нормальный трафик). Для критичных точек — TAP.

TAP — пассивный отвод

Аппаратное устройство в разрыв линка. Видит 100% трафика (в отличие от SPAN), не создаёт нагрузки на коммутатор, не теряет кадры. Дороже SPAN, требует физического доступа к линии. Золотой стандарт для периметрового мониторинга.

Host-based телеметрия (EDR/Sysmon)

Сетевого зеркала недостаточно — шифрованный трафик всё равно непрозрачен. На хостах собирается телеметрия процессов и соединений:

  • Sysmon (Windows) — EventID 3 (network connection) связывает TCP-соединение с конкретным процессом. EventID 22 — DNS-запрос от процесса.
  • auditd + eBPF (Linux)execve, connect, bind syscalls.
  • EDR (CrowdStrike, Defender for Endpoint, SentinelOne) — консолидированная телеметрия процессов + сети + файловой системы.
Для SOC: ни один источник не закрывает картину полностью. Здоровая SOC-архитектура: NetFlow (что куда ходило), SPAN/TAP + IDS (что именно шло), DNS/proxy-логи (какие имена резолвились), EDR (какой процесс это делал), firewall-логи (что блокировалось). Расследование инцидента — это корреляция между этими источниками по времени и IP/hostname.