honeypot SSH usando .bashrc

1

Hoje falei com um administrador de sistemas da minha empresa sobre como proteger um servidor (SSH) e ele trouxe uma ideia interessante:

  • Ele tem vários usuários de teste nesse servidor (john, admin, steve, etc ...) com senhas fáceis (asdf, a, b, qwer, ....)
  • Cada usuário tem privilégios limitados
  • O .bashrc de cada usuário contém uma chamada para uma função para bloquear imediatamente o ip de onde esse usuário está se conectando
  • a segunda linha no .bashrc é 'exit'

Meu sentimento é que isso abre a caixa de pandora, mas não sei dizer por quê. O que pode dar errado com isso?

    
por Chris 04.02.2011 / 18:28

6 respostas

11

O motivo pelo qual se sente perigoso é porque é perigoso. Você vai dar a alguém que você conhece está tentando comprometer seu sistema com um ponto de apoio nesse sistema apenas para que você possa bloquear seu endereço IP extremamente substituível?

Quando eles descobrem como contornar o seu pequeno script, talvez usando o SFTP (que não executa o .bashrc) para substituir o .bashrc para que eles possam fazer o login interativamente, eles agora têm acesso local à caixa, que Isso significa que, a menos que você esteja extremamente atento ao patches regulares, eles provavelmente terão um caminho rápido para o root através de exploração local - e mesmo se você estiver vigilante, eles só têm que esperar até que um novo vulcão local seja divulgado. remendado ainda.

O pior de tudo, você está assumindo esse enorme risco apenas para poder bloquear seu endereço IP; por que não apenas bloquear automaticamente todos os endereços de força bruta e salvar o risco do honeypot? Além disso, os endereços IP são fáceis de obter e manter uma lista de supostamente "ruins" se tornará um exercício de futilidade ou no mapeamento do espaço de endereços IPv4.

Espero que isso ajude!

    
por 04.02.2011 / 19:08
7

Ele está abrindo uma caixa de Pandora porque o servidor ssh pode ser facilmente usado para gerar sftp ou scp. Em vez de um honeypot, eu uso o fail2ban para bloquear endereços ruins que atacam meu servidor VPS.

link

Eu tenho isso definido para 5 tentativas fracassadas em 5 minutos resulta em uma proibição por 20 minutos. Se eu sentisse que estava sendo atacado mais, aumentaria o tempo de banimento.

Sempre faço login no meu VPS com chaves de autenticação RSA, então, pessoalmente, só tenho uma única falha quando não carrego a chave no agente antes de tentar fazer o login.

    
por 04.02.2011 / 19:16
4

.bashrc só é executado em shells interativos.

Assim, os invasores ainda poderão executar comandos arbitrários, especificando-os na linha de comando ssh ou usando utilitários como o scp.

É uma ideia interessante, no entanto. Você deve tornar os shells dos usuários da armadilha um programa customizado que faça o acima. Ou mais seguro, defina os shells como / bin / false e use um programa externo que procure por logins / tentativas de login nessas contas.

Eu prenderei em tentativas de login , sejam elas bem sucedidas ou não. Não os deixe na porta, apenas chute para fora se eles baterem.

Realmente, como outras pessoas responderam, o mais seguro a fazer é não fazer isso. Use um programa projetado para ser um verdadeiro honeypot.

    
por 04.02.2011 / 18:36
1

Para usar senhas de teste, John the Ripper .

Não use o servidor ssh real como honeypot. Não é seguro. Use o kojoney ou outro servidor SSH honeypot.

Se você usa o OpenSSH set / sbin / nologin para o usuário do honeypot.

    
por 04.02.2011 / 18:35
1

Você pode configurar um honeypot SSH simples usando Kippo e registrar dados em um banco de dados MySQL. Existe também uma ferramenta para visualizar os resultados.

Existe também outro script chamado Artilharia que "é uma combinação de um honeypot, monitoramento de arquivos e integridade, alerta e ferramenta de prevenção de força bruta. É extremamente leve, tem vários métodos diferentes para detectar ataques específicos e eventualmente também notificará você de configurações nix inseguras ". link

    
por 22.12.2011 / 03:10
0

the second line in the .bashrc is 'exit'

Não importa para execuções não interativas como ssh user@remotehost ls /

    
por 04.02.2011 / 18:40

Tags