Библиотеки Java могут самостоятельно создать эксплойт на устройстве

6691
Библиотеки Java могут самостоятельно создать эксплойт на устройстве

Процесс десериализации позволяет хакеру захватить контроль над устройством.

Специалисты из университетов Франции, Германии, Люксембурга и Швеции изучили известные уязвимости десериализации Java и пришли к выводу, что библиотеки могут создать опасные недостатки в системе безопасности.

Сериализация используется для преобразования объекта данных в памяти в серию байтов для хранения или передачи. Десериализация превращает поток данных обратно в объект в памяти.

Согласно статье, злоумышленник может создать поток байтов, который при десериализации на удаленном узле сможет управлять потоком выполнения кода Java, связывая последовательности кода (гаджеты). Библиотека может содержать гаджеты, которые можно объединять в цепочки, чтобы они работали последовательно. Использование уязвимости десериализации включает в себя сложную цепочку атак или может быть таким же простым, как выполнения GET-запроса по сети.

При анализе 19 RCE-уязвимостей десериализации специалисты определили несколько способов внедрения гаджета в библиотеку: добавление классов, методов и интерфейсов или изменение сигнатуры методов. Главный вывод ученых заключается в том, что модификация одной детали в классе, например, обнародование, уже может представить гаджет.

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