Captura tráfego de rede de um único aplicativo?

4

Estou procurando um módulo de método / hack / kernel para capturar o tráfego de rede de um PID e todos os processos de forks / child.

Eu tenho um aplicativo do firefox que abre algumas páginas da web e começa a transmitir coisas com flash streaming, wmv ou qualquer outro protocolo de streaming, bem como o download "simples" de img, js e outros conteúdos "estáticos".

Estou interessado em capturar esse tráfego e, finalmente, isolar esses fluxos.

O Wireshark não suporta a captura por um id de processo, mas eu suponho que isso pode ser contornado (e esse é o núcleo da minha pergunta). Obviamente configurar uma máquina virtual completa e executar apenas o firefox com wireshark nela funcionará, mas eu estou muito mais satisfeito com uma solução leve, talvez baseada em chroot? combinado com o módulo proprietário do iptables.

Portanto, ideias ou soluções completas seriam muito apreciadas.

- EDITAR:

As pessoas estão adivinhando corretamente o sistema operacional em que estou trabalhando: A questão é principalmente direcionada para um sistema operacional Linux, mas deve ser encontrada uma solução viável no Windows / OpenSolaris / MacOSX ou qualquer outro sistema operacional razoavelmente acessível por hackers. .

    
por Maxim Veksler 11.01.2012 / 18:09

4 respostas

2

Dê uma olhada no destino ULOG para iptables, combinado com o módulo de correspondência do proprietário. Não é bem o que você pediu, mas se você criar um usuário especificamente para o seu teste e executar apenas o aplicativo que está tentando assistir como esse usuário, você deve estar bem perto.

ULOGD, pelo menos até onde eu sei, irá escrever um arquivo com pacotes brutos. Eu não fiz isso sozinho, então eu não posso garantir isso, mas parece que vai fazer o que quiser.

    
por 01.03.2012 / 06:32
0

O ideal seria separar o tráfego do Firefox adicionando outro endereço IP à sua máquina e fazendo o Firefox usá-lo ao abrir conexões de saída.

Isso é possível, por exemplo, com o OpenSSH:

ssh -b 192.0.2.64 [...]

Mas não encontrei nenhuma opção de linha de comando ou entrada de preferências para isso no Firefox.

Em vez disso, você pode usar um proxy HTTP simples (local), como tinyproxy , novamente com o proxy usando um endereço IP exclusivo para seu tráfego de saída. tinyproxy faz isso com a configuração Bind em tinyproxy.conf , por exemplo:

Bind 192.0.2.64

Por fim, você pode investigar algo um pouco mais leve do que uma VM completa. Você mencionou iptables , então eu suponho que você esteja usando um host Linux; Existem algumas soluções como LXC e OpenVZ isso pode funcionar, se o proxy HTTP não for uma opção para você.

    
por 13.01.2012 / 17:48
0

Você pode configurar um proxy http e configurar o Firefox para analisá-lo e analisá-lo. Se você executar o proxy por meio de uma máquina diferente (até mesmo uma VM) que não esteja fazendo nada, você poderia lançar o Wireshark nisso ... Eu pensaria que isso isolaria suficientemente o tráfego.

    
por 15.01.2012 / 02:11
-1

Instale o HTTPWatch na sua área de trabalho e clique em gravar antes de começar a navegar.

    
por 13.01.2012 / 18:01