Módulos de segurança Linux - Linux Security Modules

O Linux Security Modules ( LSM ) é uma estrutura que permite ao kernel do Linux oferecer suporte sem preconceitos a uma variedade de modelos de segurança de computador . O LSM é licenciado sob os termos da GNU General Public License e é uma parte padrão do kernel do Linux desde o Linux 2.6. AppArmor , SELinux , Smack e TOMOYO Linux são os módulos de segurança atualmente aprovados no kernel oficial.

Projeto

O LSM foi projetado para atender a todos os requisitos para a implementação bem-sucedida de um módulo de controle de acesso obrigatório , ao mesmo tempo que impõe o mínimo possível de alterações no kernel do Linux. O LSM evita a abordagem de interposição de chamada do sistema usada pelo Systrace porque não é escalável para kernels de multiprocessador e está sujeito a ataques de TOCTTOU (corrida). Em vez disso, o LSM insere " ganchos " (upcalls para o módulo) em cada ponto no kernel onde uma chamada de sistema em nível de usuário está prestes a resultar em um acesso a um importante objeto de kernel interno como inodes e blocos de controle de tarefa.

O LSM tem um escopo restrito para resolver o problema de controle de acesso , embora não imponha um patch de mudança grande e complexo no kernel principal. Não se destina a ser um mecanismo geral de " gancho " ou " upcall ", nem oferece suporte à virtualização no nível do sistema operacional .

A meta de controle de acesso do LSM está intimamente relacionada ao problema de auditoria do sistema , mas é sutilmente diferente. A auditoria requer que todas as tentativas de acesso sejam registradas. O LSM não pode fornecer isso, porque exigiria muito mais ganchos, a fim de detectar casos em que o kernel " curto-circuita " chamadas de sistema com falha e retorna um código de erro antes de chegar perto de objetos significativos.

O design do LSM é descrito no artigo Módulos de Segurança do Linux: Suporte Geral de Segurança para o Kernel do Linux apresentado na USENIX Security 2002. Na mesma conferência foi o artigo Usando CQUAL para Análise Estática de Posicionamento de Gancho de Autorização que estudou a análise estática automática do código do kernel para verificar se todos os ganchos necessários foram realmente inseridos no kernel do Linux.

Adoção

História

No Linux Kernel Summit de 2001, a NSA propôs que o SELinux fosse incluído no Linux 2.5. Linus Torvalds rejeitou o SELinux na época, porque ele observou que há muitos projetos de segurança diferentes em desenvolvimento e, como todos são diferentes, a comunidade de segurança ainda não formou um consenso sobre o modelo de segurança final. Em vez disso, Linus cobrou da comunidade de segurança "torná-lo um módulo".

Em resposta, Crispin Cowan propôs LSM: uma interface para o kernel Linux que fornece "ganchos" (upcalls) suficientes de dentro do kernel Linux para um módulo carregável de modo a permitir que o módulo imponha controles de acesso obrigatórios. O desenvolvimento do LSM nos dois anos seguintes foi conduzido pela comunidade do LSM, incluindo contribuições substanciais da Immunix Corporation , NSA , McAfee , IBM , Silicon Graphics e muitos colaboradores independentes. O LSM foi finalmente aceito no kernel do Linux e incluído como parte padrão do Linux 2.6 em dezembro de 2003.

Em 2006, alguns desenvolvedores de kernel observaram que SELinux era o único módulo LSM amplamente usado incluído na árvore de origem do kernel Linux principal. Se deveria haver apenas um módulo LSM amplamente usado, pensava-se, então a indireção do LSM é desnecessária e o LSM deveria ser removido e substituído pelo próprio SELinux. No entanto, existem outros módulos LSM mantido fora da árvore do kernel convencional ( AppArmor , Intrusion Detection System Linux , fireflier , cipso , multi ADM , etc.), de modo que este argumento levou a dois resultados: 1. que os desenvolvedores desses módulos começaram a colocar esforço para upstreaming seus respectivos módulos, e 2. no Kernel Summit de 2006 , Linus mais uma vez afirmou que o LSM ficaria porque ele não quer arbitrar qual é o melhor modelo de segurança.

É provável que o LSM permaneça, já que os módulos de segurança adicionais Smack (versão 2.6.25), TOMOYO Linux (versão 2.6.30, junho de 2009) e AppArmor (versão 2.6.36) foram aceitos no kernel principal.

Referências

links externos