ТОМ II · ПРИКЛАДНОЙ И ИНФРАСТРУКТУРНЫЙ ПЕНТЕСТИНГ | API-BOP-02 (OWASP API3:2023 (BOPLA))

Поэлементный контроль схем запросов и ответов для защиты от массового присваивания свойств

1. ПРОСТЫМИ СЛОВАМИ — БЕЗОПАСНИКУ, СИЛОВИКУ И КОМИССИИ (БЕЗ ЖАРГОНА)

При обычном изменении имени в анкете пользователь дописывает в тело запроса скрытое поле с признаком администратора или суммой баланса, а сервер без разбора копирует все присланные поля в запись таблицы. Испытатель проверяет привязку свойств на учебной карточке и в автоматическом режиме выпускает строгий белый список полей.

2. ПРИБОРНАЯ БАЗА — ТЕХНИЧЕСКОМУ ПРОВЕРЯЮЩЕМУ, РЕВИЗОРУ И ИНЖЕНЕРУ

Нарушение разграничения доступа на уровне свойств объекта объединяет две зеркальные ошибки: массовое присваивание при записи, когда прикладной каркас автоматически переносит все ключи входного пакета JSON в поля внутренней записи хранилища, и избыточную выдачу свойств при чтении, когда сервер возвращает клиенту полную выгрузку строки со служебными атрибутами.

3. СВОДКА НА ТРЁХ ЯЗЫКАХ АУДИТОРИИ (API-BOP-02 · БЕЗОПАСНИК / РЕВИЗОР / ТЕХНОКРАТ VC)
Силовику и руководителю (без жаргона): Перехват «Persist unauthorized privilege attribute (is_admin, role, balance) into production ORM record or leak hidden fields» до сокета (0 вреда рабочей базе, готовая печать ГОСТ)
Техническому проверяющему (улика):     Норма ГОСТ Р 56939-2024 §5.4.3; Приказ ФСТЭК России от 11.04.2025 № 117 п. 45 | Фильтр SEC-ZD-V2-02 | Свидетель d830a519c47e2064
Технократу, CTO и VC (математика):     Инвариант Z3 (assert (and (subset (json_input_keys req) (allowed_write_... | FP = 0,0% | Правило IMMUNE-BOP-D830A519 (mcp-sentinel 1.1.2)

1. Схема перехвата на проводе и выпуска контракта для API-BOP-02

СХЕМА ПЕРЕХВАТА И ДОКАЗАТЕЛЬСТВА БЕЗ УЩЕРБА ДЛЯ КЛАССА API-BOP-02 (OWASP API3:2023 (BOPLA)) Избыточный пакет полей Подстановка поля роли и счёта Фильтр SEC-ZD-V2-02 Блок записи в рабочую базу Свидетель d830a519 Сверка лишних свойств Правило IMMUNE-BOP-D830A519 Белый список полей схемы

Инструментальный цикл проверки по классу API-BOP-02 (OWASP API3:2023 (BOPLA), CWE-915 / CWE-213): блокировка опасной мутации правилом SEC-ZD-V2-02 до сокета, фиксация свидетеля d830a519c47e2064 и выпуск контракта IMMUNE-BOP-D830A519 для шлюза mcp-sentinel.

2. Фильтр нулевого ущерба и формальный инвариант решателя для API-BOP-02

По правилу SEC-ZD-V2-02 программный фильтр на проводе допускает проверочную подстановку дополнительных атрибутов только для синтетических карточек полигона и блокирует любые попытки изменить реальные флаги полномочий, финансовые остатки или привязку к организации до отправки в сокет.

На испытательном стенде анализатор передаёт контрольное служебное свойство вместе с разрешёнными полями анкеты и сверяет состояние объекта с эталонной ручкой, применяющей жёсткую схему переноса полей. Факт несанкционированной записи или чтения скрытого атрибута подтверждается свидетелем d830a519c47e2064 без ложных тревог.

ПАСПОРТНЫЕ ПАРАМЕТРЫ КЛАССА API-BOP-02 (ТОМ II · КАТАЛОГ ВЕКТОРОВ INDRA)
Код класса:              API-BOP-02 (mass_assignment_bopla)
Международные матрицы:   OWASP API3:2023 (BOPLA) | CWE-915 / CWE-213
Нормативная привязка:    ГОСТ Р 56939-2024 §5.4.3; Приказ ФСТЭК России от 11.04.2025 № 117 п. 45
Режим проверки:          Активное безопасное зондирование (AUTO_SCAN)
Проверочный зонд:        PATCH /api/v1/users/me {"display_name":"Alex","is_admin":true,"account_balance":999999,"internal_tier":"enterprise_unlimited"}
Перехваченная мутация:   Persist unauthorized privilege attribute (is_admin, role, balance) into production ORM record or leak hidden fields
Инвариант решателя Z3:   (assert (and (subset (json_input_keys req) (allowed_write_props route role)) (subset (json_output_keys resp) (allowed_read_props route role))))
Правило фильтра:         SEC-ZD-V2-02
Хэш свидетеля:           d830a519c47e2064
Скомпилированный фильтр: IMMUNE-BOP-D830A519 (mcp-sentinel 1.1.2)

3. Автоматический выпуск защитного контракта IMMUNE-BOP-D830A519 и квитанция ГОСТ Р 34.11-2012

Из свидетеля d830a519c47e2064 в автоматическом режиме компилируется контракт IMMUNE-BOP-D830A519 для перехватчика mcp-sentinel. Правило проверяет входной набор ключей по белому списку для текущей роли и вырезает неодобренные служебные поля из исходящего ответа.

4. Инженерные разъяснения по проверке и закрытию класса API-BOP-02

Отличие пообъектной проверки доступа от контроля отдельных свойств записи

Пользователь имеет полное право редактировать собственную карточку профиля как объект в целом, но не вправе менять внутри этой же карточки служебные поля роли, тарифа или лимита операций.

Автоматическая очистка ответов сервера от скрытых служебных полей

На выходе из защищаемого узла контракт сопоставляет структуру ответа с утверждённой схемой представления и удаляет внутренние идентификаторы, отпечатки паролей и технические пометки до отправки пакета клиенту.