[VB.net] Was gegen Packet Sniffer tun?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von slice.

    [VB.net] Was gegen Packet Sniffer tun?

    Hallo liebe Community!

    Heute mal eine Frage rein aus Interesse :D
    Wenn man mit Hilfe von "System.Net" zB einen String herunterlädt ist es einem Dritten ermöglicht durch gewisse Hilfsmittel
    diese Verbindungen mit "Break on Response" abzufangen und den Text zu lesen oder gelegentlich sogar zu ändern.

    Mit welchen Hilfsmitteln wäre es möglich dies zu unterbinden?
    Oder nach was muss ich da suchen?
    Ich recherchiere natürlich vor meinen Forumsbeiträgen. Aber bei "VB.net anti packet sniffer" oder "VB.net Was tun gegen Fiddler" kommt man nicht besonders weit.
    Zumindest ich nicht wrkl..

    Das Thema hat keine hohe Priorität. Aber cool wäre eine Antwort trotzdem :thumbup:

    LG David

    P.S: Euch allen noch einen wunderschönen Abend!
    Bitte benutze OPTION STRICT ON.
    Und optional OPTION EXPLICIT ON.
    Hier ein CODE-CONVERTER.

    Suchanfragen-Ansatz für GOOGLE.
    Prüfe deinen Beitrag in einer RECHTSCHREIBPRÜFUNG.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Ceytec“ ()

    @Ceytec Mal sehen, ob ich Dich richtig verstanden habe:
    Du hast eine TCP-Verbindung und lädtst einen String herunter.
    Dein TCP-Signal könnte von einem anderen PC abgehört werden, was Du unterbinden willst.
    Wie das mit dem Abhören funktioniert fragst Du Frau Google nach TCP Spy.
    Was Du dagegen tun kannst: Bau eine sichere Verbindung auf (https)
    oder
    kommuniziere mit dieser Gegenstelle außerdem mit selbst verschlüsselten Informationen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hey @RodFromGermany!
    Ja also:
    1. Du hast mich richtig verstanden :) Mein Post war ja auch eigtl verständlich formuliert :P
    2. Wie das funktioniert ist mir klar :D Hatte mich da "früher" (jetzt nicht früher, im Sinne von: Im 3. Hühnerkrieg) schon mal informiert :)
    3. Das ist mir auch schon in den Sinn gekommen, aber kann man diese Verbindungen auch irgendwie einfach komplett verstecken? Ist das möglich?

    LG!
    Bitte benutze OPTION STRICT ON.
    Und optional OPTION EXPLICIT ON.
    Hier ein CODE-CONVERTER.

    Suchanfragen-Ansatz für GOOGLE.
    Prüfe deinen Beitrag in einer RECHTSCHREIBPRÜFUNG.

    Hejho @seh!

    Ja dein Satz "Warum verstecken, das hört sich ziemlich verdächtig an (...)" ist berechtigt. Aber es geht bei mir eher um das Sicherheitsinteresse. Wie beispielsweise eine Rückverfolgung der
    aufgerufenen Seiten um diese dann zu schädigen oder auszunutzen zu verhindern (z. B. Bei Logins, QuickInformations, usw..).

    Und ich bin kein Tunichtgut :) Ich bin sogar was Gesetze angeht sehr streng erzogen worden, was man bei einer halbwegs guten Erziehung auch sein sollte.

    LG!
    Bitte benutze OPTION STRICT ON.
    Und optional OPTION EXPLICIT ON.
    Hier ein CODE-CONVERTER.

    Suchanfragen-Ansatz für GOOGLE.
    Prüfe deinen Beitrag in einer RECHTSCHREIBPRÜFUNG.

    Moin @Ceytec

    also verstecken vor Programmen wie Wireshark oder sowas lässt sich das erstmal schlecht (ich will nicht sagen garnicht), da Wireshark per Treiber direkt von der Netzwerkkarte den Verkehr aufzeichnet.
    Am Besten schlägst du dir Verstecken ausm Kopf ^^

    Verschlüsseln mit dem SslClient wäre dann wahrscheinlich die einfachste Wahl. :)
    Kurze Antwort: Nein!
    Lange Antwort: Nein, das geht nicht! ;D

    Das Problem ist folgendes: Wenn Du eine Kommunikation zwischen zwei Geräten über eine TCP Verbindung realisieren willst, dann MUSS das Signal übertragen werden bzw jeder Teilnehmer im Netwerksegment davon Wind bekommen, da TCP ein verbindungsorientiertes Protokoll ist. Das bedeuet wiederum, dass es eine Verbindung zwischen den Partnern geben muss, die erst einmal aufgebaut wird. Weil jeder Partner im Netwerk erst einmal jedes Netzwerkpaket aufnehmen muss, um zu schauen, ob das Paket für ihn ist oder eben nicht, bekommt jeder Teilnehmer grundsätzlich mal jedes Paket. Wenn es nicht für ihn ist, verwirft er es (discard). Netzwerksniffer tuen das ben nicht. Sie behalten es. Da das Ganze aber physikalisch nicht realisierbar ist(Der Senderechner kennt ja nicht die genaue gegraphische Lokation des Zielrechners nicht. Er posaunt seine Infos einfach in das Netzt und sagt halt dazu: "Das geht an dich, Rechner 123" und nur Rechner 123 wird diese Daten dann verarbeiten), kannst Du dir das abschminken.
    Zu dem Punkt mit dem Text lesen oder manipulieren: Gegen das Lesen hilft verschlüsseln, gegen das manipulieren empfehle ich dir eine Signierung des Textes.

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    @seh Nö, einfach nö.
    Wenn du Wireshark o.ö. auf dem ausführenden Rechner blockierst, schneide ich den Traffic an anderer Stelle mit (zb. am Router), da kannst du nichts gegen machen.
    Wenn du nicht zu einem beliebigen, sonder nur zu deinem eigenen Server "sicher" verbinden willst, dann kannst du mit RSA eine AES Schlüssen austauschen, den selbst ein man-in-the-middle nicht abfangen kann. Vorausgesetzt der Client hat den original Client und nicht einen bereits modifizierten. Aber verstecken geht vermutlich nicht.
    Moin,
    ich hoffe ich mache keinen Denkfehler, aber du könntest du die Daten (natürlich verschlüsselt) an eine eigene Website senden, die von außen unauffällig aussieht. (z.B. ein Forum) Für den Traffic-Beobachter sieht es so aus, als würdest du im Forum rumsurfen. Was da wirklich übertragen wird, kann auf den ersten Blick keiner erkennen. Dein Webserver kann die empfangenen Daten dann zusätzlich an ein Ziel deiner Wahl weiterleiten.
    Mal abgesehen davon, dass inzwischen eh alles per TLS verschlüsselt ablaufen sollte, man also den genauen Inhalt der Verbindung eh nicht mitbekommen sollte, ist website traffic doch schon recht spezifisch. Man könnte versuchen durch browsen auf der Website ähnlichen traffic zu erzeugen, und dann herausfinden, dass es nicht geht. Und schon weiß man, dass der Server noch weiteren Dingen dient, als nur der Webseite.

    Bluespide schrieb:

    Wenn du nicht zu einem beliebigen, sonder nur zu deinem eigenen Server "sicher" verbinden willst, dann kannst du mit RSA eine AES Schlüssen austauschen
    Damit machst Du lediglich die Kommunikation für den Angreifer nicht mehr lesbar. Verstecken der Verbindung an sich kannst Du damit NICHT!

    7081 schrieb:

    ich hoffe ich mache keinen Denkfehler, aber du könntest du die Daten (natürlich verschlüsselt) an eine eigene Website senden, die von außen unauffällig aussieht
    Hast Du wieder das selbe Problem: Die Daten müssen ja irgendwie an den Server/die Webseite gesendet werden. Und wie geht das? Über Ethernet via IP mittels TCP (Um jetzt mal einen Abriss des ISO/OSI Schichtenodells zu verwenden.

    EaranMaleasi schrieb:

    Man könnte versuchen durch browsen auf der Website ähnlichen traffic zu erzeugen, und dann herausfinden, dass es nicht geht.
    Was man machen könnte ist ein HTTP Tunneling (Kapseln der Daten als HTTP Packet)

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

    Radinator schrieb:

    Damit machst Du lediglich die Kommunikation für den Angreifer nicht mehr lesbar. Verstecken der Verbindung an sich kannst Du damit NICHT!


    Zitier doch bitte nicht eine aus dem Kontext gerissenen Satz aus einem Beitrag, wenn noch in dem selbigen genau das steht, was du dann beschreibst. Ich finde das jetzt etwas komisch, denn in dem gleich Beitrag von mir steht weiter unten:

    Bluespide schrieb:

    Aber verstecken geht vermutlich nicht.

    Radinator schrieb:

    Was man machen könnte ist ein HTTP Tunneling (Kapseln der Daten als HTTP Packet)
    Ich bin davon ausgegangen, dass alles via HTTP läuft. Dennoch wird Webseitentraffic, und was auch immer @Ceytec verstecken möchte, verschiedene Muster darin haben, wie der Traffic aufgebaut ist.

    Oder kurz:
    Du betreibst auf demselben Server ne Webseite, und einen Restful WCF-Dienst. Obwohl beides HTTP Traffic ist, wirst du mit großer Wahrscheinlichkeit 2 verschiedene Muster vorfinden, die sich in der Menge der Daten, der Häufigkeit der Aufrufe, und der Regelmäßigkeit der Aufrufe unterscheiden.

    Bluespide schrieb:

    Zitier doch bitte nicht eine aus dem Kontext gerissenen Satz aus einem Beitrag, wenn noch in dem selbigen genau das steht, was du dann beschreibst.
    Mach ich auch nicht. Ich zitiere lediglich einen Teil eines kurzen Postes und gebe dazu eine fachlich fundierte Meinung bzw eigentlich eine fachlich fundierte Information wieder. Was Du machst ist eine Vermutung aufstellen:

    Bluespide schrieb:

    Aber verstecken geht vermutlich nicht.


    Bluespide schrieb:

    Ich finde das jetzt etwas komisch, denn in dem gleich Beitrag von mir steht weiter unten:
    Wie gesagt: Was in deinem Post als nächste steht, ist lediglich eine Vermutung (da Du ja auch schreibstvermutlich nicht).

    Lg Radiantor
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Dann Zitiere die Vermutung und bestätige Sie mit Fakten, anstatt den völlig irrelevanten Teil zu zitieren, und mit deinen Worten @Bluespide so dastehen zu lassen, als ob er dachte, dass er damit die Verbindung verstecken würde. Zumal der Teil mit dem Verstecken nichts mit dem Satz davor zu tun hatte. Er schrieb nicht umsonst

    Bluespide schrieb:

    "sicher" verbinden
    anstatt "versteckt" verbinden.
    Oh heyy!

    Ich hab da was ins Rollen gebracht
    Ok kurz gesagt: Verstecken extrem schwer bis unmöglich?

    Verschlüsselung ist mir als Absicherung schon bewusst gewesen, aber ich fragte mich eben, ob das iwie möglich sei, eine Verbindung 100%ig zu verstecken ^^

    Danke für die Antworten!
    LG
    Bitte benutze OPTION STRICT ON.
    Und optional OPTION EXPLICIT ON.
    Hier ein CODE-CONVERTER.

    Suchanfragen-Ansatz für GOOGLE.
    Prüfe deinen Beitrag in einer RECHTSCHREIBPRÜFUNG.