Уязвимость массового присвоения
Массовое назначение — это уязвимость компьютера , при которой шаблон активной записи в веб-приложении используется для изменения элементов данных, к которым пользователю обычно не должен быть разрешен доступ, таких как пароль, предоставленные разрешения или статус администратора.
Многие платформы веб-приложений предлагают функции активной записи и объектно-реляционного сопоставления , при которых внешние данные в форматах сериализации автоматически преобразуются при вводе во внутренние объекты и, в свою очередь, в поля записей базы данных. Если интерфейс платформы для такого преобразования слишком разрешителен и разработчик приложения не помечает определенные поля как неизменяемые, можно перезаписать поля, которые никогда не предназначались для изменения извне (например, флаг разрешений администратора). [1]
Эти уязвимости были обнаружены в приложениях, написанных на Ruby on Rails . [2] АСП.NET MVC , [3] и Java платформа Play . [4]
В 2012 году массовое назначение на Ruby on Rails позволило обойти ограничения сопоставления и привело к доказательству концепции внедрения неавторизованных SSH открытых ключей в учетные записи пользователей на GitHub . [5] [6] Дальнейшие уязвимости в Ruby on Rails позволяли создавать внутренние объекты с помощью специально созданной структуры JSON . [7]
В ASP.NET Core ограничение сопоставления можно объявить с помощью [BindNever]
атрибут. [8]
См. также
[ редактировать ]- Объект передачи данных (DTO)
Ссылки
[ редактировать ]- ^ «CWE-915: Неправильно контролируемая модификация динамически определяемых атрибутов объекта» . Перечень распространенных слабостей . НИСТ . Проверено 27 февраля 2013 г.
- ^ «Массовое задание» . Руководство по безопасности Ruby On Rails . Проверено 27 февраля 2013 г.
- ^ «Уязвимость массового присвоения в ASP.NET MVC» . АйронсХэй . Проверено 27 февраля 2013 г.
- ^ Альберто Соуза (2014). «Playframework, как защититься от массового присвоения» .
- ^ «GitHub отстраняет участника из-за взлома «массового назначения»» . ЗДнет. 2012 . Проверено 27 февраля 2013 г.
- ^ «[SEC][ANN] Rails 3.2.12, 3.1.11 и 2.3.17 выпущены!» . Проверено 7 января 2016 г.
- ^ «Уязвимость отказа в обслуживании и небезопасного создания объектов в JSON (CVE-2013-0269)» . Проверено 7 января 2016 г.
- ^ тдыкстра (20 июня 2023 г.). «Привязка модели в ASP.NET Core» . docs.microsoft.com .