В Ruby обнаружен баг, связанный с сериализацией

Проблема сериализации и десериализации объектов добралась и до языка программирования Ruby. Баг обнаружили специалисты из компании Elttam, Австралия.

Суть проблемы

Сериализацией в программировании называется перевод структуры данных в любой другой формат, более удобный для хранения. Обратной операцией является операция десериализации — восстановление начального состояния структуры данных из битовой последовательности. Возможность этого встроена в Ruby и, как оказалось, она позволяет злоумышленникам использовать нативные механизмы языка для осуществления своих атак.

Исследователи из Elttam добавили к отчёту proof-of-concept эксплоит, который это реализует. Проблема состоит в том, что эти механизмы встроены в сам язык, а именно в версии от 2.0 до 2.5. Также предполагается, что возможно доработать методы атак и под более старые версии. Кроме того, в альтернативных реализациях Ruby под названием JRuby и Rubinius потенциально могут быть сходные проблемы.

Другие языки

Уязвимости сериализации и десериализации объектов есть и в других языках. В 2015 году их нашли в библиотеке FoxGlove Security для Java. В 2017 году похожую проблему обнаружили в библиотеках .NET, а в 2018 году — в PHP. В последнем случае это затрагивает движок WordPress. Зачастую проблемы решаются выпуском патчей, хотя нередко баги сложно выявить. При этом нужно понимать, что сериализация и десериализация данных сама по себе ослабляет их защиту.

В мае 2018 года Oracle сообщила, что собирается убрать из Java встроенную поддержку сериализации. Вместо неё будет использован компактный фреймворк.

Источник: tproger.ru

Поделиться с друзьями:
Андройд IT
Добавить комментарий