Quanto podemos confiar nas permissões do sistema de arquivos para segurança?

31

Minha pergunta é sobre permissões de sistema de arquivos (especificamente as permissões de estilo Unix) e como elas se relacionam com a segurança.

Digamos que eu tenha acesso a um computador com uma conta de usuário convidado e um usuário chamado Bob. Não sei a senha de Bob, mas posso usar a conta de convidado. A conta de convidado não tem absolutamente nenhuma permissão de leitura para todos os arquivos de Bob, portanto, não consigo ler nenhum dos arquivos de Bob enquanto estiver conectado como convidado.

No entanto, de uma verdadeira perspectiva de "adversário", tenho acesso total a esse disco não criptografado. Eu poderia imaginá-lo, salvá-lo para mais tarde, executar outro sistema operacional para simplesmente ler os arquivos de Bob, ignorando as configurações de permissão do sistema de arquivos.

A partir disso, chego à pergunta:

  1. Uma configuração de permissão do sistema de arquivos em um disco não criptografado é apenas um sinalizador, correto? E a única coisa que me impede de ler arquivos para os quais eu não tenho permissão é o fato de o sistema operacional dizer "Ah, você não pode ler isso, você não tem permissão". Esse arquivo ainda está no disco na forma bruta e eu poderia lê-lo apenas ignorando os sinalizadores do sistema de arquivos (digamos, através de um sistema operacional inicializável com sombra que simplesmente ignora as permissões). Está tudo correto?

Agora diga que não tenho acesso direto ao disco e que estou apenas metendo em uma máquina. Não tenho permissão para ler nenhum dos arquivos de Bob. Não há realmente nada que eu possa fazer sobre isso, correto?

  1. Dadas minhas permissões limitadas, simplesmente não consigo acessar os arquivos de Bob, por mais que eu tente, não? E se eu usar alguma exploração para obter acesso root? Agora posso ignorar os sinalizadores de permissão do sistema operacional? Isso é algo que acontece?
prumo
fonte
4
sim e sim. você parece entender os conceitos relacionados corretamente. Uma escalada de ataque de privilégio será necessária para ignorar as permissões se você não puder obter acesso físico ao sistema.
Frank Thomas
2
Não seria uma boa ideia migrar isso para o Security.SE ? Parece o lugar mais lógico para isso.
Chris Cirefice
3
@ChrisCirefice Uma investigação mais profunda do conceito de segurança justificaria uma migração. Mas essa é uma pergunta muito básica sobre o entendimento das permissões do sistema de arquivos e seu papel específico no conceito de segurança do sistema, por isso se aplica muito mais a esse superusuário.
precisa saber é o seguinte

Respostas:

31

Resposta mais curta.

Se você possui acesso físico a um sistema de computador - PC ou sistema de armazenamento de dados - e a única “proteção” em vigor são as permissões de arquivo, você não tem 100% de proteção.

Esses dados não criptografados podem ser copiados e clonados com o mínimo de esforço, com quase nenhuma ferramenta além de ter outro dispositivo que você pode conectar à unidade do sistema para fazer uma cópia dos dados.

E sim, é possível que alguns aspectos evidenciais da penetração física precisem ser levados em consideração no acesso em nível físico; como garantir que nenhuma impressão digital seja deixada para trás e que também sejam tratados todos os selos "invioláveis". Mas, honestamente, a grande maioria dos sistemas por aí pode ter suas unidades fisicamente removidas para uma cópia física dos dados, com o usuário final nunca sabendo melhor. Se você possui a unidade, você tem a unidade e, em seguida, os dados, se não estiverem criptografados.

É por isso que a criptografia por usuário ou criptografia de disco completo é uma coisa tão importante hoje em dia; laptops outros dispositivos portáteis de computação são uma parte tão grande do mercado hoje em dia, o risco de perda de dados por roubo de dispositivo ou empréstimo ocasional de um PC é muito maior do que nunca.

Se o disco não estiver criptografado, os dados serão um livro aberto e pronto para ser lido. Esse conceito não se limita às máquinas Linux / Unix, mas a qualquer sistema operacional em qualquer lugar; se você tiver acesso físico a um sistema não criptografado, você possui o sistema.

Dito isto, as permissões de arquivo são uma medida de segurança útil para todos os tipos de servidores remotos.

Resposta mais longa.

Minha pergunta é sobre permissões de sistema de arquivos (especificamente as permissões de estilo Unix) e como elas se relacionam com a segurança.

Primeiro, lembre-se de que a segurança dos computadores - e tudo mais - é realmente apenas um impedimento que atrasa as coisas e não fornece necessariamente segurança absoluta.

Por exemplo, a parte mais fraca da segurança em qualquer edifício físico é a porta que você precisa abrir ao entrar / sair ou a janela que precisa abrir para permitir a entrada de ar. Sim, você pode trancar portas e janelas e configurar alarmes, mas se alguém realmente quer ter acesso a algo - e eles têm tempo, recursos, riqueza e esforço para persegui-lo - terão acesso a ele.

Digamos que eu tenha acesso a um computador com uma conta de usuário convidado e um usuário chamado Bob. Não sei a senha de Bob, mas posso usar a conta de convidado. A conta de convidado não tem absolutamente nenhuma permissão de leitura para todos os arquivos de Bob, portanto, não consigo ler nenhum dos arquivos de Bob enquanto estiver conectado como convidado.

A questão aqui é o contexto de acesso. Se você tiver acesso físico a um computador, praticamente tudo será possível. Mas se você estiver conectado apenas via conexão remota - em algum tipo de rede -, a propriedade do sistema de arquivos é definitivamente um método eficaz de segurança. E, no caso de servidores Linux / Unix, permissões e propriedade são formas eficazes de segurança para impedir invasões remotas.

É por isso que, no mundo Linux / Unix, o rootacesso a um sistema remoto é considerado um grande prêmio. Adquira rootum sistema remoto e, em seguida, você realmente fez algo que lhe oferece maior acesso sem precisar entrar em um data center e clonar uma unidade.

No entanto, de uma verdadeira perspectiva de "adversário", tenho acesso total a esse disco não criptografado. Eu poderia imaginá-lo, salvá-lo para mais tarde, executar outro sistema operacional para simplesmente ler os arquivos de Bob, ignorando as configurações de permissão do sistema de arquivos.

Sim. Exatamente. Se você tiver acesso físico à máquina, então, como explicado no início, todas as apostas serão desativadas. Você pode obter acesso aos arquivos e diretórios de propriedade de outras pessoas criando uma imagem do disco - ou apenas buscando o conteúdo bruto da própria unidade - com pouco ou nenhum esforço técnico profundo.

Qualquer pessoa que, por exemplo, empreste seu computador pessoal e configure uma nova conta apenas para você, sem pensar nesse cenário, está basicamente cedendo todos os dados pessoais que eles têm na máquina sem realmente saber.

Um pouco tangente, mas acho que é por isso que tantos usuários casuais doam PCs antigos sem fazer o menor esforço para limpar os dados na unidade. Eles configuram uma senha de usuário e assumem que mantiveram seus dados seguros, na medida em que poderiam simplesmente jogar a unidade no lixo e não pensar duas vezes. Quando a realidade está sem criptografia verdadeira ou limpeza de dados, qualquer unidade lançada no lixo ou vendida usada pode ser lida por qualquer pessoa em qualquer lugar, sem muito trabalho pesado ou esforço técnico profundo.

JakeGould
fonte
6
Penso que esta resposta perde algo bastante óbvio que vale a pena mencionar. Segurança não é apenas segurança computacional. Os modelos de ameaças também são importantes, porque os atacantes são humanos: os atacantes geralmente querem evitar deixar rastros. Se você conceder a alguém acesso físico a um dispositivo, mas o fizer de tal maneira que o dispositivo não possa ser violado sem deixar rastro (qualquer coisa, desde impressões digitais a marcadores de adulteração ou destruição do dispositivo durante a manipulação), poderá realmente aumentar a segurança do seu sistema, apesar de os dados estarem fisicamente acessíveis.
Mehrdad
@Mehrdad Esse comentário pode fazer sentido em uma discussão mais ampla sobre segurança e proteções contra acesso, mas esta pergunta - e minha resposta relacionada - estão focadas nos conceitos gerais de permissões do sistema de arquivos lógicos versus acesso físico básico a um sistema. E, nesse caso, essas preocupações com impressões digitais e fabricantes de adulterações são apenas conjecturas de um cenário de fantasia. Se alguém tem acesso físico a dados não criptografados, ele tem acesso físico a dados não criptografados e 9 em cada 10 vezes não é necessário ser um "ladrão / espião mestre" para acessar esses dados naquele momento.
precisa saber é o seguinte
15

Seus três pontos:

  1. Se você faz o SSH como um usuário comum, não tem acesso ao dispositivo de disco bruto. Você normalmente precisa rootou tem permissão para acessar os dispositivos de disco bruto e lógico.

  2. Se você obtém o root através de uma exploração, é o usuário mais poderoso do sistema e tem acesso a quase tudo, inclusive ao dispositivo. Como você é root, você pode acessar diretamente os arquivos de Bob, portanto, não é necessário acessar o dispositivo de disco.

  3. Batidas de acesso físico root. Raiz é uma camada lógica. Você pode ignorá-lo com acesso físico ao disco. Isso inclui carregar o disco em um sistema operacional separado, onde você é root.

Obviamente, os sistemas devem ser reforçados contra rootexplorações, mas novas explorações surgem diariamente. Nenhum sistema é 100% seguro, mas você pode torná-lo seguro para fins práticos, limitando o acesso.

Espera-se que as permissões do sistema de arquivos funcionem apenas em situações de acesso de usuário limitado, nas quais o sistema operacional não é comprometido. É um sistema "mantenha honestos (e típicos) usuários honestos", como trancas de bicicleta. Ele trabalha para evitar "crimes de oportunidades" mais do que a proteção total contra falhas.

cde
fonte
As regras de permissão do FS são bastante robustas. Eles funcionam desde que nenhum invasor tenha raiz. A semântica do sistema de arquivos POSIX (e as extensões específicas do Linux) são cuidadosamente projetadas para não abrir mais acesso do que você pode obter apenas open(2). por exemplo, linkat(2)permite criar uma entrada de diretório para um descritor de arquivo aberto, mas somente se a contagem de links ainda não for zero, um processo que recebe um FD aberto para um arquivo excluído não pode vinculá-lo novamente ao sistema de arquivos. Obviamente, um invasor que obtém acesso root ou físico significa que você está brindando. A criptografia ajuda na raiz física, mas não tanto.
Peter Cordes