Netzaktivität eines einzelnen Programms überwachen?
Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese
Netzaktivität eines einzelnen Programms überwachen?
Ich möchte gerne ermitteln, welche Netzwerk-Aktivität von einem einzelnen Programm ausgeht. Klar kann ich mittels "tcpdump" oder "wireshark" die gesamte Kommunikation des Systems mitlesen. Nur auf dem System (Debian) laufen etliche Applikationen, und es ist sehr mühsam, die Aktivität eines einzelnen Programms da herauszulesen. Mein erster Gedanke dazu wäre, das Programm mittels "proxychains" zu isolieren. Dazu bräuchte ich dann noch einen transparenten Proxy und ein paar "verdrehte" Einträge im Routing. Geht das mglw. auch einfacher, oder gibt es bereits Applikationen, die genau auf meine Problemstellung zugeschnitten sind? Hat sich schon mal jemand mit ähnlichen Aufgabenstellungen herumgeschlagen, und kann mir ein paar Hinweise geben? Ich hoffe mal, diese Anfrage ist nicht zu "PC-lastig"...
Edit: Typo in Betreff
Edit: Typo in Betreff
Zuletzt geändert von xoexlepox am Fr 3. Apr 2020, 19:41, insgesamt 1-mal geändert.
Re: Netzaktivität eines enzelnen Programms überwachen?
Ach, es geht ja um ein einzelnes Programm.
Das müsste man aber über die Systemprogramme rausfiltern können.
Das müsste man aber über die Systemprogramme rausfiltern können.
Re: Netzaktivität eines enzelnen Programms überwachen?
Ich habe vor Jahren "ntop" verwendet. Weiss aber nicht ob es für Deine Zwecke
das Richtige ist.
das Richtige ist.
-
- Beiträge: 1062
- Registriert: Di 22. Aug 2017, 05:19
- Wohnort: Berlin
Re: Netzaktivität eines enzelnen Programms überwachen?
Hier gibt es ein paar Optionen:
https://alternativeto.net/software/litt ... form=linux
Leider keine persönliche Erfahrung damit, auf MacOS machen sowohl Little Snitch wie auch HandsOff! einen guten job.
https://alternativeto.net/software/litt ... form=linux
Leider keine persönliche Erfahrung damit, auf MacOS machen sowohl Little Snitch wie auch HandsOff! einen guten job.
Re: Netzaktivität eines enzelnen Programms überwachen?
Ist denn bekannt, welches Protokoll das Programm spricht und wohin es eine Verbindung aufbaut?
Re: Netzaktivität eines einzelnen Programms überwachen?
Jaaaa, aber nur "per Hirn", was doch etwas umständlich ist Ich kann zwar z.B. sehen, daß eine Nameserver-Anfrage gestellt wird, aber nicht, von welchem Programm die kommt. An dieser Stelle ist der einzige Bezug zwischen dem Paket und der Applikation nur noch die Portnummer. Und die kann sehr bald auch wieder von einem anderen Programm verwendet werden.Das müsste man aber über die Systemprogramme rausfiltern können
Soweit ich es bisher gesehen habe, kann "ntop" zwar die "geschwätzigsten" Programme auflisten, jedoch nicht die Pakete einer einzelne Applikation.Ich habe vor Jahren "ntop" verwendet.
Das ist schon ziemlich genau das, was ich suche! Nur leider ist "Little Snitch" nur für MAC verfügbar, und das ähnliche "OpenSnitsch" wurde eingestellt. Aber ich habe einen guten Suchbegriff gefunden: "Application Firewall".... auf MacOS machen sowohl Little Snitch wie auch HandsOff! einen guten job.
Nein, wenn diese Information bekannt wäre, dann wäre die Filterung der mitgelesenen Pakete relativ einfach, und ich könnte mich schon damit beschäftigen, heraus zu finden, was dort kommuniziert wird.Ist denn bekannt, welches Protokoll das Programm spricht und wohin es eine Verbindung aufbaut?
Genau genommen möchte ich herausfinden, ob ein bestimmtes Programm irgendwelche "Spyware" (oder Schlimmeres) enthält. Da auf dem System so einige Applikationen/Services laufen, gibt es auch eine Menge "normalen" Traffic. Die Aufgabe ist es nun, nur die Datenpakete auszufiltern/anzuzeigen, die von/zu einem bestimmten Programm laufen. Bleibt dieses Log leer (oder enthält
nur bekannte/erwünschte Kommunikation), ist das Programm "sauber", und ich brauche mir keine weiteren Gedanken zu machen. Mein Ansatz besteht nun darin, diese Applikation in einer "Sandkiste" laufen zu lassen, und zu überwachen, mit was und wem dieses Ding denn kommuniziert.
Re: Netzaktivität eines einzelnen Programms überwachen?
Kann „ZoneAlarm“ sowas nicht? Hab das allerdings schon länger nicht mehr genutzt.
Re: Netzaktivität eines einzelnen Programms überwachen?
Meinen Recherchen zufolge scheint da (u.a.) ein Firewall drin zu stecken. Ob das eine Filterung (und Aufzeichnung!) der Aktivität eines einzelnen Programms zulässt, scheint mir recht fragwürdig. Das Programmpaket sieht mir mehr nach einer "rundrum glücklich Lösung ausschließlich für Windows-User" aus, als nach einem Analyse-Tool.Kann „ZoneAlarm“ sowas nicht?
Re: Netzaktivität eines einzelnen Programms überwachen?
Das Programm ProcMon mit all seinen unterprogrammen deckt wohl alle Anforderungen ab.
Und es ist umsonst. Den passenden Filter muß man selbst definieren.
So kommte bislang jeder Übeltäter erkannt werden.
73 Manfred
Und es ist umsonst. Den passenden Filter muß man selbst definieren.
So kommte bislang jeder Übeltäter erkannt werden.
73 Manfred
-
- Beiträge: 1062
- Registriert: Di 22. Aug 2017, 05:19
- Wohnort: Berlin
Re: Netzaktivität eines einzelnen Programms überwachen?
Du solltest dabei auch nicht aus den Augen verlieren, daß Programme nicht unbedingt selbst übers Netz kommunizieren, sondern das auch an andere Programme, die "freien Zugang" haben, wie etwa Browser, delegieren können.xoexlepox hat geschrieben: ↑Fr 3. Apr 2020, 19:51 Genau genommen möchte ich herausfinden, ob ein bestimmtes Programm irgendwelche "Spyware" (oder Schlimmeres) enthält. Da auf dem System so einige Applikationen/Services laufen, gibt es auch eine Menge "normalen" Traffic. Die Aufgabe ist es nun, nur die Datenpakete auszufiltern/anzuzeigen, die von/zu einem bestimmten Programm laufen. Bleibt dieses Log leer (oder enthält
nur bekannte/erwünschte Kommunikation), ist das Programm "sauber", und ich brauche mir keine weiteren Gedanken zu machen.
Da kann es dann notwendig werden, entsprechende domains über einen Eintrag in /etc/hosts auf localhost umzuleiten, um seine Ruhe zu haben.
-
- Beiträge: 4619
- Registriert: Do 19. Mai 2016, 21:13
- Wohnort: Regensburg
Re: Netzaktivität eines einzelnen Programms überwachen?
Am schnellsten und einfachsten schaut man unter Windows im Konsolenfenster mit netstat an. Will man das zyklisch haben, einfach eine Ziffer für die Sekunden dahinter setzen.
Re: Netzaktivität eines einzelnen Programms überwachen?
Kein Problem:
Kennst du die PID dann:
alternativ den Prozess über strace starten:
Generell kann man das auch ausweiten falls man IPC vermutet. Ich hab so schon diverse Sachen gefunden.
Die andere Möglichkeit ist über namespaces den Prozess zu isolieren.
Vorher würde ich aber lieber einen klassischen tcpdump machen, im zweifel mit entsprechendem gefiltere.
Und bevor ich (manuell) mit Namespaces anfange würde ich wahrscheinlich den Prozess in eine VM packen und das ausgehende Interface überwachen.
Grüße
Micha
Kennst du die PID dann:
Code: Alles auswählen
strace -p $PID -f -e trace=network -s 10000
Code: Alles auswählen
strace -f -e trace=network -s 10000 <cmd>
Die andere Möglichkeit ist über namespaces den Prozess zu isolieren.
Vorher würde ich aber lieber einen klassischen tcpdump machen, im zweifel mit entsprechendem gefiltere.
Und bevor ich (manuell) mit Namespaces anfange würde ich wahrscheinlich den Prozess in eine VM packen und das ausgehende Interface überwachen.
Grüße
Micha
Re: Netzaktivität eines einzelnen Programms überwachen?
Erst einmal vielen Dank für die vielen hilfreichen Antworten.
Letzte Nacht habe ich mich etwas intensiver mit der Verwendung von (im Debian-Repository) verfügbaren Tools beschäftigt. Und hier meine (vielleicht etwas umständliche) Lösung:
Die zu untersuchende Applikation wird mittels "proxychains" gestartet, welches sämtliche Netzaktivität (incl. Namensauflösung) abgreift, und mit dem Protokoll "socks5" an den lokalen Teil von "shadowsocks" (sslocal) weiterreicht. Von dort aus gehen die Anfragen (verschlüsselt) weiter zum "entfernten Teil" von shadowsocks (ssserver), wo sie wieder entschlüsselt und in das Netzwerk eingespeist werden. Die Applikation sollte nichts von diesem Umweg mitbekommen. Aber nun gibt es eine Stelle, an der sämtliche Anfragen der Anwendung (isoliert von den sonstigen Aktivitäten anderer Applikationen) entlanglaufen. An dieser Stelle lauscht "wireshark", und zeichnet die Aktivität auf. Dank des eingebauten Decoders für "socks5"-Pakete lässt sich nun auch herausbekommen, was (und mit welchen IPs) die Applikation denn so alles kommuniziert.
Interessantes Ergebnis der ersten Versuche: "proxychains" selber verwendet anscheinend den (fest codierten?) Nameserver "4.2.2.2"(b.resolvers.Level3.net) anstatt der "systemeigenen" Namesauflösung. Naja, das kann man ja ggf. auch verhindern/umleiten
Das werde ich mir noch einmal näher ansehen, das scheint mir recht brauchbar zu sein.Das Programm ProcMon mit all seinen unterprogrammen deckt wohl alle Anforderungen ab.
Guter Einwand! Ich werde mal ausprobieren, ob auch ggf. Child-Programme von proxychains "eingefangen" werden. Aber du hast schon recht, es gibt ja auch noch "unix-sockets" und ähnliche SpäßeDu solltest dabei auch nicht aus den Augen verlieren, daß Programme nicht unbedingt selbst übers Netz kommunizieren, sondern das auch an andere Programme, die "freien Zugang" haben, wie etwa Browser, delegieren können.
"netstat" ist auch unter Linux vorhanden, und zeigt aktive Netwerkverbindungen an. Aber damit komme ich m.E. nicht an die Inhalte der Kommunikation.Am schnellsten und einfachsten schaut man unter Windows im Konsolenfenster mit netstat an.
Jau, "strace" ist auch eine schöne Idee! Die hatte ich gar nicht mehr "auf dem Schirm". Es wird zwar etwas umständlich, die Dumps dann auszuwerten, aber das sollte funktionieren.alternativ den Prozess über strace starten
Die Filterei wird schwierig, wenn man weder IPs noch Ports kennt.Vorher würde ich aber lieber einen klassischen tcpdump machen, im zweifel mit entsprechendem gefiltere.
Das war auch eine meiner ersten Ideen, jedoch hätte ich dann das Gesabbel aller Tasks in der VM im Log.würde ich wahrscheinlich den Prozess in eine VM packen und das ausgehende Interface überwachen
Letzte Nacht habe ich mich etwas intensiver mit der Verwendung von (im Debian-Repository) verfügbaren Tools beschäftigt. Und hier meine (vielleicht etwas umständliche) Lösung:
Die zu untersuchende Applikation wird mittels "proxychains" gestartet, welches sämtliche Netzaktivität (incl. Namensauflösung) abgreift, und mit dem Protokoll "socks5" an den lokalen Teil von "shadowsocks" (sslocal) weiterreicht. Von dort aus gehen die Anfragen (verschlüsselt) weiter zum "entfernten Teil" von shadowsocks (ssserver), wo sie wieder entschlüsselt und in das Netzwerk eingespeist werden. Die Applikation sollte nichts von diesem Umweg mitbekommen. Aber nun gibt es eine Stelle, an der sämtliche Anfragen der Anwendung (isoliert von den sonstigen Aktivitäten anderer Applikationen) entlanglaufen. An dieser Stelle lauscht "wireshark", und zeichnet die Aktivität auf. Dank des eingebauten Decoders für "socks5"-Pakete lässt sich nun auch herausbekommen, was (und mit welchen IPs) die Applikation denn so alles kommuniziert.
Interessantes Ergebnis der ersten Versuche: "proxychains" selber verwendet anscheinend den (fest codierten?) Nameserver "4.2.2.2"(b.resolvers.Level3.net) anstatt der "systemeigenen" Namesauflösung. Naja, das kann man ja ggf. auch verhindern/umleiten
- Bastelbruder
- Beiträge: 11481
- Registriert: Mi 14. Aug 2013, 18:28
Re: Netzaktivität eines einzelnen Programms überwachen?
Ich hasse es wenn Wireshark immer falsch verdächtigt wird.
Das pöhse Programm welches Netzwerkaktivitäten, unter Anderem Passwörter und Schlüsselaustausch mitschreibt, läßt sich auch ohne Wireshark per selbstgeschriebener batch auswerten. Und ich denke daß Mitschreiben des gesamten Verkehrs die einzig zuverlässige Methode ist um unanständige Aktivitäten zu erwischen. Man muß in der Zeit schließlich nicht mit aller Gewalt unnötigen traffic verursachen.
Allerdings ist den Spionen bekannt, daß hochsporadische Datenburstübertragungen allgemein am schwersten zu finden sind.
Wireshark ist lediglich DIE klicki-bunti-GUI, die es sogar script-kiddies und anderen Ahnungslosen wie mir erlaubt, den mitgelauschten Datenhaufen zu selektieren und auszuwerten.
Das pöhse Programm welches Netzwerkaktivitäten, unter Anderem Passwörter und Schlüsselaustausch mitschreibt, läßt sich auch ohne Wireshark per selbstgeschriebener batch auswerten. Und ich denke daß Mitschreiben des gesamten Verkehrs die einzig zuverlässige Methode ist um unanständige Aktivitäten zu erwischen. Man muß in der Zeit schließlich nicht mit aller Gewalt unnötigen traffic verursachen.
Allerdings ist den Spionen bekannt, daß hochsporadische Datenburstübertragungen allgemein am schwersten zu finden sind.
Wireshark ist lediglich DIE klicki-bunti-GUI, die es sogar script-kiddies und anderen Ahnungslosen wie mir erlaubt, den mitgelauschten Datenhaufen zu selektieren und auszuwerten.
- Fritzler
- Beiträge: 12579
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: Netzaktivität eines einzelnen Programms überwachen?
Zudem erkennt sone boshafte Software ob sie in einer VM läuft oder nicht.Bastelbruder hat geschrieben: ↑Mo 6. Apr 2020, 12:43 Allerdings ist den Spionen bekannt, daß hochsporadische Datenburstübertragungen allgemein am schwersten zu finden sind.