Parole guardate a

Ho visto almeno due siti colpiti da un’ondata di spam che sembra progettata per avvelenare gli LLM. Lo stesso attacco è stato segnalato qui almeno una volta (Anyone else currently undergoing mass spam attack?). La soluzione migliore è configurare Discourse AI - Spam detection, che consiglio vivamente, ma è un po’ complicato. Ecco una soluzione temporanea che puoi implementare e che richiederà solo pochi minuti.

Si presume che tu disponga di un sistema operativo simile a Unix (ad esempio, Linux o Mac). Se usi Windows e puoi copiare/incollare in un terminale, puoi connetterti via SSH al tuo server Discourse e incollare questo codice.

Ciò che fa è creare un set di parole monitorate generato da un recente attacco che ho visto. Se hai dimestichezza con nano o simili, puoi modificarlo prima di eseguirlo. In caso contrario, puoi eseguire questo script e poi eliminare le parole che non ti piacciono con un clic per parola.

Le parole bloccate possono essere molto fastidiose poiché impediranno agli utenti legittimi di creare post con quelle parole, quindi dai un’occhiata per assicurarti che nessuna di queste parole sia probabile che appaia in post legittimi sul tuo forum!

Inserisci l’URL del tuo sito, la chiave API e l’utente API nelle caselle sottostanti (saranno solo nel tuo browser, ma puoi semplicemente incollarlo così com’è e modificare il file se preferisci) e poi copia/incolla il blocco di codice in un terminale. Verrà creato upload_watched_words_full.sh e reso eseguibile. Puoi quindi eseguirlo con ./upload_watched_words_full.sh.

cat <<'EOF' > upload_watched_words_full.sh
#!/usr/bin/env bash
# Usage: ./upload_watched_words_full.sh

DISCOURSE_URL="=URL="
API_KEY="=API_KEY="
API_USERNAME="=API_USERNAME="

# Parole bloccate ad alta confidenza
BLOCK_WORDS=(
  "servizio clienti numero"
  "numero di contatto"
  "numero di supporto"
  "numero di telefono per rimborso"
  "numero verde"
  "supporto 24/7"
  "linea di assistenza"
  "chiamaci"
  "rappresentante dal vivo"
  "supporto tecnico"
  "lufthansa"
  "royal caribbean"
  "coinbase"
  "robinhood"
  "numero di prenotazione"
  "numero di prenotazione"
  "cancellazione volo"
  "commissione cambio nome"
  "║"
  "⇆"
  "★"
  "®️"
  "™️"
)

# Parole segnalate a rischio medio
FLAG_WORDS=(
  "servizio clienti"
  "supporto clienti"
  "team di supporto"
  "help desk"
  "hotline"
  "agente"
  "rappresentante"
  "contattaci"
  "supporto telefonico"
  "centro assistenza"
)

# Parole che richiedono approvazione
REQUIRE_APPROVAL_WORDS=(
  "urgente"
  "azione immediata"
  "agisci ora"
  "tempo limitato"
  "offerta esclusiva"
  "approva questo"
  "verifica account"
)

# Funzione per inviare parole in batch
add_words () {
  local ACTION="$1"
  shift
  local WORDS=("$@")

  # Costruisci i parametri words[]
  local DATA=""
  for w in "${WORDS[@]}"; do
    DATA+="words%5B%5D=$(printf '%s' "$w" | jq -s -R -r @uri)&#"
  done
  DATA+="replacement=&action_key=${ACTION}&case_sensitive=false&html=false"

  echo "Caricamento parole ${ACTION}..."
  curl -s -X POST "${DISCOURSE_URL}/admin/customize/watched_words.json" \
    -H "Api-Key: ${API_KEY}" \
    -H "Api-Username: ${API_USERNAME}" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    --data "$DATA"
  echo -e "\nFatto."
}

# Carica parole bloccate
add_words "block" "${BLOCK_WORDS[@]}"

# Carica parole segnalate
add_words "flag" "${FLAG_WORDS[@]}"

# Carica parole che richiedono approvazione
add_words "require_approval" "${REQUIRE_APPROVAL_WORDS[@]}"
EOF

# Rendi lo script eseguibile
chmod +x upload_watched_words_full.sh

echo "Script 'upload_watched_words_full.sh' creato e reso eseguibile."

8 Mi Piace

Ma Watched word Approval doesn't work if a user edits the reply ?

Beh, non ci ho prestato attenzione. La mia ingenua speranza è che gli spammer non sappiano farlo. :person_shrugging:

1 Mi Piace

I bot che avevamo qualche anno fa pubblicavano sciocchezze come dhfhstyhjfhhr come titolo dell’argomento per generare thread e superare il filtro delle parole chiave, poi lo modificavano nel vero messaggio di spam “migliori casinò online”. :expressionless_face:

2 Mi Piace

È bizzarro che la modifica del post aggiri le parole monitorate.

Forse questa serie di spammer non penserà di farlo. O forse questo non aiuterà affatto. :person_shrugging:

1 Mi Piace

Grazie Jay, ottimo script, grazie per averlo creato. Qualcuno che l’ha usato ha riscontrato che ha funzionato - in termini di soluzione alternativa per “modificare i post”? I bot stanno modificando i post o stanno solo inviando il testo direttamente?

Non lo so, ma se questo è il problema, potresti modificare le impostazioni in modo che alcuni utenti non possano modificare i post (Gruppi autorizzati alla modifica dei post), magari richiedendo TL2 e regolando le impostazioni per rendere più facile/difficile raggiungere tl2.

Per gli utenti normali, specialmente quelli nuovi, non essere in grado di modificare un post probabilmente non è un grosso problema, e potrebbe anche non essere qualcosa che si aspettano.

1 Mi Piace

Ottimo punto. Cambierò in modo che tl_0 non possa modificare i post.

Revisione di uno dei post recenti:

Sembra che inizialmente fosse solo spazzatura e poi sia stato modificato in spam, questo avrebbe aggirato le Parole Monitorate per quanto ne capisco.

Dato che le modifiche ai post da innocuo gergo a spam stanno diventando parte del modus operandi dei bot nei loro sforzi per contrastare i filtri antispam, il team di Discourse pensa che tl_0 non dovrebbe essere in grado di modificare i post per impostazione predefinita?

4 Mi Piace

Wow. Sono sorpreso che l’impostazione predefinita includa TL0.

È bene sapere con certezza che questi spammer utilizzano questo trucco.

Penso che il modulo AI Spam lo avrebbe intercettato.

2 Mi Piace

Oh, certo che lo avrebbe fatto. Tuttavia, sebbene non sia super costoso, è un po’ complicato dover configurare l’IA su ogni Discourse per respingere lo spam. Molti dei miei forum non ne avrebbero bisogno (o non lo vorrebbero) per nessuna delle altre funzionalità AI di Discourse, che sono piuttosto utili.

1 Mi Piace

La soluzione qui non è impedire a tl0 o a qualsiasi altro gruppo di modificare i post.

La soluzione è fare in modo che la modifica di un post non aggiri alcuna protezione del sito. Un post modificato potrebbe (come abbiamo visto) contenere spam, odio o altri comportamenti indesiderati. Se i post modificati aggirano le parole monitorate e altri filtri, questo diventerà sicuramente un approccio standard non solo per i bot ma anche per gli esseri umani che vogliono aggirare le protezioni del sito.

3 Mi Piace

Concordo. Sembra bizzarro che non funzioni in quel modo. E se ho capito bene, è rotto da molto tempo.

Oh, è il “comportamento previsto”:

Scommetto che è così che è successo, forse.

Sembra che le parole monitorate potrebbero semplicemente essere applicate prima del salvataggio, ma non ho guardato il codice.

2 Mi Piace

C’è una questione su cosa significhi per alcuni tipi di parole monitorate applicarsi a una modifica. Ma è anche chiaro che questa limitazione riduce notevolmente il valore delle parole monitorate.

Mi aspetterei che fosse utile proporre una specifica su cosa dovrebbe accadere esattamente per ogni tipo in caso di modifica; renderebbe la richiesta di funzionalità più attuabile. Non ho fatto quel lavoro, anche se ho dedicato del tempo occasionale a pensare a casi specifici.

3 Mi Piace