Descobre quais IPs são do programa e quais IPs são de addons

0

Eu tenho um programa (que legitimamente chama os autores) e plug-ins que também chamam de autores (não tão legitimamente). Eu quero executar a versão baunilha de um programa e coletar IPs que ele está tentando se conectar. Deve ter entre 100 e 1000 IPs.
Então eu quero adicionar um plug-in de cada vez para encontrar o espião Verificando onde ele chama e bloqueando o acesso pelo iptables. Qual seria a maneira mais fácil de fazer isso? Wireshark + IPtables?

A GUI é preferida, mas não é obrigatória, desde que eu não tenha que adicionar 1.000 ips ao iptables manualmente. Este é um jogo com add-ons em execução no Windows vmplayer guest.
Obrigado antecipadamente,

    
por Alice 05.12.2015 / 01:05

1 resposta

1

Duas maneiras de fazer isso vêm à mente:

  1. Execute o aplicativo sob o controle de strace , que registra todas as chamadas do sistema, incluindo as tentativas de conexão.

Digamos que você queira executar firefox e ver com o que se conecta:

# Start the process under the control of strace, logging only network-related calls:
strace -e trace=network -o network_calls -f firefox

# After finishing working with firefox, print the IPs it tried to communicate with:
grep -o -P '(\d+\.){3}\d+' network_calls | sort -u

Isso pode ser roteirizado, para que a strace seja executada constantemente e o arquivo de log seja alternado periodicamente, etc., mas o método abaixo é mais adequado se você quiser deixar o aplicativo em execução por mais tempo e evitar a necessidade de gravar scripts.

  1. Execute o aplicativo como um usuário diferente e adicione regras de iptables que correspondam com base no UID do proprietário do processo e aja de acordo.

Exemplo descartando o tráfego de rede de um usuário com o UID 5555:

iptables -A OUTPUT -m owner --uid-owner 5555 -j DROP

Você pode substituir DROP por LOG, fazer o que quiser, como conexões de aceleração, portas selecionadas que deseja negar, etc.

Adicione um comentário se você quiser que eu expanda uma abordagem específica e eu devo atualizar minha resposta.

    
por Marcin Kaminski 05.12.2015 / 01:47