הסקריפט שנטען בעמוד של חנות אונליין שואל קודם שאלה אחת: מי אתה. אם מי שהגיע הוא דפדפן אוטומטי של מערכת סריקה, השרת מחזיר כלום. אם זה אדם שבא לקנות, הוא מחזיר משהו אחר. חברת האבטחה ההולנדית Sansec, שמתמחה באבטחת חנויות אונליין, מספרת שהקוד הזה יושב כרגע ב-953 חנויות, רובן המוחלט על Magento.

מה קרה

הקמפיין פעיל מיולי 2025, ולפי הדוח שסאנסק פרסמה ב-24 באוקטובר הוא מחליף כתובת אינטרנט כל כמה חודשים. הכתובת הנוכחית נרשמה ב-6 באוקטובר, ולמחרת בערב כבר נטענה מחנויות אמיתיות. סאנסק מצאה אותה ב-83 חנויות, ו-60 מהן היו נגועות גם בגרסאות קודמות של אותו קוד. הקוד עצמו לא מסתתר בקבצים של האתר אלא בטבלה במסד הנתונים שמחזיקה את בלוקי התוכן הקבועים, אותם חלקים שהחנות שותלת בכל עמוד (כותרת, פוטר, באנר מבצע). לכן, כפי שסאנסק מדגישה, מחיקת הסקריפט לא פותרת כלום: מי שהצליח לכתוב לשם פעם אחת יכול לכתוב שוב.

שתי גרסאות של הקוד הופיעו בחודש הזה. הראשונה שומרת את המטען שקיבלה בזיכרון המקומי של הדפדפן (localStorage) ומריצה אותו שוב בכל ביקור הבא, כך שגם אם הדומיין של התוקפים ייחסם, מי שנדבק פעם אחת ממשיך להריץ אותו. השנייה, שנשתלה ב-23 באוקטובר, אוספת קודם חתימה של הדפדפן ושולחת אותה לשרת: האם יש סימנים שמדובר בדפדפן שמופעל אוטומטית, מה שם כרטיס הגרפיקה, כמה ליבות וזיכרון יש במכשיר, אזור זמן, שפות. השרת מחליט לפי זה מה להחזיר. כשהשירות urlscan.io טען חנות נגועה בדפדפן אוטומטי הוא קיבל תשובה תקינה ובלי שום תוספת לעמוד. לשיטה הזאת של זיהוי המבקר לפי מאפייני המכשיר שלו קוראים fingerprinting, והיא מוכרת בעיקר מעולם הפרסום; כאן היא מוודאת שרק קונה אמיתי יראה את המטען.

ומה בעצם מוגש לקונה האמיתי? את זה סאנסק אומרת שעוד לא הצליחה לתפוס. התיעוד היחיד שיש לה הוא מדצמבר 2025, כשלקוח מחובר בחנות נגועה קיבל סקריפט שהפנה לשני אתרים חיצוניים, אחד מהם בשם שהוא שגיאת כתיב מכוונת של Ledger, מותג ארנק הקריפטו. הדומיין ההוא כבר פג.

אל החנויות הקוד הגיע בעיקר דרך חולשה ב-Magento שאדובי כבר תיקנה, וסאנסק מכנה אותה PolyShell. היא מעריכה ש-471 חנויות נפרצו כך. בחנות אחת, שלא היה חסר לה שום תיקון, התוקפים פתחו במקום זה חשבון מנהל חדש והשתילו דרכו.

למה זה חשוב לכם

Magento מריצה הרבה אתרי מכירות בינוניים, בישראל ובעולם, והקמפיין הזה לא בוחר קורבנות לפי מדינה. בגלל שהשרת מחליט מה להחזיר לפי מי ששואל, אי אפשר לדעת מהעמוד אם חנות נגועה, וגם בדיקה אוטומטית שלה עשויה לחזור נקייה.

מה עושים?

בחנות שאתם לא מכירים, שלמו באמצעי שמוסיף שכבה בינכם לבין המוכר, כמו ארנק דיגיטלי או כרטיס נטען, במקום להקליד את פרטי הכרטיס הראשי שלכם.

אם באמצע קנייה צצה בקשה חריגה, להתקין משהו, לחבר ארנק קריפטו או "לאמת" את הכרטיס בעמוד נוסף, עצרו שם.

עברו על דף החיובים החודשי של האשראי, וחפשו גם סכומים קטנים שאתם לא מזהים.

מנהלים חנות על Magento? התקינו את התיקונים של אדובי, בדקו אם נוספו חשבונות מנהל שלא אתם יצרתם, וחפשו בלוקי תוכן שלא שמתם שם.

מי שמנהל חנות לא צריך לחכות שסאנסק תתפוס את המטען הסופי כדי לעשות את הבדיקה הזאת.