Пентест сайта: как согласовать IPv4-диапазоны и исключения до начала

В заявке на аудит написано «проверить сервер с сайтом», а в приложении указан целый блок адресов. Часть диапазона относится к тестовому окружению, один адрес нужно исключить, а внешний платёжный сервис вообще не принадлежит заказчику. До заказа пентеста стоит согласовать конкретные объекты и ограничения. Одна строка с названием компании не описывает технические границы работы.
Что должно быть понятно обеим сторонам
Опишите продукт, окружение, адреса и допустимые действия отдельно. Для веб-приложения важны также домены, роли пользователей и проверяемые сценарии. Для инфраструктуры могут понадобиться IP-блоки и ограничения по сервисам. Эти списки связаны, но один не заменяет остальные: на одном IP могут находиться разные приложения, а одно приложение может использовать несколько адресов.
OWASP WSTG прямо указывает на необходимость оставаться в определённой области работ. При согласовании заказа полезно зафиксировать, кто подтвердил состав объектов, какие исключения действуют, в какое окно проводят проверки и как остановить работу при проблеме. Это описание взаимодействия, а не автоматическое разрешение на проверку любого найденного адреса.
Покажите диапазон обычными адресами
CIDR использует IPv4-адрес и длину префикса после косой черты. В RFC 4632 приведены размеры блоков: например, /27 содержит 32 адресных значения, /28 — шестнадцать, /32 — одно. Для согласования полезно показать не только обозначение, но и начало с концом блока.
| Запись | Адресные значения | Роль в примере |
|---|---|---|
| Включить 203.0.113.0/27 | 203.0.113.0–203.0.113.31, всего 32 | Исходный набор |
| Исключить 203.0.113.16/28 | 203.0.113.16–203.0.113.31, всего 16 | Убирает правую половину |
| Исключить 203.0.113.3 | Одно значение | Убирает отдельный адрес из оставшейся части |
| Итог арифметики | 203.0.113.0–203.0.113.2 и 203.0.113.4–203.0.113.15 | 15 адресных значений; это не список обнаруженных узлов |
В примере используются специально выделенные документационные адреса, а не реальные цели проверки. Число пятнадцать означает мощность полученного множества. Из него нельзя вывести количество работающих серверов, стоимость пентеста или наличие полномочий на любые действия.
Не расширяйте неоднозначный ввод незаметно
Запись с адресом внутри подсети, например 203.0.113.17/28, может быть нормализована программой к блоку 203.0.113.16/28. Для этой учебной формы выбрано более строгое правило: требуется сразу указать адрес начала блока. Иначе строка отклоняется, чтобы человек подтвердил диапазон сам. Это правило интерфейса, а не утверждение, что любая запись хоста с маской запрещена другими системами.
Если нужен только один адрес, введите его без маски или с /32. Ведущие нули в октетах, сокращённые формы и IPv6 не принимаются. Так результат не зависит от того, как другая программа интерпретирует необычную запись IP.
Пересечения нельзя считать дважды
Если в исходном наборе есть блок /27 и вложенный в него /28, общий объём остаётся равным 32, а не 48. То же относится к перекрывающимся исключениям. Сначала форма объединяет каждый список, затем вычитает объединённые исключения из объединённых включений.
- Включено уникальных адресных значений
- Размер объединения исходных блоков без повторов.
- Убрано внутри включений
- Только та часть исключений, которая действительно пересекается с исходным набором.
- Исключения вне включений
- Отдельный счётчик значений, которые сейчас ничего не вычитают. Он помогает заметить ошибку списка, но не удаляет запись автоматически.
- Итоговые интервалы
- Непересекающиеся диапазоны после вычитания с первым и последним значением каждого.
Форма не разворачивает диапазон в отдельную строку на каждый адрес. Даже запись 0.0.0.0/0 обрабатывается как один числовой интервал. Это позволяет проверить арифметику размера без сетевых запросов. Наличие такой записи в результате не является предложением проверять всё IPv4-пространство.
Что проверить перед передачей задания
- Сопоставить каждый блок с владельцем и нужным окружением, не полагаясь только на название сервера.
- Отдельно согласовать сторонние компоненты, общую инфраструктуру и ограничения провайдера.
- Проверить, что исключения сохранились в итоговом документе, а не только в переписке.
- Зафиксировать версию списка и порядок изменения границ, если состав системы обновится.
Домены и IP нельзя смешивать без проверки. DNS-ответ может измениться, а общий адрес CDN не превращает все размещённые за ним ресурсы в один объект заказчика. Инструмент не разрешает доменные имена и не проверяет URL: их область работ нужно описывать отдельными правилами.
При заказе пентеста в Левицкий Концепт такой список поможет обсудить инфраструктурную часть, но не заменит описание самого веб-приложения и пользовательских ролей. Числовая сверка полезна до начала работ: она выявляет пересечения, широкие блоки и пропущенные исключения. Ни один адрес из формы не проверяется на доступность; результат остаётся локальным черновиком для согласования.
Сверить включённые IPv4-блоки и исключения
Локальная арифметика множеств, не пентест и не документ о полномочиях. До 20 включений, 20 исключений и 50 проверяемых адресов. CIDR требует адрес начала блока, без скрытого округления; только каноническая десятичная IPv4-запись без ведущих нулей. Считаются все адресные значения, не работающие узлы и не только usable hosts. Нет DNS, IPv6, портов, URL, проверки владения, сканирования, запросов к адресам или разрешения тестировать. Расчёт выполняется на вашем устройстве, введённые данные никуда не отправляются.
Материалы для проверки
Если нужна реализация
Состав работ зависит от текущего проекта и подтверждённой причины. Можно обсудить диагностику или разработку подходящего решения.
