אפליקציית הקניות SHEIN משתוללת, תופסת נתוני מחיר וכתובות אתרים מהלוח שלך

אפליקציית הקניות SHEIN משתוללת, תופסת נתוני מחיר וכתובות אתרים מהלוח שלך

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

כפי שאמרה לטיטיה ג'יימס, התובעת הכללית של מדינת ניו יורק, ב הצהרה בסוף 2022:

אמצעי האבטחה הדיגיטליים החלשים של SHEIN ו-[מותג האחות] ROMWE הקלו על האקרים לגנוב נתונים אישיים של צרכנים. […]

[P]נתונים אישיים נגנבו וזואטופ ניסתה לכסות אותם. אי הגנה על הנתונים האישיים של הצרכנים ושקר לגביהם אינו טרנדי. SHEIN ו-ROMWE חייבים לחזק את אמצעי אבטחת הסייבר שלהם כדי להגן על צרכנים מפני הונאה וגניבת זהות.

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

למען האמת, אנו מופתעים מכך ש-Zoetop (כיום תאגיד ההפצה SHEIN בארה"ב) יצאה כל כך בקלילות, בהתחשב בגודל, בעושר ובכוח המותג של החברה, בהיעדר לכאורה אפילו באמצעי זהירות בסיסיים שהיו יכולים למנוע או להפחית את הסכנה הנשקפת. על ידי ההפרה, וחוסר הגינות המתמשך שלה בטיפול בהפרה לאחר שנודע לה.


קוד אפליקציית סנופי נחשף כעת

מה שלא ידענו, אפילו כשהמקרה הזה עבר על מערכת המשפט בניו יורק, היה ש-SHEIN הוסיפה איזה קוד מוזר (ומפוקפק, אם לא ממש זדוני) לאפליקציית האנדרואיד שלה שהפך אותו לסוג בסיסי של " כלי ריגול שיווקי".

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

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

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



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

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

במילים של החוקרים עצמם:

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

האפליקציה של SHEIN מוגדרת כבעלת 100 מיליון הורדות, וזה הרבה מתחת לאפליקציות סופר-גבוהות כמו פייסבוק (5B+), Twitter (1B+) ו-TikTok (1B+), אבל שם למעלה עם אחרים ידועים ונפוצים אפליקציות כמו Signal (100M+) ומקדונלד'ס (100M+).

חופר לתוך הקוד

האפליקציה עצמה עצומה, שוקלת 93 מגה בייט בצורת APK (קובץ APK, קיצור של חבילת אנדרואיד, הוא בעצם ארכיון ZIP דחוס) ו-194 מגה בייט כשהוא פורק וחולץ.

הוא כולל גוש גדול של קוד ספרייה בקבוצה של חבילות עם שם ברמה העליונה של com.zzkko (ZZKKO היה השם המקורי של SHEIN), כולל קבוצה של שגרות שירות בחבילה בשם com.zzkko.base.util.

כלי עזר אלה כוללים פונקציה הנקראת PhoneUtil.getClipboardTxt() שיתפוס את הלוח באמצעות כלי קידוד אנדרואיד סטנדרטיים שיובאו ממנו android.content.ClipboardManager:

אפליקציית הקניות SHEIN משתוללת, תופסת נתוני מחיר וכתובות אתרים מהלוח שלך PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

חיפוש בקוד SHEIN/ZZKKO עבור קריאות לפונקציית השירות הזו מראה שהוא נמצא בשימוש במקום אחד בלבד, חבילה בשם מסקרן com.zzkko.util.­MarketClipboardPhaseLinker:

אפליקציית הקניות SHEIN משתוללת, תופסת נתוני מחיר וכתובות אתרים מהלוח שלך PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

כפי שהוסבר בניתוח של מיקרוסופט, קוד זה, כאשר הוא מופעל, קורא את כל מה שבמקרה נמצא בלוח, ולאחר מכן בודק אם הוא מכיל את שניהם :// ו $, כפי שניתן לצפות אם היית מעתיק ומדביק תוצאת חיפוש הכוללת אתר של מישהו אחר ומחיר בדולרים:

אפליקציית הקניות SHEIN משתוללת, תופסת נתוני מחיר וכתובות אתרים מהלוח שלך PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

אם הבדיקה תצליח, אז הקוד קורא לפונקציה שהורכבה בחבילה עם השם חסר הדמיון (וכנראה שנוצר אוטומטית) k(), שולח לו עותק של הטקסט החטט כפרמטר:

אפליקציית הקניות SHEIN משתוללת, תופסת נתוני מחיר וכתובות אתרים מהלוח שלך PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

כפי שאתה יכול לראות, גם אם אתה לא מתכנת, הפונקציה הלא מעניינת הזו k() אורזת את נתוני הלוח שהרחחו לתוך א POST request, שהוא סוג מיוחד של חיבור HTTP שאומר לשרת, "זו לא בקשת GET מסורתית שבה אני מבקש ממך לשלוח לי משהו, אלא בקשת העלאה שבה אני שולח לך נתונים."

השמיים POST הבקשה במקרה זה מועלית לכתובת האתר https://api-service.shein.com/marketing/tinyurl/phrase, עם תוכן HTTP שבדרך כלל ייראה בערך כך:

 POST //marketing/tinyurl/phrase מארח: api-service.shein.com . . . Content-Type: application/x-www-form-urlencoded phrase=...תוכן מקודד של הפרמטר המועבר ל-k()...

כפי שמיקרוסופט ציינה באדיבות בדוח שלה:

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

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

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

בדרך כלל נעשה שימוש בקידוד כתובות אתרים כאשר אתה רוצה להעביר כתובות אתרים כנתונים, כך שלא ניתן לערבב אותן עם כתובות אתרים "חיות" שאמורות לבקר בהן, וכדי שהן לא יכילו תווים לא חוקיים. לדוגמה, רווחים אינם מותרים בכתובות URL, ולכן הם מומרים בנתוני כתובות אתרים לתוך %20, כאשר סימן האחוז פירושו "בתים מיוחדים מופיעים כשני תווים הקסדצימליים", ו 20 הוא קוד ASCII הקסדצימלי עבור רווח (32 בעשרוני). כמו כן, רצף מיוחד כגון :// יתורגם ל %3A%2F%2F, כי נקודתיים הוא ASCII 0x3A (58 בעשרוני) ולוכסן קדימה הוא 0x2F (47 בעשרוני). סימן הדולר יוצא כ %24 (36 בעשרוניות).

מה לעשות?

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

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

באופן רופף, ככל שגרסת אנדרואיד יש לך יותר עדכנית (או תוכל לשדרג אליה), כך הלוח מנוהל בצורה מגבילה יותר.

ככל הנראה, באנדרואיד 10 ואילך, אפליקציה לא יכולה לקרוא את הלוח כלל, אלא אם היא פועלת באופן פעיל בחזית.

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

אנדרואיד 12 ואילך תופיע הודעת אזהרה שאומרת "אפליקציית XYZ הודבקה מהלוח שלך", אבל ככל הנראה האזהרה הזו מופיעה רק בפעם הראשונה שהיא מתרחשת עבור אפליקציה כלשהי (שיכול להיות כשציפית לה), לא בתפיסות הבאות של הלוח. (כשאת לא).

ואנדרואיד 13 מוחק אוטומטית את הלוח מדי כמה זמן (אנחנו לא בטוחים באיזו תדירות זה באמת קורה) כדי לעצור נתונים שאולי שכחת לשכב ללא הגבלת זמן.

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

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

אם יש לך צי מכשירים ניידים של החברה, ועדיין לא אימצת צורה כלשהי של ניהול מכשירים ניידים והגנה נגד תוכנות זדוניות, למה שלא תסתכל על מה שמוצע עכשיו?


אפליקציית הקניות SHEIN משתוללת, תופסת נתוני מחיר וכתובות אתרים מהלוח שלך PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.


בול זמן:

עוד מ ביטחון עירום