Система безопасности 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 системы
средствами безопасности ОС.
Для этого следует придерживаться таких правил:
- Следует использовать только защищенные операционные системы, например,
Windows NT, Windows 2000, Windows XP и т.д.
- Операционную систему Windows следует инсталировать только на раздел NTFS,
так как только в этом случае работает система защиты файлов.
В разделах FAT, FAT32 защита файлов не работает.
- По той же причине пакет CRW-DAQ, а также все файлы DAQ систем должны располагаться
на разделах NTFS, иначе файлы не будут защищены средствами ОС.
- В системе должены быть созданы как минимум две учетные записи:
- одна с правами Администратора, в которой будет запускаться измерительная система CRW-DAQ
и выполняться администрирование
(эту учетную запись мы и будем иметь далее в виду под понятием Администратора,
хотя ее имя может быть и другим),
- другая с правами Пользователя, в которой и будет в основном работать оператор
- Следует запускать Windows только под Пользователем.
Желательно сделать автоматическую загрузку системы под Пользователем,
чтобы не было искушения заходить в систему под Администратором.
Это можно сделать, например, в командной строке (запущеной под Администратором),
набрав команду:
control userpasswords2
- Для выполнения операций Администратора из среды Пользователя можно использовать
функцию "Запуск от имени..." для вызова, например,
Total Commander с правами Администратора и делать все в нем.
При этом Total Commander закрывается, как только отпала необходимость
в правах Администратора.
- Пакет AdmiLink должен инсталироваться под Администратором на раздел NTFS.
Об этом не следует забывать, так как инсталяция может происходить в среде Пользователя.
При этом придется использовать функцию "Запуск от имени..."
и ввести пароль Администратора.
- Пакет CRW-DAQ должен инсталироваться под Администратором на раздел NTFS.
Об этом не следует забывать, так как инсталяция может происходить в среде Пользователя.
При этом придется использовать функцию "Запуск от имени..."
и ввести пароль Администратора.
- Файлы DAQ систем должны создаваться и копироваться под Администратором.
Об этом не следует забывать, так как копирование может происходить в среде Пользователя.
При этом можно использовать функцию "Запуск от имени..."
для вызова Total Commander с правами Администратора и копировать все в нем.
При этом файлы DAQ системы получат в качестве владельца Администратора,
что и обеспечивает защиту файлов.
- Ярлыки для запуска CRW-DAQ следует создавать, запуская AdmiLink либо под Пользователем,
если создаются ярлыки только для локального пользователя, либо под Администратором,
если ярлыки создаются для всех пользователей.
- Система CRW-DAQ полагается на защиту файлов от изменения, однако не предполагает обязательной
защиты от чтения.
При необходимости критические данные система CRW-DAQ хранит в зашифрованном виде, что позволяет
хранить эти данные открыто, не снижая уровня защиты.
Собственная система безопасности CRW-DAQ
Как было сказано выше, собственная система безопасности CRW-DAQ опирается
на средства защиты операционной системы и без них не работает.
После защиты файлов средствами операционной системы, начинает работать собственная система
безопасности CRW-DAQ.
Ее необходимость связана с тем, что:
- Пакет CRW-DAQ выполняется под Администратором, так как требует доступа к аппаратуре,
что создает "дыру" в защите ОС. Эта "дыра" закрывается собственной системой защиты.
- Измерительные системы содержат специфические возможности (например, запуск/останов измерений),
которые средствами ОС не защищены.
Для их защиты используется собственная система безопасности.
Собственная система безопасности CRW-DAQ полагается на защиту файлов и процессов средствами операционной
системы от изменения и удаления, однако не предполагает обязательной защиты от чтения.
В частности, коды всех программ DAQ Pascal в принципе открыты и доступны пользователю для чтения.
Однако это не влияет на уровень безопасности, так как критические с точки зрения защиты данные система CRW-DAQ
хранит в зашифрованном виде, что позволяет хранить эти данные открыто, не снижая уровня защиты.
При этом собственная система безопасности ограничивает право редактирования и запуска программ средствами
самого пакета CRW-DAQ.
Собственная система безопасности CRW-DAQ опирается на понятие уровня доступа.
В каждый момент времени система имеет некий текущий уровень доступа, который определяет набор доступных
для оператора возможностей, как описано в Таблице прав доступа.
Смена уровней доступа защищена паролями, которые служат для аутентификации оператора.
В настоящее время предусмотрены такие уровни доступа:
- Lock - блокировка программы. Запрещены почти все команды, кроме смены уровня доступа.
Этот уровень применяется в случае, если оператор вынужден временно удалиться и оставить компьютер
без присмотра.
- Guest - уровень постороннего человека, Гостя, не имеющего злого умысла, но могущего
по неосторожности или некомпетентности нарушить работу измерительной системы.
Поэтому Гость может выполнять ряд операций по манипуляции с окнами, может выполнять вычисления,
но не может управлять измерительной системой (запуск/останов DAQ и т.д.), осуществлять завершение
работы программы, редактирование программ и конфигураций, запуск внешних программ и т.д.
- User - уровень оператора, выполняющего обычную работу на установке.
Он имеет право на запуск/останов измерительных конфигураций, редактирование калибровок и текстовых файлов,
но не может изменять сами программы или конфигурации, а также запускать внешние программы.
Получается, что хотя оператор работает в пакете с правами Администратора, но воспользоваться
этими правами для изменеия или удаления критически важных файлов или запуска несанкционированных программ
не может.
- Root - уровень Администратора DAQ системы, имеющего полные права на любые действия
в рамках пакета CRW-DAQ.
Чтобы отличать Администратора DAQ системы от Администратора ОС, будем далее именовать
Администратора DAQ системы именем Root.
Так вот, Root имеет право на изменение и удаление любых файлов и на запуск любых программ
средствами пакета CRW-DAQ.
Обычно Root - человек, создающий измерительную систему или осуществляющий ее техническую поддержку.
Персонально Root и Администратор операционной системы могут не совпадать, однако ясно, что
Root имеет возможность запуска процессов от имени Администратора, так как сам пакет
CRW-DAQ работает под Администратором.
При этом Root может даже не знать пароля Администратора, если пакет запущен через ярлык
AdmiLink.
Так или иначе, уровень ответственности Root так же высок, как уровень Администратора.
Чтобы сделать собственную систему безопасности надежной и в то же время не обременительной
для пользователей, приняты следующие меры:
- Процедура аутентификации оператора заключается в защите паролем.
Пустой пароль означает отсутствие защиты.
- Четырех-уровневая система уровней доступа обеспечивает разграничение полномочий в соответствии с
таблицей прав доступа.
- Кроме защиты паролем, используется список разрешенных к запуску конфигурационных файлов.
Пустой список разрешений означает отсутствие защиты.
- Пароли и список разрешений привязаны к данной машине,
то есть разные экземпляры CRW-DAQ, запускаемые на одной машине,
используют одни и те же пароли и списки разрешений.
В частности, при замене версий пакета CRW-DAQ пароли и списки сохраняются.
- Пароли и списки разрешений хранятся в зашифрованном файле в системном каталоге ОС.
Шифрование паролей обеспечивает сокрытие информации даже при наличии у Пользователя
прав доступа на чтение файла паролей.
В то же время файл паролей защищен от изменения и удаления его Пользователем
средствами ОС.
- По умолчанию, после установки операционной системы, пароли всех уровней отсутствуют,
а список разрешений пуст.
То есть если защита не нужна, она и не используется.
- Защита вводится путем установки непустых паролей разных уровней доступа,
а также заданием непустого списка разрешений, если это нужно.
Защита вводится после каждой установки ОС и опирается на средства защиты ОС.
- Только Root имеет права на изменение паролей и списка разрешенных к запуску конфигураций.
- Каждый уровень доступа, кроме блокировки Lock, может быть защищен своим паролем.
Если защита данного уровня доступа не нужна, для него указывается пустой пароль.
- Ввод пароля нужен только для повышения уровня доступа.
Понижение уровня доступа не требует пароля и может быть выполнено очень быстро,
например, нажатием F12.
- После изменения (повышения или понижения) уровня доступа, этот уровень сохраняется неопределенное время,
до следующей операции изменения уровня доступа.
- Оператор, повысивший уровень доступа, например, до уровня Root, несет ответственность за все
действия на этом уровне.
После выполнения необходимых действий на повышенном уровне доступа оператор, повысивший уровень,
обязан понизить уровень доступа до приемлемого для данной установки и несет ответственность за это.
- При загрузке пакета CRW-DAQ устанавливается максимальный уровень доступа, не защищенный паролем.
Например:
- При отсутствии паролей система загрузится с уровнем Root.
- Если установлен пароль Root, система загрузится с уровнем User.
- Если установлен пароль User, система загрузится с уровнем Guest.
- Если установлен пароль Guest, система загрузится с уровнем Lock.
- Непустой список разрешений позволяет предотвратить запуск (в том числе автоматический, через ярлык или аргумент
командной строки) любых конфигурационных файлов, кроме указанных в списке.
Сами конфигурационные файлы защищены средствами ОС.
Наконец, следует отметить, что система CRW-DAQ ведет журнальный файл,
расположенный в системной области ОС, в котором фиксируются факты:
- Enter - Запуск программы CRW-DAQ
- Leave - Завершение программы CRW-DAQ
- Login - Изменения уровня доступа
- Deny - Попытка выполнения запрещенной операции или неверный ввод пароля
- Password - Изменение пароля
- TrustList +n - Добавление в список разрешений n элементов
- TrustList -n - Удаление из списка разрешений n элементов
Например, журнал может выглядеть так:
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
Разумеется, Пользователь не имеет прав на изменение журнала, созданного под Администратором.
Пример построения системы защиты
В качестве примера приведем по шагам создание системы защиты на основной машине на установке Прометей.
- Операционная система Windows XP была установлена на машину Prometheus-gas
в раздел NTFS на диске C:.
- Было заведено два пользователя - DaqRoot с правами Администратора
и DaqUser с правами Пользователя.
- Под пользователем DaqRoot была выполнена настройка основных параметров системы,
установлены драйверы устройств, настроена сеть.
- Была установлена автоматическая загрузка системы под пользователем DaqUser.
Вся дальнейшая работа велась только в среде этого пользователя.
При необходимости действий от имени DaqRoot применялась команда "Запуск от имени...".
- Установлены пакеты Total Commander, AdmiLink и CRW-DAQ.
Установка пакетов велась под пользователем DaqRoot на NTFS диск C:.
- Конфигурации DAQ разархивированы на NTFS диск C: в каталог c:\Daq.
Разархивация выполнялась в Total Commander, запущенном под пользователем DaqRoot.
Были разархивированы конфигурации Prometheus-gas, Prometheus-c2n и Prometheus-kro.
- Пакетом AdmiLink, запущенном под DaqUser, на Рабочем Столе пользователя
DaqUser были созданы ярлыки для запуска CRW-DAQ с правами DaqRoot для указанных
трех конфигураций.
- Запуск конфигурации c:\Daq\Prometheus-gas\Config\!gas.cfg был также помещен в Автозагрузку
для пользователя DaqUser.
- При первом запуске система CRW-DAQ загрузилась с уровнем доступа Root, пароли и списки разрешений
пока не установлены.
- В пакете CRW-DAQ был установлен пароль для уровней Root и User.
- В пакете CRW-DAQ был создан список разрешенных конфигураций, содержащий три установленных конфигурации
Prometheus-gas, Prometheus-c2n и Prometheus-kro.
В результате выполненных действий получены такие результаты:
- Операционная система Windows XP автоматически загружается под пользователем DaqUser.
- При загрузке система автоматически запускает конфигурацию Prometheus-gas.
- При запуске система CRW-DAQ загружается с уровнем доступа Guest.
Для управления измерительной системой и завершения работы программы пользователь должен
перейти на уровень User, а для этого надо ввести пароль уровня User.
- Запуск каких-либо конфигураций, кроме трех указанных, запрещен.
- Пользователь DaqUser не может изменять файлы самого пакета CRW-DAQ, всех DAQ
конфигураций и паролей.
- На уровне User оператор CRW-DAQ также не может изменять файлы конфигураций и программ.
- При запуске Total Commander под DaqRoot или при переходе на уровень доступа 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 плагинов.
- Редактирование калибровок.
|