Eu sei que a senha do sudo protege meu computador de ser hackeado localmente por alguém que tenha acesso físico a ele ( editar: na verdade, não ). Minha senha é forte o suficiente para esse fim, mas sei que não é forte o suficiente se alguém puder forçá-la remotamente.
Alguém pode acessar meu computador no modo raiz usando minha senha sudo sem acesso físico ao computador, em uma instalação padrão da área de trabalho do Ubuntu?
- Se você tem acesso à rede, definitivamente sim (resposta curta)
- Se você não prestar atenção suficiente à segurança, sim (resposta longa)
- Se você tem "ssh" em execução e não 2FA , sim ( comentários e respostas)
- Pode-se acessar seu computador como root sem a senha do usuário / sudo
Respostas:
Não quero assustá-lo muito, mas se alguém tiver acesso físico, você o entregará, independentemente da força da sua senha. Será necessário 1 reinicialização por alguém para que alguém possa alterar sua senha root (isso pode ser feito no "grub rescue" sem a necessidade de fornecer sua senha atual). A propósito: esse método é considerado válido, um recurso e um risco de segurança aceito (caso contrário, você nunca poderá consertar seu sistema caso a senha seja comprometida).
Aí vem outra coisa em jogo: um ROUTER deve ser inteligente o suficiente para bloquear o acesso externo, se for uma solicitação repetida que solicita as mesmas informações por um curto período de tempo. Basicamente, o que você tem aqui é um ataque do DOS (ou um DDOS se mais de 2 computadores o atacarem). Um roteador deve interromper essa conexão e impor um período de espera antes de aceitar novas solicitações dessa conexão.
Eles primeiro precisam se conectar e fornecer a senha do sudo. O modo "root" está desabilitado e você não pode fazer login diretamente no "#" prompt.
Observe que é possível abusar de um serviço. Se você tiver "ssh" em execução nessa máquina e eles puderem "ssh" para o seu sistema, e obter uma mão do seu nome de usuário e senha para esse usuário (e, como administrador, sua senha do sudo também), eles poderão acessar sua máquina e estrague tudo. A propósito: se o fizerem dessa forma, primeiro deverão ter conhecimento do seu sistema (como sua senha).
Mas há um problema com isso (e qualquer outro método): como eles obtiveram sua senha? Eles NÃO podem obtê-lo do seu próprio sistema. E, em geral, adivinhar não vale a pena. Se foi socialmente projetado ... então o seu problema está aí, não com o modelo de segurança do seu sistema, Ubuntu ou Linux em geral.
Contanto que sua senha do sudo seja sua, você ficará bem. E você ficará ainda melhor se for uma senha forte (talvez fácil de lembrar para você, mas que não possa ser adivinhada por outras pessoas). Um exemplo que eu usei antes ao discutir isso: se o seu cão se chama "Abwegwfkwefkwe", usar "Abwegwfkwefkwe" como senha é RUIM mesmo que pareça bom (já que alguém pode perguntar: 'qual é o nome do seu cão' e eles tentam isso como um palpite livre). Se você não tem relação com "Abwegwfkwefkwe", é uma boa senha.
O melhor conselho que posso dar:
não digite sua senha de administrador quando solicitada, a menos que você saiba que se espera que seja solicitada. Se você abrir um navegador e receber um pop-up que se parece com o nosso "pedido de senha da conta de administrador" ... pare ... e pense primeiro.
não deixe seu sistema sem vigilância quando o período de cortesia "sudo" estiver ativo.
sudo --reset-timestamp
remove o período de cortesia atual e solicita a senha novamente quando você usar o "sudo". Bloqueie sua tela quando você estiver no AFK.não instale serviços ou software para se divertir. Se você não precisar
ssh
instalarssh
, se você não usar um servidor da Web, não instale um servidor da Web. E dê uma olhada nos serviços atualmente em execução. Se você não usar o BT em um notebook, desative-o. Se você não usar uma webcam, desative-a (se ativa). Exclua o software que você não usa mais.e para os realmente paranóicos (e sim, Paranoid Panda, eu estou olhando para você): altere a senha de vez em quando. Você pode até instalar caçadores de rootkit para verificar se há acesso inadequado.
faça backup de seus dados importantes para algo que você mantenha off-line. Portanto, mesmo que você encontre alguém em seu sistema, você pode formatá-lo e começar de novo com uma nova instalação e seus dados restaurados.
fonte
sudo --reset-timestamp
parasudo -k
, ousudo -K
para o verdadeiramente paranóico (necessário apenas se o invasor puder definir a hora do sistema para valores arbitrários, momento em que você provavelmente já perdeu).Sim eles podem.
Existem várias maneiras de fazê-lo, e forçar brutalmente a
sudo
senha provavelmente não é a primeira.Primeiro, a
sudo
senha é a senha do seu usuário; então realmente o que eles precisariam é sua senha.Segundo, quebrar a senha de um usuário usando força bruta para acessar um sistema é provavelmente o último recurso.
Existem maneiras muito mais elegantes (mas principalmente mais eficazes) de invadir outro sistema.
Normalmente, um invasor simplesmente tenta explorar as vulnerabilidades mais comuns (as mais conhecidas provavelmente estão obtendo um shell de usuário por qualquer meio e explora um ShellShock para obter um shell raiz) ou faz um trabalho melhor nas seguintes linhas:
Forçar brutalmente a
sudo
senha do usuário / pode ser uma tentativa caso um shell raiz não possa ser obtido, mas, por exemplo, explorar um serviço em execução como root não exigirá que o invasor force asudo
senha do usuário / brutalmente.fonte
sudo
senha. Melhor ainda, se ele conseguir explorar um serviço em execução como root, ele será diretamente root.sudo
direitos (= ~ um usuário com o qual um invasor está logado, mas cujo invasor não sabe a senha) pode obter uma raiz shell apenas explorando bugs conhecidos (neste caso, o infame ShellShock).Se eu aprendi alguma coisa nos últimos anos sobre segurança, então uma coisa: nada é impossível .
Contanto que você tenha acesso a uma rede, definitivamente. Cada serviço em execução no seu sistema que pode ser acessado pela rede é teoricamente vulnerável e, portanto, uma fraqueza potencial.
E, portanto, para um invasor com idéias suficientes, é possível. Você pode tornar seu sistema o mais seguro possível, mas nunca pode alcançar 100% de segurança.
Portanto, é importante avaliar o que é possível com um esforço técnico justificável e o que o protege tão bem que você não consegue mais trabalhar.
fonte
A senha do sudo não é apenas para proteção local, seu objetivo é adicionar uma camada extra de segurança ao uso de privilégios de root. Uma boa discussão pode ser encontrada aqui /superuser//a/771523/467316
Sua senha pode não ser tão forte quanto você pensa. No momento, estou decifrando de 20 a 40% dos hashes do Active Directory do meu cliente para aqueles que eu já vi antes, aqueles que têm regras de senha ruins estão ficando 70% decifrados. Eu recomendo senhas complexas de 16 caracteres. As placas gráficas oclHashcat e Radeon podem causar muitos danos. Adicione todos os arquivos de senhas de todas as violações nos últimos 5 anos e você terá um bom dicionário para trabalhar.
Se você estiver usando SSH, faça alguns ajustes no sshd_config
Os MUSTS saindo do portão (o último a desativar o servidor ftp, se você não estiver usando).
Salve, reinicie o ssh
Use a criptografia de chave pública Comece criando uma chave na sua máquina remota (usando puttygen ou qualquer outro sabor que seu sistema operacional tenha disponível). Copie a chave pública para a sua máquina Ubuntu sob o usuário que você deseja fazer login como arquivo allowed_keys (você provavelmente precisará criá-la)
copie a chave pública neste formato
salve-o e configure seu sshd_config para permitir o login da chave pública
salve e reinicie o ssh
Experimente o SSHing no host do ubuntu a partir do seu computador com chave privada usando a criptografia de chave pública. Se tudo correu bem, volte ao host do ubuntu e desative a autenticação de senha.
Salvar e reiniciar o ssh
Tente sshing do computador com chave privada novamente para confirmar.
Deseja adicionar mais? configure uma conta não privilegiada, ative PermitRootLogin no, reinicie o ssh, adicione sua chave pública às chaves_inicializadas da nova conta, efetue login como conta não privilegiada, su à sua conta raiz ou privilegiada quando precisar fazer o root ou privilegiar o seu caminho.
fonte
O objetivo do sudo não é relacionado à senha, mas, ao invés disso, fornecer a certos usuários recursos de root-ish enquanto restringe outros a uma máquina sem exigir que eles apresentem o login raiz (senha / chave / token de segurança / etc). Por exemplo, no meu trabalho, os funcionários do dia-a-dia só podem iniciar / desligar / instalar e atualizar suas estações (de um repositório vetado pela empresa) via sudo. Eles não recebem outras liberdades de root, como remover / / formatar dispositivos propositadamente, adicionar e remover usuários, decidir quais módulos do kernel devem ser colocados na lista negra ou o que é executado no crontab (etc, etc, etc). Enquanto em sua casa, seu sudo permite acesso total à máquina. No que diz respeito à senha, na realidade é a senha da sua conta de usuário que o sudo exige (a mesma que você usaria para fazer login, se o login automático não estiver ativado.
Dica ruim : Se você deseja tornar o root uma conta comum em um unix habilitado para sudo (linux / apple osx), execute o seguinte
Nesse ponto, o root tem uma senha regular e você pode simplesmente sair e fazer login como root com a senha mencionada da "maneira antiga".
Em relação à segurança, se um programa (como servidor web, mysql, daemon php, sshd) for executado como uma conta elevada. Eles podem fazer uso da vulnerabilidade do programa e gerar um novo shell a partir deste programa, executando como root. No entanto, isso é muito raro, pois os gerentes de distribuição estão cientes de problemas semelhantes e fazem um excelente trabalho na construção de um ambiente padrão bem pensado e geralmente seguro.
No outro sistema operacional, uma operação semelhante ao sudo seria clicada com o botão direito do mouse e executada como Administrador do Sistema (ou o incômodo do privilégio do UAC).
fonte