Identifizieren Sie "betrügerische" Internet-Anwendungen

14

Im Moment habe ich eine Anwendung / einen Dienst / ein Widget / ein Plugin / einen Cronjob, der regelmäßig auf das Internet zugreift. Ich könnte auf die Details meines spezifischen Problems eingehen, aber ich hätte lieber eine Antwort, die es mir ermöglicht, Fehler zu finden und dabei mehr über Ubuntu zu erfahren.

Ich verwende dnstopim Moment, um alle DNS-Anfragen anzuzeigen, die in meinem Netzwerk gemacht werden. Derzeit wird aus Gründen der Argumentation eine Anforderung für weather.noaa.goveinen 15-minütigen Zyklus gesendet. Es ist wahrscheinlich ein Wetter-Widgit, obwohl ich meine Prozesse überprüft und nichts gefunden habe und die Anfrage von meinem Computer kommt.

Also die Frage, wie stelle ich fest, auf welchen Prozess zugegriffen wird weather.noaa.gov?

Ich möchte keinen Eliminierungsprozess durchlaufen, indem ich jeden Dienst / jedes Plugin / jede Anwendung herunterfahre, um dies herauszufinden. Ich möchte einen Weg finden, um festzustellen, welcher Prozess diese DNS-Anfrage macht.

Wenn ich eine anständige "Application Firewall" hätte, wäre die Anfrage nie gestellt worden. Dies ist jedoch ein Szenario, in dem "Pferd hat bereits einen Riegel geschlagen", und Sie möchten den "Schurken" -Prozess finden, der diese DNS-Anfrage stellt.

Meer Borg
quelle

Antworten:

7

Wenn es Ihnen nichts ausmacht, dass eine Endlosschleife für einige Zeit ausgeführt wird, können Sie netstat kontinuierlich ausführen und die Ausgabe nach der IP-Adresse des Computers filtern, mit dem Ihr Programm eine Verbindung herstellt. Ich empfehle die Verwendung von IP-Adressen anstelle von Domain-Namen, da dies viel schneller ist, die Zeit für jeden Netstat-Aufruf reduziert und damit die Chancen erhöht, dass Ihr Prozess tatsächlich abgefangen wird. Sie sollten den Befehl netstat als root ausführen, wenn Sie der Meinung sind, dass der Prozess nicht zum aktuell angemeldeten Benutzer gehört. Verwenden Sie also zunächst nslookup, um die IP-Adresse der Domäne zu ermitteln:

nslookup weather.noaa.gov

Für mich ergibt das im Moment: 193.170.140.70 und 193.170.140.80. Jetzt können Sie eine Endlosschleife von Netzstatistiken erstellen. Die Ausgabe können Sie mit grep filtern (und STDERR verwerfen).

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

Natürlich bearbeiten Sie die IP-Adressen im obigen Beispiel. Dieses Beispiel sucht nach TCP- und UDP-Verbindungen (-tu), führt keine DNS-Auflösung (-n) durch und listet die Prozesse auf (-p). Wenn Sie der Meinung sind, dass genug Zeit für die DNS-Auflösung vorhanden ist, lassen Sie die Option -n für netstat einfach aus und geben Sie die Domäne für grep anstelle der IP an. Sie können die Endlosschleife stoppen, indem Sie einfach STRG + c drücken

Hoffe das hilft, Andreas

PS: Ich weiß, dies ist keine ideale, effiziente oder saubere Methode, aber für eine einmalige Suche sollte dies ausreichen.

Seelenquelle
quelle
Ich werde versuchen, meinen Schuldigen zu fangen
Meer Borg
3

Sie können die Anwendung auch über den / etc / hosts-Zusatz des FQDN "unterbrechen", mit dem eine Verbindung hergestellt wird. Geben Sie ihm eine nicht routbare IP wie 10.1.2.3 (oder 127.0.0.1) und sehen Sie, was kaputt geht.

Allan Bailey
quelle
Ich setze es normalerweise auf 0.0.0.0, da es keine Route gibt. Die Art von Apps, von denen ich spreche, kündigen selten ihre "Naughtyness" an
Meer Borg