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

31

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

Digamos que eu tenha acesso a um computador com uma conta de usuário guest 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, por isso não consigo ler nenhum dos arquivos de Bob enquanto estiver logado como convidado.

No entanto, do ponto de vista do “adversário”, tenho acesso total a esse disco não criptografado. Eu consegui visualizar, salvar para mais tarde, executar outro sistema operacional para simplesmente ler os arquivos de Bob e ignorar 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 que o sistema operacional vai dizer "Ah, você não pode ler isso, você não tem permissão". Esse arquivo ainda está no disco. em forma bruta e eu poderia lê-lo apenas ignorando os sinalizadores do sistema de arquivos (digamos, através de algum sistema operacional inicializável que simplesmente ignora as permissões). Está tudo correto?

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

  1. Dadas as minhas permissões limitadas, simplesmente não consigo acessar os arquivos do Bob, não importa o quanto eu tente, não? E se eu usar algum exploit para obter acesso root? Agora posso ignorar as sinalizações de permissão do sistema operacional? Isso é algo que já aconteceu?
por bob 27.09.2015 / 05:38

2 respostas

31

Resposta mais curta.

Se você tiver 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 terá 100% de proteção.

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

E sim, potencialmente alguns aspectos evidenciais da penetração física talvez precisem ser levados em conta no acesso em um nível físico; como garantir que nenhuma impressão digital seja deixada para trás e quaisquer vedações "invioláveis" sejam tratadas também. Mas honestamente, a grande maioria dos sistemas que estão por aí pode ter suas unidades removidas fisicamente para uma cópia física dos dados, com o usuário final nunca sabendo de nada. Se você tiver a unidade, terá a unidade e, em seguida, os dados serão descriptografados.

É por isso que a criptografia por usuário ou a criptografia de disco completo é algo tão importante hoje em dia; laptops Outros dispositivos de computação portáteis são uma parte tão grande do mercado hoje em dia que o risco de perda de dados por roubo de dispositivos ou empréstimos casuais de um PC é muito maior do que no passado.

Se o disco não estiver criptografado, os dados nele contidos são um livro aberto, pronto para ser lido. Este conceito não está limitado a 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ê tem o sistema.

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

Resposta mais longa.

My question is about filesystem permissions (specifically the Unix style permissions) and how they relate to security.

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

Por exemplo, a parte mais fraca de segurança em qualquer edifício físico é a porta que você tem que abrir ao entrar / sair dela 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 quiser acesso a algo - e eles tiverem tempo, recursos, riqueza e esforço para buscá-lo - eles terão acesso a ele.

Say I have access to a computer with a guest user account and a user named Bob. I don’t know Bob's password, but I can use the guest account. The guest account has absolutely no read permissions for all of Bob’s files, so I can’t read any of Bob’s files while logged in as guest.

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

É por isso que, no mundo Linux / Unix, o ganho de root de acesso a um sistema remoto é considerado um grande prêmio. Ganhe root para um sistema remoto e então você realmente fez algo que lhe dá maior acesso sem precisar entrar em um data center e clonar uma unidade.

However, from a true “adversary” perspective, I have full access to this unencrypted disk. I could image it, save it for later, run some other OS to simply read Bob’s files while ignoring the filesystem permission settings.

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

Qualquer pessoa que, por exemplo, empresta seu computador pessoal e configura uma nova conta apenas para você sem pensar nesse cenário é basicamente fornecer todos os dados pessoais que eles possuem em suas máquinas sem realmente saber.

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

    
por 27.09.2015 / 06:05
15

Seus três pontos:

  1. Se você usa o SSH como usuário comum, não tem acesso ao dispositivo de disco bruto. Você normalmente precisa de root ou permissão para acessar os dispositivos de disco brutos e lógicos.

  2. Se você obtiver root por meio de uma exploração, será o usuário mais poderoso do sistema e terá acesso a quase tudo, incluindo o dispositivo. Como você é root, é possível acessar diretamente os arquivos de Bob, portanto não é necessário acessar o dispositivo de disco.

  3. O acesso físico é igual a root . Raiz é uma camada lógica. Você pode ignorá-lo com acesso físico ao disco. Isso inclui carregar o dito disco em um sistema operacional separado no qual você é root.

Naturalmente, os sistemas devem ser protegidos contra root exploits, 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 somente em situações de acesso de usuário limitado, em que o SO não é comprometido. É um sistema "honesto (e típico) honesto", como travas de bicicleta. Ele trabalha para evitar "crimes de oportunidades" mais do que uma proteção total segura.

    
por 27.09.2015 / 06:19