База данных Lotus Notes содержит документы, которые организованы в представления. Списки управления доступом могут применяться непосредственно к базе данных, представлениям и документам. Если пользователь был лишен доступа к представлениям, то возможно обойти набор разрешений и получить доступ к защищенным документам.

Причина этой уязвимости существует в возможности обращения к документу от любого представления.
В качестве примера уязвимости приведем базу данных статистики, statrep.nsf. Если вы открываете представление:

http://server/statrep.nsf/136/?OpenView — документ существует ((136 — NoteID представления)

если открываем спрятанное представление $Alarms

http://server/statrep.nsf/$alarms/?OpenView — документ не существует.

Запрашивая один из документов:

http://server/statrep.nsf/136/8F6?OpenDocument

(8F6 — NoteID первого документа)

Note просматривает этот документ и запрашивает следующий URL:

http://server/statrep.nsf/$alarms/8F6?OpenDocument

OpenDocument возвращен, даже при том, что что $alarms не имеет никаких документов.

Теперь, если мы применим средство управления доступа к представлению и запросим:

http://server/statrep.nsf/136/8F6?OpenDocument

сервер выдаст ошибку: Illegal Argument exeception. Однако, если запросим:

http://server/statrep.nsf/$alarms/8F6?OpenDocument

сервер возвратит документ, даже при том, что к нему запрещен доступ.

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

Решение этой проблемы состоит в том, что если вы хотите применять ACL к представлению, документы в этом представлении также должны быть защищены.

В следующей версии Domino 5.0.9 проблема будет устранена.



Оставить мнение