Модель OSI — это как анатомия для врача. В реальной жизни ты не думаешь о том, как работает каждый орган, когда ставишь диагноз. Но когда пациент приходит с болью в правом боку, ты точно знаешь, что нужно проверить печень, а не сердце. Так же и с сетью: когда происходит инцидент, понимание уровней OSI помогает быстро определить, где именно искать проблему.
Зачем нужна модель OSI, если в реальности работает TCP/IP
Модель OSI описывает семь уровней сетевого взаимодействия. Прикладной, презентационный, сессионный, транспортный, сетевой, канальный и физический. Каждый уровень отвечает за свою часть работы. Отправка данных идёт сверху вниз, приём — снизу вверх. Каждый уровень добавляет свою служебную информацию.
В реальности используется модель TCP/IP. Она проще. Верхние три уровня OSI слиплись в один прикладной. Нижние два — в сетевой интерфейс. Получается четыре или пять уровней, в зависимости от источника.
Но модель OSI всё равно преподают. И не зря. Когда аналитик SOC разбирает инцидент, он думает категориями OSI. Когда настраивает фаервол, понимает, на каком уровне работает правило. Когда читает документацию к средству защиты, видит, что оно работает на сетевом уровне или на прикладном.
Модель TCP/IP упрощает понимание того, как данные реально передаются по сети. Модель OSI помогает систематизировать знания о том, где именно работают разные протоколы и технологии защиты.
Физический и канальный уровни: где начинается безопасность
Физический уровень — это электрические импульсы по меди, световые импульсы по оптике, радиоволны в эфире. Протоколов здесь нет. Есть только сигнал и его характеристики. Безопасность на этом уровне — это защита кабельной инфраструктуры. Замок на серверной. Видеонаблюдение. Контроль доступа в дата-центр.
Канальный уровень — это уже протоколы. MAC-адреса. Ethernet. Wi-Fi. ARP. Коммутаторы работают на этом уровне. Они смотрят на MAC-адреса и пересылают кадры только тому устройству, которому они адресованы.
Многие думают, что фильтрация по MAC-адресу — это хорошая идея. Подключается неизвестное устройство, фаервол смотрит на MAC-адрес и блокирует его. Проблема в том, что MAC-адрес легко подделать. Злоумышленник берёт MAC-адрес разрешённого устройства и спокойно подключается к сети. Это называется MAC-спуфинг. Работает за пять минут.
Правильное решение для контроля доступа на канальном уровне — это 802.1x. Протокол требует аутентификации устройства перед тем, как оно получит доступ к сети. Устройство должно предъявить сертификат или учётные данные. Без этого порт на коммутаторе остаётся заблокированным. Это работает до того, как устройство получит IP-адрес.
ARP работает на канальном уровне. Он преобразует IP-адреса в MAC-адреса. Атака ARP-спуфинг позволяет злоумышленнику перехватывать трафик в локальной сети. Устройство отправляет ложные ARP-ответы и становится посредником между жертвой и шлюзом. Весь трафик идёт через атакующего.
Сетевой уровень: IPsec и защита маршрутизации
Сетевой уровень — это IP-адреса и маршрутизация. Протоколы IP, ICMP, IPsec. Маршрутизаторы работают на этом уровне. Они смотрят на IP-адреса и принимают решения, куда пересылать пакеты.
IPsec — это набор протоколов для защиты IP-трафика. Работает на сетевом уровне. Шифрует весь пакет целиком, включая заголовки IP. Это значит, что злоумышленник не видит ни адреса отправителя и получателя, ни тип протокола, ни полезную нагрузку.
IPsec прозрачен для приложений. Приложение не знает, что его трафик шифруется. Не нужно менять код, настраивать сертификаты, переделывать архитектуру. Просто включаешь IPsec на маршрутизаторах, и весь трафик между сайтами защищён.
Это отличается от TLS. TLS работает на прикладном уровне. Шифрует только полезную нагрузку. Заголовки TCP и IP остаются открытыми. Приложение должно поддерживать TLS. Нужно настраивать сертификаты, обновлять библиотеки, следить за версиями протокола.
IPsec использует два режима. Транспортный шифрует только полезную нагрузку IP-пакета. Заголовок IP остаётся открытым. Туннельный шифрует весь пакет целиком и упаковывает его в новый IP-пакет. Это используется для VPN между сайтами.
Атаки на сетевом уровне включают IP-спуфинг, ICMP-атаки, фрагментацию пакетов. IP-спуфинг — это подделка IP-адреса отправителя. Злоумышленник отправляет пакеты с чужим IP-адресом. Это используется для обхода фильтров по IP-адресам или для усиления DDoS-атак.
ICMP используется для диагностики сети. Ping, traceroute. Но ICMP может использоваться для атак. ICMP flood — это заваливание жертвы ICMP-запросами. Ping of death — отправка пакетов большего размера, чем может обработать система.
Транспортный уровень: TCP, UDP и безопасность сессий
Транспортный уровень — это TCP и UDP. TCP устанавливает соединение, гарантирует доставку, контролирует поток. UDP отправляет дейтаграммы без установления соединения, без гарантий доставки.
TCP работает через три этапа установления соединения. SYN, SYN-ACK, ACK. Это называется TCP handshake. После этого начинается передача данных.
TCP hijacking — это перехват TCP-сессии. Злоумышленник угадывает последовательные номера пакетов и вставляет свои данные в установленное соединение. Жертва думает, что данные пришли от законного отправителя.
Session hijacking — это более общая атака. Злоумышленник перехватывает сессию после аутентификации. Получает доступ к системе без пароля. Это работает, если сессия передаётся в открытом виде или если злоумышленник может перехватить cookie или токен.
Транспортный уровень сам по себе не обеспечивает безопасность. TCP и UDP не шифруют данные. Не аутентифицируют стороны. Не защищают от перехвата. Для этого нужны протоколы верхних уровней. TLS работает поверх TCP. IPsec может работать в транспортном режиме и шифровать TCP-сегменты.
UDP используется для приложений, где важна скорость, а не надёжность. DNS, VoIP, видеоконференции. DNS-запросы идут по UDP. Если DNS-запрос перехвачен, злоумышленник может подменить ответ. Это называется DNS-спуфинг. Пользователь думает, что обращается к правильному сайту, а на самом деле попадает на фишинговый.
Прикладной уровень: где работает большинство протоколов безопасности
Прикладной уровень — это HTTP, FTP, SMTP, SSH, DNS. Протоколы, с которыми работают пользователи и приложения. Здесь работает большинство протоколов безопасности.
HTTPS — это HTTP поверх TLS. TLS шифрует трафик между браузером и веб-сервером. Пользователь видит замочек в адресной строке. Сертификат подтверждает, что сервер принадлежит законному владельцу.
FTPS — это FTP поверх TLS. Защищённая передача файлов. SMTPS — это SMTP поверх TLS. Защищённая отправка почты. SSH — это защищённый удалённый доступ. SSH шифрует весь трафик, включая команды и вывод.
TLS работает поверх TCP. Сначала устанавливается TCP-соединение. Потом начинается TLS handshake. Клиент и сервер обмениваются версиями протокола, алгоритмами шифрования, сертификатами. Клиент проверяет сертификат сервера. Генерируется симметричный ключ сессии. Дальше весь трафик шифруется этим ключом.
TLS использует гибридное шифрование. Асимметричное для обмена ключами. Симметричное для шифрования данных. Асимметричное шифрование медленное, но позволяет безопасно передать ключ. Симметричное быстрое, но требует безопасной передачи ключа. TLS объединяет преимущества обоих подходов.
Шифрование на прикладном уровне не защищает от атак на нижних уровнях. Если злоумышленник перехватывает трафик на канальном уровне, он видит заголовки TCP и IP. Видит, что установлено TLS-соединение. Видит IP-адреса. Не видит содержимое, но видит метаданные.
Если злоумышленник атакует на сетевом уровне, он может перенаправить трафик через свою систему. Даже если трафик зашифрован, злоумышленник может попытаться провести атаку человек-посередине. Подменить сертификат. Если пользователь не проверяет сертификат внимательно, он примет поддельный сертификат и продолжит работу.

Что это значит для практики
Понимание уровней OSI помогает строить многоуровневую защиту. Нельзя полагаться только на один уровень. Если защита только на прикладном уровне, атакующий может атаковать на сетевом или канальном уровне.
Контроль доступа на канальном уровне через 802.1x защищает от несанкционированного подключения устройств. Шифрование на сетевом уровне через IPsec защищает трафик между сайтами. Шифрование на прикладном уровне через TLS защищает данные пользователей.
Типичная ошибка полагаться только на фаервол. Фаервол работает на сетевом и транспортном уровнях. Фильтрует пакеты по IP-адресам и портам. Но если злоумышленник получил доступ к внутренней сети, фаервол уже не поможет. Нужен контроль на канальном уровне. Немного другая ошибка — думать, что шифрование решает все проблемы. TLS защищает данные в транзите. Но не защищает данные на сервере. Не защищает от уязвимостей в приложении. Не защищает от фишинга. Нужен комплексный подход. При разборе инцидентов понимание уровней помогает быстро определить вектор атаки. Если перехвачен трафик в локальной сети — это атака на канальном уровне. ARP-спуфинг или MAC-спуфинг. Если подменён DNS-ответ — это атака на прикладном уровне. Если перехвачен трафик между сайтами — это атака на сетевом уровне..