פישינג: איך נוכלים מצליחים להעביר את ההודעות שלהם
שירותי הדואר האלקטרוני מסננים מדי יום מיליארדי הודעות לא רצויות. ובכל זאת, הודעות הונאה עדיין מגיעות לתיבות הדואר הנכנס שלנו. זה לא מקרי: הנוכלים מכירים את הבדיקות ולמדו לעקוף אותן. הנה השיטות העיקריות שלהם, בהסבר פשוט, והעקבות שכל אחת מהן משאירה למרות הכול.
להתחזות למישהו אחר
השיטה הראשונה אינה טכנית כלל: היא פשוט חיקוי. ההודעה מעתיקה את הלוגו, הצבעים והסגנון של בנק, חברת משלוחים או גוף ממשלתי. כמה פרטים נועדו להטעות מבט חטוף:
- השם המוצג: תוכנת הדואר מציגה לעיתים קרובות «שירות לקוחות הבנק שלי» באותיות גדולות, ואת הכתובת האמיתית באותיות קטנות, או בכלל לא.
- כתובות דומות: אות אחת שהוחלפה (
paypa1במקוםpaypal), «rn» שמחקה «m», או שם המותג בתחילת כתובת ששייכת למישהו אחר, כמוmybank.account-check.example. - דחיפות: חשבון חסום, חבילה מעוכבת, קנס שיש לשלם תוך 48 שעות. הלחץ נועד לגרום לך לפעול לפני שתחשוב.
העקבות: חיקוי מטעה את העין, לא את השרתים. הכתובת האמיתית והשרת השולח נשארים גלויים בכותרת המלאה של ההודעה.
זיוף השולח: פשוט כמו לכתוב על מעטפה
אנשים רבים חושבים שכתובת השולח נבדקת. זה לא נכון. השדה «מאת:» בהודעת דוא״ל דומה לכתובת השולח בגב המעטפה: כל אחד יכול לכתוב בו מה שהוא רוצה. כמה שורות קוד בשרת אינטרנט מספיקות כדי לשלוח הודעה שנראית כאילו הגיעה מהבנק שלך, מהמעסיק שלך… או ממך עצמך. זה בדיוק הטריק של הודעות הסחיטה שטוענות שפרצו לתיבת הדואר שלך, כולל «הוכחה»: ההודעה נראית כאילו נשלחה מהכתובת שלך.
כדי להגביל את הניצול הזה קיימים שלושה מנגנונים:
- SPF: רשימת השרתים המורשים לשלוח דואר בשם דומיין מסוים;
- DKIM: חתימה, כמו חותם שעווה, שמוכיחה שההודעה אכן הגיעה מהדומיין ולא שונתה;
- DMARC: ההנחיה שהדומיין נותן לנמענים כששתי הבדיקות הקודמות נכשלות: לא לעשות דבר, להעביר לדואר זבל, או לדחות.
ההגנות האלה יעילות… כשהן מוגדרות ונאכפות. אבל דומיינים רבים מפרסמים מדיניות DMARC שאומרת פשוט «לא לעשות דבר», וחלק משרתי הקבלה מתעלמים ממנה. ובעיקר, נוכל יכול לקנות דומיין דומה משלו ולהגדיר אותו כראוי: ההודעות שלו עוברות אז את SPF, DKIM ו־DMARC בלי שום שגיאה. הבדיקות האלה מוכיחות שהודעה אכן הגיעה מדומיין מסוים, לא שהדומיין הזה הגון.
העקבות: כל שרת שמעביר את ההודעה מוסיף שורת Received בראש הכותרת. הנוכל יכול להמציא שורות מזויפות בתחתית, אבל אינו יכול למנוע מהשרתים הבאים להוסיף את שלהם. השורה ששירות הדואר שלך מוסיף מתעדת במדויק את כתובת ה־IP שמסרה לו את ההודעה: אותה מחפש Baitback.
לשכור שרת בכמה שקלים
כדי לשלוח אלפי הודעות צריך מחשב שמחובר לאינטרנט. אין דבר פשוט מזה: כל אחד יכול לשכור שרת וירטואלי («VPS») בכמה עשרות שקלים לחודש, לעיתים קרובות בתשלום יומי, ולפעמים בכרטיס אשראי גנוב. הנוכל משתמש בו למסע הודעות אחד, כמה שעות או כמה ימים. ברגע שכתובת ה־IP של השרת מופיעה ברשימות שחורות, הוא נוטש אותו ושוכר אחר, אצל אותה חברת אחסון או במקום אחר בעולם.
לכן חסימת כתובת IP בתיבת הדואר שלך לא מספיקה: המסע הבא ייצא מכתובת אחרת.
העקבות: כל שרת שכור שייך לספק אחסון שאפשר לזהות, ותנאי השימוש שלו אוסרים שליחת דואר זבל. כשמודיעים לו דרך כתובת הדיווח שלו (איש הקשר «abuse»), הוא יכול לכבות את השרת. זו הפעולה היעילה ביותר לעצירת מסע שנמצא בעיצומו.
להשתמש בשרת של מישהו אחר
דיסקרטי עוד יותר: לשלוח ממחשב שאינו שייך לנוכל. שני מצבים נפוצים:
- אתר אינטרנט פרוץ: באתר שלא מתעדכן (WordPress ישן, תוסף שנשכח) מותקן סקריפט שליחה קטן בלי ידיעת הבעלים.
- חשבון דוא״ל גנוב: בעזרת סיסמה שהושגה בפישינג קודם, הנוכל שולח את הודעותיו מתיבת דואר אמיתית אצל ספק אמיתי, לפעמים של חברה או של אוניברסיטה.
במקרה כזה, ההודעה יוצאת משרת הגון בעל מוניטין טוב. SPF ו־DKIM תקינים לעיתים קרובות. למסננים קשה הרבה יותר להבחין בינה לבין הודעה לגיטימית.
העקבות: כתובת ה־IP והשרת השולח נשארים גלויים בכותרת. דיווח לספק האחסון או לספק הדואר עוזר גם לבעלים החוקיים, שלעיתים קרובות אינם יודעים שהאתר או החשבון שלהם מנוצל.
לא כל השרתים מחמירים באותה מידה
הספקים הגדולים, כמו Gmail, מפעילים כללים נוקשים: מגבלות שליחה, אימותים, חסימה מהירה של חשבונות מנצלים. שרתים אחרים, כמו ספקי אחסון קטנים או מחשבים שהוגדרו רע, מקילים הרבה יותר. גם בצד הקבלה המצב דומה: חלק משירותי הדואר דוחים כל דבר מפוקפק, ואחרים מעבירים הרבה.
הנוכלים לא צריכים לנצח את השרתים המחמירים ביותר: מספיק שימצאו את החוליה החלשה. עם מיליוני שרתים בעולם, תמיד יש אחד כזה איפשהו.
קישורים שמסתתרים מרובוטים
כשמגיעה הודעה, שירותי דואר רבים נכנסים אוטומטית לקישורים שבה כדי לבדוק שהם לא מובילים לדף מסוכן. הנוכלים יודעים זאת ומציבים שומר בכניסה:
- הקישור בהודעה מוביל קודם לדף שנראה תמים, או לשירות הפניה;
- הדף הזה מציג בדיקת «האם אתה אנושי?», כמו תיבות הסימון שרואים באתרים רבים, או בוחן את המבקר בשקט;
- רובוט ניתוח לא עובר את הבדיקה: הוא רואה רק דף ריק או תמים, ומסיק שהקישור בטוח;
- אדם, לעומת זאת, עובר את הבדיקה בלי לחשוב… ומגיע לדף ההתחברות המזויף.
יש גם קישורים שמופעלים מאוחר יותר: נקיים לגמרי ברגע שההודעה נמסרת ונבדקת, והם מתחילים להפנות לדף המלכודת רק כמה שעות אחר כך.
העקבות: הקישור המקורי נשאר בהודעה. Baitback עוקב אחריו ומציג את ההפניות, ואפשר לדווח על כתובת המוצא גם כשדף היעד מסתתר.
למה זה נמשך: לדווח מסובך מדי
לכל השיטות האלה יש נקודת תורפה: הן נשענות על שרתים, כתובות IP ושמות דומיין ששייכים לספקי אחסון שאפשר לזהות. דיווח שמגיע לכתובת הנכונה יכול להביא לכיבוי שרת תוך שעות.
הבעיה היא המאמץ הנדרש. לפלטפורמות הרשמיות יש תפקיד חשוב, במיוחד לצורך הליכים משפטיים. אבל למשל ב־PHAROS, פלטפורמת הדיווח הרשמית בצרפת, לפעמים צריך לעבור יותר מעשרה דפים לפני שמוצאים את הקטגוריה הנכונה. וכדי שהשרת השולח ייכבה, עדיין צריך למצוא את ספק האחסון ואת כתובת הדיווח שלו, ואז לנסח הודעה ברורה עם הראיות המתאימות. מעטים מגיעים עד הסוף, והנוכלים מנצלים את זה.
בגלל זה קיים Baitback: מדביקים את ההודעה, והכלי מאתר את השרת השולח, את ספק האחסון שלו ואת כתובת הדיווח, ואז מכין הודעות מוכנות לשליחה. שלב אחד במקום מסלול מכשולים.
- שם השולח והכתובת המוצגים לא מוכיחים דבר: השולח עצמו כותב אותם.
- הודעה שעוברת את SPF, DKIM ו־DMARC אכן הגיעה מהדומיין המצוין, אבל הדומיין הזה עשוי להיות שייך לנוכל.
- קישור שנראה נקי ברגע המסירה עדיין יכול להוביל לדף מלכודת.
- המקור האמיתי של הודעה נמצא בכותרת המלאה שלה, בשורות
Received. - דיווח לספק האחסון של השרת השולח הוא הדרך המהירה ביותר לעצור מסע הודעות.