Kategorie: Technik

Umgang mit Spam 👍 👎

Spam ist leider nach wie vor ein sehr großes Problem im Internet. Die genauen Arten und Hintergründe zum massenhaften Spam-Versand und insbesondere Ansätze zur grundlegenden Verbesserung der Protokolle sind sicherlich interessant und einen separaten Beitrag wert, für diesen Beitrag soll es jedoch darum gehen, wie man derzeit Spam vermeiden und was man mit bereits eingegangenem Spam anfangen kann, außer ihn zu löschen.

Versand von Spam vermeiden

Idealerweise gelangt Spam erst gar nicht in Umlauf; das spart unnötige Datenverarbeitung mit allen Konsequenzen und theoretisch jeglichen weiteren Aufwand. In der Praxis ist das nur begrenzt möglich, da die Protokolle sehr liberal entworfen wurden – was grundsätzlich lobenswert, bei Spam jedoch problematisch ist.

Inhaber von Postfächern

Was erst einmal selbstverständlich klingt, wird in der Praxis leider oftmals vernachlässigt: Sichere Passwörter tragen wesentlich dazu, dass eigene Benutzerkonten nicht als Absender für Spam fungieren. Wie üblich sollte das Passwort natürlich auch nur für genau diesen Zweck verwendet werden. Problematisch sind diese grundsätzlich "guten" Benutzerkonten insbesondere deshalb, weil sie meist aus den ordentlich konfigurierten Netzen größerer Anbieter stammen, die nicht einfach pauschal als "bekannte" Spam-Versender blockiert werden können.

Nicht zuletzt sollte auch sichergestellt sein, dass sich keine Schadprogramme auf dem eigenen Rechner befinden, welche beispielsweise eMails an Kontakte aus dem Adressbuch zu senden versuchen. Auch eigene Web-Anwendungen sollten immer auf dem aktuellsten Stand sein.

Betreiber von Mailservern

Ein ordentlich konfigurierter Mailserver, der nur authentifizierte Benutzer zulässt und insbesondere nicht als offenes Mail-Relay fungiert, ist selbstverständlich Grundvoraussetzung, um Spam bereits im Ansatz zu vermeiden. Die genaue Konfiguration hängt vom eingesetzten Dienst ab und würde den Rahmen dieses Beitrages sprengen. Üblicherweise gibt es dazu jedoch umfassende Leitfäden der Anbieter.

Ein weiterer Ansatz ist es, Spam an sich zu erkennen und von der weiteren Verarbeitung, insbesondere dem externen Versand, auszuschließen. So ist es beispielsweise möglich, den Umfang der Versandtätigkeit zu überwachen und ggf. auch einzuschränken. Ein durchschnittlicher Webhosting-Kunde wird beispielsweise eher selten mehrere tausend eMails in der Minute einreichen – hier können serverseitige Maßnahmen greifen, die derartige Auffälligkeiten erkennen. Möglicherweise ist es sinnvoll, die Anzahl der Nachrichten pro Zeiteinheit einzuschränken und nur nach vorheriger Rücksprache mit dem Kunden vorübergehend freizugeben.

Darüber hinaus ist nicht zu unterschätzen, dass die Zugangsdaten sehr vieler Benutzerkonten oftmals sehr unsicher gewählt werden und daher leicht zu "ermitteln" sind, bzw. von anderen Portalen kopiert werden können, sofern gleiche Zugangsdaten verwendet wurden. Es sollte daher überwacht werden, ob auffällige Zugriffe erfolgen – dieses Vorhaben kann beispielsweise durch Programme wie Fail2ban unterstützt werden. Auch Web-Anwendungen der Kunden, die oftmals nicht auf dem aktuellsten Stand sind, sind zu beachten.

Empfang von Spam vermeiden

Die meisten Anbieter leisten hier Vorarbeit, sodass der gröbste Spam gar nicht erst in dein Postfach gelangt, sondern bereits serverseitig abgewiesen wird. Alternativ wird teilweise auch nur eine Markierung eingesetzt, beispielsweise indem dem Betreff "[SPAM]" vorangestellt wird.

Inhaber von Postfächern

Du solltest deine eMail-Adresse(n) auf jeden Fall nicht überall verstreut angeben. Die meisten eMail-Programme bieten darüber hinaus standardmäßig oder aber zumindest über entsprechende Erweiterungen die Möglichkeit, Spam über bestimmte Kriterien zu erkennen. Die Erkennungsrate steigert sich bei den etwas besseren Programmen mit der Zeit, es können jedoch auch falsche Einstufungen (false positive) vorkommen.

Weniger der direkten Vermeidung, als vielmehr der Aufklärung dienlich ist der Ansatz, für jeden Dienst, bei dem du deine eMail-Adresse angeben sollst, eine individuelle und nicht erratbare Adresse zu erzeugen, die du nur dort verwendest (jedoch durchaus in einem Postfach mit anderen zusammen sammeln kannst). So kannst du feststellen, aus welcher Richtung du Spam erhältst und mit dem Anbieter Rücksprache halten, wie deine nur dort verwendete Adresse, die nur ihm bekannt sein sollte und nicht öffentlich einsehbar ist, Spam erhalten konnte. Möglicherweise wurde in einem solchen Fall unberechtigt auf die Daten(-bank) zugegriffen. Indirekt lässt sich mit diesem Ansatz Spam vermeiden, indem die fragliche Adresse schlicht gelöscht und ggf. eine neue erzeugt wird.

Betreiber von Mailservern

Es besteht grundsätzlich die Möglichkeit, einzelnen IP-Adressen oder sogar ganzen Adressbereichen die Verbindung zu verweigern. Darüber hinaus können eingehende Nachrichten über externe Programme wie SpamAssassin oder auch über bereits im Mailserver implementierte Funktionalität auf Spam geprüft werden.

Eine weitergehende Option ist das Einbinden von DNS-basierten Blacklisten, wobei die IP-Adresse eingehender Verbindungen gegen entsprechende Dienste geprüft und darauf basierend entschieden wird, ob die Nachricht angenommen wird. Die Anbieter dieser Dienste sammeln dazu auffällige Adressen in ihren Datenbanken. Bekannte Anbieter, die ich auch selbst auf meinem Server einsetze, sind beispielsweise die Folgenden:

Bitte informiert euch jedoch – insbesondere bei geplantem kommerziellen Einsatz – über die genauen Nutzungsbedingungen. Wie ihr die entsprechenden Dienste automatisiert mit C# ansprechen könnt, habe ich bereits in einem separaten Beitrag beschrieben.

Zuletzt sei noch auf die Möglichkeit des Greylistings hingewiesen, wobei eingehende eMails bei unbekannten Absendern zuerst abgewiesen werden. Hierbei wird ausgenutzt, dass korrekt konfigurierte Mailserver die Zustellung nach einer gewissen Zeit nochmals versuchen – Spammer vermeiden diesen Aufwand oftmals. Der Erfolg mit dieser Methode kann durchaus beachtlich sein, sorgt jedoch leider auch dafür, dass "dringende" eMails teilweise nur stark verzögert eingehen, was natürlich lästig sein kann.

Spam behandeln

Ist trotz aller Maßnahmen eine Spam-Nachricht im eigenen Postfach gelandet, so sollte man selbstverständlich keinesfalls irgendwelche Links anklicken (auch keine angeblichen "abmelden"-Links), Dateianhänge öffnen oder dem (angeblichen) Absender antworten. Bevor die Nachricht jedoch gelöscht wird, kann man durchaus noch sinnvolle Sachen damit anstellen.

Den Betreibern der verantwortlichen Server kann man eine Information zukommen lassen, dass man Spam erhalten hat. Dies ermöglicht dem Betreiber des Mailservers, der die Nachricht verschickt bzw. weitergeleitet hat, seinen Kunden darauf hinzuweisen oder ggf. auch zu sperren. Betreiber von Servern, auf die durch Links in den Spam-Nachrichten verwiesen wird, können u. U. auch interessiert sein, da nicht selten Sicherheitslücken auf legitimen Webseiten missbraucht werden, um beispielsweise Schadcode zu verbreiten. Größere Unternehmen reagieren nicht selten auch mit ihrer Rechtsabteilung, wenn beispielsweise (Ruf-)Schädigung durch Phishing droht, was dem Ganzen nochmals etwas mehr Nachdruck verleiht.

Die meisten direkt sichtbaren Domain-Angaben bei Spam-Nachrichten sind jedoch gefälscht, d. h. eine einfache Whois-Abfrage ist hier meist nicht zielführend. Vielmehr muss der eigentliche Server ausfindig gemacht (→ Untersuchung der eMail-Kopfzeilen) und über die zuständige Regional Internet Registry der passende Ansprechpartner ermittelt werden.

Leider ist es jedoch nicht ganz trivial, die richtigen Adressaten herauszufinden und für Laien nahezu unmöglich. Hier kann es eher passieren, dass man die Falschen "beschuldigt" und diese entsprechende Meldungen ab einem gewissen Ausmaß schlicht ignorieren. Hier helfen jedoch Anbieter weiter, die sich darauf spezialisiert haben:

  • abuse.net
    Dieser Dienst ermittelt zu einer Domain den Kontakt für Missbrauchsfälle, jedoch muss man dazu die "verantwortliche" Domain bereits kennen. Wie man diesen Dienst automatisiert (mit C#) ansprechen kann, erkläre ich in einem separaten Beitrag.
  • SpamCop
    Dieser Dienst nimmt die meiste Arbeit ab und ermittelt bei Eingabe einer vollständigen Spam-Nachricht (inkl. Kopfzeilen) die passenden Empfänger. Selbstverständlich empfiehlt sich jedoch eine Kontrolle, da in bestimmten Konstellationen die Automatismen unzureichend sind. An eine spezielle Adresse können Spam-Nachrichten auch direkt weitergeleitet werden.

Selbstverständlich ist das keine Garantie dafür, dass sich der Anbieter auch ernsthaft darum kümmert – hier gibt es leider auch uninteressierte Zeitgenossen. Ich melde jedoch generell alle Spam-Nachrichten und habe damit durchaus überwiegend gute Erfahrungen gemacht und erhalte hin und wieder auch persönliche Antworten.

Farbcodes (Ergänzung) 👍 👎

Mein ehem. Ausbilder hat dem angedachten Gastbeitrag zugestimmt, ihr dürft also gespannt sein. Smiley: smiling

Als kleine Hilfe für die Praxis gibt es nun eine Seite benannter Farben mit zusätzlichen Informationen.

Farbcodes 👍 👎

Ab dem 1. August haben wir in der Firma einen neuen Auszubildenden zum Fachinformatiker für Anwendungsentwicklung. Dieser hat vor Kurzem noch ein zweiwöchiges Praktikum bei uns absolviert und dabei auch einiges von mir erfahren (ich hoffe, er hat sich erholt Smiley: winking). Auf dem Plan stand auch das Thema Farbcodes, wie sie insbesondere im Webdesign auftreten und nun möchte ich hier ebenfalls ein paar Worte dazu verlieren.

Zuerst einmal muss klar sein, was eigentlich die theoretische Grundlage dieser Notation ist, um sinnvolle Aussagen treffen zu können. Wir besprechen hier den RGB-Farbraum, welcher ein (additiver) Farbraum aus den drei Grundfarben Rot, Grün und Blau darstellt – wir besitzen demnach also drei Farbkanäle. Mit ein wenig Fantasie lässt sich bereits jetzt erahnen, wie entsprechende Farbcodes aus CSS zu verstehen sind:
#R1R0G1G0B1B0
Für jeden Farbkanal stehen uns in dieser Notation zwei hexadezimale Ziffern zur Verfügung, d. h. der Wertebereich pro Farbkanal erstreckt sich von 0 – ff16 (bzw. 0 – 25510) ≙ 162 (= 256) mögliche Werte.

Durch entsprechend niedrige bzw. hohe Werte pro Farbkanal ergibt sich proportional dazu die Intensität der jeweiligen Grundfarbe, d. h. um eben diese in voller Ausprägung darzustellen müssen wir lediglich den entsprechenden Farbkanal mit dem höchsten Wert belegen:
Grundfarben als Farbcode
010203
#ff0000 = ff (Rot) + 00 (Grün) + 00 (Blau) = Rot#00ff00 = 00 (Rot) + ff (Grün) + 00 (Blau) = Grün#0000ff = 00 (Rot) + 00 (Grün) + ff (Blau) = Blau
Wenn man sich den Farbraum wörtlich vorstellt, d. h. als Koordinatensystem mit den entsprechenden Farbkanälen als Achsen, können wir jeder Koordinate einen Farbeindruck entnehmen. Die tatsächlichen Farbmodelle sind noch etwas komplexer, für diese kleine Einführung ist diese Vorstellung jedoch durchaus legitim.

Sofern wir alle drei Farbkanäle mit einem identischen Wert belegen, erhalten wir einen grauen Eindruck zwischen niedrigster (Schwarz) und höchster (Weiß) Intensität:
Grauwerte
010203040506070809
#000000 = 00 (R) + 00 (G) + 00 (B) = Schwarz#333333 = 33 (R) + 33 (G) + 33 (B) = dunkles Grau#777777 = 77 (R) + 77 (G) + 77 (B) = mittleres Grau#cccccc = cc (R) + cc (G) + cc (B) = helles Grau#ffffff = ff (R) + ff (G) + ff (B) = Weiß
Sofern – wie im o. g. Beispiel, was dafür nicht unbedingt notwendig gewesen wäre – jeder Farbkanal aus zwei identischen Ziffern besteht, erlauben uns CSS und viele Grafikprogramme eine Kurzschreibweise, so dass aus #RRGGBB die Verkürzung #RGB werden kann. So kann beispielsweise aus #112233 schlicht #123 werden.

Weitere prägnante Farben zur Orientierung:
Weitere Farbcodes
010203
#00ffff (= #0ff) = 00 (R) + ff (G) + ff (B) = Cyan#ff00ff (= #f0f) = ff (R) + 00 (G) + ff (B) = Magenta#ffff00 (= #ff0) = ff (R) + ff (G) + 00 (B) = Gelb
Zugegebenermaßen war das nun wirklich nur eine sehr minimale Einführung mit einigen Vereinfachungen. Ich hoffe dennoch, dass manchem reinen "Farbcode-Kopierer" das System dadurch etwas klarer geworden ist.

Möglicherweise – das kann ich allerdings noch nicht versprechen – kann ich meinen ehem. Ausbilder einmal zu einem Gastbeitrag zum Thema Farbe und Licht bewegen, der als Elektrotechniker auf diesem Gebiet ein Experte ist und das auch sehr gut verständlich machen kann. Ein anderer Gastbeitrag ist auf jeden Fall bereits geplant. Smiley: smiling

Windows-Bibliotheken und NAS 👍 👎

Bei vielen Benutzern scheinen die Windows-Bibliotheken immer noch für mehr Verwirrung als Nutzen zu sorgen. Da ich diese jedoch sehr gerne verwende, möchte ich einen konkreten Anwendungsfall am Beispiel meines tatsächlichen lokalen Netzwerkes im Zusammenhang mit einem NAS erläutern.

Die Ausgangssituation stellt sich so dar, dass ich in meinem Heimnetzwerk sowohl mit einem stationären Rechner arbeite, als auch mit einem Netbook. Da ich meist für die gleiche Arbeit beide Geräte abwechselnd nutze, ergibt sich natürlich umgehend das Problem, die Daten synchron zu halten. Naheliegenderweise besitze ich deshalb zusätzlich ein NAS (für Interessierte: es handelt sich um eine Synology DiskStation*).

Ich habe dazu gemeinsame Ordner für öffentliche Bilder, Dokumente, Musik, Podcasts und Videos angelegt. Da es durchaus auch Dateien gibt, die nicht jeder sehen muss, besitzt jeder angelegte Benutzer auf dem NAS zusätzlich ein home-Verzeichnis. Auf die weiteren – durchaus interessanten – Möglichkeiten des NAS möchte ich nun aber gar nicht weiter eingehen, sondern den Komfort im Zusammenhang mit den Windows-Bibliotheken erläutern; genauer nehmen wir uns die "Bilder"-Bibliothek vor. Standardmäßig zeigt diese nach der Installation von Windows auf die Ordner "Eigene Bilder" (C:\Users\{BENUTZER}\Pictures) und "Öffentliche Bilder" (C:\Users\Public\Pictures).

Mein NAS habe ich nun so konfiguriert, dass die gemeinsamen Ordner als Freigabe zur Verfügung stehen. Für am System angemeldete Benutzer steht außerdem das bereits erwähnte Heimverzeichnis zur Verfügung. Die Bibliotheken habe ich so abgeändert (was ganz einfach über den Eigenschaften-Dialog möglich ist), dass die alten Verzeichnis-Zuordnungen entfallen sind und stattdessen die öffentlichen Freigaben und die entsprechenden Pfade innerhalb meines Heimverzeichnisses eingetragen wurden. Den privaten Ordner habe ich darüber hinaus als Standardspeicherort festgelegt.

Praktisch kann ich nun also genauso wie zuvor arbeiten (insbesondere verhält sich dies Programmen gegenüber weitestgehend transparent), mit dem Unterschied, dass ich nicht mehr auf lokale Daten zugreife, sondern auf das NAS. Durch die Festlegung des Standardspeicherortes auf meine persönliche Freigabe landen alle auf die Bibliothek gezogenen Dokumente (zumindest erst einmal) automatisch dort. Dennoch habe ich aber über die Bibliotheken auf alle Dateien über einen Ort im Windows Explorer Zugriff, wobei ich einzelne Dateien jederzeit beispielsweise von meinem privaten in den öffentlichen Ordner verschieben kann, ohne mir um den konkreten Speicherpfad Gedanken zu machen. Ebenfalls kann nun der Zugriff von allen Geräten auf die gleiche Weise erfolgen, womit im Normalfall (man kann natürlich alles provozieren) keine Inkonsistenzen entstehen können. Für Besitzer eines Windows Phone (wie mich) ist außerdem praktisch, dass Zune – genauso wie der Windows Media Player – standardmäßig ebenfalls auf diese Bibliotheken zugreift und dadurch alle Medien problemlos auch dafür und damit auch zur Synchronisierung mit dem Smartphone zur Verfügung stehen.

Wer ebenfalls per VPN Zugriff auf ein externes Netzwerk (beispielsweise des Unternehmens) hat, kann dessen Freigaben auch einer solchen Bibliothek hinzufügen und so auch darauf zentral zugreifen. Dies finde ich auf jeden Fall deutlich komfortabler über Bibliotheken als die Auswahl über div. Netzlaufwerke. Zugegebenermaßen muss man aber wohl sagen, dass dieser Vorteil erst in ähnlichen Umgebungen wie in meinem Anwendungsfall voll zur Geltung kommt. Sofern man lediglich mit einem Rechner und ohne Netzwerkspeicher arbeitet, d. h. wahrscheinlich sowieso alle Dateien in den eigenen Ordnern ablegt, wird man von den Windows-Bibliotheken tatsächlich nicht wesentlich profitieren. Sie stören meines Erachtens nach aber auch nicht, wenn einem das Konzept der Zusammenführung verschiedener Pfade unter einem virtuellen bewusst ist.

Wer sich für die technischen Details der Bibliotheken interessiert, findet deren Definition übrigens im Verzeichnis C:\Users\{BENUTZERNAME}\AppData\Roaming\Microsoft\Windows\Libraries; die *.library-ms-Dateien enthalten XML-Code.


*) Nein, ich erhalte für diesen Link kein Geld. Smiley: tongue_out

Darstellung von IP-Adressen (Ergänzung: Versionskennungen) 👍 👎

Zu meinem letzten Eintrag hat mich eine Mischung aus Frage und Idee erreicht, dieses Verfahren doch auch bei Versionskennungen (z. B. v1.2.3) anzuwenden, welche schließlich ähnlich aussehen, wie eine IP-Adresse.

Grundsätzlich ist das natürlich naheliegend und nicht völlig abwegig, funktioniert jedoch nur bedingt. Das Problem: Die Ziffern unserer Stellen müssten nach bisherigem Vorgehen endlich sein, damit wir die Basis korrekt wählen können, um das Ergebnis eindeutig zu halten. Im Dezimalsystem stehen uns als Ziffern 09 zur Verfügung. Bei IP-Adressen lauten die "Ziffern" 0255 (dezimal).

Bei einer Versionskennung muss im Allgemeinen beispielsweise auf v1.0.9 nicht zwangsläufig v1.1.0 folgen (da die einzelnen "Stellen" traditionell* als Hauptversion, Nebenversion und Fehlerbehebungsversion geführt werden). Das heißt, werden erneut lediglich einige Fehler behoben, wird eher v1.0.10 folgen usw. Bei anders aufgebauten Versionskennungen (variierende Stellenanzahl, "beta" etc.) wird es noch schwieriger.

Sollte jedoch, aus welchen Gründen auch immer, jede Stelle auf z. B. 09 begrenzt sein, so könnten wir natürlich analog zum "üblichen" Dezimalsystem verfahren und als Basis die 10 wählen (oder einfach die Punkte entfernen …), womit das Verfahren wieder funktioniert. Dies dürfte jedoch ein eher seltener und ungewöhnlicher Spezialfall sein, insofern sollte hier der Einfachheit wegen nach wie vor eher stellenweise verglichen werden.


*) Ich persönlich halte daran auch fest. Viele Projekte scheinen diesem Schema jedoch nicht mehr zu folgen. Teilweise gibt es zumindest zur Kommunikation nach Außen gar nur noch eine einzelne Versionsnummer (z. B. v19), was jedoch auf den ersten Blick weniger über den Inhalt der Version aussagt. Es ist sicherlich nicht ganz falsch, dass das den Endanwender auch nicht direkt interessieren muss – praktisch finde ich es trotzdem. Smiley: tongue_out

12

Projektverweise

Kategorien / Archiv  |  Übersicht RSS-Feed

Schlagworte

Suche