Como saber se o login no console é genuíno?


13

No Windows, pode-se pressionar Ctrl+ Alt+ Delpara disparar uma interrupção que abre a janela de login.

Ao fazer logon no console de um computador Linux: Como posso saber se esse logon é real ou falso para roubar minhas credenciais?

Respostas:


14

Supondo que você queira estar protegido contra outros usuários normais do sistema (se o adversário tiver acesso root, todas as apostas estiverem desativadas), você poderá, em princípio, usar uma chave de atenção segura :

A Secure Attention Key de um sistema operacional é uma ferramenta de segurança fornecida como proteção contra programas de captura de senha de trojan. É uma maneira invencível de matar todos os programas que poderiam estar sendo disfarçados como aplicativos de login. Os usuários precisam ser ensinados a inserir essa sequência de teclas antes de efetuar login no sistema.

( Manipulação do Linux 2.4.2 Secure Attention Key (SAK), Andrew Morton, 18 de março de 2001 )

Esta questão de U&L relacionada pode ser interessante: como posso encontrar a chave de atenção segura (SAK) no meu sistema e posso desativá-la?


O que poderia acontecer quando o SAK será ativado com um servidor X ligado?
Incnis MRSI

@IncnisMrsi: Eu tentei isso; parece ser aproximadamente equivalente a Ctrl + Alt + Backspace, supondo que você não tenha desativado isso. Eu me lembro que parecia um pouco mais complicado, mas não me lembro de nenhum detalhe.
Kevin

Eu bati com frequência no meu vtty e, depois de algum tempo, o login não voltou. Isso parece com erros, mas +1 para um SysRq realmente útil todos os dias.
Max Ried

@ Kevin: Então, se um usuário executou um servidor X legítimo (que necessariamente é euid = 0, pelo menos nos PCs) em um tty ≠ 7, sua configuração desativou o SAK, então o SAK não é invencível como os documentos do kernel alegam? Suponha que um DM GUI emulado seja executado nele.
Incnis MRSI

@IncnisMrsi: Eu acho que o que ele realmente faz é matar tudo na sua sessão e relançar a coisa "correta", o que quer que seja. Portanto, se tty = 7, você obtém um X novinho em folha, caso contrário login, etc. Isso é um buggy porque alguns DEs extravagantes como o GNOME não gostam de ser mortos do nada. Mas se o seu atacante tiver euid = 0, você já perdeu de qualquer maneira.
Kevin

2

Primeiro de tudo, não tenho certeza de que você possa ter mais certeza do Ctrl+AltDel janela de login + no Windows, esse também é o papel de um vírus / cavalo de Troia para seqüestrar a interrupção, e sua implementação é muito possível.

Segundo, se esse mecanismo for implementado no Windows / Linux, isso significa que os privilégios de administrador certamente estão comprometidos.

No Linux, se alguém escreveu um shell falso para exibir um prompt e capturar suas credenciais, acho que básico Ctrl+ Cou Ctrl+ Zpode ser suficiente, se esses sinais não forem detectados para descobrir o truque. Além disso, a inserção de credenciais incorretas várias vezes pode ajudá-lo a ver algum desvio do comportamento normal do cronômetro.

Alternar entre diferentes consoles como também aumenta a probabilidade de descobrir o truque.

Mas, em qualquer caso, você não pode ter certeza de 100% de qualquer tipo de sistema de confiabilidade do seu prompt / janela de login.


0

Você pode usar ctrl+ alt+ F1... F7para entrar em outro tty e fazer login a partir daí. Você também pode usar ctrl+ zou ctrl+ c. No entanto, se alguém está tentando roubar seu login e senha usando esse método, ainda é possível que você esteja sendo enganado. Depende do sistema operacional que você está usando, quem teve acesso a ele e que tipo de acesso ele tinha.

Geralmente, você nunca pode ter 100% de certeza, mas se alguém fizesse isso, eu assumiria que ele já tem acesso root - portanto, seus dados de login não teriam sentido para ele.


3
Se eu fosse montar uma armadilha, definitivamente teria meu programa rodando em todos os tty. Lembre-se de que aqueles que você acessa com as teclas de controle não são particularmente mais seguros.
John WH Smith

Ponto justo; este foi o melhor que me veio à mente.
MatthewRock

Algum sysrq mágico pode ajudá-lo?
Max Ried

0

Um usuário (mesmo que não seja root) que tenha acesso físico ao console pode fazer esse truque.

Efetue login sshe verifique quais processos operam em um console virtual no qual você deseja efetuar login localmente. Se é getty(para um TUI tty) ou outro gerenciador de exibição legítimo? Tem UID = 0?

Se qualquer um dos dois for falso, o banner do nome do hostlogin: certamente será forjado. Mas, como as respostas do estado já estão escritas, não ajuda contra um infrator que já tenha seus privilégios escalados root.


-1

Resposta curta: você não pode dizer.

Mas se o comando prompt de login foi substituído, isso significa que o invasor tem acesso root na máquina. Nesse caso, ele / ela poderia também:

  • instalou um keylogger para roubar sua senha. Você pode atenuar o problema usando uma senha exclusiva, para que o invasor não possa acessar outros serviços online que você usa;
  • faça o login como você (ou como qualquer outro usuário) na máquina, simplesmente alterando a senha ou acesse seus arquivos (ou de qualquer outra pessoa).

Portanto, preocupar-se se o prompt de login é legítimo ou não é um ponto discutível.

Como regra geral, você não deve efetuar login em uma máquina que possa estar comprometida.


8
Eu poderia criar um programa que imite o comportamento de um prompt de login e executá-lo em todos os TTY sem privilégios de root (como eu). Se feito corretamente, seria impossível distinguir o prompt real da saída do programa, convidando você a inserir suas credenciais. No entanto, observe que seriam necessários privilégios de root para autenticar você (tornando a interceptação completamente transparente); portanto, se o login falhar e você tiver certeza de que não fez um erro de digitação ... você pode presumir que foi interceptado (também tarde).
John WH Smith

6
Você não o instala. Você simplesmente usa sua própria conta para acessar todos os terminais e executar o login falso lá. Os usuários que tentarem usar um terminal depois disso encontrarão seu prompt falso, executando como você, e não o loginprograma como root. Não estou assumindo que o loginprograma atual tenha sido comprometido, de fato.
John WH Smith

7
@ dr01. Faça o login normalmente. Quando estiver pronto para iniciar o seu ~/bin/fakelogin, use-o exec ~/bin/fakeloginpara que, quando ele sair (por qualquer motivo), sua conta de usuário seja desconectada e o prompt de login real seja apresentado ao outro usuário.
roaima 11/09/2015

3
Normalmente, quando você tenta roubar uma senha em um prompt, você a registra e escreve "Login inválido." E sai do programa. Portanto, não há necessidade de autenticar usando $euid=0.
Ned64 11/09/15

1
Por que os votos negativos?
dr01 13/09/2015
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.