Небезопасная десериализация
Что такое Небезопасная десериализация?
Небезопасная десериализацияУязвимость, при которой приложение десериализует недоверенные данные, позволяя атакующему создавать произвольные объекты и часто получать удалённое выполнение кода.
При преобразовании сериализованных данных (бинарные форматы Java/PHP/Python/.NET, YAML, JSON с метаданными типов) обратно в объекты десериализатор может вызывать конструкторы, магические методы или цепочки гаджетов. Получая недоверенный ввод, атакующий формирует payload, который во время десериализации вызывает опасные действия — RCE, обход аутентификации, запись файлов, DoS. Цепочки гаджетов в Apache Commons Collections (Java), Pickle (Python) и .NET BinaryFormatter становились причиной критических инцидентов. Защита: не десериализовать недоверенные данные, использовать форматы без восстановления типов (чистый JSON со схемами), подписывать сериализованные данные, allow-list типов, своевременно обновлять рантаймы.
● Примеры
- 01
Java-приложение десериализует сессионную cookie с Commons Collections в classpath — RCE.
- 02
Python-сервис выполняет pickle.loads на байтах, контролируемых пользователем.
● Частые вопросы
Что такое Небезопасная десериализация?
Уязвимость, при которой приложение десериализует недоверенные данные, позволяя атакующему создавать произвольные объекты и часто получать удалённое выполнение кода. Относится к категории Уязвимости в кибербезопасности.
Что означает Небезопасная десериализация?
Уязвимость, при которой приложение десериализует недоверенные данные, позволяя атакующему создавать произвольные объекты и часто получать удалённое выполнение кода.
Как защититься от Небезопасная десериализация?
Защита от Небезопасная десериализация обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Небезопасная десериализация?
Распространённые альтернативные названия: Небезопасная сериализация, Уязвимость десериализации объектов.