База данных надежных сигнатур
База данных надежных сигнатур является базой данных, которая используется для хранения основных параметров защиты защищенных файлов системы. Эта база данных расположена в каталоге /etc/security/tsd/tsd.dat.
/usr/bin/ps:
owner = bin
group = system
mode = 555
type = FILE
hardlinks = /usr/sbin/ps
symlinks =
size = 1024
cert_tag = bbe21b795c550ab243
signature =
f7167eb9ba3b63478793c635fc991c7e9663365b2c238411d24c2a8a
hash_value = c550ab2436792256b4846a8d0dc448fc45
minslabel = SLSL
maxslabel = SLSL
intlabel = SHTL
accessauths = aix.mls.pdir, aix.mls.config
innateprivs = PV_LEF
proxyprivs = PV_DAC
authprivs =
aix.security.cmds:PV_DAC,aix.ras.audit:PV_AU_ADMIN
secflags = FSF_EPS
t_accessauths =
t_innateprivs =
t_proxyprivs =
t_authprivs =
t_secflags =
- owner
- Владелец файла. Это значение вычисляется с помощью команды trustchk, при добавлении файла в TSD.
- group
- Группа файла. Это значение вычисляется командой trustchk.
- mode
- Список значений, разделенных запятыми. Допустимыми значениями являются SUID (установлен бит SUID), SGID (установлен бит SGID), SVTX (установлен бит SVTX) и TCB (Защищенная компьютерная база). Права доступа к файлу должны указываться последними и могут быть представлены в виде октета. Например, файл с режимом uid и битами доступа rwxr-xr-x режим будет иметь значение SUID, 755. Это значение вычисляется командой trustchk.
- type
- Тип файла. Это значение вычисляется командой trustchk. Допустимы значения FILE, DIRECTORY, MPX_DEV, CHAR_DEV, BLK_DEV, и FIFO.
- hardlinks
- Список жестких ссылок на файл. Это значение не может быть вычислено командой trustchk. Оно должно быть указано пользователем при добавлении файла в базу данных.
- symlinks
- Список символьных ссылок на файл. Это значение не может быть вычислено командой trustchk. Оно должно быть указано пользователем при добавлении файла в базу данных.
- размер
- Определяет размер файла. Значение VOLATILE - файл изменяется часто.
- cert_tag
- Поле связывает цифровую подпись файла с сертификатом, которым будет проверяться эта подпись. В этом поле содержится идентификатор сертификата, который можно вычислить командой trustchk во время добавления файла в TSD. Сертификаты хранятся в каталоге /etc/security/certificates.
- signature
- Цифровая подпись файла. Значение VOLATILE указывает на то, что файл изменяется часто. Значение поля вычисляется командой trustchk.
- hash_value
- Криптографический хэш файла. Значение VOLATILE указывает на то, что файл изменяется часто. Значение поля вычисляется командой trustchk.
- minslabel
- Определяет метку минимальной чувствительности объекта.
- maxslabel
- Определяет метку максимальной чувствительности объекта (действует в системе Trusted AIX). Этот атрибут не применяется к обычным файлам и файлам типа fifo.
- intlabel
- Определяет метку целостности объекта (действует в системе Trusted AIX).
- accessauths
- Определяет права доступа к объекту (действует в системе Trusted AIX).
- innateprivs
- Определяет изначальные права доступа для файла.
- proxyprivs
- Определяет для файла права доступа через прокси-сервер.
- authprivs
- Определяет права доступа, назначаемые пользователю после санкционирования доступа.
- secflags
- Определяет флаги защиты, связанные с объектом.
- t_accessauth
- Определяет дополнительную Trusted AIX с особыми правами доступа на базе Многоуровневой защиты (MLS) (действует в системе Trusted AIX).
- t_innateprivs
- Задает дополнительный Trusted AIX с внутренними правами доступа к файлу в MLS (действителен только в системе Trusted AIX).
- t_proxyprivs
- Задает дополнительный Trusted AIX с правами доступа proxy к файлу в MLS (действителен только в системе Trusted AIX).
- t_authprivs
- Задает дополнительный Trusted AIX с правами доступа в MLS, которые присваиваются пользователю после заданных процедур идентификации (действителен только в системе Trusted AIX).
- t_secflags
- Задает дополнительный Trusted AIX с флагами защиты в MLS, связанными с объектом (действителен только в системе Trusted AIX).
Когда в TSD добавляется новая запись, то содержащиеся в доверенном файле символьные или жесткие ссылки в TSD можно добавить с помощью команд symlinks, hardlinks и trustchk. Если ожидается частое изменение добавляемого файла, то введите в командной строке ключевое слово VOLATILE. В этом случае команда trustchk не будет вычислять значения полейhash_value и signature при создании определения файла для добавления в TSD. При проверке целостности этого файла поля hash_value и signature игнорируются.
При добавлении в TSD определений обычных файлов необходимо указать личный ключ (формат ASN.1/DER). Для этого укажите флаг -s с цифровым сертификатом и флаг -v с соответствующим открытым ключом. Личный ключ используется для создания сигнатуры файла, а впоследствии аннулируется. Пользователь должен самостоятельно обеспечить безопасное хранение этого ключа. Сертификат сохраняется в хранилище сертификатов в файле /etc/security/certificates для проверки сигнатур при запросе проверки целостности. Поскольку вычисление сигнатуры невозможно для файлов, которые не являются обычными, например файлов каталогов и устройств, при добавлении таких файлов в TSD не обязательно указывать личный ключ и сертификат.
С помощью опции -f в TSD можно добавить уже сформированное определение файла. Команда trustchk не будет ничего вычислять и сохранит определение в TSD без проверки. В такой ситуации пользователь лично ответственен за работоспособность определений файлов.
Поддержка проверки библиотеки
Для поддержки проверки библиотеки добавьте файл tsd.dat в каталог /etc/security/tsd/lib/. Имя базы данных хранится в /etc/security/tsd/lib/lib.tsd.dat. В базе данных хранятся исключительно те библиотеки, у которых соответствующие доверенные библиотеки хранят свои разделы в файлах .o.
Раздел каждого файла .o библиотеки хранится в формате, как указано в следующем примере.
strcmp.o, относящийся к библиотеке libc.a, имеет тип .o, то раздел файла strcmp.o в файле /etc/security/tsd/lib/lib.tsd.dat имеет следующий формат:/usr/lib/libc.a/strcmp.o:
Type = OBJ
Size = 2345
Hash value
Signature =
Cert_tag = В базе данных хранятся записи, соответствующие полям type, hash size, cert tag и signature файла .o. Хэш-код раздела, соответствующего библиотеке, обновляется в файле /etc/security/tsd/tsd.dat. Значения атрибутов генерируются динамически во время компоновки и переносятся в базу данных /etc/security/tsd/lib/lib.tsd.dat во время установки.
В файле /etc/security/tsd/tsd.dat отображаются изменения атрибута type раздела библиотеки, поскольку атрибуты LIB, size и signature пусты. В данный момент, если атрибуты size, hash, signature имеют значение dynamica, то они обрабатываются как VOLATILE. Таким образом, во время запуска системы проверка библиотек не выполняется. Начиная с выпуска AIX 6.1.0, разделы size, hash и signature доверенных библиотек рассчитываются на основании файлов .o соответствующей библиотеки. Во время установки, в базе данных tsd.dat устанавливаются рассчитанные значения, а соответствующие разделам файлы .o сохраняются в базе данных /etc/security/tsd/lib/lib.tsd.dat.