problemas de segurança da instalação do código-fonte como raiz

2

Eu tive uma dúvida sobre como a instalação do código-fonte na conta raiz não é uma boa ideia por motivos de segurança.

Minha posição é que não importa se alguém está na conta root, começando com a descompactação do código e executando as etapas para instalá-lo.

#./configure 
#make 
#make install

ao contrário de:

$./configure
$make
$sudo make install

Minha lógica é: isso realmente não importa, porque se ele vai causar um risco de segurança, é por causa do código em si, e não como ele é instalado, porque o comando end usa root para instalar o binário final e quaisquer arquivos que ele instala junto com ele.

Independentemente de alguém estar em uma sessão de usuário não raiz ou não, se o código-fonte tiver um malware codificado em sua origem, ele estará agora no sistema, não importa o quê. Portanto, é sempre um risco, não importa o quê.

Isso não tem nada a ver com o próprio código, tem mais a ver com o repo que não tem um aplicativo incluído nele, portanto, acesse o hub ou o site de pessoas que o escreveu e use o código-fonte para obtê-lo instalado. Algo tão simples quanto instalar a árvore mesmo.

O usuário, então, fica mais preocupado com a forma como ele criou o código-fonte, se ele estiver logado na conta root ou em uma conta de usuário "normal".

Já ouvi todos os argumentos sobre por que não se deve usar root, pois a falta de atenção ao que eles estão escrevendo no terminal pode causar danos irreversíveis ao sistema; pode-se fazer tanto dano usando o sudo, portanto, isso em si é um argumento redundante e um sistema de crenças. Portanto, não é nem mesmo ser parte do ponto que está incluído neste argumento.

Esta é mais ou menos uma pergunta sim ou não. Sim - estou certo, não importa a longo prazo se alguém está usando sua conta root para compilar e instalar aplicativos de código-fonte no sistema, ou não.

ou

Não - estou errado, é importante porque você precisa usar privilégios de root para fazer o mesmo.

    
por uxserx-bw 11.02.2016 / 13:20

4 respostas

3

Se você usa programas em execução como root, então você dá a um atacante em potencial mais pontos para atacá-lo do que apenas os "necessários". Tentativas de comprometer seu sistema, na maioria das vezes, não funcionarão (ou serão mais difíceis) sem privilégios de root. Sua abordagem com todos os comandos como root também pode levar a simplesmente fazer tudo como root (listar um diretório, abrir uma imagem, reproduzir música ...) e isso significa muitos pontos potencialmente problemáticos.

Mesmo não intencionalmente - um bug em um programa que você executa pode causar muito mais danos quando executado como root (e é praticamente impossível remover todos os bugs do SW). Ou quando o usuário insere opções incorretas (possibilidade muito mais provável).

Além disso, quando você usa ./configure e make , talvez não queira instalar o programa para todos (pode ser uma biblioteca que você só precisa, por exemplo).

    
por 11.02.2016 / 14:31
2

Se você suspeitar que o programa que está instalando pode ser malicioso , não o execute como root ou como usuário comum. Isso inclui executar o programa compilado e executar os scripts de compilação fornecidos. Depois que um invasor tiver executado o código como você, ele será o proprietário da sua conta (e ele será o proprietário da sua máquina assim que você ganhar root dessa conta, no mais tardar). Não importa se o código do invasor foi executado porque você executou make ou porque você executou make install .

O ponto de construir como usuário habitual e instalar como root é reduzir os riscos de problemas acidentais . Mesmo assim, você normalmente não deve instalar programas autônomos como raiz, a menos que isso seja necessário (por exemplo, para instalar um driver ou serviço do sistema). Instale como seu próprio usuário, em um diretório separado, e então use um programa como armazene para disponibilizar o programa em diretórios padrão ( /usr/local/bin , etc.). Isso reduz o risco de que a etapa de instalação sobrescreva o software existente (pode haver uma colisão de nomes) ou escreva em diretórios não intencionais e facilite a desinstalação do programa, já que todos os arquivos estão em um só lugar.

    
por 12.02.2016 / 01:36
1

Como usuário joe,

./configure
make
sudo make install

Você geralmente não precisa precisar para ser root para configurar ou compilar o código, apenas para instalá-lo. Se você não precisa ser para ser root, então não seja root.

Tanto configure como make estão executando o código. Executá-los como root quando você não precisa apenas introduzir outro vetor de ataque (alguém pode comprometer o makefile, mas não o código-fonte, por exemplo).

    
por 11.02.2016 / 15:11
1

O programa final (e sua instalação) é presumivelmente feito com mais cuidado do que o prédio. Qualquer erro no processo de construção ou na finalização de verificações de integridade, quando executado como root, pode manobrar seu sistema. Melhor reduzir o risco o máximo possível.

    
por 12.02.2016 / 20:40