Identifique aplicativos “desonestos” acessando a Internet

14

No momento, tenho um aplicativo / serviço / widget / plugin / cronjob, seja o que for, acessando a Internet regularmente. Eu poderia entrar nos detalhes do meu problema específico, mas prefiro ter uma resposta que me permita encontrar o erro sozinho e, no processo, aprender mais sobre o Ubuntu.

Estou usando dnstopno momento para exibir todas as solicitações de DNS que estão sendo feitas na minha rede. Atualmente, por razões de argumentos, há uma solicitação indo paraweather.noaa.gov em um ciclo de 15 minutos. Provavelmente é um widgit climático, embora eu tenha verificado meus processos e não tenha encontrado nada, e a solicitação esteja vindo do meu computador.

Então a pergunta, como eu determino qual processo está acessando weather.noaa.gov ?

Eu não quero passar por um processo de eliminação, desligando cada serviço / plugin / aplicativo para descobrir isso. Gostaria de encontrar uma maneira de determinar qual processo está fazendo essa solicitação de DNS.

Se eu tivesse um "Application Firewall" decente, a solicitação nunca teria sido feita. Mas este é um cenário "o cavalo já fugiu" e gostaria de encontrar esse processo "desonesto" que está fazendo essa solicitação de DNS.

Meer Borg
fonte

Respostas:

7

Se você não se importa em ter um loop infinito em execução por algum tempo, pode executar o netstat continuamente e filtrar a saída do endereço IP do computador ao qual o programa está se conectando. Sugiro usar endereços IP em vez de nomes de domínio, porque é muito mais rápido, reduzindo o tempo que cada chamada netstat leva e, portanto, aumentando as chances de realmente capturar seu processo. Você deve executar o comando netstat como root, se achar que o processo não pertence ao usuário conectado no momento. Portanto, primeiro use o nslookup para descobrir o IP do domínio:

nslookup weather.noaa.gov

Para mim, isso dá no momento: 193.170.140.70 e 193.170.140.80. Agora você pode criar um loop infinito de netstats. A saída que você pode filtrar usando grep (e descartar STDERR).

while [ true ] ;  do netstat -tunp 2>/dev/null | grep -e 193.170.140.70 -e 193.170.140.80  ; done

Obviamente, edite os endereços IP no exemplo acima. Este exemplo está investigando conexões TCP e UDP (-tu), não executa a resolução DNS (-n) e lista os processos (-p). Se você acha que há tempo suficiente para resolver o DNS, simplesmente omita a opção -n para netstat e coloque o domínio para grep em vez do IP. Você pode parar o loop infinito simplesmente pressionando CTRL + c

Espero que isso ajude, Andreas

PS: Eu sei, essa não é a maneira ideal, eficiente ou limpa de fazer isso, mas para uma pesquisa única isso deve ser suficiente.

soulsource
fonte
Eu vou dar um que ir e ver se eu posso pegar meu culpado
Meer Borg
3

Você também pode "interromper" o aplicativo via / etc / hosts, além do FQDN ao qual está sendo conectado. Dê a ele algum IP não roteável como 10.1.2.3 (ou 127.0.0.1) e veja o que quebra.

Allan Bailey
fonte
I normalmente configurá-lo para 0.0.0.0, uma vez que não rota, o tipo de Apps que estou falando raramente anunciar a sua "naughtyness"
Meer Borg