Система безопасности CRW-DAQ


Оглавление


Задача системы безопасности

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

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

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

По указанным причинам основными задачами системы безопасности является:


Структура системы безопасности

Программное обеспечение измерительных систем функционирует, разумеется, не само по себе, оно работает в рамках той или иной операционной системы (ОС), например, Windows-NT/2000/XP. Операционная система имеет свою собственную, достаточно развитую и хорошо проработанную систему безопасности, включая процедуру аутентификации и разграничение прав пользователей. Служба безопасности CRW-DAQ ни в коем случае не является альтернативой системы безопасности ОС, напротив, она существенно опирается на эту систему безопасности и является ее необходимым дополнением. Но дело в том, что самой по себе системы безопасности операционной системы не достаточно для обеспечения безопасной работы программного обеспечения измерительных систем в целом.

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

Чтобы преодолеть ограничения, налагаемые системой безопасности операционной системы, для запуска измерительной программы применяется утилита AdmiLink, специально разработанная для этих целей. Эта утилита создает ярлык или ссылку (файл *.lnk), который позволяют пользователю с ограниченными правами запускать измерительную программу с правами Администратора. При создании ярлыка необходимо ввести пароль Администратора (ярлык создает Администратор), однако при запуске ярлыка пароль уже не нужен. Дело в том, что при создании ярлыка утилита AdmiLink создает командную строку для вызова программы AdmiRun, являющейся исполнительной частью пакета AdmiLink. Эта программа собственно и выполняет запуск программ с правами Администратора и-под Пользователя. Чтобы это стало возможным, в аргументах командной строки программе AdmiRun передается имя запускаемой программы вместе со специальным ключем безопасности, созданным программой AdmiLink, который содержит в зашифрованном виде пароль Администратора и другие данные для запуска программы с требуемыми правами. Ключ безопасности гарантирует не только сохранность пароля Администратора, но также защиту от подмены исполняемого файла, так как данный ключ безопасности "привязан" к содержимому исполняемого файла и может применяться для запуска только того конкретного файла, для которого был создан ключ. Таким образом, пользователь с ограниченными правами получает через утилиту AdmiLink возможность запуска конкретной измерительной программы (но только ее!) с правами Администратора без ввода пароля. Все остальные программы пользователь запускает со своими обычными правами.

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

По этой причине пакет CRW-DAQ имеет собственную систему безопасности, цель которой состоит как в предотвращении несанкционированного получения прав Администратора через указанную "дыру" в системе безопасности ОС, так и в защите, специфической для измерительной системы как таковой. Важно понимать, что собственная система безопасности CRW-DAQ существенно опирается на систему безопасности ОС. Например, предполагается, что файлы как самого пакета CRW-DAQ, так и файлы измерительных конфигураций создаются под Администратором и что эти файлы защищены средствами безопасности операционной системы. Это гарантирует, что пользователь не сможет изменять или удалять файлы как исполнительной системы CRW-DAQ, так и файлы конфигураций DAQ штатными средствами операционной системы, например, через редактор Notepad, так как оператор может запустить эти штатные средства только с правами Пользователя.

Собственная система безопасности CRW-DAQ опирается на понятие уровня доступа. В каждый момент времени система имеет некий текущий уровень доступа, который определяет набор доступных для оператора возможностей, как описано в Таблице прав доступа. Смена уровней доступа защищена паролями, которые служат для аутентификации оператора.


Защита DAQ системы средствами ОС

Как было сказано выше, собственная система безопасности CRW-DAQ опирается на средства защиты операционной системы и без них не работает. В первую очередь, используется система защиты файлов и процессов. Напомним, что каждый файл, как и каждый процесс, имеет владельца (обычно это тот, кто его создал), а также набор атрибутов безопасности, определяющих, кто и какие права на этот файл имеет. Если владельцем файла является Администратор, то обычно Пользователь не имеет права изменять файл, хотя имеет право его читать. Кроме того, Пользователь не имеет права прекращать выполнение процессов Администратора. Таким образом, собственная система безопасности CRW-DAQ опирается на защиту файлов и процессов, полагая, что Пользователь не может их менять или удалять.

По указанной причине первым шагом в создании системы безопасности является защита DAQ системы средствами безопасности ОС. Для этого следует придерживаться таких правил:


Собственная система безопасности CRW-DAQ

Как было сказано выше, собственная система безопасности CRW-DAQ опирается на средства защиты операционной системы и без них не работает. После защиты файлов средствами операционной системы, начинает работать собственная система безопасности CRW-DAQ. Ее необходимость связана с тем, что:

  1. Пакет CRW-DAQ выполняется под Администратором, так как требует доступа к аппаратуре, что создает "дыру" в защите ОС. Эта "дыра" закрывается собственной системой защиты.
  2. Измерительные системы содержат специфические возможности (например, запуск/останов измерений), которые средствами ОС не защищены. Для их защиты используется собственная система безопасности.

Собственная система безопасности CRW-DAQ полагается на защиту файлов и процессов средствами операционной системы от изменения и удаления, однако не предполагает обязательной защиты от чтения. В частности, коды всех программ DAQ Pascal в принципе открыты и доступны пользователю для чтения. Однако это не влияет на уровень безопасности, так как критические с точки зрения защиты данные система CRW-DAQ хранит в зашифрованном виде, что позволяет хранить эти данные открыто, не снижая уровня защиты. При этом собственная система безопасности ограничивает право редактирования и запуска программ средствами самого пакета CRW-DAQ.

Собственная система безопасности CRW-DAQ опирается на понятие уровня доступа. В каждый момент времени система имеет некий текущий уровень доступа, который определяет набор доступных для оператора возможностей, как описано в Таблице прав доступа. Смена уровней доступа защищена паролями, которые служат для аутентификации оператора.

В настоящее время предусмотрены такие уровни доступа:

Чтобы сделать собственную систему безопасности надежной и в то же время не обременительной для пользователей, приняты следующие меры:

Наконец, следует отметить, что система CRW-DAQ ведет журнальный файл, расположенный в системной области ОС, в котором фиксируются факты:

Например, журнал может выглядеть так:
   11.08.2005-15:06:58 Enter Guest
   11.08.2005-15:07:18 Deny Guest, need User
   11.08.2005-15:07:24 Login User
   11.08.2005-15:07:49 Deny Root
   11.08.2005-15:07:51 Login Root
   11.08.2005-15:08:20 Password Guest
   11.08.2005-15:08:57 Leave Root
   11.08.2005-15:10:29 Enter Guest
   11.08.2005-15:10:40 Login Root
   11.08.2005-15:10:50 TrustList +3
   11.08.2005-15:10:52 TrustList -1
   11.08.2005-15:10:52 TrustList -1
   11.08.2005-15:10:52 TrustList -1
   11.08.2005-15:11:07 Leave Root
  
Разумеется, Пользователь не имеет прав на изменение журнала, созданного под Администратором.

Пример построения системы защиты

В качестве примера приведем по шагам создание системы защиты на основной машине на установке Прометей.

В результате выполненных действий получены такие результаты:


Таблица прав доступа

Условия доступа Предмет защиты
Level > Lock Любые операции, кроме смены уровня доступа. Смена уровня доступа доступна всегда.
Level > Lock
либо определяется DAQ программой
Нажатие сенсоров на мнемосхемах.
Level = Root
  • Смена паролей для всех уровней доступа.
  • Редактирование списка разрешенных конфигураций DAQ.
  • Ввод команд в окне ГЛАВНАЯ КОНСОЛЬ.
  • Ввод в окне консоли устройства DAQ program.
  • Компиляция программ на DAQ Pascal и на Delphi.
  • Создание программ DAQ Pascal, Delphi, мнемосхем и конфигураций DAQ.
  • Открытие окон для редактирования программ DAQ Pascal, Delphi, мнемосхем и конфигураций DAQ.
  • Запуск внешних программ и командных файлов на выполнение через меню Файл/Открыть.
  • Терминал COM-порта, перекодировка файлов.
  • Редактирование свойств устройств DAQ через команду .
  • Прямое редактирование тегов DAQ через команду .
  • Создание, удаление и редактирование вычислительных DLL плагинов.
Level = Root
либо пустой список разрешенных конфигурационных файлов
либо наличие конфигурационного файла в списке разрешенных
Запуск конфигурации CRW-DAQ из командной строки, через ярлык и т.д.
Level = User
  • Завершение то есть, выход из основной программы CRW32.
  • Загрузка, выгрузка, запуск, остановка конфигураций DAQ в окне DAQ-СИСТЕМА. Загрузка возможна только при условии текущего уровня Root, либо пустого списка разрешенных конфигурационных файлов, либо при наличии запускаемого конфигурационного файла в списке разрешенных.
  • Манипуляции с данными DAQ в окне DAQ-СИСТЕМА.
  • Редактирование текстовых и гипертекстовых файлов (кроме программ и конфигураций).
  • Запуск вычислительных DLL плагинов.
  • Редактирование калибровок.