Como verificar se um filtro seccomp está aplicado no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se um filtro seccomp está aplicado no Linux. Seccomp é um recurso de segurança que restringe as chamadas de sistema que um processo pode fazer.

Você explorará três métodos para verificar o status do seccomp: examinar o arquivo /proc/self/status para verificar o estado seccomp do processo, inspecionar as mensagens do kernel usando dmesg para eventos relacionados ao seccomp e verificar o diretório /sys/kernel/security para informações de configuração do seccomp. Essas etapas fornecerão habilidades práticas para entender e verificar a aplicação do seccomp em um ambiente Linux.

Verificar o status do seccomp com cat /proc/self/status

Nesta etapa, exploraremos como verificar o status do seccomp de um processo no Linux. Seccomp (Secure Computing) é um recurso de segurança que permite a um processo restringir as chamadas de sistema que ele pode fazer. Isso pode ajudar a mitigar o impacto de vulnerabilidades de segurança.

Podemos verificar o status do seccomp do processo atual examinando o arquivo /proc/self/status. Este arquivo contém várias informações de status sobre o processo.

Abra seu terminal, caso ainda não esteja aberto. Você pode fazer isso clicando no ícone Xfce Terminal no lado esquerdo da área de trabalho.

Agora, digite o seguinte comando e pressione Enter:

cat /proc/self/status

Este comando exibirá o conteúdo do arquivo /proc/self/status. Role pela saída e procure uma linha que comece com Seccomp:.

Você deve ver uma saída semelhante a esta:

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

A linha Seccomp: indica o status do seccomp. O valor 0 significa que o seccomp não está habilitado para este processo. Outros valores possíveis indicam diferentes modos de seccomp.

Entender a saída de /proc/self/status é uma habilidade fundamental para inspecionar informações do processo no Linux.

Clique em Continuar para prosseguir para a próxima etapa.

Verificar seccomp em dmesg

Nesta etapa, aprenderemos como verificar as mensagens do kernel relacionadas ao seccomp usando o comando dmesg. dmesg é um comando que exibe as mensagens do buffer de anel do kernel. Essas mensagens contêm informações sobre hardware, drivers de dispositivo e outros eventos de nível de kernel, incluindo eventos relacionados à segurança, como ações do seccomp.

Quando o seccomp está ativo e bloqueia uma chamada de sistema, o kernel geralmente registra uma mensagem no buffer de anel. Podemos usar dmesg para visualizar essas mensagens e filtrar aquelas relacionadas ao seccomp.

Abra seu terminal, caso ainda não esteja aberto.

Agora, digite o seguinte comando e pressione Enter:

dmesg | grep seccomp

Vamos detalhar este comando:

  • dmesg: Este comando exibe as mensagens do kernel.
  • |: Este é um pipe. Ele pega a saída do comando à esquerda (dmesg) e a envia como entrada para o comando à direita (grep).
  • grep seccomp: Este comando procura linhas que contenham a palavra "seccomp" na entrada que recebe.

A saída deste comando mostrará quaisquer mensagens do kernel que incluam o termo "seccomp". Em um ambiente típico onde o seccomp é usado por alguns processos ou contêineres do sistema, você pode ver uma saída semelhante a esta:

[ ... ] 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...

Essas mensagens indicam que o sistema de auditoria do kernel está registrando eventos relacionados ao seccomp. O campo seccomp= na mensagem de auditoria mostra o modo seccomp para o processo no momento do evento.

Se você não vir nenhuma saída, pode significar que nenhum evento relacionado ao seccomp foi registrado recentemente neste ambiente específico. Isso também é normal e depende da atividade do sistema.

Usar dmesg com grep é uma maneira poderosa de filtrar mensagens do kernel e diagnosticar problemas ou observar eventos de segurança.

Clique em Continuar para passar para a próxima etapa.

Inspecionar seccomp em /sys/kernel/security

Nesta etapa final, exploraremos o diretório /sys/kernel/security, que fornece uma interface para vários módulos de segurança do kernel, incluindo seccomp. Este diretório nos permite inspecionar e, às vezes, configurar aspectos relacionados à segurança do kernel.

Abra seu terminal, caso ainda não esteja aberto.

Primeiro, vamos navegar para o diretório /sys/kernel/security. Podemos usar o comando cd para isso:

cd /sys/kernel/security

Agora que estamos no diretório /sys/kernel/security, vamos listar seu conteúdo usando o comando ls:

ls

Você deve ver uma lista de diretórios e arquivos relacionados a diferentes módulos de segurança. Procure um diretório ou arquivo relacionado a seccomp. A saída pode ser semelhante a esta (o conteúdo exato pode variar dependendo do sistema):

apparmor  cap  device_cgroup  lockdown  lsm  selinux  seccomp  smack  tomoyo

Você deve ver um diretório chamado seccomp. Este diretório contém arquivos que fornecem informações sobre a configuração e o status do seccomp no nível do kernel.

Vamos navegar para o diretório seccomp:

cd seccomp

Agora, liste o conteúdo do diretório seccomp:

ls

Você pode ver arquivos como policy ou outros arquivos, dependendo da versão e configuração do kernel. Esses arquivos podem fornecer informações mais detalhadas sobre as políticas de seccomp que estão carregadas ou disponíveis no sistema.

Por exemplo, você pode tentar visualizar o conteúdo de um arquivo como policy se ele existir (o nome do arquivo pode ser diferente):

cat policy

A saída de cat policy dependerá se uma política de seccomp está ativa em todo o sistema ou se este arquivo fornece outras informações. Em muitas configurações padrão, este arquivo pode não conter detalhes extensivos de política legíveis por humanos diretamente, mas sua presença indica que o seccomp é um módulo de segurança reconhecido.

Explorar o sistema de arquivos /sys, particularmente o caminho /sys/kernel/security, é uma maneira fundamental de entender os recursos de segurança habilitados e configurados em seu kernel Linux.

Você agora aprendeu três maneiras diferentes de verificar o status do seccomp e informações relacionadas em um ambiente Linux.

Clique em Continuar para concluir o laboratório.

Resumo

Neste laboratório, aprendemos como verificar se um filtro seccomp está aplicado no Linux. Exploramos três métodos: verificar o arquivo /proc/self/status para ver o status Seccomp: de um processo, verificar mensagens relacionadas ao seccomp no log do kernel usando dmesg e inspecionar o status do seccomp através do sistema de arquivos /sys/kernel/security.

Essas etapas forneceram maneiras práticas de determinar o status do seccomp dos processos e entender como o seccomp é relatado pelo kernel Linux, o que é crucial para análise de segurança e solução de problemas.