Данная статья устарела. Актуальную версию см. Порядок ротации журналов безопасности подсистемы регистрации событий
Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
- Astra Linux Special Edition РУСБ.10015-16 исп. 1
- Astra Linux Special Edition РУСБ.10015-16 исп. 2
- Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
Все факты начала и окончания работы пользователя фиксируется в журнале /var/log/auth.log
на клиентской машине. Например:
Feb 19 12:32:48 nd-nout fly-dm: :0[3421]: pam_unix(fly-dm:session): session opened for user ivanov by (uid=0)
Указанная запись содержит информацию о начале сессии для пользователя с учетной записью «ivanov
».
Feb 19 13:15:38 ac-old login[3865]: pam_unix(login:session): session closed for user petrovich
Указанная запись содержит информацию о завершении сессии для пользователя с учетной записью «petrovich
».
Кроме того, информация о начале и завершении работы пользователя попадает в журнал подсистемы безопасности parsec:
/var/log/parsec/user.mlog
, доступный для просмотра при помощи утилиты «userlog
». В журнале регистрируются события с типами «auth
» (вход), «exit
» (выход).
Например:
[u] 'Tue Feb 19 12:50:00 2013' '/bin/login' <26828,26778,0,2500,0>[s] exit("login","petrovich")
[u] 'Tue Feb 19 12:57:59 2013' '/usr/bin/fly-dm' <25927,3462,0,0,0> [s] exit("fly-dm","root")
[u] 'Tue Feb 19 13:14:52 2013' '/bin/login' <3796,3680,0,0,0> [s] auth("login","root")
[u] 'Tue Feb 19 13:15:33 2013' '/bin/login' <3865,3683,0,2500,0> [s] auth("login","petrovich")
[u] 'Tue Feb 19 13:15:39 2013' '/bin/login' <3865,3683,0,2500,0> [s] exit("login","petrovich")
[u] 'Tue Feb 19 13:19:53 2013' '/bin/login' <3992,3898,0,2500,0> [s] auth("login","petrovich")
[u] 'Tue Feb 19 13:20:13 2013' '/bin/login' <3992,3898,0,2500,0> [s] exit("login","petrovich")
[u] 'Tue Feb 19 13:20:23 2013' '/bin/login' <4070,4020,0,2500,0> [s] auth("login","petrovich")
[u] 'Tue Feb 19 13:20:31 2013' '/bin/login' <4070,4020,0,2500,0> [s] exit("login","petrovich")
[u] 'Tue Feb 19 13:27:48 2013' '/bin/login' <4212,4091,0,2500,0> [s] auth("login","petrovich")
[u] 'Tue Feb 19 13:27:54 2013' '/bin/login' <4212,4091,0,2500,0> [s] exit("login","petrovich")
[u] 'Tue Feb 19 13:33:51 2013' '/bin/login' <4327,4234,0,2500,0> [s] auth("login","petrovich")
[u] 'Tue Feb 19 13:33:55 2013' '/bin/login' <4327,4234,0,2500,0> [s] exit("login","petrovich")
[u] 'Tue Feb 19 13:39:49 2013' '/bin/login' <4440,4348,0,2500,0> [s] auth("login","petrovich")
[u] 'Tue Feb 19 13:39:53 2013' '/bin/login' <4440,4348,0,2500,0> [s] exit("login","petrovich")
Описание системы регистрации событий приведено в разделе 10 документа «Операционная система специального назначения «Astra Linux Special Edition». Руководство по КСЗ. Часть 1». Дополнительная информация приведена на страницах справочного руководства «man
» для расширенной системы протоколирования, доступной по команде «man parselog
». В операционной системе специального назначения «Astra Linux Special Edition» обеспечивается регистрация всех событий в соответствии с требованиями документа «Руководящий документ. Средства вычислительной техники. Защита от несанкционированного доступа к информации. Показатели защищенности от несанкционированного доступа к информации» ФСТЭК России, предъявляемых к средствам вычислительной техники третьего класса защищенности. Регистрация событий может быть проверена следующим образом: устанавливаем для пользователя (доменного) все возможные флаги аудита:
Audit policy user:petrovich
Audit success rules: ocxudntligarmphew
nr f flag
-- - ----
0 o open
1 c create
2 x exec
3 u delete
4 d chmod
5 n chown
6 t mount
7 l module
8 i uid
9 g gid
10 a audit
11 r acl
12 m mac
13 p cap
14 h chroot
15 e rename
16 w net
Audit fail rules: ocxudntligarmphew
nr f flag
-- - ----
0 o open
1 c create
2 x exec
3 u delete
4 d chmod
5 n chown
6 t mount
7 l module
8 i uid
9 g gid
10 a audit
11 r acl
12 m mac
13 p cap
14 h chroot
15 e rename
16 w net
Очищаем журнал событий на ЭВМ:
> /var/log/parsec/kernel.mlog
Выполняем вход в систему пользователем «petrovich
». Смотрим журнал событий командой kernlog
с фильтрацией по имени пользователя «petrovich
»:
[p] 'Tue Feb 19 13:39:49 2013' '/bin/bash' <4450,4440,2500,2500,2500> [f] open("/ald_home/petrovich/.bash_profile",O_RDONLY) = -2 ENOENT (Нет такого файла иликаталога)
[p] 'Tue Feb 19 13:39:49 2013' '/bin/bash' <4450,4440,2500,2500,2500> [f] open("/ald_home/petrovich/.bash_login",O_RDONLY) = -2 ENOENT (Нет такого файла или каталога)
[p] 'Tue Feb 19 13:39:49 2013' '/bin/bash' <4450,4440,2500,2500,2500> [f] open("/ald_home/petrovich/.profile",O_RDONLY) = -2 ENOENT (Нет такого файла или каталога)
[p] 'Tue Feb 19 13:39:49 2013' '/bin/bash' <4450,4440,2500,2500,2500> [s] open("/ald_home/petrovich/.bash_history",O_RDONLY) = 3
[p] 'Tue Feb 19 13:39:49 2013' '/bin/bash' <4450,4440,2500,2500,2500> [s] open("/ald_home/petrovich/.bash_history",O_RDONLY) = 3
[p] 'Tue Feb 19 13:39:52 2013' '/bin/bash' <4450,4440,2500,2500,2500> [f] open("/ald_home/petrovich/.bash_logout",O_RDONLY) = -2 ENOENT (Нет такого файла или каталога)
[p] 'Tue Feb 19 13:39:52 2013' '/bin/bash' <4450,4440,2500,2500,2500> [s] open("/ald_home/petrovich/.bash_history",O_WRONLY | O_APPEND) = 3
[p] 'Tue Feb 19 13:39:52 2013' '/bin/bash' <4450,4440,2500,2500,2500> [s] open("/ald_home/petrovich/.bash_history",O_RDONLY) = 3
[p] 'Tue Feb 19 13:39:52 2013' '/bin/login' <4440,4348,0,2500,0> [s] umount("/ald_home/petrovich/mac/0/0") = 0
[p] 'Tue Feb 19 13:39:52 2013' '/bin/login' <4440,4348,0,2500,0> [s] umount("/ald_home/petrovich/mac") = 0
[p] 'Tue Feb 19 13:39:52 2013' '/bin/login' <4440,4348,0,2500,0> [s] umount("/ald_home/petrovich") = 0
[p] 'Tue Feb 19 13:39:52 2013' '/bin/login' <4440,4348,0,2500,0> [s] umount("/var/private/mac/petrovich/0/0") = 0
[p] 'Tue Feb 19 13:39:52 2013' '/bin/login' <4440,4348,0,2500,0> [s] umount("/var/private/mac/petrovich") = 0
[p] 'Tue Feb 19 13:39:52 2013' '/usr/sbin/pmvarrun' <4453,4440,0,2500,0> [s] create("/var/run/pam_mount/petrovich",O_RDWR | O_CREAT,-rw-------) = 7
[p] 'Tue Feb 19 13:39:52 2013' '/usr/sbin/pmvarrun' <4453,4440,0,2500,0> [s] chown("/var/run/pam_mount/petrovich",2500,0) = 0
[p] 'Tue Feb 19 13:39:53 2013' '/sbin/umount.cifs' <4455,4454,0,2500,0> [s] umount("/ald_home/petrovich") = 0
Имеется множество событий «open
» (открытие файла), «mount
» (монтирование и размонтирование), «create
» (создание объекта), «chown
» (изменение прав доступа пользователя). В домашнем каталоге пользователя «petrovich
» создаем каталог «testdir
» и в нем файл «testfile
». Владелец файлов — сам пользователь:
drwxr-x--- 2 petrovich petrovich 4096 Фев 19 13:50 testdir
итого 4
-rwxr----- 1 petrovich petrovich 5 Фев 19 13:50 testfile
Устанавливаем на данные файлы флаги аудита:
# file: testdir
o:ouc:ouc
default:o:ouc:ouc
# file: testdir/testfile
o:ouc:ouc
После этого на ЭВМ пользователем «petrovich
» удаляем testdir/testfile
, создаем testdir/testfile2
. На сервере в журнале /var/log/parsec/kern.mlog
регистрируются события:
чтение каталога:
[f] 'Tue Feb 19 14:07:23 2013' '/usr/sbin/smbd' <6514,3024,0,0,2500> [s] open("/ald_export_home/petrovich/testdir",NO_PERMS | O_NONBLOCK | O_DIRECTORY) = 0
удаление файла:
[f] 'Tue Feb 19 14:07:25 2013' '/usr/sbin/smbd' <6514,3024,0,0,2500> [s] unlink("/ald_export_home/petrovich/testdir/testfile (deleted)") = 0
создание файла:
[f] 'Tue Feb 19 14:07:34 2013' '/usr/sbin/smbd' <6514,3024,0,0,2500> [s] create("/ald_export_home/petrovich/testdir/testfile2",-rw-r-----) = 0
[f] 'Tue Feb 19 14:07:34 2013' '/usr/sbin/smbd' <6514,3024,0,0,2500> [s] open("/ald_export_home/petrovich/testdir/testfile2",O_RDONLY | O_CREAT | O_NOFOLLOW) = 0
удаленное копирование:
[f] 'Tue Feb 19 14:12:15 2013' '/usr/bin/scp' <6609,6606,0,0,0> [s] create("/ald_export_home/petrovich/testdir/remote_cp",-rw-r--r--) = 0
[f] 'Tue Feb 19 14:12:15 2013' '/usr/bin/scp' <6609,6606,0,0,0> [s] open("/ald_export_home/petrovich/testdir/remote_cp",O_RDONLY | O_CREAT) = 0
При создании объектов внутри каталога, для которой отслеживаются соответствующие события («create
»), создание любых объектов в ней регистрируется. При установке на файл мандатного уровня/категории регистрируется события «chmac
» (изменение мандатных атрибутов).
setfaud -s o:ocum:ocum testdir/testfile2
> /var/log/parsec/kernel.mlog
chmac 1:0 testdir/testfile2
[f] 'Tue Feb 19 14:24:55 2013' '/bin/bash' <5891,5887,0,0,0> [s] open("/ald_export_home/petrovich/testdir",NO_PERMS | O_NONBLOCK | O_DIRECTORY) = 0
[f] 'Tue Feb 19 14:24:56 2013' '/usr/sbin/chmac' <6914,5891,0,0,0> [s] parsec_chmac("/ald_export_home/petrovich/testdir/testfile2",{1,0x0},0) = 0
Регистрация событий передачи по линиям и каналам связи является требованием документа ФСТЭК России «Руководящий документ. Автоматизированные системы. Защита от несанкционированного доступа к информации. Классификация автоматизированных систем и требования по защите информации» и должна обеспечиваться конструктором АС. При этом операционная система специального назначения «Astra Linux Special Edition» предоставляет возможность регистрации подобного класса. Далее приведен протокол работы пользователя при обмене по сети с использованием утилиты ping.
[p] 'Fri Feb 22 12:57:29 2013' '/bin/bash' <6798,6795,2500,2500,0> [s] exec("/bin/ping") = 0
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,0> [s] open("/etc/ld.so.cache",O_RDONLY) = 3
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,0> [s] open("/lib/libresolv.so.2",O_RDONLY) = 3
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,0> [s] open("/lib/libc.so.6",O_RDONLY) = 3
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,0> [s] setuid(2500) = 0
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] open("/etc/resolv.conf",O_RDONLY) = 4
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] open("/etc/resolv.conf",O_RDONLY) = 4
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] connect(SOCK_STREAM,{AF_UNIX,...},{AF_UNIX,/var/run/nscd/socket}) = 0
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] connect(SOCK_STREAM,{AF_UNIX,...},{AF_UNIX,/var/run/nscd/socket}) = 0
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] open("/etc/nsswitch.conf",O_RDONLY) = 4
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] open("/etc/ld.so.cache",O_RDONLY) = 4
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] open("/lib/libnss_files.so.2",O_RDONLY) = 4</
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] open("/etc/host.conf",O_RDONLY) = 4
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] open("/etc/hosts",O_RDONLY) = 4
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] open("/etc/ld.so.cache",O_RDONLY) = 4
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] open("/lib/libnss_dns.so.2",O_RDONLY) = 4
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] connect(SOCK_DGRAM,{AF_INET,10.0.0.106:41209},{AF_INET,10.0.0.1:53}) = 0
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] sendmsg(SOCK_DGRAM,{AF_INET,10.0.0.106:41209},{AF_INET,10.0.0.1:53}) = 29
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] recvmsg(SOCK_DGRAM,{AF_INET,10.0.0.106:41209},{AF_INET,10.0.0.1:53}) = 78
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] connect(SOCK_DGRAM,{AF_INET,10.0.0.106:48650},{AF_INET,10.0.0.1:1025}) = 0
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] sendmsg(SOCK_RAW,{AF_INET,0.0.0.0:1},{AF_INET,10.0.0.1:0}) = 64
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] recvmsg(SOCK_RAW,{AF_INET,0.0.0.0:1},{AF_INET,10.0.0.1:0}) = 84
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] open("/etc/hosts",O_RDONLY) = 4
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] connect(SOCK_DGRAM,{AF_INET,10.0.0.106:44260},{AF_INET,10.0.0.1:53}) = 0
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] sendmsg(SOCK_DGRAM,{AF_INET,10.0.0.106:44260},{AF_INET,10.0.0.1:53}) = 39
[p] 'Fri Feb 22 12:57:29 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] recvmsg(SOCK_DGRAM,{AF_INET,10.0.0.106:44260},{AF_INET,10.0.0.1:53}) = 96
[p] 'Fri Feb 22 12:57:30 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] sendmsg(SOCK_RAW,{AF_INET,0.0.0.0:1},{AF_INET,10.0.0.1:0}) = 64
[p] 'Fri Feb 22 12:57:30 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] recvmsg(SOCK_RAW,{AF_INET,0.0.0.0:1},{AF_INET,10.0.0.1:0}) = 84
[p] 'Fri Feb 22 12:57:30 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] open("/etc/hosts",O_RDONLY) = 4
[p] 'Fri Feb 22 12:57:30 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] connect(SOCK_DGRAM,{AF_INET,10.0.0.106:53774},{AF_INET,10.0.0.1:53}) = 0
[p] 'Fri Feb 22 12:57:30 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] sendmsg(SOCK_DGRAM,{AF_INET,10.0.0.106:53774},{AF_INET,10.0.0.1:53}) = 39
[p] 'Fri Feb 22 12:57:30 2013' '/bin/ping' <6798,6795,2500,2500,2500> [s] recvmsg(SOCK_DGRAM,{AF_INET,10.0.0.106:53774},{AF_INET,10.0.0.1:53}) = 96
В протоколе зафиксированы все факты отправки и приема сетевых пакетов, а также IP-адреса отправителя и получателя. Порядок настройки системы регистрации событий описан в разделе 10 документа «Операционная система специального назначения «Astra Linux Special Edition». Руководство по КСЗ. Часть 1».
Существует известная проблема в версии 1.2, когда на клиентскую машину заходит пользователь под уровнем 0, то аудит событий перестает работать корректно. Для исправления на каждой клиентской машине, где будут заходить пользователи в файле /etc/pam.d/common-session
добавить в конец строку:
Если на сервер должны заходить пользователи, то на нем так же внести эти изменения. После этого желательно перезагрузить машины.