Введение
В этом лабораторном занятии вы узнаете, как проверить, применен ли seccomp-фильтр в Linux. Seccomp (Security Computing Mode) — это функция безопасности, которая ограничивает системные вызовы, которые может выполнять процесс.
Вы изучите три метода для проверки статуса seccomp: анализ файла /proc/self/status для проверки состояния seccomp процесса, проверка сообщений ядра с помощью команды dmesg на предмет событий, связанных с seccomp, и проверка каталога /sys/kernel/security на наличие информации о конфигурации seccomp. Эти шаги предоставят вам практические навыки для понимания и проверки применения seccomp в среде Linux.
Проверка статуса seccomp с помощью команды cat /proc/self/status
На этом шаге мы узнаем, как проверить статус seccomp (Secure Computing) процесса в Linux. Seccomp — это функция безопасности, которая позволяет процессу ограничить системные вызовы, которые он может выполнять. Это может помочь уменьшить воздействие уязвимостей безопасности.
Мы можем проверить статус seccomp текущего процесса, изучив файл /proc/self/status. Этот файл содержит различную информацию о статусе процесса.
Если терминал еще не открыт, откройте его. Для этого нажмите на значок Xfce Terminal слева на рабочем столе.
Теперь введите следующую команду и нажмите Enter:
cat /proc/self/status
Эта команда отобразит содержимое файла /proc/self/status. Прокрутите вывод и найдите строку, начинающуюся с Seccomp:.
Вы должны увидеть вывод, похожий на следующий:
Name: zsh
Umask: 0002
State: R (running)
Tgid: ...
Ngid: 0
Pid: ...
PPid: ...
TracerPid: 0
Uid: ...
Gid: ...
FDSize: 64
Groups: ...
NStgid: ...
NSpid: ...
NSpgid: ...
NSsid: ...
VmPeak: ... kB
VmSize: ... kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: ... kB
VmRSS: ... kB
RssAnon: ... kB
RssFile: ... kB
RssShmem: ... kB
VmData: ... kB
VmStk: ... kB
VmExe: ... kB
VmLib: ... kB
VmPTE: ... kB
VmSwap: 0 kB
HugetlbPages: 0 kB
CoreDumpFilter: 00000000
Threads: 1
SigQ: .../...
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
voluntary_ctxt_switches: ...
nonvoluntary_ctxt_switches: ...
Seccomp: 0
Строка Seccomp: указывает статус seccomp. Значение 0 означает, что seccomp не включен для этого процесса. Другие возможные значения указывают на различные режимы seccomp.
Понимание вывода файла /proc/self/status является базовым навыком для проверки информации о процессах в Linux.
Нажмите Continue, чтобы перейти к следующему шагу.
Проверка seccomp в выводе dmesg
На этом шаге мы узнаем, как проверять сообщения ядра, связанные с seccomp, с помощью команды dmesg. Команда dmesg отображает сообщения из кольцевого буфера ядра. Эти сообщения содержат информацию о железе, драйверах устройств и других событиях на уровне ядра, включая события, связанные с безопасностью, такие как действия seccomp.
Когда seccomp активен и блокирует системный вызов, ядро часто записывает сообщение в кольцевой буфер. Мы можем использовать команду dmesg для просмотра этих сообщений и фильтрации по тем, которые связаны с seccomp.
Если терминал еще не открыт, откройте его.
Теперь введите следующую команду и нажмите Enter:
dmesg | grep seccomp
Разберем эту команду:
dmesg: Эта команда отображает сообщения ядра.|: Это символ пайпа (конвейера). Он берет вывод команды слева (dmesg) и передает его в качестве входных данных команде справа (grep).grep seccomp: Эта команда ищет строки, содержащие слово "seccomp", во входных данных, которые она получает.
Вывод этой команды покажет все сообщения ядра, содержащие термин "seccomp". В типичной среде, где seccomp используется некоторыми системными процессами или контейнерами, вы можете увидеть вывод, похожий на следующий:
[ ... ] audit: type=1326 audit(...): auid=... uid=... gid=... ses=... subj=unconfined seccomp=0 pid=... comm="..." exe="..." sig=0 arch=c000003e syscall=... compat=0 ip=... code=0x...
[ ... ] audit: type=1326 audit(...): auid=... uid=... gid=... ses=... subj=unconfined seccomp=2 pid=... comm="..." exe="..." sig=0 arch=c000003e syscall=... compat=0 ip=... code=0x...
Эти сообщения указывают, что система аудита ядра записывает события, связанные с seccomp. Поле seccomp= в сообщении аудита показывает режим seccomp для процесса в момент события.
Если вы не видите никакого вывода, это может означать, что недавно в этой конкретной среде не были записаны события, связанные с seccomp. Это также нормально и зависит от активности системы.
Использование dmesg с grep — это мощный способ фильтровать сообщения ядра и диагностировать проблемы или наблюдать за событиями безопасности.
Нажмите Continue, чтобы перейти к следующему шагу.
Проверка seccomp в каталоге /sys/kernel/security
На этом последнем шаге мы рассмотрим каталог /sys/kernel/security, который предоставляет интерфейс к различным модулям безопасности ядра, включая seccomp. Этот каталог позволяет нам проверять и иногда настраивать аспекты безопасности ядра.
Если терминал еще не открыт, откройте его.
Сначала перейдем в каталог /sys/kernel/security. Для этого можно использовать команду cd:
cd /sys/kernel/security
Теперь, когда мы находимся в каталоге /sys/kernel/security, выведем его содержимое с помощью команды ls:
ls
Вы должны увидеть список каталогов и файлов, связанных с разными модулями безопасности. Найдите каталог или файл, связанный с seccomp. Вывод может выглядеть примерно так (точное содержимое может отличаться в зависимости от системы):
apparmor cap device_cgroup lockdown lsm selinux seccomp smack tomoyo
Вы должны увидеть каталог с именем seccomp. Этот каталог содержит файлы, которые предоставляют информацию о конфигурации и статусе seccomp на уровне ядра.
Перейдем в каталог seccomp:
cd seccomp
Теперь выведем содержимое каталога seccomp:
ls
Вы можете увидеть файлы, такие как policy, или другие файлы в зависимости от версии ядра и его конфигурации. Эти файлы могут предоставить более подробную информацию о политиках seccomp, которые загружены или доступны в системе.
Например, вы можете попробовать просмотреть содержимое файла, такого как policy, если он существует (имя файла может быть другим):
cat policy
Вывод команды cat policy будет зависеть от того, активна ли политика seccomp на всей системе или предоставляет ли этот файл другую информацию. В многих стандартных конфигурациях этот файл может не содержать обширных деталей политики, доступных для чтения человеком, но его наличие указывает на то, что seccomp является распознаваемым модулем безопасности.
Исследование файловой системы /sys, особенно пути /sys/kernel/security, является важным способом понять, какие функции безопасности включены и настроены в вашем ядре Linux.
Теперь вы узнали три разных способа проверки статуса seccomp и связанной информации в среде Linux.
Нажмите Continue, чтобы завершить лабораторную работу.
Резюме
В этой лабораторной работе мы научились проверять, применен ли фильтр seccomp в Linux. Мы рассмотрели три метода: проверку файла /proc/self/status для просмотра статуса Seccomp: процесса, проверку сообщений, связанных с seccomp, в журнале ядра с помощью команды dmesg и проверку статуса seccomp через файловую систему /sys/kernel/security.
Эти шаги предоставили практические способы определения статуса seccomp процессов и понимания того, как seccomp отображается ядром Linux, что является важным для анализа безопасности и устранения неполадок.



