Администрирование Lotus Notes 4.1x и Lotus Domino 4.5

Список управления выполнением (ECL)


У этой возможности, окончательно оформившейся в только версии 4.5, длительная и любопытная предыстория.

Начнем с того, что при использовании любой почтовой системы имеется риск получить в письме присоединенный файл, содержащий выполняемую программу или интерпретируемый приложением компьютера получателя код. "Поспешное" выполнение этого файла на компьютере получателя может привести к "заражению компьютера вирусом" (исполняемая программа-вирусоноситель или интерпретируемый код-вирусоноситель, наподобие макровирусов в Microsoft Word или Microsoft Exel) или прямому причинению ущерба (исполняемая программа или интерпретируемый код типа "троянский конь").

Аналогичная ситуация наблюдается в большинстве систем "клиент-сервер", когда на компьютере клиента запускается полученный с сервера интерпретируемый код или исполняемая программа. Разница лишь в "степени доверия" к их разработчику (обычно она выше, чем при использовании почты) и "степени легкости запуска" (часто запуск выполняется даже без уведомления об этом пользователя).

Lotus Notes этих вопросах не является исключением, причем создание "троянских коней" возможно средствами самого Notes. В простейшем случае это кнопка или "горячая площадка" в любом поле типа Rich Text любого документа, например, в поле Body ("тело сообщения") стандартной почтовой формы. Нажатие такой кнопки или "щелчок мышью по горячей площадке" запускают связанные с этим объектом @-формулы или подпрограмму на LotusScript. Нет сомнений, что это очень полезная для разработки ряда приложений или просто документов возможность. Но эта же возможность может использоваться и для выполнения "совсем не ожидаемых" пользователем действий. Например, даже с использованием @-функций несложно написать @-формулу, которая получит из почтового ящика пользователя-получателя список всех его корреспондентов, и каждому из них, уже от имени "неосторожного" получателя, отправит письмо с точно такой же кнопкой. А классифицировать такую @-формулу приходится как почтовый вирус, ибо признаки размножения, хотя и требующие участия человека, у него имеются. Другим вариантом создания подобных "троянских коней" является форма, встроенная в документ. В ней содержится множество мест, в которые могут быть встроены @-формулы или подпрограммы на LotusScript


(скрипты), автоматически запускаемые в момент открытия пользователем такого документа. Третий вариант, доступный однако лишь разработчикам используемых в организации баз, не требует поиска "тонких мест" продукта - это обычные элементы дизайна базы: формы, агенты...

Разработчики Lotus Notes всегда знали о существовании подобных эффектов и по мере возможности занимались созданием средств борьбы с ними. В Notes версий 3.х при анализе различных типов @-формул прослеживается политика запретов на потенциально опасные действия. Факты создания пользователями "троянских коней", основанных на встроенных в поле типа Rich Text кнопках, отмечены в базе знаний по Notes (Lotus Notes Knowledge Base) еще в 1993-1994 годах. Возможность создания "троянских коней" на базе встроенной в документ формы также была известна разработчикам Lotus Notes, хотя об этом и не упоминалось в базе знаний по продукту. Но с появлением в Notes версии 4.0 языка LotusScript

придерживаться политики запретов стало невозможно, поскольку иначе была бы потеряна вся мощь языка и его встроенных классов. Требовался механизм доверия, основанный на "личной электронной подписи" создателя содержащего скрипты и @-формулы элемента дизайна или документа и позволяющий перед любым выполнением скриптов или @-формул этого элемента дизайна или документа проверять потенциальные способности его кода и априорный уровень доверия к его создателю. Однако, можно предположить, что из-за недостатка времени, версия Notes 4.0 появляется на рынок с применением такого механизма только при запуске агентов на сервере. В версии Notes 4.1 в свойства базы добавляется опция, разрешающая или запрещающая сохранять в ней документы с формой, встроенной в документ. При попытке открыть документ с встроенной формой пользователь предупреждается о потенциальной опасности, может отказаться от открытия и в меру возможностей исследовать вызывающий подозрение документ, в том числе и в пошаговом отладчике. Наконец, в Notes версии 4.5 вводится список управления выполнением (Execution Control List, ECL) на станции Notes.



Окно списка управления выполнением может быть получено выбором в меню File-Tools-User Preferences с последующим нажатием кнопки Seсurity

Options на закладке Basics.



Рис.  9.14  Окно списка управления выполнением станции



В левой части окна присутствует список тех, кем может быть "подписан" элемент дизайна или документ (When signed by:). В этот список могут быть добавлены полные имена разработчиков дизайна или шаблоны их имен, например, */InterTrustCorp/SU. Все элементы дизайна шаблонов баз, созданных самими разработчиками Lotus Notes, "подписываются" именем Lotus Notes Template Development/Lotus Notes. Предопределенное имя -No Signature- применяется для обозначения "неподписанных" элементов дизайна или документов. Наконец, предопределенное имя -Default- используется для обозначения "подписанных" элементов дизайна или документов, когда "подписавшее" его лицо не входит в заданный список.

В правой части окна (Allow:) для каждого имени или шаблона имен из списка перечисляются возможности, которые "разрешены" для скриптов и @-формул, имеющихся в элементах дизайна и документах, "подписанных этим именем":

·        Access to the file system - возможность присоединять и отсоединять файлы в/из полей типа Rich Text, возможность читать и записывать файлы в каталогах компьютера станции;

·        Access to current database - возможность читать или модифицировать информацию в текущей базе;

·        Access to environment variables - возможность читать или модифицировать значения переменных из файла NOTES.INI станции функциями @SetEnvironment и @GetEnvironment или аналогичными методами LotusScript;

·        Access to non-Notes databases - возможность читать информацию из баз данных "не Notes" форматов функциями @DBLookup, @DBColumn и @DBCommand;

·        Access to external code - возможность вызывать методы классов и функции из библиотек динамической компоновки, не входящих в поставку Notes;



·        Access to external programs - возможность запуска и работы с другими приложениями, включая активизацию любых OLE-объектов;

·        Ability to send mail

- способность отправлять почту @-функциями, например, @MailSend, и методами встроенных классов;

·        Ability to read other databases - способность читать информацию из других баз данных, но не из текущей базы;

·        Ability to modify other databases - способность изменять информацию в других базах данных, но не в текущей базе;

·        Ability to export data - способность выводить на принтер, копировать в буфер обмена, экспортировать и импортировать данные;

·        Access to Workstation Security ECL - возможность изменять список управления выполнением (ECL) станции.

В принципе право ведения списка управления выполнением предоставлено пользователю станции. По умолчанию установки в ECL станции таковы, что всем предоставлены все возможности, а это потенциально опасно.

Однако администратор домена может осуществлять централизованное управление списками управления выполнением станций. Для этого администратор из общей адресной книги выбирает в меню Action - Edit Administration ECL и получает окно (Рис.  9.15), лишь немногим отличающееся от аналогичного окна на станции. Выполненные администратором в этом окне и сохраненные в общей адресной книге установки ECL для краткости будем называть "ECL домена". Отличие же окон состоит в возможности разрешить или не разрешить пользователям изменять скопированную на станцию ECL домена.

В процессе установки рабочих станций пользователей ECL домена автоматически копируется в ECL станции. После того, как администратор внесет очередные изменения в ECL домена, чтобы эти изменения поступили в ECL уже установленных станций, администратору необходимо отправить пользователям домена письмо с кнопкой, имеющей формулу @RefreshECL("";"").





Рис.  9.15  Окно списка управления выполнением для домена



Рис.  9.16  Средство для "массового подписывания" элементов дизайна баз

Остается отметить, что в руководстве администратора Notes версий 4.5 упоминается об утилите SIGNNSF.EXE, предназначенной для того, чтобы "в массовом порядке подписывать" элементы дизайна баз и шаблонов, используемых в организации. Такой утилиты в Notes версий 4.5 и 4.51 нет.

Однако в Notes версии 4.51 возложенные на утилиту функции включены в окно Tools to Manage Notes Databases, "вызываемое" из окна Server Administration кнопкой Database Tools. Средство применяется для расположенных локально баз данных или шаблонов. Для шаблонов приходится ввести имя файла шаблона. Для баз данных, находящихся на сервере, следует пользоваться этим средством из программы станции, запущенной на компьютере сервера. В качестве ID-файла, "именем которого подписываются" базы и шаблоны, используется текущий ID-файл станции. Могут быть "подписаны" все элементы дизайна (если поле NoteID пусто) или только избранные (в поле NoteID задается идентификатор местоположения элемента дизайна, наподобие NT0000011A). Определить идентификатор местоположения можно в окне свойств элемента дизайна - это последняя компонента в "полном" идентификаторе элемента дизайна. Если выбрана опция Update existing signatures only, "подписываются" только ранее "подписанные" элементы дизайна.


Содержание раздела