Linux 에서 seccomp 필터 적용 여부 확인 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 에서 seccomp 필터가 적용되었는지 확인하는 방법을 배우게 됩니다. Seccomp 는 프로세스가 수행할 수 있는 시스템 호출을 제한하는 보안 기능입니다.

/proc/self/status 파일을 검사하여 프로세스의 seccomp 상태를 확인하고, dmesg를 사용하여 seccomp 관련 이벤트를 위한 커널 메시지를 검사하며, /sys/kernel/security 디렉토리를 확인하여 seccomp 구성 정보를 확인하는 세 가지 방법을 탐구할 것입니다. 이러한 단계는 Linux 환경에서 seccomp 적용을 이해하고 확인하기 위한 실질적인 기술을 제공할 것입니다.

cat /proc/self/status로 seccomp 상태 확인

이 단계에서는 Linux 에서 프로세스의 seccomp 상태를 확인하는 방법을 살펴봅니다. Seccomp (Secure Computing) 는 프로세스가 수행할 수 있는 시스템 호출을 제한할 수 있는 보안 기능입니다. 이는 보안 취약점의 영향을 완화하는 데 도움이 될 수 있습니다.

/proc/self/status 파일을 검사하여 현재 프로세스의 seccomp 상태를 확인할 수 있습니다. 이 파일에는 프로세스에 대한 다양한 상태 정보가 포함되어 있습니다.

아직 열려 있지 않은 경우 터미널을 엽니다. 데스크탑 왼쪽의 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를 클릭하십시오.

dmesg 에서 seccomp 확인

이 단계에서는 dmesg 명령을 사용하여 seccomp 와 관련된 커널 메시지를 확인하는 방법을 배우겠습니다. 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 관련 이벤트가 기록되지 않았을 수 있습니다. 이것 또한 정상이며 시스템의 활동에 따라 다릅니다.

grep과 함께 dmesg를 사용하는 것은 커널 메시지를 필터링하고 문제를 진단하거나 보안 이벤트를 관찰하는 강력한 방법입니다.

다음 단계로 이동하려면 Continue를 클릭하십시오.

/sys/kernel/security 에서 seccomp 검사

이 마지막 단계에서는 seccomp 를 포함한 다양한 커널 보안 모듈에 대한 인터페이스를 제공하는 /sys/kernel/security 디렉토리를 살펴보겠습니다. 이 디렉토리를 통해 커널의 보안 관련 측면을 검사하고 때로는 구성할 수 있습니다.

아직 열려 있지 않은 경우 터미널을 엽니다.

먼저 /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 커널에서 활성화되고 구성된 보안 기능을 이해하는 핵심적인 방법입니다.

이제 Linux 환경에서 seccomp 상태 및 관련 정보를 확인하는 세 가지 다른 방법을 배웠습니다.

Lab 을 완료하려면 Continue를 클릭하십시오.

요약

이 Lab 에서는 Linux 에서 seccomp 필터가 적용되었는지 확인하는 방법을 배웠습니다. /proc/self/status 파일을 확인하여 프로세스의 Seccomp: 상태를 확인하고, dmesg를 사용하여 커널 로그에서 seccomp 관련 메시지를 확인하고, /sys/kernel/security 파일 시스템을 통해 seccomp 상태를 검사하는 세 가지 방법을 살펴보았습니다.

이러한 단계는 프로세스의 seccomp 상태를 확인하고 seccomp 가 Linux 커널에 의해 어떻게 보고되는지 이해하는 실용적인 방법을 제공했으며, 이는 보안 분석 및 문제 해결에 매우 중요합니다.