problemas de segurança ao instalar a partir do código-fonte como root

problemas de segurança ao instalar a partir do código-fonte como root

Tive uma dúvida sobre como instalar a partir do código-fonte na conta root não é uma boa ideia por motivos de segurança.

Minha posição sobre isso é que realmente não importa se alguém está na conta root, começando por descompactar o código e depois executar as etapas para instalá-lo.

#./configure 
#make 
#make install

em oposição a:

$./configure
$make
$sudo make install

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

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

Isso não tem nada a ver com o próprio código, tem mais a ver com o repositório, ele não tem um aplicativo incluído nele, portanto, acesse o git hub ou o site da pessoa que o escreveu e use o código-fonte para instalá-lo . Algo tão simples quanto instalar uma árvore.

O usuário então fica mais preocupado com a forma como obteve o código-fonte do que se ele ou ela 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 estão escrevendo no terminal pode causar danos irreversíveis ao sistema; pode-se causar o mesmo dano usando sudo, portanto, isso em si é um argumento redundante e um sistema de crenças. Portanto, nem sequer faz parte do ponto que está incluído neste argumento.

Esta é uma pergunta mais ou menos sim ou não. Sim - estou certo, a longo prazo não importa 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, isso é importante porque você precisa usar privilégios de root para fazer o mesmo.

Responder1

Se você usar demais programas em execução como root, você dará a um invasor em potencial mais pontos para atacá-lo do que apenas os "necessários". As tentativas de comprometer o seu sistema geralmente 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, tocar música...) e isso significa muitos pontos potencialmente problemáticos.

Mesmo sem querer - 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ê ./configuree make, talvez você não queira instalar o programa para todos (pode ser uma biblioteca que só você precisa, por exemplo).

Responder2

Se você suspeitar que o programa que está instalando pode sermalicioso, não execute-o como root ou como usuário normal. Isso inclui a execução do programa compilado e a execução dos scripts de construção fornecidos. Depois que um invasor executar o código como você, ele será o proprietário da sua conta (e será o proprietário da sua máquina assim que você obtiver root nessa conta, no máximo). Não importa se o código do invasor foi executado porque você executou makeou porque executou make install.

O objetivo de compilar como usuário normal e instalar como root é reduzir os riscos deacidentalproblemas. Mesmo assim, você normalmente não deve instalar programas criados por você mesmo como root, 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 comoarrumarpara disponibilizar o programa em diretórios padrão ( /usr/local/bin, etc.). Isso reduz o risco de a etapa de instalação substituir o software existente (pode haver uma colisão de nomes) ou gravar em diretórios não intencionais e facilita a desinstalação do programa, pois todos os arquivos estão em um só lugar.

Responder3

Como usuário joe,

./configure
make
sudo make install

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

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

Responder4

O programa final (e sua instalação) é presumivelmente feito com mais cuidado do que a construção.Qualquererros no processo de construção ou na conclusão das verificações de integridade, ao executar como root, podem prejudicar seu sistema. Melhor reduzir o risco tanto quanto possível.

informação relacionada