Como implementar melhor segurança no Linux?

4

Estou apenas investigando a segurança e o controle da plataforma Linux em comparação com o Android.

No Android, parece haver um enorme desenvolvimento em torno da segurança - os aplicativos precisam solicitar permissões do sistema e, se o usuário conceder essa permissão, o sistema permitirá que o aplicativo seja executado com privilégios concedidos.

Não é assim no Linux baunilha. Os aplicativos podem acessar o que quiserem, embora não concedam a modificação de arquivos, mas mesmo assim. Os usuários simplesmente não sabem como os aplicativos funcionam e quais informações sensíveis à informação eles usam e o que fazem com essas informações (carregue-os em um banco de dados e venda-os a terceiros).

Então, o que é isso?

Eu imagino que o kernel do Linux precisa ser modificado para aceitar tokens de acesso por aplicativo ou algo semelhante.

O Windows tem pelo menos algum tipo de sistema de segurança com o firewall e o serviço de autoridade local. (Eu sei pouco sobre o Windows.)

    
por Nathaniel Bennett 21.04.2013 / 23:22
fonte

3 respostas

11

Os objetivos da segurança do Android são diferentes dos que eram tradicionalmente com sistemas operacionais de desktop como o Linux ou o Windows.

Até recentemente, todos os sistemas assumiam que o administrador e o usuário conheciam e confiavam nos aplicativos que eles instalam. Ou se não se pode esperar que o usuário saiba, eles precisam que o administrador, que é presumivelmente mais experiente, faça isso por eles. A segurança garantiu, principalmente, que os usuários não possam ler ou danificar os dados uns dos outros ou impedir que outros trabalhem. Esse ainda é o caso do Linux e do Windows no modo de área de trabalho.

Para telefones celulares, o caso é diferente. Os telefones celulares são de usuário único, mas eles não têm administrador e devem ser usados por usuários sem experiência em tecnologia. Assim, a segurança do telefone celular (e tablet) deve dar ao usuário algum nível de proteção contra aplicativos maliciosos, especialmente agora que as lojas de aplicativos fornecem milhares de aplicativos.

A tradicional segurança de isolar usuários é bem entendida depois de mais de 30 anos de experiência. Também é bem compreendido como reutilizar os mecanismos de segurança para separar os serviços no servidor para limitar os danos que podem ser causados pela exploração do bug em um deles. Os mecanismos para esse fim foram bastante aprimorados ao longo do tempo, levando a um SELinux muito poderoso e flexível, mas ainda requer um administrador de sistema experiente para configurar.

Por outro lado, proteger o usuário contra cavalos de Tróia (aplicativos maliciosos que eles estão sendo enganados na instalação) é novo, em grande parte inexplorado e ainda gravemente deficiente. O maior problema é que, se você (com razão) não espera que o usuário possa julgar se o aplicativo é confiável, você não pode realmente esperar que eles saibam o que as permissões que eles estão confirmando significam e qual é a implicação de concedê-las. para a aplicação são. Apple e Microsoft trabalham em torno disso controlando rigidamente o conteúdo de suas lojas de aplicativos, mas isso tem seus próprios problemas (é surpreendente que nenhuma agência anti-trust tenha proibido isso ainda), o Google a ignorou até recentemente e implementou alguma forma de monitoramento agora. Também deve ser notado que o sistema de permissão existe pelo menos desde o Symbian.

Deve-se notar que o sistema de segurança do Android usa os mesmos mecanismos subjacentes que o Linux para desktop. A diferença está em como ela é configurada, e não em como funciona.

    
por 22.04.2013 / 09:13
fonte
4

A segurança do Android é quase uma piada. Considere a permissão "ler estado e identidade do telefone". Isso é quase sempre usado pelos aplicativos para enviar os detalhes do seu telefone para os anunciantes, para que eles possam segmentar anúncios para você (e ganhar um pouco de receita com o criador do aplicativo). O aplicativo realmente precisa de acesso a todos os seus dados confidenciais no telefone apenas para obter uma identificação exclusiva de você? Aparentemente sim!

Depois, há a maneira como as permissões são usadas, atualmente há um pouco de malware na App Store, onde um aplicativo legítimo solicitou permissão e, posteriormente, atualizou o aplicativo para adicionar alguns malwares que exploraram essa permissão - e não notou-se como a permissão já foi concedida.

Acho que o modelo de segurança do Android, ou seja, você precisa conceder permissão a várias configurações iniciais e de maneira tão grosseira, significa que ninguém realmente olha para o que os aplicativos exigem. É preciso aceitar tudo permissões de segurança para usar o aplicativo.

Eu diria que todos os usuários não sabem como os aplicativos Android funcionam - uma vez que você forneceu um acesso a arquivos e à rede de aplicativos, ele pode enviar todos os seus arquivos para terceiros sem precisar de permissão - você tem um aplicativo gerenciador de arquivos no seu telefone que já recebeu essas permissões, não é?

Você não pode criar segurança de forma a interromper todas as coisas ruins sem também interromper todas as coisas boas - a segurança é mais sobre permissões de tempo de execução e restringir aplicativos de acessar partes do sistema que não deveriam ter acesso para. Agora, a segurança do Linux é baseada principalmente na segurança do sistema de arquivos, na medida em que impede que aplicativos executados de um usuário acessem arquivos de outro usuário (como um sistema multiusuário, isso é importante, e mesmo para um sistema de usuário único app acessando arquivos de sistema 'root' sensíveis).

BTW, o Linux tem o iptables - um firewall 'embutido', e se o sistema de segurança padrão não for bom o suficiente, você pode configurar o SELinux, que foi projetado pela NSA.

    
por 22.04.2013 / 01:01
fonte
0

Existe o projeto SELinux que permite ajustar as interações entre processos (e sistema de arquivos). O sistema de permissões é um pouco mais flexível que o Android ao custo de maior complexidade. Outras possibilidades são, entre outras, TOMOYO Linux e AppArmor . Existem distribuições de desktop que as habilitam por padrão como o Fedora .

No entanto, meu palpite é que no Linux os aplicativos são confiáveis e a proteção é feita para:

  • Minimize o efeito de brechas de segurança (por exemplo, para evitar que o processo do Apache desvirtuado interfira no PostgreSQL)
  • Não permita que o usuário saia de seus limites e acesse os dados de outros usuários

É de certa forma justificado como a maioria das aplicações são de código aberto e bem conhecidas, por isso é provável que esse código seja descoberto.

    
por 22.04.2013 / 08:13
fonte