אבטחה ופרטיות
Spam Scanner קורא דואר, שהוא פרטי, משולחים, שעלולים להיות עוינים. הדף הזה מפרט מה הוא שולח לכל מקום שהוא, ואיך הוא מתייחס למה שהוא קורא.
מה יוצא מהמחשב#
כברירת מחדל, דבר אחד: שמות המארחים של קישורים בהודעה נבדקים מול שרתי ה-DNS המסננים של Cloudflare, 1.1.1.2 ו-1.0.0.2 (נוזקות ופישינג) ו-1.1.1.3 ו-1.0.0.3 (גם תוכן למבוגרים). אלה שאילתות DNS רגילות לשמות כמו example.com; שום חלק מההודעה או מהכתובות שלה לא נשלח. אפשר לכבות אותן עם phishing: {cloudflare: false} או --no-cloudflare, או רק את בדיקת התוכן למבוגרים עם phishing: {adult: false}.
כל השאר כבוי עד שמגדירים אותו:
| בדיקה | שולחת | אל |
|---|---|---|
authentication | שאילתות DNS לרשומות SPF, DKIM, DMARC ו-ARC של השולח | שרת ה-DNS שלכם, או dnsServers |
dnsbl | כתובת ה-IP של הלקוח, בסדר הפוך, ודומיינים מקישורים, כשאילתות DNS | שרתי השמות של הרשימות השחורות, דרך שרת ה-DNS שלכם או dns.servers |
llm | תקציר של ההודעה, כשמידע אישי מוסר עבור ספקים מרוחקים | שרת מודל השפה שציינתם (פרטיות) |
reputation.apiUrl | כתובת ה-IP, הדומיין והכתובת של השולח | השירות שציינתם |
clamav | קבצים מצורפים | ה-clamd שלכם, דרך ה-socket שלו |
אין טלמטריה, אין בדיקת עדכונים ואין הורדות בזמן ריצה. המודל מגיע בתוך החבילה.
מה הוא שומר#
כלום, אלא אם מבקשים. סריקות לא נרשמות ביומן ולא נשמרות. learn() משנה את המסווג בזיכרון; הוא נכתב לדיסק רק על ידי saveModel(), spamscanner learn, או האפשרות --out של השרתים. קובץ מודל מכיל ספירות מאפיינים מגובבות, לא מילים ולא טקסט של הודעות.
תשובות של מודל השפה נשמרות במטמון בזיכרון, לפי גיבוב של מה שנשלח, כך שעל עותקים חוזרים של אותה הודעה שואלים פעם אחת. תשובות DNS נשמרות במטמון בזיכרון לעשר דקות.
קלט עוין#
- קבצים מצורפים מזוהים לפי הבתים שלהם, ולעולם לא מורצים או נפתחים בתוכנה אחרת. ארכיוני ZIP נקראים מהספרייה המרכזית שלהם, עם הגבלה על מספר הרשומות; ארכיונים מקוננים לא נפרסים.
- טקסט גוף ההודעה נקרא עד
maxLength(100,000 תווים), והשרתים מקבלים הודעות עד 25 MB. - לכל בדיקת רשת יש מגבלת זמן (
timeout, 10 שניות כברירת מחדל). בדיקה שנכשלת או שחורגת מהזמן מדולגת, והסריקה מסתיימת בלעדיה. - כותרות
X-Spam-*שכבר נמצאות בהודעה מוסרות על ידי ה-milter, מסנן התוכן ו---headers, כך ששולחים לא יכולים לסמן את הדואר שלהם כנקי. - כותרות פסק הדין לספאם של Microsoft נחשבות אמינות רק כשההודעה הגיעה ישירות מהשרתים של Microsoft, וכותרות Received לעולם לא משמשות כדי להחליט מאיפה הודעה הגיעה.
- טקסט שמופנה למסנני AI מקבל ניקוד של ספאם, ומודל השפה מקבל הנחיה שההודעה היא נתונים, לא הוראות. הזרקת הנחיות
שרתים#
שרתי ה-milter, HTTP, TCP ו-spamd מאזינים על 127.0.0.1, אלא אם --host קובע אחרת. ה-HTTP API משווה את האסימון שלו בזמן קבוע ודוחה /learn בלי אסימון. אף אחד מהם לא תומך ב-TLS: כדי להגיע אליהם דרך רשת, יש להשתמש ברשת פרטית, במנהרת SSH או ב-reverse proxy עם TLS.
יש להריץ אותם כמשתמש ללא הרשאות מיוחדות. יחידת ה-systemd במדריך Postfix מוסיפה את ההקשחה המקובלת.
דיווח על חולשה#
יש לדווח על בעיות אבטחה באופן פרטי דרך מנגנון דיווח החולשות של GitHub, ולא בפניות (issues) ציבוריות.