אבטחה ופרטיות

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) ציבוריות.

עריכת הדף ב-GitHub · Markdown ·