5 Min. LesezeitJonas Höttler

Wohin sendet mein PC Daten? So findest du es unter Windows heraus

Ein Windows-Rechner im Leerlauf baut in zehn Minuten dutzende Verbindungen auf. Wie du herausfindest, welches Programm wohin funkt — mit netstat, Ressourcenmonitor und PowerShell, und warum das Nachschlagen der Ziele im Netz den Sinn der Sache zerstört.

Dieselben Verbindungen auf die Welt gezeichnet: Land für Land, Firma für Firma — aufgelöst aus einer Datenbank, die den Rechner nie verlässt.
Dieselben Verbindungen auf die Welt gezeichnet: Land für Land, Firma für Firma — aufgelöst aus einer Datenbank, die den Rechner nie verlässt.

Lass einen frisch installierten Windows-11-Rechner zehn Minuten in Ruhe. Kein Browser. Nichts anfassen. Dann zähl die offenen Verbindungen.

Es werden dutzende sein. Das ist kein Einbruch und kein Skandal — es ist, was ein modernes Betriebssystem tut. Aber „das ist normal" ist eine schlechte Antwort auf eine berechtigte Frage, und die berechtigte Frage lautet: welches Programm, zu wem, und warum?

Drei Wege, die schon auf deinem Rechner liegen

netstat, das älteste und immer noch klarste

Konsole als Administrator öffnen — ohne das hat der Schalter -b dir nichts zu zeigen:

netstat -abno
  • -a alle Verbindungen und offenen Ports
  • -b das Programm, dem die Verbindung gehört
  • -n numerische Adressen, keine Namensauflösung
  • -o die Prozess-ID

Du bekommst eine Textwand, in der unter jedem Eintrag das zugehörige Programm steht. Genau darum geht es: Es ist die einzige Bordansicht, die Programmnamen und Gegenstelle gemeinsam auf den Schirm bringt, ohne dass du PIDs von Hand zusammensuchst.

Der Haken ist die Momentaufnahme. Eine Verbindung, die aufgeht, 200 Bytes sendet und zugeht, ist beim Nachsehen schlicht nicht mehr da.

Ressourcenmonitor, um zuzusehen

Win+R, resmon eingeben, Reiter Netzwerk. Dort stehen drei Dinge:

  • Prozesse mit Netzwerkaktivität — Bytes pro Sekunde, je Prozess
  • Netzwerkaktivität — jede Verbindung mit ihrer Gegenstelle
  • TCP-Verbindungen — die laufende Tabelle, mit Latenz

Das ist das einzige Bordmittel, das dir Datenmengen pro Prozess gibt, und es lohnt zu wissen, warum: Es startet im Hintergrund eine ETW-Ablaufverfolgung. Windows hat keine gewöhnliche Schnittstelle, die Bytes einem Prozess zuordnet. Die Leistungsindikatoren, die danach aussehen, messen Datenträger- und Pipe-Ein-/Ausgabe unter einem ähnlich klingenden Namen. Jedes Werkzeug, das dir Datenvolumen pro Prozess zeigt, führt also entweder ebenfalls ETW aus — oder schätzt.

PowerShell, für eine Liste, mit der man arbeiten kann

Get-NetTCPConnection -State Established |
  Select-Object OwningProcess, RemoteAddress, RemotePort |
  Sort-Object RemoteAddress

Mit den Prozessnamen verbunden ergibt das ganze Bild:

$procs = Get-Process | Select-Object Id, ProcessName, Path
Get-NetTCPConnection -State Established | ForEach-Object {
  $p = $procs | Where-Object Id -eq $_.OwningProcess
  [pscustomobject]@{
    Prozess = $p.ProcessName
    Pfad    = $p.Path
    Ziel    = "$($_.RemoteAddress):$($_.RemotePort)"
  }
} | Sort-Object Prozess | Format-Table -AutoSize

Get-NetTCPConnection hat einen echten Vorteil gegenüber dem macOS-Gegenstück: Es benennt den besitzenden Prozess für jede Verbindung auf dem Rechner, auch die anderer Benutzer und Dienstkonten. Auf macOS zeigt lsof ohne Root-Rechte nur deine eigenen. Unter Windows liegt die maschinenweite Liste direkt vor dir.

Wie normal aussieht

Bevor du auf die Jagd gehst: Das hier findest du auf einem gesunden Rechner. Die Stammgäste:

Was du siehstWer es istWarum es spricht
svchost.exe → Microsoft-Bereichedutzende Dienste in einem WirtsprozessUpdate, Zeit, Telemetrie, Lizenzierung
msftconnecttest.comNCSIdie Prüfung hinter „Internetzugriff" im Infobereich
MsMpEng.exeMicrosoft DefenderAbfragen des cloudbasierten Schutzes
time.windows.comWindows-ZeitgeberUhrabgleich
OneDrive.exeOneDriveAbgleich, auch wenn sich nichts geändert hat
msedge.exe, chrome.exe (ohne Fenster)Hintergrundaufgaben des BrowsersErweiterungs-Updates, Push, Vorladen
OCSP- / CRL-EndpunkteZertifikatssperrprüfungob ein Zertifikat noch gültig ist
Store / WinStore.AppApp-Updatesnach eigenem Zeitplan

svchost.exe ist der Eintrag, der die Liste unlesbar macht, denn es ist nicht eine Sache. Dutzende Windows-Dienste teilen ihn sich, und der Name sagt nichts darüber, welcher die Verbindung geöffnet hat. Herausfinden lässt es sich so:

Get-WmiObject Win32_Service -Filter "ProcessId = 1234" | Select-Object Name, DisplayName

Damit wird aus „svchost spricht mit Microsoft" ein „der Dienst für die Übermittlungsoptimierung spricht mit Microsoft" — eine Antwort, mit der man etwas anfangen kann.

Die drei Dinge, die wirklich einen Blick wert sind

Ein Programm ohne Fenster und ohne Anlass. Ein Installer, der letzte Woche fertig wurde und dessen Prozess weiter stündlich mit dem eigenen Update-Server spricht, ist nicht bösartig. Er ist aber auch nichts, dem du zugestimmt hast.

Ein Ziel, das nicht zum Programm passt. Ein PDF-Betrachter, der eine Analysefirma kontaktiert, ist eine Entscheidung, die jemand getroffen hat — und du darfst anderer Meinung sein. Hier zählt die Firma hinter der Adresse ungleich mehr als die Adresse.

Eine Datei, die aus einem temporären oder benutzerbeschreibbaren Ordner läuft. Alles, was aus %TEMP%, den Downloads oder einem AppData-Ordner läuft und dabei Netzwerkverbindungen hält, verdient einen zweiten Blick — angefangen bei der Frage, ob es überhaupt eine gültige Authenticode-Signatur trägt.

Nichts davon ist ein Alarm. Es ist die kurze Liste, die zu lesen sich lohnt.

Das Nachschlage-Problem, das niemand erwähnt

Hier hebeln die meisten Netzwerkwerkzeuge stillschweigend ihren eigenen Zweck aus.

Eine IP-Adresse allein sagt nichts. 52.113.194.132 ist keine Information. Damit sie nützlich wird, muss sie jemand zu Firma und Land auflösen — und der bequeme Weg dorthin ist, einen Server zu fragen: eine WHOIS-Abfrage, ein Reverse-DNS-Lookup, eine Geolocation-Programmierschnittstelle.

Überleg, was in dieser Anfrage steht. Darin steht die Liste all dessen, womit dein Rechner spricht, Adresse für Adresse an einen Dritten übergeben. Ein Werkzeug, das zeigen soll, wohin deine Daten gehen, hat gerade deine Daten irgendwohin geschickt.

Der übliche Weg

  • Adresse 104.18.x.x
  • → an einen Server
  • → Name zurück

Der Server kennt jetzt jedes Ziel, mit dem dein Rechner spricht.

Der Weg hier

  • Adresse 104.18.x.x
  • → Datenbank auf der Platte
  • → Name lokal

Nichts geht raus. Preis: die Liste ist so frisch wie das letzte Update.

Wer fragt, verrät die Frage. Deshalb liegen GeoIP- und Trackerdaten im Programm.

Deshalb trägt BalaneDisk die Datenbank mit sich, statt eine zu befragen. Firma und Land werden aus Daten aufgelöst, die im Programm liegen — auf deinem Rechner, ohne dass eine Anfrage hinausgeht. Unter Windows liest es die Verbindungen über dieselben TCP/IP-Cmdlets, die du von Hand nutzen würdest — jede Verbindung auf dem Rechner, nicht nur deine — und es ist ehrlich bei dem einen, was Windows nicht herausgibt: Ohne ETW-Sitzung gibt es keinen Byte-Zähler pro Prozess, also meldet es gar keine Mengen statt einer plausiblen falschen Zahl, und der Bildschirm lässt die Spalten weg, die er nicht füllen kann.

Was du mit dem Ergebnis machst

  1. 01Den Prozess bestimmen, nicht die Adresse. Die Adresse ist Folge; das Programm ist die Entscheidung.
  2. 02Bei svchost.exe erst die PID zum Dienst auflösen, bevor du irgendetwas schließt.
  3. 03Pro Programm entscheiden, nicht pro Verbindung. Ein Programm, das du nicht mehr nutzt und das weiter nach Hause funkt, gehört deinstalliert, nicht in eine Firewall-Regel.
  4. 04Ausgehende Firewall-Regeln sind eine echte Option — Windows Defender Firewall mit erweiterter Sicherheit → Ausgehende Regeln → Neue Regel. Standard ist Erlauben; ein einzelnes Programm über seinen Pfad zu blockieren ist unterstützt und umkehrbar.
  5. 05Nicht nach IP-Adresse blockieren. Die rotieren. Du pflegst dann ewig eine Liste und blockierst nächsten Monat das Falsche.

Weiter: Antimalware Service Executable: warum MsMpEng.exe die CPU frisst · Windows-Speicher voll: wo der Platz wirklich hingeht

Häufige Fragen
Wie sehe ich unter Windows, welches Programm ins Internet funkt?
Drei Bordmittel. netstat -abno in einer Administrator-Konsole listet jede Verbindung mit der zugehörigen ausführbaren Datei. Der Ressourcenmonitor (resmon), Reiter Netzwerk, zeigt dasselbe live und ergänzt Bytes pro Sekunde je Prozess. Get-NetTCPConnection -State Established in PowerShell liefert die maschinenweite Liste inklusive der Verbindungen anderer Benutzer — genau darin ist Windows dem Mac überlegen.
Ist es normal, dass ein Windows-PC im Leerlauf ständig sendet?
Ja. Windows Update, die Verbindungsprüfung gegen msftconnecttest.com, Telemetrie, die Cloud-Abfragen von Defender, Updates von Store-Apps, Zeitabgleich, Zertifikatssperrprüfungen und die Updater aller installierten Programme sprechen, ohne dass du etwas tust. Auffällig ist nicht, dass gesendet wird, sondern wer sendet und wohin.
Warum kann mir kein Werkzeug sagen, wie viele Bytes jedes Programm gesendet hat?
Windows stellt über seine gewöhnlichen Schnittstellen keinen Byte-Zähler pro Prozess bereit — die Leistungsindikatoren, die danach aussehen, messen Datenträger- und Pipe-Ein-/Ausgabe. Der Ressourcenmonitor bekommt diese Zahlen, indem er eine ETW-Ablaufverfolgung startet. Wer Datenmengen pro Prozess meldet, führt entweder ebenfalls ETW aus oder schätzt.
ThemenNetzwerkDatenschutzWindows

Sieh es auf deinem eigenen Rechner.

Jeder Bildschirm aus diesen Artikeln ist kostenlos nutzbar, so lange du willst.

Quellen und Links
Weiterlesen