Files
website/content/posts/google-groups-spam.md
T
demian cc7ba433d4
Build & Deploy / deploy (push) Successful in 32s
Translate all posts to German with personal blog style
2026-06-06 19:25:28 +02:00

4.8 KiB
Raw Blame History

+++ date = '2025-10-10T09:26:56+02:00' draft = false title = 'Google Groups Spam Wenn Google zum Spam-Schleuder wird'

[cover] image = "/imgs/google-spam.jpg" alt = "Google in bunten Farben auf dunklem Hintergrund" caption = "" +++

Dieses Google Groups Problem nervt

Im letzten Jahr hab ich nen deutlichen Anstieg von Spam bemerkt, der über Google Groups reingekommen ist. Das Ding ist: Google Groups ist von Haus aus so designed, dass Spammer es leicht haben. Die ballern ihre Scheiße über legitime Google-Mail-Server und das macht's verdammt schwer, das Zeug zu filtern.

Warum passiert das?

Google Groups hat ein paar grundlegende Design-Probleme, die es für Spammer besonders attraktiv machen:

  • Kein Opt-in nötig: Spammer können einfach jede E-Mail-Adresse zu ner Google Group hinzufügen. Ohne Rückfrage. Ohne Bestätigung.
  • Austreten? Fehlanzeige: Viele Spam-Gruppen sind privat. Als Opfer kannst du nicht mal auf die Gruppenseite, um dich auszutragen. Du bist drin, ob du willst oder nicht.
  • Auto-Responder machen's schlimmer: Manche Gruppen haben automatisierte Mail-Systeme drin (Ticket-Systeme, Abwesenheitsnotizen). Wenn die auf die ursprüngliche Spam-Mail antworten, geht die Antwort wieder an alle Gruppenmitglieder. Spam-Superspreader quasi.

Das Problem und mein Ansatz

Beim Analysieren der Mails ist mir aufgefallen: Einige legitime Organisationen nutzen Google Groups auch für Newsletter oder Ankündigungen. Also einfach den kompletten Google-Groups-Traffic blockieren? Keine gute Idee zu viele False Positives.

Also hab ich mir was überlegt: Eine Lösung, die direkt in Rspamd, unserem Spam-Filter, eingreift:

  • Custom Lua Plugin: Erkennt Nachrichten aus Google Groups und vergibt ein eigenes Symbol.
  • Composite Rules: Kombiniert dieses Symbol mit anderen Spam-Indikatoren, um zu entscheiden, ob die Mail wirklich Spam ist.

So zielen wir gezielt auf die missbräuchlichen Muster ab, ohne legitime Google-Groups-Nutzung zu bestrafen.

Ran an die Tasten

Ich hab ein kleines Lua-Plugin für Rspamd gebaut, das Nachrichten aus Google Groups erkennt und mit einem Symbol taggt. Mit Composite Rules wird dann entschieden, ob die Mail als Spam durchgeht oder nicht.

Schritt 1: Das Lua-Plugin bauen

Ab nach /etc/rspamd/plugins.d/kits_header_google_group.lua:

rspamd_config:register_symbol{
    name = "KITS_HEADER_GOOGLE_GROUP",
    score = 0.1,
    group = "headers",
    description = "Message contains X-Google-Group-Id header or List-Unsubscribe header with googlegroups",
    callback = function(task)
      -- Check for X-Google-Group-Id header
      if task:get_header('X-Google-Group-Id') then
        return true
      end
      
      -- Check for List-Unsubscribe header containing 'googlegroups'
      local list_unsubscribe = task:get_header('List-Unsubscribe')
      if list_unsubscribe and string.find(list_unsubscribe:lower(), 'googlegroups') then
        return true
      end
      
      return false
    end
}

Das Plugin sucht nach:

  • X-Google-Group-Id Header
  • List-Unsubscribe Header mit googlegroups drin

Wenn einer der beiden gefunden wird, gibt's das Symbol KITS_HEADER_GOOGLE_GROUP.

Schritt 2: Plugin aktivieren

Dann noch ein leeres Config-File anlegen unter /etc/rspamd/modules.d/kits_header_google_group.conf:

# Leere Config, um das Lua-Plugin zu aktivieren
kits_header_google_group { }

Ab jetzt wird jede Mail aus Google Groups mit KITS_HEADER_GOOGLE_GROUP getaggt und bekommt 'nen Score von 0,1.

Schritt 3: Composite Rules bauen

Jetzt die Composite Rules definieren. Ab damit nach /etc/rspamd/override.d/composite.conf:

# Google Group Ursprung mit Bulk oder Freemail
KITS_GOOGLE_GROUP_BAD {
  expression = "KITS_HEADER_GOOGLE_GROUP and (DCC_REJECT | FUZZY_BULK | FREEMAIL_FROM)";
  score = 8.0;
}

# Google Group Ursprung mit Bulk und Freemail
KITS_GOOGLE_GROUP_WORST {
  expression = "KITS_HEADER_GOOGLE_GROUP and (DCC_REJECT | FUZZY_BULK ) and FREEMAIL_FROM";
  score = 20.0;
}

Die Regeln geben höhere Scores für Mails, die aus Google Groups kommen und bekannte Spam-Indikatoren haben wie DCC_REJECT, FUZZY_BULK oder FREEMAIL_FROM.

Die Namen, Scores und Logik sind auf meine Umgebung zugeschnitten. Passt die Werte immer an euer Setup an und testet vorher!

Fazit

Nachdem das Ding live war, ist der Spam aus Google Groups deutlich zurückgegangen. Legitime Mails von Unternehmen kamen weiterhin durch, der unerwünschte Group-Spam wurde aber effektiv von Rspamd markiert oder weggesperrt.

Wenn du nen Mail-Server betreibst, weißt du: Spam bekämpfen ist ein ewiger Kampf. Aber mit Rspamd hat man zum Glück richtig gute Werkzeuge an der Hand.

Spammer werden immer neue Wege finden, ihren Müll zu verteilen das ist Katz und Maus. Aber Rspamd ist und bleibt ne verdammt gute Maus.