База: сети, TCP/IP, веб и основы криптографии
Белый хакер работает не с «магией взлома», а с предсказуемыми слоями технологий: сетью, протоколами, вебом и криптографией. Если в предыдущей статье мы закрепили этику, разрешение и границы (scope), то здесь вы получите технический фундамент, без которого невозможно ни корректно тестировать, ни грамотно описывать находки в отчёте.
Цель статьи — дать вам общий словарь и модель мышления: что где находится, как течёт трафик, где чаще всего возникают риски и какие «строительные блоки» безопасности используются в реальных системах.
Как мыслить слоями: от кабеля до приложения
Практически любую проверку удобнее раскладывать по уровням:
Канал и сеть: как пакеты вообще добираются до цели (IP, маршрутизация).
Транспорт: как приложения доставляют данные (TCP/UDP, порты).
Прикладной протокол: что именно передаётся (HTTP, DNS, SMTP и другие).
Безопасность поверх: шифрование и доверие (TLS, сертификаты, подписи).
Логика приложения: авторизация, права, бизнес-правила.!Стек TCP/IP и примеры протоколов по уровням
Эта модель помогает не только учиться, но и соблюдать правила ROE: вы понимаете, на каком уровне вы действуете (например, «мы тестируем только веб-уровень и не трогаем сетевую инфраструктуру»).
Сети и IP: адреса, маршрутизация, NAT
IP-адрес и подсеть
IP-адрес — это адрес устройства в сети. В повседневной практике вы чаще увидите IPv4 (например, 203.0.113.10), но IPv6 тоже широко используется.
Чтобы понимать «где находится» узел, важны два понятия:
Подсеть — группа адресов, которые обычно доступны друг другу напрямую.
Маска/префикс — сколько бит адреса относятся к сети (например, /24).Практический смысл для белого хакера:
один и тот же сервис может быть доступен снаружи по одному адресу, а внутри — по другому
в отчёте важно фиксировать, какой именно адрес/хост вы тестировали и откуда (внутренняя сеть, VPN, интернет)Маршрутизация
Маршрутизаторы выбирают путь, по которому пакеты идут к цели. Ошибки в маршрутизации и фильтрации (например, слишком широкие сетевые доступы между сегментами) часто приводят к тому, что компрометация одного узла «расползается» дальше.
NAT и «внешний» адрес
NAT (Network Address Translation) — механизм, когда множество внутренних адресов «прячутся» за одним внешним. Это типично для офисов и облачных сетей.
Важный вывод:
видимый в логах IP пользователя и реальная внутренняя машина могут быть разными
иногда тест «снаружи» и тест «изнутри» показывают разные поверхности атакиТранспорт: TCP, UDP и порты
Порты и сокеты
Порт — это числовой идентификатор сервиса на хосте. Связка IP:порт часто называют конечной точкой.
Примеры распространённых портов:
| Протокол/сервис | Типичный порт | Зачем важно белому хакеру |
|---|---:|---|
| HTTP | 80 | часто есть редирект на HTTPS, иногда остаются забытые панели |
| HTTPS (HTTP поверх TLS) | 443 | основная поверхность веб-тестов |
| SSH | 22 | удалённое администрирование, риски ключей/доступов |
| DNS | 53 | влияет на резолвинг, может участвовать в атаках на инфраструктуру |
TCP
TCP — транспортный протокол с установлением соединения и гарантией доставки (в нормальных условиях). Он подходит для веба, почты, SSH.
Ключевые свойства TCP, которые полезно понимать:
соединение (есть состояние, стороны «договариваются»)
надёжность (потерянные данные переотправляются)
упорядочивание (данные приходят в правильной последовательности)UDP
UDP — «безсоединительный» протокол: легче и быстрее, но без встроенной гарантии доставки. Используется там, где важна скорость или поверх него построена своя логика (например, DNS, VoIP, некоторые VPN).
Практический смысл:
проблемы с UDP часто выглядят как «иногда работает, иногда нет»
не все сетевые средства мониторинга одинаково хорошо интерпретируют UDP, это влияет на расследования инцидентовDNS: как имя превращается в IP
DNS (Domain Name System) отвечает на вопрос: какому IP соответствует доменное имя.
Почему DNS важен в безопасности:
через DNS пользователи и сервисы находят инфраструктуру
ошибки в DNS могут уводить трафик «не туда»
многие проверки начинаются с понимания, какие поддомены существуют и куда они указываютБазовые элементы DNS, которые стоит знать:
A/AAAA — запись на IPv4/IPv6
CNAME — алиас на другое имя
MX — куда доставлять почту домена
TXT — текстовые записи (часто используются для проверок владения доменом и почтовых политик)Полезная справка:
Документация MDN по DNSВеб: HTTP как протокол и веб-приложение как система
HTTP-запрос и ответ
HTTP — прикладной протокол «запрос → ответ».
Что есть в запросе:
метод (например, GET, POST)
путь (например, /api/users)
заголовки (например, Host, Cookie, Authorization)
тело (например, JSON в POST)Что есть в ответе:
код статуса (например, 200, 401, 403, 500)
заголовки (например, Set-Cookie, Content-Type)
тело ответа (HTML/JSON/файл)!Как устроен обмен HTTP-запросом и ответом
Справка по HTTP:
MDN: Обзор HTTPМетоды и типичные коды статуса
Самый частый минимум для веб-проверок:
| Категория | Примеры | Смысл |
|---|---|---|
| Методы | GET, POST, PUT, DELETE | чтение, создание, обновление, удаление данных |
| Коды успеха | 200, 201, 204 | запрос обработан |
| Переадресация | 301, 302 | перевод на другой URL |
| Ошибки доступа | 401, 403 | не аутентифицирован / доступ запрещён |
| Ошибки сервера | 500, 502, 503 | проблема на стороне сервиса/инфраструктуры |
Cookie, сессии и токены
Веб по своей природе статeless: каждый запрос сам по себе. Чтобы «помнить пользователя», применяют механизмы состояния.
Основные варианты:
Сессия на сервере + cookie с идентификатором сессии
Токены (например, токен в заголовке Authorization)Важные свойства cookie, которые часто имеют отношение к безопасности:
HttpOnly — защищает от чтения cookie через JavaScript
Secure — отправка cookie только по HTTPS
SameSite — снижает риск некоторых межсайтовых атакСправка:
MDN: Set-CookieАутентификация и авторизация
Эти понятия часто путают, но в отчётах их нужно разделять.
Аутентификация — кто ты? (проверка личности: пароль, 2FA, сертификат, SSO)
Авторизация — что тебе можно? (проверка прав на действие/ресурс)Типовая находка в веб-проверках — проблемы именно авторизации: пользователь вошёл, но может делать то, что не должен (например, доступ к чужим данным через API).
API и форматы данных
Современные системы часто состоят из фронтенда и API. Самый распространённый формат — JSON.
Практический смысл для тестирования:
часто уязвимость находится не в «красивой» веб-странице, а в API-методе
важно видеть, какие поля реально принимает сервер и как он проверяет праваХорошая база по типовым классам веб-рисков:
OWASP Top 10HTTPS и TLS: шифрование канала и доверие
Что такое TLS
TLS (Transport Layer Security) — протокол, который обеспечивает:
шифрование трафика (конфиденциальность)
контроль целостности (защита от незаметной подмены)
аутентификацию сервера через сертификат (обычно)В вебе вы видите это как HTTPS: по сути, HTTP «внутри» TLS.
Сертификаты и цепочки доверия
Сертификат связывает доменное имя (например, example.com) с публичным ключом и подтверждается центром сертификации.
Что важно белому хакеру на практике:
сертификат должен соответствовать домену
сертификат должен быть действительным по срокам и цепочке доверия
неверные настройки TLS могут приводить к рискам даже при наличии HTTPS!Цепочка доверия сертификатов в TLS
Справка:
RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3Основы криптографии: что защищает данные и почему это работает
Криптография в прикладной безопасности — это не «сложная математика ради математики», а набор инструментов для четырёх задач:
конфиденциальность (чтобы не прочитали)
целостность (чтобы незаметно не изменили)
аутентичность (чтобы знать источник)
неотказуемость (чтобы сложнее было отрицать авторство)Симметричное шифрование
Симметричное шифрование использует один общий секретный ключ для шифрования и расшифрования.
плюс: быстро
минус: нужно безопасно передать/хранить общий ключВ TLS симметричное шифрование обычно используется после того, как стороны безопасно договорились о ключах.
Асимметричная криптография
Асимметричная криптография использует пару ключей:
публичный ключ — можно распространять
приватный ключ — должен оставаться в секретеПрименения:
обмен ключами (чтобы договориться о секрете)
цифровые подписиХэш-функции
Хэш-функция преобразует данные произвольной длины в строку фиксированной длины (хэш). Важно, что:
небольшое изменение входа сильно меняет хэш
трудно подобрать другой вход с тем же хэшем (устойчивость к коллизиям и подмене)Хэши применяют для:
контроля целостности
хранения паролей в виде хэшей (но правильно — с солью и медленными алгоритмами)Справка по рекомендациям хранения паролей (как ориентир для понимания «как должно быть»):
NIST SP 800-63B: Digital Identity GuidelinesЦифровые подписи
Цифровая подпись позволяет доказать, что:
сообщение подписал владелец приватного ключа
сообщение не менялось после подписанияЭто основа доверия в сертификатах TLS и многих механизмах обновлений ПО.
Почему длина ключа важна
Очень упрощённо, если ключ имеет бит, то число возможных ключей равно .
— количество бит в ключе
— сколько разных значений может принимать ключВывод без углубления в математику: увеличение длины ключа на 1 бит удваивает количество вариантов, которые нужно перебрать атакующему, а это резко увеличивает стоимость атаки.
Типичные ошибки, которые встречаются на практике
Эти примеры важны не как «инструкции атаки», а как карта того, что стоит уметь распознавать и объяснять.
Сеть и доступы
Веб-логика
Крипто-настройкиНиже — частые причины инцидентов на каждом уровне:
Ошибочная сегментация сети: сервис, который должен быть внутренним, доступен извне.
Слабая авторизация: пользователь может запрашивать данные, которые ему не принадлежат.
Неправильная работа с сессиями: сессия не инвалидируется при выходе, cookie без Secure.
Небезопасное хранение секретов: ключи и токены в репозитории или логах.
Устаревшие TLS-настройки: слабые протоколы/шифры, неверная конфигурация.
Неверное хранение паролей: быстрые хэши без соли или, хуже, хранение в открытом виде.Как это связывается с работой белого хакера
Техническая база нужна, чтобы соблюдать три профессиональных требования из первой статьи:
Работа в scope: вы понимаете, какие уровни и компоненты реально затрагиваете.
Минимизация вреда: вы выбираете безопасные способы подтверждения (например, доказать доступ без копирования лишних данных).
Качественный отчёт: вы можете точно описать уязвимость языком протоколов и механизмов (HTTP-заголовки, коды статуса, свойства cookie, модель доверия TLS).Дальше по курсу этот фундамент станет основой для практических тем: как тестировать веб-приложения и API, как читать сетевые следы, как классифицировать находки и давать исправления, которые действительно закрывают риск.