Usando o Seccomp para limitar a superfície de ataque do kernel
Projeto de Sistemas Operaionais

Aluno: Elisandro Mello Corrêa
Professor: Roland Teodorowitsch
Sistemas Linux
O sistema operacional Linux possui algumas centenas de chamadas de sistema, mas a maioria deles não é utilizado por nenhum processo. Essa estrutura possibilita que um processo possa ser “ludibriado” em utilizar outras chamadas de sistema, podendo causar uma vulnerabilidade de segurança que pode resultar no comprometimento de todo o sistema.
O que é os Filtos Seccomp
A filtragem do Linux “seccomp”, permite especificar ao sistema, que um processo deve operar em área reduzida do “kernel”, limitando a área exposta aos aplicativos. Sendo útil para:
- Restringir aplicativos de invocar “syscalls ” que podem afetar o host;
- Reduzir a superfície de ataque do “kernel” em caso de erros de segurança
O que não é?
A documentação oficial do Kernel.org (2017) nos apresenta que a filtragem não é uma caixa de areia.
Mas sim, uma solução que fornece um mecanismo, claramente definido, para minimizar a área de atuação de um processo ou aplicativo.
Seccomp
A primeira versão do “seccomp” foi adicionada ao “Kernel ” em 2005 no Linux 2.6.12:
habilitando a regra para: /proc/PID/seccomp.
O Processo pode realizar somente 4 chamadas:
- read()
- write()
- exit()
- sigreturn().
A grande mudança ocorreu no "modo Seccomp 2" (ou "modo de filtro Seccomp") que foi adicionado ao Linux 3.5 em 2012.
- SECCOMP_MODE_FILTER
Apartir, desse modo, os processos podem especificar quais chamadas de sistema são permitidas;
- BPF - berkeley packet filter;
Utilizando um miniprograma no idioma do filtro de pacotes Berkeley (BPF)
- Filtragem Personalizada
Os processos podem restringir as "syscalls" inteiramente ou apenas para determinados valores de argumento;
Referências
Kernel.Org (USA).Documentação oficial. Em: https://www.kernel.org/doc/Documentation/prctl/seccomp_filter.txt>. Acesso em: 02 outubro 2017.
KERRISK, Michael. Linux Programmer’s Manual. Em: < http://man7.org/linux/man-pages/man2/seccomp.2.html>. Acesso em: 02 outubro 2017.
HERLIHY, Maurice; SHAVIT, Nir. The Art of Multiprocessor Programming. Burlington: Morgan Kaufmann Publishers, 2008.
Sistema Colabotativo ProfileIT
By elisandro
Sistema Colabotativo ProfileIT
- 268