Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ntv_6.pdf
Скачиваний:
34
Добавлен:
11.04.2015
Размер:
8.49 Mб
Скачать

Заключение

Коллектив лаборатории микропроцессорной техники кафедры ВТ СПб ГИТМО (ТУ) занимается данной тематикой уже много лет. Все рассмотренные выше подходы к организации тестового программного обеспечения для встроенных систем опробованы на практике в рамках достаточно большого количества НИР. Информацию о некоторых из них можно получить в публикациях [4–6].

Наилучшие результаты с точки зрения качества тестирования были получены при использовании технологии вложенной отладки (рис. 4) и удаленного исполнения команд (рис. 3). Практика показывает, что применение этих двух технологий дает положительный эффект при тестировании сложных многопроцессорных распределенных встроенных систем.

Простейшие системы тестирования (система меню, простой текстовый интерпретатор) хорошо вписываются во встроенные системы на базе 8-ми разрядных однокристальных микро-ЭВМ, таких как Intel MCS51, Atmel AVR, Microchip PIC, и с точки зрения бюджета разработки и с точки зрения ресурсоемкости тестового ПО.

В настоящее время коллективом лаборатории производятся работы по совершенствованию средств тестирования встроенных систем широкого спектра сложности. В работе над новыми технологиями преследуются следующие цели и задачи:

уменьшение трудоемкости и увеличение качества тестирования за счет автоматизации максимального количества этапов и исключения человеческого фактора;

построение комплексных систем автоматизированного тестирования (функциональное, климатическое, механическое, электромагнитное тестирование);

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

Литература

1.Распределенные системы управления / Ключев А.О., Кустарев П.В., Платунов А.Е. // СПб.: Сб. тезисов ДИМЭБ-97, 1997

2.Использование интерфейса JTAG для отладки встраиваемых систем / Ключев А.О., Коровьякова Т.А., Платунов А.Е. // Изв. вузов. Приборостроение. 1998. Т. 41. № 5

3.Инструментальный сервер / Ключев А.О., Платунов А.Е. // СПб.: Сб. тезисов ДИМЭБ-96, 1996

4.Механизмы обеспечения функциональной безопасности транспортных информационно-управляющих систем / Гавриков В.О., Платунов А.Е., Шубинский И.Б. // СПб.: Тез. VII Международной конференции "Региональная информатика

2000". Часть 1. СПб, СПОИСУ, 2000. С. 121.

5.Микропроцессорная система диспетчерской централизации “Тракт” нового поколения. / Гавриков В.О. Григорьев В.В. Платунов А.Е. Шубинский И.Б. // Тезисы докладов конференции "Информационные технологии на железнодорожном транспорте". Санкт-Петербург, 1997, с.163-173.

6.Восьмиразрядные микроконтроллеры в системах автоматического управления / А. Ключев, П. Кустарев, А. Платунов // Компоненты и технологии. 2001. №1. С.23–24.

99

МЕТОД ОБЕСПЕЧЕНИЯ ЗАМКНУТОСТИ ПРОГРАММНОЙ СРЕДЫ ПУТЕМ РАЗГРАНИЧЕНИЯ ПРАВ ДОСТУПА К ФАЙЛОВОЙ СИСТЕМЕ

И.П. Павличенко

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

Обеспечение замкнутости программной среды является, согласно руководящим документам Гостехкомиссии РФ, обязательным механизмом в системах защиты информации (СЗИ): "КСЗ должен контролировать доступ наименованных субъектов (пользователей) к наименованным объектам (файлам, программам, томам и т. д.)" [1]. Это необходимо для исключения возможности запуска пользователем разного рода снифферов, программ взлома или подбора паролей, инструментальных средств и т.п.

ОС семейства MS Windows не имеют встроенных средств обеспечения замкнутости программной среды, удовлетворяющих РД Гостехкомиссии РФ [2]. Существующие в данное время реализации этого механизма в различных СЗИ опираются на список разрешенных пользователю для запуска процессов, т.е. каждому пользователю ставится в соответствие свой собственный список разрешенных программ. Такой подход прост, но имеет некоторые недостатки: необходимо перечислять в этих списках все процессы, разрешенные к запуску пользователем, в том числе и процессы, порождаемые разрешенными процессами, так как ни одна из существующих СЗИ не различает, кто запустил процесс – пользователь или другой процесс. Это приводит к тому, что списки разрешенных процессов становятся очень громоздкими, существенно снижается производительность системы. За счет больших затрат времени на анализ таких списков при каждом запуске программы (процесса) сильно усложняется администрирование подобной СЗИ, так как администратору безопасности приходится составлять такие списки для каждого пользователя, а при добавлении новых программ изменять списки у каждого пользователя, пользующегося этой новой программой. Соответственно, при удалении некоторой программы приходиться удалять из списков все процессы, порождаемые удаляемой программой. Кроме того, возникает проблема с введением в список разрешенных процессов отладочных и иных программ, которые необходимо запускать эксплуатационным службам при работе некоторого пользователя в системе, а этому пользователю запускать эти программы запрещено. Для исключения подобной ситуации требуется различать субъект запуска – пользователь или процесс – и назначать процессу свои собственные списки программ, а также динамически изменять список разрешенных процессов у пользователя. Ни одна из существующих СЗИ для ОС семейства MS Windows не позволяет этого.

Предлагаемый метод позволяет устранить (в некоторой степени) все перечисленные недостатки, а также добавить некоторые новые возможности в реализуемые механизмы защиты. Основу метода составляет использование для решения задачи обеспечения замкнутости программной среды механизма разграничения доступа к файловой системе – подсистема разграничения дискреционным методом прав доступа (РПД) пользователей к файловой системе. Вышеприведенная формулировка требований РД не включает процесс в число субъектов доступа. В ОС семейства MS Windows следование этому приводит к невозможности определения для процесса собственных прав доступа и, соответственно,

100

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

Основу реализации метода составляет выполнение следующих действий средствами подсистемы разграничения прав доступа.

Выделить для каждого пользователя (или группы пользователей) каталоги, из которых разрешен запуск программ. Это требует от администратора СЗИ проводить установку пользовательских программ только в такие каталоги.

Запретить всем пользователям операции записи в эти каталоги.

Запретить запуск программ из всех каталогов, куда пользователю (или группе пользователей) разрешена запись.

Настроенная таким образом подсистема РПД будет, наряду со своими непосредственными функциями, обеспечивать целый ряд новых возможностей. Это позволит не только удобно управлять составом программ (т.к. нет необходимости корректировки списков прав пользователей, или такая корректировка сводится к добавлению всего одной строки), но также исключает необходимость перечисления всех процессов, которые запускает новая программа, в списке разрешенных. В альтернативном варианте необходимость подобного перечисления приводила к тупикам: программе для работы требовался некоторый процесс, а разрешать запускать этот процесс пользователю нельзя. Так как любой процесс рассматривается подсистемой РПД как еще один самостоятельный субъект доступа, становится возможным управлять именно его (процесса) правами. Поэтому вместо внесения программ, необходимых для работы некоторому процессу, в список пользователя, вызвавшего процесс, эти программы добавляются только в список этого процесса. Это позволяет избежать упомянутых выше тупиковых ситуаций. Кроме того, использование этого механизма обеспечивает возможность обработки некоторых файлов только с помощью специальных программ, а также запуск пользователем некоторых программ только с помощью других программ, что невыполнимо в существующих реализациях СЗИ. Наконец, такая подсистема РПД позволяет разграничивать права доступа процессам без учета пользователей, что позволяет выделять привилегированные процессы, т.е. процессы, имеющие доступ к файлам и программам, недоступным для пользователя, что позволяет закрыть для операций записи пользователю системные каталоги ОС. В существующих системах подобное ограничение приводило к невозможности функционирования самой ОС.

Литература

1.Гостехкомиссия России. Руководящий документ "Средства вычислительной техники, Защита от несанкционированного доступа к информации, Показатели защищенности от несанкционированного доступа к информации".. Москва, 1992.

2.Рихтер. Windows для профессионалов. М.: MS Пресс, 1999.

101

РЕШЕНИЕ СПЕЦИФИЧЕСКИХ ЗАДАЧ АУДИТА БАЗЫ ДАННЫХ

Г.Ю. Громов, Д.А. Дорохин, В.С. Черемухин

Рассматриваются новые средства СУБД Oracle и предлагается их использование для расширения стандартных возможностей, связанных с механизмом сбора данных по функционированию информационной системы, обработкой исключительных ситуаций и повышению производительности системы.

Вопросы, связанные с аудитом базы данных, в СУБД Oracle решены давно и вполне успешно. В СУБД Oracle существует стандартный, довольно громоздкий, но при этом обладающий большими возможностями механизм сбора информации аудита базы данных. На любом уровне детализации можно отследить события, происходящие в базе данных, вплоть до конкретных запросов, выполняемых определенным пользователем. Однако использование средств аудита, помимо естественно возникающих накладных расходов, связанных с дополнительной загрузкой базы данных, вызывает и ряд административных сложностей. Обязательно должна быть тщательным образом разработана и отлажена стратегия аудита базы данных, которая должна предусматривать своевременную очистку системной таблицы SYS.AUD$, размещенную в табличном пространстве SYSTEM. Если не уделить этому вопросу должного внимания, постоянное изменение размера системной таблицы SYS.AUD$ может привести к фрагментации табличного пространства SYSTEM, что просто недопустимо, так как избавиться от него можно только пересозданием базы данных. Наилучшим решением этой проблемы было бы перемещение системной таблицы SYS.AUD$ в другое табличное пространство, однако Oracle официально заявляет о непредсказуемых последствиях данного шага.

К тому же, несмотря на все возможности по сбору информации аудита, предоставляемые стандартными средствами Oracle, возникают специфические задачи, решение которых с использованием стандартных средств невозможно.

Однако в Oracle, начиная с версии 8i, появилось средство, которое и должно помочь администраторам и разработчикам решить большинство проблем, возникающих при сборе специфической информации аудита. Это средство называется "триггера событий".

Вотличии от "классических" триггеров базы данных, срабатывающих в случае выполнения операций INSERT, UPDATE, DELETE, триггера событий срабатывают при возникновении как-либо системных событий, среди которых SERVERERROR, AFTER LOGON, BEFORE LOGOFF, AFTER/ BEFORE ALTER/CREATE/DROP, AFTER/ BEFORE GRANT/REVOKE и так далее. По сути, данный тип триггеров позволяет, помимо сбора информации аудита, выполнять набор необходимых действий, связанных

стем или иным системным событием. Триггера событий могут создаваться на двух уровнях – на уровне базы данных и на уровне конкретной схемы. Также только в триггерах событий доступен набор атрибутов этих событий, например, стек ошибок (ora_server_error) для события SERVERERROR или ip-адрес компьютера пользователя

(ora_client_ip_address) для события AFTER LOGON.

Вкачестве простейшего примера можно привести два триггера, выполняющих сбор информации аудита в созданную администратором базы данных таблицу. Таблица создается не в табличном пространстве SYSTEM, и помимо информации, которую можно собрать стандартными средствами (время начала и окончания работы с базой данных), в нее заносится информация о том, какая программа используется пользователем для работы, и ip-адрес компьютера, с которого он работает.

DROP TABLE adm_connections;

CREATE TABLE adm_connections

102

( s_id NUMBER ,

user_name

VARCHAR2(30),

host_ip

VARCHAR2(200),

progr

VARCHAR2(200),

begin_date

DATE DEFAULT sysdate,

end_date

DATE)

TABLESPACE tools;

CREATE OR REPLACE TRIGGER OnLogon AFTER LOGON ON DATABASE DECLARE

-- описываем служебную переменную pr VARCHAR2(64);

BEGIN

BEGIN

-- выбираем из представления v$session информацию о программе пользователя

SELECT program INTO pr FROM sys.v_$session t where audsid = sys_context('USERENV','SESSIONID');

EXCEPTION

WHEN NO_DATA_FOUND THEN NULL; END;

-- вставляем всю необходимую информацию в нашу таблицу

INSERT INTO adm_connections(s_id,user_name,host_ip,progr) VALUES (sys_context('USERENV','SESSIONID'), ora_login_user,

ora_client_ip_address, pr); END;

CREATE OR REPLACE TRIGGER OnLogoff BEFORE LOGOFF ON DATABASE BEGIN

-- обновляем нашу таблицу сведениями об окончании работы с базой данных данного пользователя

UPDATE adm_connections SET end_date = sysdate WHERE s_id = sys_context('USERENV','SESSIONID');

END;

Триггера событий также очень полезны и разработчикам. При использовании многоуровневых архитектур не так просто организовать детальный сбор информации о возникающих при работе приложения ошибок. Здесь также неоценимую помощь оказывают триггера событий. Вместо того, чтобы включать программный код каждой процедуры/функции/пакета в обработчик исключений команды по сохранению возникшей ошибки, достаточно написать триггер на событие SERVERERROR на уровне схемы или базы данных. С его помощью возможно, например, сохранять все ошибки возникающие при работе приложения на уровне базы данных.

CREATE OR REPLACE TRIGGER OnError AFTER SERVERERROR ON DATABASE

BEGIN

INSERT INTO adm_errors(user_name,host_ip, error_nom)

VALUES (ora_login_user, SYS_CONTEXT('USERENV','IP_ADDRESS'), SYS_CONTEXT('USERENV','CLIENT_INFO'), 'ORA- '||TO_CHAR(ora_server_error(1),'00000'));

END;

103

Рассмотренные примеры использования триггеров событий лишь частично иллюстрируют их возможности. Использование их в полном объеме позволяет администраторам и разработчикам находить простые и гибкие решения практически любых специфических задач, связанных с аудитом базы данных.

Литература

1.Васильев В.Н. Принципы создания интегрированной информационноаналитической системы управления вузом // Тезисы докладов Международной конференции "Интернет, Общество, Личность - ИОЛ-2000" Институт "Открытое общество", Санкт-Петербург, 2000.

2.Кириллов В.В., Громов Г.Ю. Применение CASE-технологии при создании интегрированной информационной системы университета // Тез. докл. Юбилейной научно-технической конференции профессорско-преподавательского состава, посвященной 100-летию университета, 29-31 марта 2000 года, Санкт-Петербург, 2000.

3.Кириллов В.В., Громов Г.Ю., Штивельман Я.Е. Первый опыт проектирования несколькими вузами подсистемы "Учебный процесс" // Тезисы докладов Международной конференции "Интернет, Общество, Личность - ИОЛ-2000" Институт "Открытое общество", Санкт-Петербург, 2000.

4.Кириллов В.В., Громов Г.Ю., Черемухин В.С., Вотинцев А.А., Романенко В.А, Работа с одним репозиторием Oracle Designer территориально распределенных разработчиков // Тезисы докладов Международной научно-методической конференции "Телематика'2000", Санкт-Петербург, 2000.

104

ПРОБЛЕМА ИНТЕГРАЦИИ ЛОКАЛЬНЫХ АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ В ОБРАЗОВАТЕЛЬНОЙ СФЕРЕ ДЕЯТЕЛЬНОСТИ

Г.Ю. Громов, Д.А. Дорохин, В.В. Кириллов, В.С. Черемухин

На примере опыта разработки "Интегрированной информационно-аналитической системы управления вузом" и "Информационной системы управления вузом" производится обзор возможных подходов к проектированию автоматизированных систем управления и дается рекомендация по выбору их рациональной структуры.

Сегодня во многих российских вузах существуют разработанные и (или) приобретенные информационные системы и подсистемы оперативной обработки данных, реализованные на самой различной аппаратной и программной основе. Это и автономные файловые системы, и системы, использующие локальные или сетевые версии персональных систем управления базами данных (СУБД), и системы, построенные на серверах реляционных баз данных. Однако все они создавались для автоматизации деятельности сотрудников отдельных подразделений, и поэтому им трудно (а часто и невозможно) обмениваться данными, трудно выдать непредусмотренную справку, трудно "узнать", существуют ли в соседних системах данные, затребованные кем-либо из руководства вуза. Естественно, что такие данные часто противоречивы, и руководство университета не может получить полной и достоверной информации на многие актуальные вопросы [1].

Вотнесколькопримеровпротиворечивости:

один и тот же сотрудник существует какое-то время под разными табельными номерами и оформлен в разных подразделениях;

встречаются случаи назначения на стипендию неуспевающих студентов;

не совпадают сведения о численности студентов и преподавателей, поступающие из подсистем отдела кадров, учебной части, деканатов, кафедр.

Непрерывно нарастающее число подобных противоречий в существующих

системах и явилось основным побудительным моментом необходимости их замены. Аналогичная проблема возникает и при разработке автоматизированных систем

управления (АСУ) министерства образования РФ или небольших автономных АСУ филиала университета, факультета, кафедры, секции, а также любого подразделения образовательного характера.

На разных уровнях управления эти локальные АСУ имеют неодинаковый характер и преследуют различные цели. Однако в них необходимо хранить частично пересекающуюся информацию (например, кафедры, факультеты и университет хранят в своих АСУ общие сведения об одних и тех же студентах и преподавателях). Как было отмечено выше, такое дублирование данных, как правило, приводит к появлению противоречивых сведений, не позволяющих получать достоверную информацию.

Дублирование можно исключить при создании единой интегрированной базы данных, используемой всеми АСУ. Однако создание единой базы данных для больших

итерриториально разделенных систем затруднено из-за большого объема информации

иудаленного доступа (нереально объединение АСУ министерства с АСУ входящих в него образовательных учреждений).

Поэтому возникает задача исключения дублирования информации локальных АСУ единой корпоративной образовательной системы.

Одним из решений этой задачи является выявление общих данных для различных уровней управления и интегрирование их (при исключении дублирования) в базах данных более высокого уровня. При этом частные данные размещаются (без дублирования) на более низких уровнях. Например, в университетской системе интегрируются сведения о бухгалтерской, хозяйственной, учебной деятельности

105

университета, санкционированную часть этой информации (сведения о сотрудниках, студентах, подразделениях и т.д.) могут использовать кафедры. В свою очередь АСУ университета может использовать информацию, предоставляемую кафедрами (списки трудов сотрудников, научные разработки, участие в конференциях, сведения о выпускниках, сведения о НИР, публикации и т.д.).

Для обмена информацией между уровнями управления необходимо создать и использовать стандарты, реализуя их в базе данных и приложениях.

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

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

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

Литература

1.Васильев В.Н. Принципы создания интегрированной информационноаналитической системы управления вузом // Тезисы докладов Международной конференции "Интернет, Общество, Личность - ИОЛ-2000" Институт "Открытое общество", Санкт-Петербург, 2000.

2.Кириллов В.В., Громов Г.Ю. Применение CASE-технологии при создании интегрированной информационной системы университета // Доклад на Юбилейной научно-технической конференции профессорско-преподавательского состава, посвященная 100-летию университета 29-31 марта 2000 года, Санкт-Петербург, 2000.

3.Кириллов В.В., Громов Г.Ю. Штивельман Я.Е., Первый опыт проектирования несколькими вузами подсистемы "Учебный процесс" // Тезисы докладов Международной конференции "Интернет, Общество, Личность - ИОЛ-2000" Институт "Открытое общество", Санкт-Петербург, 2000.

4.Кириллов В.В., Громов Г.Ю., Черемухин В.С., Вотинцев А.А., Романенко В.А. Работа с одним репозиторием Oracle Designer территориально распределенных разработчиков // Тезисы докладов Международной научно-методической конференции "Телематика'2000", Санкт-Петербург, 2000.

106

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]