Existe um problema sério com a configuração do bit SUID no tcpdump?

2

Estou executando o tcpdump em uma máquina remota e canalizando a saída para o Wireshark em minha máquina local através do SSH. Para fazer isso, eu tive que definir o bit SUID no tcpdump.

Em segundo plano, a máquina remota é um Amazon EC2 executando "Amazon Linux AMI 2012.09". Nesta imagem, não há senha de root, e não é possível efetuar login como root. Você não pode usar o sudo sem um TTY e, portanto, você deve definir o SUID.

Quais são os riscos práticos de configurar esse bit no tcpdump? Existe alguma necessidade de ser paranóico? Devo desanimá-lo sempre que não estou capturando?

Dean
fonte

Respostas:

3

Isso significa que todos que têm acesso shell a esta máquina podem usar tcpdump para capturar o tráfego. A paranóia não é a coisa ruim quando estamos falando de segurança. Você pode esquecer que, eventualmente, você configurou o suid e em algum dia você dará ao shell acesso a alguém em quem você não pode confiar em toda a extensão. Eu acredito que você não quer isso. Eu acho que você deveria considerar usar sudo para correr tcpdump da sua conta. É possível definir o sudo para não solicitar uma senha para um usuário específico e para comandos específicos.

Serge
fonte
Esta é uma máquina de propósito único, e qualquer um que efetue login precisará de acesso root. sudo não funciona porque você não pode usá-lo sem estar logado na máquina (eu estou rodando o tcpdump passando-o como um argumento para o ssh). Obrigado, eu só queria ter certeza de que isso não representaria um problema de segurança externo.
Dean
então porque você não pode usar ssh user@machine sudo tcpdump eth0 por exemplo?
Serge
Isso retorna sudo: sorry, you must have a tty to run sudo
Dean
1
Você precisa configurar o sudo de acordo com suas necessidades. Dê uma olhada man sudo se você está interessado em fazer funcionar para você
Serge
1
Para o problema tty tente isto: ssh -t usuário @ máquina sudo tcpdump eth0
Valor
1

Com base no seu pedido de comentário, aqui está como eu tenho que trabalhar para canalizar o tcpdump remoto através do sudo para o wireshark:

ssh user@host sudo tcpdump -s0 -w - | wireshark -k -i -

Notas: Eu adicionei s0 para capturar os pacotes inteiros.

Acabei de fazer um script wrapper que executa exatamente isso, mas você só precisa fornecer as credenciais ssh e um filtro opcional para o tcpdump. Você pode baixá-lo de Aqui

Valor
fonte
Agradeço o esforço Valor, mas infelizmente isso resulta no mesmo erro descrito acima (sudo: desculpe, você deve ter um tty para rodar o sudo, ou o erro do Wireshark se eu usar -t).
Dean
@Dean o que e qual shell você está executando? Eu apenas tentei isso do debian & amp; Ubuntu contra uma Instância do EC2 (Ubuntu 10.04) e funcionou ok.
Valor
@Dean Check / etc / sudoers na sua instância do EC2, se houver uma linha dizendo requiretty, remova-a ou comente-a.
Valor
Isso funciona. No entanto, ele avisa que mostrará a senha em claro. Isso tem alguma vantagem sobre a configuração do bit SUID no tcpdump?
Dean
@Dean "mostrará a senha"? Onde você está usando uma senha?
Valor