Zabezpečení a soukromí

Spam Scanner čte poštu, která je soukromá, od odesílatelů, kteří mohou být nepřátelští. Tato stránka uvádí, co kam posílá a jak zachází s tím, co čte.

Co opouští počítač#

Ve výchozím stavu jediná věc: názvy hostitelů z odkazů ve zprávě se vyhledávají na filtrovacích resolverech Cloudflare, 1.1.1.2 a 1.0.0.2 (malware a phishing) a 1.1.1.3 a 1.0.0.3 (navíc obsah pro dospělé). Jde o běžné dotazy DNS na jména jako example.com; neposílá se žádná část zprávy ani jejích adres. Vypnete je pomocí phishing: {cloudflare: false} nebo --no-cloudflare, samotnou kontrolu obsahu pro dospělé pomocí phishing: {adult: false}.

Vše ostatní je vypnuté, dokud to nenastavíte:

KontrolaPosíláKomu
authenticationDotazy DNS na záznamy SPF, DKIM, DMARC a ARC odesílateleVašemu resolveru nebo dnsServers
dnsblIP adresu klienta v obráceném pořadí a domény z odkazů jako dotazy DNSJmenným serverům blocklistů přes váš resolver nebo dns.servers
llmSouhrn zprávy, u vzdálených poskytovatelů bez osobních údajůServeru jazykového modelu, který určíte (soukromí)
reputation.apiUrlIP adresu, doménu a adresu odesílateleSlužbě, kterou určíte
clamavPřílohyVašemu clamd přes jeho socket

Žádná telemetrie, žádná kontrola aktualizací a žádné stahování za běhu. Model se dodává uvnitř balíčku.

Co uchovává#

Nic, pokud o to nepožádáte. Kontroly se nezaznamenávají ani neukládají. learn() mění klasifikátor v paměti; na disk se zapíše jen pomocí saveModel(), spamscanner learn nebo volby serverů --out. Soubor modelu obsahuje zahešované počty příznaků, ne slova ani text zpráv.

Odpovědi jazykového modelu se ukládají do mezipaměti v paměti pod hešem toho, co bylo odesláno, takže na opakované kopie stejné zprávy se model ptá jen jednou. Odpovědi DNS se v paměti uchovávají deset minut.

Nepřátelský vstup#

  • Přílohy se rozpoznávají podle bajtů, nikdy se nespouštějí ani neotevírají jiným programem. Archivy ZIP se čtou z centrálního adresáře s omezením počtu položek; vnořené archivy se nerozbalují.
  • Text těla se čte do maxLength (100 000 znaků) a servery přijímají zprávy do 25 MB.
  • Každá síťová kontrola má časový limit (timeout, ve výchozím stavu 10 sekund). Kontrola, která selže nebo vyprší, se přeskočí a kontrola zprávy skončí bez ní.
  • Hlavičky X-Spam-*, které už zpráva obsahuje, odstraňuje milterMail filter: protokol ze Sendmailu, který používá i Postfix a který samostatnému programu umožňuje prohlédnout každou zprávu během relace SMTP., obsahový filtr i --headers, takže odesílatelé nemohou svou vlastní poštu označit jako čistou.
  • Hlavičkám s verdiktem spamu od Microsoftu se věří, jen když zpráva přišla přímo ze serverů Microsoftu, a hlavičky Received se nikdy nepoužívají k určení, odkud zpráva přišla.
  • Text, který se obrací na filtry s AI, se boduje jako spam a jazykový model dostane informaci, že zpráva jsou data, ne pokyny. Prompt injection

Servery#

Servery milter, HTTP, TCP a spamdDémon SpamAssassinu. Jeho protokolem mluví spamc, Exim, Haraka a další klienti SpamAssassinu. naslouchají na 127.0.0.1, pokud --host neurčí jinak. HTTP API porovnává svůj token v konstantním čase a bez něj odmítá /learn. Žádný z nich nemluví TLS: chcete-li se k nim dostat přes síť, použijte privátní síť, tunel SSH nebo reverzní proxy s TLS.

Spouštějte je pod neprivilegovaným uživatelem. Jednotka systemd v návodu pro Postfix přidává obvyklé zabezpečení.

Hlášení zranitelnosti#

Bezpečnostní problémy hlaste soukromě přes hlášení zranitelností na GitHubu, ne ve veřejných issues.

Upravit tuto stránku na GitHubu · Markdown ·