Connie: Web beacon

Hallo,
nachdem ich nachfolgendes gelesen hatte, habe ich gegoogelt um herauszufinden, wie dies funktioniert. Leider ohne Erfolg.

Zitat:
Versender von Spam können (sofern der Mail-Client des Empfängers eine entsprechende Sicherheitslücke aufweist) durch Einbau eines Zählpixel in die E-Mail ermitteln

* ob eine E-Mail-Adresse gültig ist,
    * ob und wann die E-Mail geöffnet wurde,
    * welchen Browser und welches Betriebssystem der Empfänger verwendet,
    * welche IP-Adresse der Empfänger hat; damit seinen Internetdienstanbieter und mithilfe von Geotargeting möglicherweise sogar seinen Wohnort.
Ende Zitat

Ich habe zwar mein Outlook Express so eingestellt, dass die Bilder nicht geladen werden, aber es interessiert mich trotzdem:

Wie kann man über ein Bild, das nur ein Pixel groß ist diese Informationen erlangen, zumal auch dann schon, wenn das Bild nicht einmal angeklickt wird?
Wie erkenne ich im Quellcode einer mail solche Bösewichte?

Danke und Gruß
Connie

  1. Yerf!

    Ich habe zwar mein Outlook Express so eingestellt, dass die Bilder nicht geladen werden, aber es interessiert mich trotzdem:

    Wie kann man über ein Bild, das nur ein Pixel groß ist diese Informationen erlangen, zumal auch dann schon, wenn das Bild nicht einmal angeklickt wird?

    Es reicht, wenn das Bild geladen wird. Dadurch kommt ein Request auf deren Webserver zustande und aus diesem lassen sich die genannten Informationen auslesen (zumidnest teilweise, der UA-String kann ja modifiziert sein).

    Wie erkenne ich im Quellcode einer mail solche Bösewichte?

    Daran das eine HTML-Mail Bilder von externen Webservern enthält (ok, ist nur ein notwendiges und kein hinreichendes Kriterium, aber zumindest eine schlechte Vorgehensweise).

    Gruß,

    Harlequin

    --
    <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
  2. Hi Connie!

    Wie kann man über ein Bild, das nur ein Pixel groß ist diese Informationen erlangen, zumal auch dann schon, wenn das Bild nicht einmal angeklickt wird?

    Wenn das Laden der Bilder nicht unterbunden wird z.B. so:

      
    <img src="http://evil.example.com/countIt.php?id=32748739874" alt="">  
    
    

    Das Script verarbeitet nun die übergebene Information (z.B:id=32748739874)
    und erzeugt eine Grafik.

    Der 'Bösewicht' weiß dann:

    a.) die Email-Adresse ist eine richtige
    b.) die Email wurde geöffnet

    Wie erkenne ich im Quellcode einer mail solche Bösewichte?

    s.o.

    off:PP

    --
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
    1. Hallo,

      <img src="http://evil.example.com/countIt.php?id=32748739874" alt="">

      
      >   
      > Das Script verarbeitet nun die übergebene Information (z.B:id=32748739874)  
      > und erzeugt eine Grafik.  
      >   
      > Der 'Bösewicht' weiß dann:  
      >   
      > a.) die Email-Adresse ist eine richtige  
      > b.) die Email wurde geöffnet  
      >   
        
      Und das Script kann nun auch folgende Informationen abfragen?  
        
          \* welchen Browser und welches Betriebssystem der Empfänger verwendet,  
          \* welche IP-Adresse der Empfänger hat; damit seinen Internetdienstanbieter und mithilfe von Geotargeting möglicherweise ...  
        
      Zusatzfrage:  
      Angaben wie  
        <img src="http://evil.example.com/bild.jpg>  
      sind demnach harmlos?  
      Gruß  
      Connie  
      
      
      1. Mahlzeit Connie,

        Und das Script kann nun auch folgende Informationen abfragen?

        * welchen Browser und welches Betriebssystem der Empfänger verwendet,
            * welche IP-Adresse der Empfänger hat; damit seinen Internetdienstanbieter und mithilfe von Geotargeting möglicherweise ...

        Sicher. In PHP z.B. stecken diese Informationen im superglobalen Array $_SERVER: 'HTTP_USER_AGENT' und 'REMOTE_ADDR' (wobei ersterer vom Browser gefälscht sein könnte und letztere nicht zwangsläufig die IP des Nutzers sein muss, sondern auch die des verwendeten Proxys sein kann).

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      2. Moin.

        Zusatzfrage:
        Angaben wie
          <img src="http://evil.example.com/bild.jpg>
        sind demnach harmlos?

        Nein. Auch hier wird eine Ressource per HTTP angefordert, d.h. der Spammer erhält alle Informationen, die der Browser/Mailclient zur Verfügung stellt (insbesondere die Bestätigung, dass die Email betrachtet und damit die Mailadresse gültig ist; was sonst noch an Informationen gesendet wird, hängt vom Browser/Mailclient ab...).

        Ein Query-String erlaubt es lediglich, zusätzliche Informationen zu kodieren (der Spammer könnte beim Versenden der Mail z.B. das Datum kodieren und weiß dann, wie lange die Mail in deinem Postfach lag, bevor du sie geöffnet hast). Außerdem kann so Caching verhindert werden, d.h. bei der nächsten Mail vom selben Spammer wird das Bild erneut geladen.

        Christoph

      3. Hi Connie!

        Und das Script kann nun auch folgende Informationen abfragen?

        * welchen Browser und welches Betriebssystem der Empfänger verwendet,

        Nein, zumindest nicht sicher!

        * welche IP-Adresse der Empfänger hat;

        Die braucht das Script nicht zu erfragen, denn der HTTP-Request (für das Bild) kommt doch von dieser öffentlichen IP-Adresse und der Reply wird ja dorthin gesendet.

        Zusatzfrage:
        Angaben wie
          <img src="http://evil.example.com/bild.jpg>
        sind demnach harmlos?

        Nein! Woher weißt Du, das sich hinter der Ressource http://evil.example.com/bild.jpg eine statische JPG-Datei steckt?
        Es könnte eben so gut ein Script dahinterstecken.

        off:PP

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
        1. Moin Moin!

          Angaben wie
            <img src="http://evil.example.com/bild.jpg>
          sind demnach harmlos?

          Nein! Woher weißt Du, das sich hinter der Ressource http://evil.example.com/bild.jpg eine statische JPG-Datei steckt?
          Es könnte eben so gut ein Script dahinterstecken.

          Und nicht einmal das ist nötig.

          Ich schicke John Doe eine Kündigung per Mail, die <img src="http://evillogger.example.com/john-doe-kuendigung-gelesen.gif" alt=""> enthält.

          Dann lasse ich (ACHTUNG, BRUTE FORCE) regelmäßig folgendes Kommando laufen:

          grep john-doe-kuendigung-gelesen.gif /server/www/logs/access.log

          Irgendwann wird eine Zeile wie

          192.168.168.192 - - [04/Jul/2008:20:13:01 +0200] "GET /john-doe-kuendigung-gelesen.gif HTTP/1.1" 200 611

          herausfallen. Voila, Lesedatum und IP-Adresse. Mit erweitertem Logging auch noch der User Agent.

          Ich müßte mir noch nicht einmal die Mühe machen, ein Bild hochzuladen, mod_rewrite oder ein error-handler könnten auf ein anderes Bild verweisen. Oder ich lasse es komplett weg und bekomme statt der 200 ein 404, die ich im (meist kleineren) error-log auch noch schneller finden kann.

          Das im Mail-Client vielleicht ein "Broken Image"-Icon auftaucht, ist mir in dem Moment völlig egal, denn die Lesebestätigung habe ich in dem Moment schon.

          Und genau deshalb sollte kein brauchbarer E-Mail-Client irgendwelche Resourcen von externen Systemen laden, jedenfalls nicht ohne vorher zu fragen.

          Alexander

          --
          Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".