Небольшая утечка данных в теле ответа является операционным риском, если её нельзя устранить без изменения кода.
Backend не всегда производит идеальные ответы. Устаревшие приложения могут возвращать идентификационные номера, номера карт, адреса электронной почты, внутренние имена хостов, старые ссылки или ненужную техническую информацию. Поскольку эти значения появляются в теле ответа, а не в заголовках, их нельзя исправить стандартным правилом заголовка.
Исправление проблемы в коде приложения зачастую занимает много времени. Сервис может принадлежать другой команде, расписание выпусков может быть запланировано на месяцы вперёд, или исходный код может быть сложно изменить из-за устаревших технологий. Тем не менее команда безопасности и соответствия нормативам требует немедленного устранения утечки.
Вмешательство в тело ответа без должной осторожности само по себе может создать новые риски. Плохо написанное регулярное выражение может повредить целую страницу, HTML-инъекция может оказаться не в том месте, а обработка очень больших ответов может повлиять на производительность. Поэтому правила модификации тела должны применяться с управляемыми параметрами и чётко определённой областью действия.
Правильный подход — управлять операциями mask, replace и HTML tag для тела ответа как централизованными правилами трафика. Правило должно знать, к какому пути, типу контента или условию оно применяется; поведение совпадения и ограничения размера тела должны быть явно определены.
TR7 Модификация тела ответа маскирует, заменяет или внедряет HTML в содержимое ответа без изменения кода backend — устраняя утечки данных и потребности в исправлении устаревшего кода на слое ADC/WAAP.
Наш подход
TR7 обрабатывает модификацию тела ответа через три основных режима: маскирование, замена и внедрение HTML-тегов.
Режим mask скрывает конфиденциальные значения до того, как они будут увидены
Режим mask заменяет часть строки или значения, совпавшего с регулярным выражением, символом маскирования. Настройки смещения и минимального числа совпадений снижают риск ложных срабатываний.
Режим replace заменяет содержимое ответа управляемым способом
Режим replace заменяет определённую строку или совпадение регулярного выражения новым значением. Используется для исправления устаревших ссылок, скрытия внутренних имён хостов или нормализации небольших проблем с ответами.
Режим HTML tag внедряет управляемый контент на страницу
htmlTag может вставлять скрипты, баннеры, мета-теги или аналогичные HTML-фрагменты в ответ — без изменения шаблона приложения.
Условия и ограничения размера обеспечивают безопасное применение
Правила модификации тела могут быть ограничены конкретным vService, путём, типом контента или условием трафика. Ограничение тела по умолчанию поддерживается низким и может быть намеренно увеличено при необходимости.
Возможности
Модификация тела ответа вносит управляемые изменения в тела ответов для целей безопасности, соответствия нормативам и модернизации устаревших систем.
Действие modifyResponse централизует редактирование тела ответа
TR7 превращает изменения содержимого в централизованные правила через действие modifyResponse, которое работает с телом ответа. Правило выполняется во время фазы ответа и обрабатывает тело, поступающее от backend, до его пересылки клиенту. Эта структура позволяет быстро вносить исправления, не завися от кода приложения, шаблонов или процесса выпуска backend — и особенно ценна для устранения критических брешей безопасности в устаревших приложениях.
Режим mask может скрывать конфиденциальные поля посимвольно
Режим mask заменяет захваченное значение выбранным символом маскирования. Символ маскирования определяется как один символ и по умолчанию равен `*`. Настройка смещения позволяет определённому количеству символов в начале или в конце оставаться видимыми. Это защищает конфиденциальные данные в таких полях, как номера карт, идентификационные номера, идентификаторы пациентов или адреса электронной почты, сохраняя при этом частичную видимость.
Режим replace заменяет устаревший или рискованный текст новым значением
Режим replace заменяет определённую строку или совпадение регулярного выражения новым значением. Внутренние имена хостов, старые домены, неправильные ссылки, устаревшие эндпоинты или технические детали в ответе — всё это можно исправить. Операция нормализует вывод backend в финальной точке выхода. Клиент получает правильный и безопасный контент без каких-либо изменений в коде приложения.
Режим htmlTag может добавлять баннеры, скрипты или мета-контент на страницу
htmlTag вставляет определённые теги или контент в HTML-ответ. Полезен для уведомлений о техническом обслуживании, баннеров безопасности, текста для соответствия нормативам или небольших исправлений на стороне клиента. Подход добавляет контент на уровне ответа без изменения шаблона приложения. Правила могут быть ограничены определённым путём или условием хоста для управляемого применения.
Сопоставители строк и регулярных выражений охватывают разные шаблоны контента
Сопоставитель строк доступен для простого буквального сопоставления. Сопоставитель регулярных выражений можно выбрать для более сложных шаблонов. Регулярные выражения помогают захватывать переменные значения, такие как идентификационные номера, форматы номеров карт, адреса электронной почты или пользовательские организационные шаблоны. Операторы могут выбирать быстрое буквальное сопоставление или гибкое сопоставление на основе шаблонов в зависимости от своих потребностей.
Настройки чувствительности к регистру и исключаемых символов уточняют точность сопоставления
Чувствительность к регистру может быть критична в некоторых типах контента ответа. TR7 может управлять поведением сопоставителя с помощью настройки чувствительности к регистру. Такие опции, как исключаемые символы, позволяют сохранять определённые символы во время маскирования. Это обеспечивает более читаемый вывод маскирования для телефонных номеров, IBAN, номеров карт или значений с пользовательским форматированием.
Смещение маскирования обеспечивает управляемую видимость, например последних четырёх цифр
Полное маскирование не всегда желательно. Для целей аудита или пользовательского опыта последние четыре цифры, первые несколько символов или определённый раздел формата могут быть оставлены видимыми. Смещение маскирования превращает это поведение в параметр правила. Стандарт частичного маскирования применяется без какого-либо кода приложения.
Порог минимального числа совпадений снижает влияние ложных срабатываний
Некоторые шаблоны могут давать единичные случайные совпадения. Настройка минимального числа совпадений означает, что правило применяется только при обнаружении указанного количества совпадений. Это помогает предотвратить повреждение страницы излишне агрессивным маскированием. Шаблоны конфиденциальных данных применяются более безопасным и предсказуемым образом.
Ограничение размера тела поддерживает баланс между производительностью и безопасностью
Обработка тела ответа обходится дороже, чем применение правил заголовков. TR7 по умолчанию работает с ограниченным размером тела; это значение можно увеличить при необходимости. При работе с очень большими ответами необходимо учитывать влияние на производительность и память. Операторы должны запускать правила модификации тела только для тех сервисов и типов контента, где они действительно необходимы.
Применимо к сценариям с JSON, HTML и ответами в виде простого текста
Модификация тела может применяться к ответам JSON API, HTML-страницам или выводу в виде простого текста. Поддерживаются маскирование конфиденциальных полей в JSON, внедрение баннеров в HTML и скрытие внутренней информации в простом тексте. Правила могут быть ограничены условиями по типу контента и пути. Эта гибкость позволяет управлять разными типами приложений с помощью одного действия.
Работает совместно с маскированием конфиденциальных данных и предотвращением утечки данных
Модификация тела ответа — один из механизмов обеспечения на стороне ответа стратегии маскирования конфиденциальных данных. При совместном использовании маскирования IP в логах, шифрования cookie и маскирования тела ответа достигается более широкий контроль утечки данных. Даже если backend возвращает больше данных, чем предполагалось, TR7 может вмешаться в финальной точке выхода. Это даёт командам по соответствию нормативам дополнительный мощный уровень безопасности.
Условная модификация тела может быть построена с помощью движка правил трафика
Правило модификации тела не обязано выполняться для каждого ответа. Оно может активироваться хостом, путём, кодом статуса, типом контента, пользователем, исходным IP или другими условиями FX. Это обеспечивает применение модификации только на конфиденциальных эндпоинтах или для определённых групп пользователей. Ненужные затраты производительности и риск непреднамеренной замены — оба снижаются.
Операционная глубина
Модификация тела ответа должна проектироваться совместно с типом сопоставителя, размером тела, областью типа контента, сжатием, поведением при потоковой передаче и видимостью аудита.
Тип сопоставителя
Сопоставитель строк подходит для быстрых детерминированных совпадений. Сопоставитель регулярных выражений более гибкий, но при неправильном написании может давать слишком широкие совпадения. Для критических правил рекомендуется тестирование в узко ограниченных условиях.
Размер тела
Ограничение тела по умолчанию поддерживается малым и может быть увеличено при необходимости. Обработка больших ответов создаёт накладные расходы на память и задержку. Если ограничение нужно увеличить до сотен МБ, область эндпоинтов должна быть тщательно ограничена.
Область типа контента
Правила должны быть ограничены только ответами JSON, HTML или text. Модификация тела не должна применяться к двоичным файлам, архивам или медиа-ответам. Фильтр по типу контента важен для безопасной работы.
Поведение при сжатии
Если ответ сжат, контент должен находиться в обрабатываемом состоянии до запуска модификации тела. Последовательность сжатия и модификации должна быть правильно спланирована. В противном случае сопоставитель не увидит ожидаемый текст.
Влияние потоковой передачи
Модификация тела при потоковых ответах требует более тщательной обработки. Границы совпадений и поведение буфера важны для чанкового контента. Область правила должна быть узкой для больших или непрерывных потоков.
Видимость аудита
Можно логировать, какое правило выполнялось для какого ответа. Вместо логирования самого конфиденциального значения следует сохранять метаданные, такие как имя правила, эндпоинт и количество совпадений. Это создаёт более безопасную запись аудита для проверок соответствия нормативам и безопасности.
Когда применять
Частичное маскирование номеров карт в ответах API
Финансовое приложение может возвращать номера карт в своём ответе. TR7 маскирует всё, кроме последних четырёх цифр, снижая риск раскрытия конфиденциальных данных.
Скрытие идентификационных данных пациентов в медицинском портале
Устаревшее медицинское приложение может возвращать идентификаторы пациентов или идентификационную информацию в своём ответе. TR7 скрывает эти поля с помощью маскирования на основе регулярных выражений до того, как они достигнут пользователя.
Перезапись устаревших доменных ссылок на новый домен
HTML-ответ может содержать ссылки на старый домен или внутренние имена хостов. Режим replace заменяет эти ссылки новым публичным доменом, упрощая процесс миграции.
Внедрение баннера безопасности или технического обслуживания в HTML-страницы
Когда шаблон приложения нельзя изменить, TR7 может использовать режим htmlTag для добавления баннера или информационного фрагмента на страницу. Это обеспечивает практичное решение для временных уведомлений о техническом обслуживании и соответствии нормативам.
Устранение утечек внутренней информации при выходе ответа
Backend может возвращать внутренние IP-адреса, имена хостов или техническую информацию о версии в своём ответе. TR7 удаляет эту информацию до того, как она достигнет клиента, используя правило replace или mask.
Часто задаваемые вопросы
Можно ли использовать режимы mask, replace и htmlTag вместе в одной конфигурации?
Как работает смещение маскирования и как оставить видимыми последние четыре цифры?
Почему важен размер тела и как его настроить?
Как снизить риск ложных срабатываний при использовании сопоставителя регулярных выражений?
В чём разница между этой возможностью и перезаписью ответа, упомянутой на странице Content-Aware Rules?
Влияет ли эта возможность на CSP, HSTS или другие заголовки безопасности?
Трансформируйте содержимое ответа без изменения кода backend
Маскирование конфиденциальных данных, перезапись устаревших ссылок и внедрение баннеров через режимы mask, replace и htmlTag. Давайте разберём живую настройку на ваших собственных сервисах.