Sikkerhed og privatliv

Spam Scanner læser post, som er privat, fra afsendere, som kan være fjendtlige. Denne side viser, hvad den sender nogen steder hen, og hvordan den behandler det, den læser.

Hvad der forlader maskinen#

Som standard én ting: værtsnavnene i links i en besked slås op på Cloudflares filtrerende resolvere, 1.1.1.2 og 1.0.0.2 (malware og phishing) samt 1.1.1.3 og 1.0.0.3 (også voksenindhold). Det er almindelige DNS-forespørgsler efter navne som example.com; ingen del af beskeden eller dens adresser sendes. Slå dem fra med phishing: {cloudflare: false} eller --no-cloudflare, eller slå kun tjekket for voksenindhold fra med phishing: {adult: false}.

Alt andet er slået fra, indtil det konfigureres:

TjekSenderTil
authenticationDNS-forespørgsler efter afsenderens SPF-, DKIM-, DMARC- og ARC-posterDin resolver eller dnsServers
dnsblKlientens IP-adresse, vendt om, og domæner i links, som DNS-forespørgslerBlokeringslisternes navneservere via din resolver eller dns.servers
llmEt resumé af beskeden, med personoplysninger fjernet for eksterne udbydereDen server til sprogmodellen, du angiver (privatliv)
reputation.apiUrlAfsenderens IP-adresse, domæne og adresseDen tjeneste, du angiver
clamavVedhæftede filerDin clamd via dens socket

Der er ingen telemetri, intet opdateringstjek og ingen download under kørsel. Modellen leveres i pakken.

Hvad den gemmer#

Intet, medmindre den bliver bedt om det. Scanninger logges eller gemmes ikke. learn() ændrer klassifikatoren i hukommelsen; den skrives kun til disk af saveModel(), spamscanner learn eller servernes indstilling --out. En modelfil indeholder hashede optællinger af features, ikke ord eller beskedtekst.

Svar fra sprogmodeller caches i hukommelsen med en hash af det, der blev sendt, som nøgle, så gentagne kopier af den samme besked kun spørges om én gang. DNS-svar caches i hukommelsen i ti minutter.

Fjendtligt input#

  • Vedhæftede filer identificeres ud fra deres bytes og bliver aldrig kørt eller åbnet af et andet program. ZIP-arkiver læses fra deres centrale katalog med en grænse for antallet af poster; indlejrede arkiver pakkes ikke ud.
  • Brødtekst læses op til maxLength (100.000 tegn), og serverne accepterer beskeder op til 25 MB.
  • Hvert netværkstjek har en tidsgrænse (timeout, 10 sekunder som standard). Et tjek, der fejler eller overskrider tidsgrænsen, springes over, og scanningen gøres færdig uden det.
  • X-Spam-*-headere, der allerede står i en besked, fjernes af milteren, indholdsfilteret og --headers, så afsendere ikke kan markere deres egen post som ren.
  • Microsofts headere med spamdomme stoles kun på, når beskeden kom direkte fra Microsofts servere, og Received-headere bruges aldrig til at afgøre, hvor en besked kom fra.
  • Tekst, der henvender sig til AI-filtre, scores som spam, og sprogmodellen får at vide, at beskeden er data og ikke instruktioner. Prompt injection

Servere#

Milter-, HTTP-, TCP- og spamd-serverne lytter på 127.0.0.1, medmindre --host siger noget andet. HTTP API'et sammenligner sit token i konstant tid og afviser /learn uden et. Ingen af dem taler TLS: for at nå dem over et netværk skal du bruge et privat netværk, en SSH-tunnel eller en reverse proxy med TLS.

Kør dem som en bruger uden privilegier. systemd-unitten i vejledningen til Postfix tilføjer den sædvanlige hærdning.

Rapportering af en sårbarhed#

Rapportér sikkerhedsproblemer privat via GitHubs rapportering af sårbarheder, ikke i offentlige issues.

Redigér denne side på GitHub · Markdown ·