Forwarded задаёт форму метаданных. Граница доверия определяет, какие значения и от какого соседа можно использовать.
Граница доверенного прокси
Определение
Граница доверенного прокси — заранее заданный список узлов, чьим заголовкам пересылки приложение соглашается верить. Значения от остальных отправителей входной шлюз удаляет или перезаписывает, иначе злоумышленник подставит чужой адрес, схему или имя узла.
Также ищут: proxy trust boundary · trusted proxy chain · Trusted proxy boundary
Зачем это знать
Без неё злоумышленник может подставить IP клиента, схему или узел и повлиять на перенаправления, журналы и решения о доступе.
Карта понятия
Что подтверждено
Приложение может доверять переданным метаданным только когда запрос пришёл от известного пути через прокси, а входной шлюз удаляет или перезаписывает значения клиента.
Граница применимости: Происхождение переданных метаданных.
Название Forwarded или X-Forwarded-For не доказывает происхождение: тот же заголовок может прислать внешний клиент.
Граница применимости: Синтаксис заголовка в сравнении с доверием к нему.
Цепочку доверия начинают с непосредственно наблюдаемого сетевого соседа и настроенного списка доверенных прокси. Адрес внутри Forwarded сам по себе не подтверждает, что запрос действительно пришёл от указанного узла.
Граница применимости: Разбор метаданных пересылки внутри явно заданной границы доверия; число переходов и направление разбора определяет конфигурация.
Если исходный сервер принимает прямой запрос в обход доверенного прокси, он не может применять к метаданным этого запроса доверие, обещанное только для пути через прокси. Такой вход отдельно ограничивают либо обрабатывают как недоверенный.
Граница применимости: Вывод для архитектуры с доверенными метаданными только от контролируемого входа; не запрещает все архитектуры с прямым доступом.
Даже корректно переданный адрес клиента описывает сетевой путь, а не автоматически личность пользователя и его право на запись. Решение о доступе требует предусмотренного приложением подтверждения.
Граница применимости: Граница сетевых метаданных и аутентификации/авторизации приложения.
Не путать
Доверие к прокси подтверждает происхождение пересланного значения. Допустимость адреса приложения проверяется отдельно.
Что проверить
- Перечислите разрешённых непосредственных соседей приложения.
- Удаляйте или перезаписывайте клиентские метаданные на контролируемом входе.
- Документируйте порядок разбора цепочки прокси.
- Проверьте поведение прямого запроса к исходному серверу.
- Не считайте адрес в заголовке удостоверением личности.
- Отдельно проверьте допустимые имена приложения.
- Проверяйте конфигурацию после добавления ещё одного прокси.
Первоисточники
- Testing for Host Header Injection
Описывает атаки через Host/X-Forwarded-Host и рекомендует не доверять им при построении reset links, redirects и routing decisions.
- HTTP Semantics
Определяет stateless HTTP, origin server, intermediaries, target URI и security significance полей authority и Host.
- Guidelines for API Protection for Cloud-Native Systems
Задаёт API lifecycle controls для authentication, authorization, rate limits, resource limits, logging и monitoring.
Утверждения: 05