Identifier les applications d'accès Internet «escrocs»

14

Pour le moment, j'ai une application / service / widget / plugin / cronjob que ce soit, accédant régulièrement à Internet. Je pourrais entrer dans les détails de mon problème spécifique, mais je préfère avoir une réponse qui me permettra de le trouver moi-même et, dans le processus, d'en savoir plus sur Ubuntu.

J'utilise dnstopactuellement pour afficher toutes les demandes DNS qui sont effectuées sur mon réseau. Actuellement, pour des raisons d'argument, il y a une demande qui va weather.noaa.govsur un cycle de 15 minutes. C'est probablement un widgit météo même si j'ai vérifié mes processus et que je n'ai rien trouvé, et la demande provient de mon ordinateur.

Donc la question, comment puis-je déterminer à quel processus accède weather.noaa.gov?

Je ne veux pas passer par un processus d'elimination en fermant chaque service / plugin / application pour comprendre cela. Je voudrais trouver un moyen de déterminer quel processus effectue cette demande DNS.

Si j'avais un "pare-feu d'application" décent, la demande n'aurait jamais été faite. Mais c'est un scénario "le cheval a déjà boulonné" et aimerait trouver ce processus "voyou" qui fait cette demande DNS.

Meer Borg
la source

Réponses:

7

Si cela ne vous dérange pas d'avoir une boucle infinie en cours d'exécution pendant un certain temps, vous pouvez exécuter netstat en continu et filtrer la sortie pour l'adresse IP de l'ordinateur auquel votre programme se connecte. Je suggère d'utiliser des adresses IP au lieu des noms de domaine car c'est beaucoup plus rapide, ce qui réduit le temps que prend chaque appel netstat et augmente donc les chances de réellement intercepter votre processus. Vous devez exécuter la commande netstat en tant que root, si vous pensez que le processus n'appartient pas à l'utilisateur actuellement connecté. Donc, utilisez d'abord nslookup pour déterminer l'IP du domaine:

nslookup weather.noaa.gov

Pour moi, cela donne pour le moment: 193.170.140.70 et 193.170.140.80. Vous pouvez maintenant mettre en place une boucle infinie de netstats. La sortie que vous pouvez filtrer à l'aide de grep (et supprimer STDERR).

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

Bien sûr, modifiez les adresses IP dans l'exemple ci-dessus. Cet exemple recherche les connexions TCP et UDP (-tu), ne fait pas de résolution DNS (-n) et répertorie les processus (-p). Si vous pensez qu'il y a assez de temps pour faire la résolution DNS, omettez simplement l'option -n pour netstat et mettez le domaine pour grep au lieu de l'IP. Vous pouvez arrêter la boucle infinie en appuyant simplement sur CTRL + c

J'espère que cela aide, Andreas

PS: Je sais, ce n'est pas la manière idéale, efficace ou propre de le faire, mais pour une recherche unique, cela devrait être suffisant.

soulsource
la source
Je vais essayer et voir si je peux attraper mon coupable
Meer Borg
3

Vous pouvez également "casser" l'application via / etc / hosts en ajoutant le nom de domaine complet auquel vous êtes connecté. Donnez-lui une adresse IP non routable comme 10.1.2.3 (ou 127.0.0.1) et voyez ce qui se casse.

Allan Bailey
la source
Je le règle normalement sur 0.0.0.0 car il ne route pas, le genre d'applications dont je parle annonce rarement leur "insignifiance"
Meer Borg