Olá a todos! Especialmente para os estudantes do curso , preparamos a tradução do FAQ oficial do projeto SELinux. Achamos que esta tradução pode ser útil não apenas para os estudantes, então estamos compartilhando com vocês.

Tentamos responder algumas das perguntas mais frequentes sobre o projeto SELinux. No momento, as perguntas estão divididas em duas categorias principais. Todas as perguntas e respostas estão .
Visão geral
Visão geral
- O que é Linux com segurança aprimorada?
Linux com segurança aprimorada (SELinux — Security-enhanced Linux) é a implementação padrão da arquitetura de segurança Flask para controle de acesso forçado flexível. Foi criado para demonstrar a utilidade de mecanismos de controle de acesso flexíveis e como esses mecanismos podem ser adicionados ao sistema operacional. A arquitetura Flask foi posteriormente integrada ao Linux e portada para vários outros sistemas, incluindo o sistema operacional Solaris, o sistema operacional FreeBSD e o núcleo Darwin, gerando uma ampla gama de trabalhos relacionados. A arquitetura Flask fornece suporte geral para a aplicação de vários tipos de políticas de controle de acesso forçado, incluindo aquelas baseadas nos conceitos de Type Enforcement, Controle de Acesso Baseado em Papel e Segurança de Múltiplos Níveis. - O que o Linux com segurança aprimorada oferece que o Linux padrão não pode?
O núcleo do Linux com segurança aprimorada estabelece políticas de controle de acesso forçado que restringem programas de usuário e servidores do sistema ao conjunto mínimo de privilégios necessários para executar seu trabalho. Com essa restrição, a capacidade desses programas de usuário e demônios do sistema de causar danos em caso de comprometimento (por exemplo, devido a um estouro de buffer ou configuração incorreta) é reduzida ou eliminada. Este mecanismo de restrição funciona independentemente dos mecanismos tradicionais de controle de acesso do Linux. Ele não reconhece o superusuário 'root' e não compartilha as deficiências conhecidas dos mecanismos de proteção tradicionais do Linux (por exemplo, a dependência dos arquivos binários setuid/setgid).
A segurança de um sistema Linux não modificado depende da correção do núcleo, de todos os aplicativos privilegiados e de cada uma de suas configurações. Problemas em qualquer uma dessas áreas podem levar à compromissos de todo o sistema. Em contraste, a segurança de um sistema modificado, baseado em um núcleo Linux com segurança aprimorada, depende, antes de tudo, da precisão do núcleo e da configuração de sua política de segurança. Embora problemas de correção ou configuração de aplicativos possam permitir um compromisso limitado de programas de usuário individuais e demônios de sistema, eles não representam uma ameaça à segurança de outros programas de usuário e demônios de sistema ou à segurança do sistema como um todo. - Para que serve?
Novos recursos do Linux com segurança aprimorada são projetados para garantir a separação de informações com base em requisitos de privacidade e integridade. Eles visam prevenir que processos leiam dados e programas, falsifiquem dados e programas, contornem mecanismos de segurança de aplicativos, executem programas não confiáveis ou interfiram em outros processos em violação à política de segurança do sistema. Eles também ajudam a limitar os danos potenciais que podem ser causados por programas maliciosos ou incorretos. Além disso, devem ser úteis para permitir que uma única система seja utilizada por usuários com diferentes permissões de segurança para acessar diferentes tipos de informações com requisitos de segurança variados, sem comprometer tais requisitos. - Como posso obter uma cópia?
Muitas distribuições do Linux incluem suporte ao SELinux já integrado como um recurso padrão ou como um pacote adicional. O código base do espaço do usuário do SELinux está disponível em . Os usuários finais normalmente devem usar pacotes fornecidos por sua distribuição. - O que está incluído na sua versão?
O lançamento do NSA SELinux inclui o código principal do espaço do usuário SELinux. O suporte para SELinux já está incluído no núcleo principal do Linux 2.6, disponível em kernel.org. O código principal do espaço do usuário SELinux é composto por uma biblioteca para manipulação da política binária (libsepol), um compilador de políticas (checkpolicy), uma biblioteca para aplicativos que garantem segurança (libselinux), uma biblioteca para ferramentas de gerenciamento de políticas (libsemanage) e várias utilidades relacionadas a políticas (policycoreutils).
Além do núcleo com suporte a SELinux e do código principal do espaço do usuário, você precisará de uma política e alguns pacotes de espaço do usuário corrigidos para SELinux para usar o SELinux. A política pode ser obtida a partir de . - Posso instalar o Linux com segurança reforçada em um sistema Linux existente?
Sim, você pode instalar apenas modificações do SELinux em um sistema Linux existente ou pode instalar uma distribuição Linux que já inclua suporte para SELinux. O SELinux é composto por um núcleo Linux com suporte para SELinux, um conjunto principal de bibliotecas e utilitários, alguns pacotes de usuário modificados e configurações de políticas. Para instalá-lo em um sistema Linux existente que não tenha suporte para SELinux, você deve ser capaz de compilar o software, além de ter outros pacotes de sistema necessários. Se sua distribuição Linux já incluir suporte a SELinux, você não precisa compilar ou instalar a versão NSA SELinux. - Quão compatível é o Linux com segurança reforçada em relação ao Linux não modificado?
O Linux com segurança reforçada oferece compatibilidade binária com aplicativos Linux existentes e com módulos do núcleo Linux existentes, mas alguns módulos do núcleo podem exigir modificações para interagir corretamente com o SELinux. Essas duas categorias de compatibilidade são discutidas em detalhes abaixo:- Compatibilidade de aplicativos
O SELinux garante compatibilidade binária com aplicativos existentes. Expandimos as estruturas de dados do núcleo, incluindo novos atributos de segurança, e adicionamos novas chamadas de API para aplicativos que garantem segurança. No entanto, não alteramos nenhuma estrutura de dados visível para aplicativos e não modificamos a interface de nenhuma chamada de sistema existente, portanto, aplicativos existentes podem operar sem mudanças, desde que a política de segurança permita seu funcionamento. - Compatibilidade de módulos do núcleo
Inicialmente, o SELinux fornecia compatibilidade de origem apenas para módulos do núcleo existentes; era necessário recompilar esses módulos com os cabeçalhos do núcleo alterados para incorporar os novos campos de segurança adicionados às estruturas de dados do núcleo. Como o LSM e o SELinux agora estão integrados ao núcleo principal do Linux 2.6, o SELinux agora garante compatibilidade binária com módulos do núcleo existentes. No entanto, alguns módulos do núcleo podem interagir mal com o SELinux sem alterações. Por exemplo, se um módulo do núcleo aloca e configura diretamente um objeto do núcleo sem usar as funções de inicialização padrão, o objeto do núcleo pode não ter as informações de segurança adequadas. Alguns módulos do núcleo também podem carecer de controle de segurança adequado em suas operações; qualquer chamada existente a funções do núcleo ou funções de permissões também acionará verificações de permissões do SELinux, mas para garantir a conformidade com as políticas MAC, controles mais detalhados ou adicionais podem ser necessários.
Um Linux com segurança aprimorada não deve causar problemas de interação com sistemas Linux comuns, desde que todas as operações necessárias sejam permitidas pela configuração da política de segurança.
- Compatibilidade de aplicativos
- Quais são os objetivos do exemplo de configuração da política de segurança?
Em um nível alto, o objetivo é demonstrar a flexibilidade e a segurança das medidas de controle de acesso forçado e fornecer um sistema funcional simples com alterações mínimas nos aplicativos. Em um nível mais baixo, a política tem uma série de objetivos descritos na documentação de políticas. Esses objetivos incluem a gestão do acesso não autorizado a dados, a proteção da integridade do kernel, do software do sistema, das informações de configuração do sistema e dos logs do sistema, a limitação do dano potencial que pode ser causado pelo uso de vulnerabilidades em processos que exigem privilégios, a proteção de processos privilegiados contra a execução de código malicioso, a proteção do papel do administrador e do domínio contra acesso não autorizado sem autenticação do usuário, a prevenção da interferência de processos comuns de usuário em processos do sistema ou do administrador, assim como a proteção de usuários e administradores contra a exploração de vulnerabilidades em seus navegadores por código malicioso. - Por que o Linux foi escolhido como plataforma base?
O Linux foi escolhido como a plataforma para a implementação de referência inicial deste trabalho devido ao seu crescente sucesso e ambiente de desenvolvimento aberto. O Linux oferece uma ótima oportunidade para demonstrar que essa funcionalidade pode ser bem-sucedida no principal sistema operacional e, ao mesmo tempo, contribuir para a segurança de um sistema amplamente utilizado. A plataforma Linux também proporciona uma excelente oportunidade para que esse trabalho obtenha uma visão abrangente e, possivelmente, sirva como base para investigações adicionais em segurança por outros entusiastas. - Por que você fez este trabalho?
A Agência de Segurança Nacional é responsável por pesquisas e desenvolvimentos avançados de tecnologias necessárias para que a NSA possa fornecer soluções, produtos e serviços de segurança da informação para infraestruturas de informação críticas para os interesses de segurança nacional dos Estados Unidos.
A criação de um sistema operacional seguro e viável continua sendo uma das principais tarefas de pesquisa. Nosso objetivo é desenvolver uma arquitetura eficiente que forneça o suporte necessário à segurança, executando programas de maneira transparente para o usuário e atraente para os fornecedores. Acreditamos que um passo importante para alcançar esse objetivo é demonstrar como os mecanismos de controle de acesso forçado podem ser integrados com sucesso ao sistema operacional principal. - Como isso se relaciona com pesquisas anteriores do sistema operacional da NSA?
Pesquisadores do Laboratório Nacional de Segurança da Informação da NSA, em colaboração com a Secure Computing Corporation (SCC), desenvolveram uma arquitetura poderosa e flexível de controle de acesso forçado baseada em Type Enforcement, um mecanismo desenvolvido pela primeira vez para o sistema LOCK. A NSA e a SCC desenvolveram dois protótipos da arquitetura baseados no Mach: DTMach e DTOS (). A NSA e a SCC, em seguida, trabalharam com o grupo de pesquisa Flux da Universidade de Utah para transferir a arquitetura para o sistema operacional de pesquisa Fluke. Durante essa transferência, a arquitetura foi aprimorada para fornecer melhor suporte a políticas de segurança dinâmicas. Essa arquitetura aprimorada foi chamada de Flask (). Agora, a NSA integrou a arquitetura Flask ao sistema operacional Linux para transferir essa tecnologia para uma comunidade mais ampla de desenvolvedores e usuários. - O Linux com segurança aprimorada é um sistema operacional confiável?
A frase «Sistema operacional confiável» geralmente se refere a um sistema operacional que fornece suporte suficiente para proteção em múltiplas camadas e validação de integridade para atender a um conjunto específico de requisitos governamentais. O Linux com segurança aprimorada incorpora ideias úteis desses sistemas, mas se concentra no controle de acesso forçado. A tarefa inicial no desenvolvimento do Linux com segurança aprimorada era criar funcionalidade útil que proporcionasse benefícios tangíveis de proteção em uma ampla gama de ambientes reais para demonstrar essa tecnologia. O SELinux, por si só, não é um sistema operacional confiável, mas fornece uma função crítica de proteção — controle de acesso forçado — necessário para um sistema operacional confiável. O SELinux foi integrado em distribuições do Linux que foram avaliadas de acordo com o Perfil de Proteção de Segurança Rotulada. Informações sobre produtos verificados e auditados podem ser encontradas em . - Ele está realmente protegido?
O conceito de sistema seguro abrange muitos atributos (como segurança física, segurança do pessoal etc.), e o Linux com segurança aumentada aborda apenas um conjunto muito restrito desses atributos (ou seja, os controles de acesso forçado no sistema operacional). Em outras palavras, um "sistema seguro" significa suficientemente protegido para proteger algumas informações no mundo real de um adversário real, contra o qual o proprietário e/ou usuário das informações se previne. O Linux com segurança aprimorada é destinado apenas a demonstrar os controles obrigatórios em um sistema operacional moderno, como o Linux, e, portanto, por si só, é improvável que se encaixe em qualquer definição interessante de sistema seguro. Acreditamos que a tecnologia demonstrada no Linux com segurança aprimorada será útil para pessoas que criam sistemas seguros. - O que você fez para aumentar a garantia?
O objetivo deste projeto foi adicionar elementos de controle de acesso obrigatório, fazendo o mínimo de alterações no Linux. Esse último objetivo limita bastante o que pode ser feito para aumentar a garantia, por isso não houve trabalho direcionado à melhoria da garantia do Linux. Por outro lado, as melhorias são baseadas em trabalhos anteriores sobre o desenvolvimento de uma arquitetura de segurança altamente confiável, e a maioria desses princípios de design foi incorporada ao Linux com segurança aprimorada. - O CCEVS avaliará o Linux com segurança aprimorada?
O Linux com segurança aprimorada não é, por si só, destinado a resolver todo o conjunto de problemas de segurança apresentados pelo perfil de proteção. Embora fosse possível avaliar apenas sua funcionalidade atual, acreditamos que tal avaliação teria valor limitado. No entanto, trabalhamos com outros para incluir essa tecnologia em distribuições do Linux que foram avaliadas, e distribuições que estão em avaliação. Informações sobre produtos verificados e avaliáveis podem ser encontradas em . - Você tentou corrigir alguma vulnerabilidade?
Não, não procuramos nem encontramos vulnerabilidades durante nosso trabalho. Fizemos apenas o mínimo necessário para adicionar nossos novos mecanismos. - Este sistema é aprovado para uso governamental?
O Linux com segurança aprimorada não tem aprovação especial ou adicional para uso governamental em comparação com qualquer outra versão do Linux. - Como isso se diferencia de outras iniciativas?
O Linux com segurança aprimorada possui uma arquitetura claramente definida para controle de acesso obrigatório flexível, que foi testada experimentalmente com vários sistemas protótipos (DTMach, DTOS, Flask). Estudos detalhados foram realizados sobre a capacidade da arquitetura de suportar uma ampla gama de políticas de segurança e estão disponíveis em e .
A arquitetura proporciona controle detalhado sobre muitas abstrações do núcleo e serviços que não são controlados por outros sistemas. Algumas das características distintivas do Linux com segurança aprimorada incluem:- Separação clara entre a política e os direitos de aplicação
- Interfaces de políticas bem definidas
- Independência de políticas específicas e linguagens de políticas
- Independência de formatos e conteúdos de etiquetas de segurança
- Etiquetas e controles separados para objetos e serviços do núcleo
- Cache de decisões de acesso para eficiência
- Suporte a alterações de políticas
- Controle sobre a inicialização do processo, herança e execução do programa
- Gerenciamento de sistemas de arquivos, diretórios, arquivos e descrições de arquivos abertos
- Gerenciamento de sockets, mensagens e interfaces de rede
- Controle sobre o uso de 'Capacidades'
- Quais são as restrições de licenciamento para este sistema?
Todo o código-fonte encontrado no site , está disponível sob as mesmas condições que os códigos fontes originais. Por exemplo, correções para o núcleo do Linux e correções para muitas utilidades existentes disponíveis aqui são lançadas sob essas condições . - Há controle de exportação?
Para Linux com segurança avançada, não há controles de exportação adicionais em comparação com qualquer outra versão do Linux. - A NSA planeja usá-lo dentro do país?
Por razões óbvias, a NSA não comenta sobre operações de uso. - A Declaração de Garantias de 26 de julho de 2002 da Secure Computing Corporation muda a posição da NSA sobre o fato de que o SELinux foi fornecido sob a Licença Pública Geral GNU?
A posição da NSA não mudou. A NSA ainda acredita que os termos e condições da Licença Pública Geral GNU regulam o uso, cópia, distribuição e modificação do SELinux. Veja . - A NSA apoia software de código aberto?
As iniciativas da NSA para aumentar a segurança do software abrangem tanto software proprietário quanto software de código aberto, e usamos com sucesso modelos tanto proprietários quanto abertos em nossa pesquisa. O trabalho da NSA para aumentar a segurança do software é motivado por uma simples consideração: utilizar nossos recursos da forma mais eficaz possível para oferecer aos clientes da NSA as melhores opções de segurança nos produtos mais amplamente utilizados. O objetivo do programa de pesquisa da NSA é desenvolver inovações tecnológicas que possam ser compartilhadas com a comunidade de desenvolvedores de software por meio de vários mecanismos de transferência. A NSA não apoia nem promove qualquer produto de software ou modelo de negócios específico. Em vez disso, a NSA busca promover a segurança. - A NSA oferece suporte ao Linux?
Como mencionado anteriormente, a NSA não apoia nem promove qualquer produto de software ou plataforma específica; a NSA apenas busca promover a segurança. A arquitetura Flask, demonstrada na implementação de referência do SELinux, foi portado para vários outros sistemas operacionais, incluindo Solaris, FreeBSD e Darwin, foi portada para o hipervisores Xen e aplicada a aplicações como X Window System, GConf, D-BUS e PostgreSQL. Os conceitos da arquitetura Flask são amplamente aplicáveis a uma ampla gama de sistemas e ambientes.
Colaboração
- Como planejamos interagir com a comunidade Linux?
Temos , que servirá como nosso principal meio de publicação de informações sobre Linux com segurança aprimorada. Se você está interessado em Linux com segurança aprimorada, recomendamos que você se junte à lista de discussão dos desenvolvedores, confira o código-fonte e forneça seu feedback (ou código). Para se juntar à lista de discussão dos desenvolvedores, veja. . - Quem pode ajudar?
O SELinux agora é suportado e mantido pela comunidade de desenvolvedores de software de código aberto para Linux. - A NSA financia algum trabalho futuro?
Atualmente, a NSA não está considerando propostas para trabalho adicional. - Que tipo de suporte está disponível?
Pretendemos resolver questões através da lista de distribuição selinux@tycho.nsa.gov, mas não poderemos responder a todas as perguntas relacionadas a sites específicos. - Quem ajudou? O que eles fizeram?
Um protótipo do Linux com segurança melhorada foi desenvolvido pela NSA em colaboração com parceiros de pesquisa da NAI Labs, Secure Computing Corporation (SCC) e MITER Corporation. Após o lançamento público inicial, muitos outros materiais se seguiram. . - Como posso saber mais?
Recomendamos que você visite nossas páginas da web, leia a documentação e trabalhos de pesquisa anteriores, além de participar de nossa lista de discussão selinux@vger.kernel.org
Você achou a tradução útil? Deixe seus comentários!
Fonte: habr.com
