הטרויאני שתוקף מכשירי אנדרואיד וגונב פרטי כניסה לחשבונות בנק, עליו דיווחנו לראשונה בתחילת השנה, מצא את דרכו חזרה לחנות Google Play, בצורה חמקנית יותר מאי פעם.
הכירו את BankBot: סוס טרויאני שדולה פרטי כניסה לחשבונות בנק שהתפתח לאורך השנה, והופיע מחדש בגרסאות שונות בתוך החנות של Google Play ומחוצה לה. הגרסה שזיהינו ב-Google Play בתאריך 04.09.2017 היא הראשונה מבין כולן ששילבה בהצלחה את הצעדים האחרונים באבולוציה של BankBot: טשטוש משופר של הקוד, פונקציונאליות מתוחכמת של הפעולה הזדונית במכשיר, ומנגנון הדבקה ערמומי שמנצל לרעה את שירותי הנגישות (Accessibility Service) של מערכת האנדרואיד.
שימוש לרעה בשירות הנגישות של מערכת האנדרואיד נצפה בעבר במספר טרויאנים שונים, רובם מחוץ לחנות Google Play. ניתוחים שבוצעו לאחרונה ע"י SfyLabs ו-Zscaler אישרו את ההשערה שהנוכלים אשר מפיצים את וירוס ה-BankBot הצליחו להעלות ל-Google Play אפליקציה עם פונקציונליות שמנצלת את שירות הנגישות, אך ללא מטען של תוכנה זדונית לדליית פרטי בנק.
הגרסה הנוכחית, כוללת מטען של נוזקה השואבת את פרטי הכניסה לחשבונות הבנק של הקורבן, הצליח להתגנב אל תוך Google Play במסווה של משחק בשם Jewels Star Classic (חשוב לציין שהתוקפים עשו שימוש לרעה בשמה של סדרת משחקים פופולרית ולגיטימית בשם Jewels Star, מבית מפתחת המשחקים ITREEGAMER, ואין קשר בין מפתחת המשחקים לבין קמפיין זדוני זה).
הודענו לצוות האבטחה של Google על האפליקציה הזדונית, שהותקנה על ידי קרוב ל-5,000 משתמשים לפני הסרתה מהחנות.
איך זה עובד?
ברגע שהמשתמש התמים מוריד את המשחק Jewels Star Classic של מפתחת המשחקים GameDevTony (תמונה 1), הוא מקבל משחק אנדרואיד כמו כל משחק, אך עם כמה תוספים חבויים – מטען של תוכנה זדונית לבנקאות שאורב בתוך משאבי המשחק, ושירות זדוני שממתין להפעלה לאחר עיכוב קבוע מראש.
תמונה 1 – האפליקציה הזדונית כפי שהתגלתה ב-Google Play
השירות הזדוני מופעל 20 דקות לאחר ההפעלה הראשונית של Jewels Star Classic. המכשיר הנגוע מציג התראה שמבקשת מהמשתמש לאפשר דבר הנקרא "Google Service" (הערה: ההתראה הזדונית מופיעה ללא קשר לפעילותו של המשתמש באותו רגע, וללא קשר גלוי למשחק).
לאחר הלחיצה על מקש האישור, שהיא הדרך היחידה להעלים את ההתראה, המשתמש מועבר לתפריט הנגישות של האנדרואיד, שבו מנוהלים שירותים הכוללים אפשרויות נגישות. בקרב מספר שירותים לגיטימיים, מופיע שירות חדש בשם "Google Service", שנוצר על ידי התוכנה הזדונית. לחיצה על השירות מציגה תיאור שנלקח מתנאי השירות המקוריים של Google.
תמונה 2 – התראה שמבקשת מהמשתמש לאפשר את השירות "Google Service"
תמונה 3 – השירות "Google Service" מופיע בקרב שירותי נגישות אנדרואיד
תמונה 4 – תיאור לשירות הזדוני שנלקח מתנאי השירות של Google
ברגע שהמשתמש מחליט להפעיל את השירות, תוצג בפניו רשימה של הרשאות נדרשות: לצפות בפעולות שלך, לאחזר תוכן חלונות, להפעיל חיפוש בעזרת מגע, להפעיל נגישות רשת משופרת ולבצע מחוות (תמונה 5).
לחיצה על אישור מעניקה את הרשאות הנגישות לשירות הנגישות של התכונה הזדונית. בהענקת הרשאות אלה, המשתמש נותן לתוכנית הזדונית יד חופשיה - פשוטו כמשמעו – לבצע כל משימה שתצטרך על מנת להמשיך את פעילויותיה הזדוניות.
תמונה 5 – הרשאות שנדרשות להפעלת "Google Service"
בפועל, לאחר אישור ההרשאות, המשתמש מאבד גישה למסך שלו לזמן קצר עקב "עדכון של Google Service" – מיותר לציין, לא עדכון של Google – שרץ ברקע (תמונה 6).
תמונה 6 – מסך שמחביא פעילות זדונית
התוכנה הזדונית משתמשת במסך זה על מנת להחביא את הצעדים הבאים שלה – ללחוץ מטעם המשתמש בעזרת הרשאות הנגישות שהושגו קודם לכן. בזמן שהמשתמש ממתין לטעינת העדכון הפיקטיבי, התוכנה הזדונית מבצעת את המשימות הבאות:
• מאפשרת התקנה של אפליקציות ממקורות לא ידועים
• מתקינה את BankBot מהנכסים (assets) ומפעילה אותו
• מפעילה הגדרת מנהל מכשיר עבור BankBot
• מגדירה את BankBot בתור אפליקציית המסרונים ברירת המחדל
• משיגה הרשאה להופיע מעל אפליקציות אחרות
לאחר הביצוע המוצלח של משימות אלה, התוכנה הזדונית יכולה להתחיל לעבוד על היעד הבא שלה: גניבת פרטי כרטיס האשראי של הקורבן. בניגוד לגרסאות אחרות של BankBot, בהן הטרויאני מתמקד על רשימה נרחבת של אפליקציות בנק מסוימות ומחקה את טפסי ההתחברות שלהן על מנת לאסוף את פרטי ההתחברות שהוזנו, גרסה זו מתמקדת על Google Play באופן בלעדי – אפליקציה שכל משתמש אנדרואיד התקין מראש במכשירו.
ברגע שהמשתמש מפעיל את האפליקציה של Google Play, ה-BankBot מצטרף ומופיע מעל האפליקציה הלגיטימית עם טופס מזויף שמבקש את פרטי כרטיס האשראי של המשתמש המבקש (תמונה 7).
תמונה 7 – טופס מזויף שמבקש את פרטי כרטיס האשראי של המשתמש
במידה והמשתמש נופל בפח ומזין את פרטי כרטיס האשראי שלו בטופס המזויף, התוקפים ניצחו למעשה. עקב העובדה ש-BankBot הגדיר את עצמו בתור אפליקציית המסרונים ברירת המחדל, ביכולתו לשבש את כל תקשורת המסרונים שעוברת במכשיר הנגוע. זה מאפשר לתוקפים לעקוף אימות דו-שלבי מבוסס-מסרונים בחשבון הבנק של הקורבן – המכשול הפוטנציאלי האחרון בינם לבין כספו של הקורבן.
מה הופך אותו למסוכן כל כך?
בקמפיין זה, הנוכלים הרכיבו ערכה של טכניקות שהפכו יותר ויותר פופולריות בקרב מפתחי התוכנות הזדוניות לאנדרואיד – ניצול לרעה של שירות הנגישות של מערכת האנדרואיד, התחזות ל-Google, וקביעת מד-זמן אשר מעכב את תחילת הפעילות הזדונית על מנת להתחמק מאמצעי האבטחה של Google.
ביחד, הטכניקות מקשות על הקורבן לזהות את האיום בזמן. מכיוון שהתוכנה הזדונית מתחזה ל-Google וממתינה 20 דקות לפני הצגת ההתראה הראשונה, לקורבן יש סיכוי קטן מאוד לחבר בין הפעילות שלו לבין אפליקציית Jewel Star Classic שאותו הוריד לאחרונה. מעבר לכך, השמות השונים והרבים שבהם משתמשת התוכנה הזדונית לאורך תהליך הזיהום מסבכים במידה משמעותית את המאמצים לאתר ולהסיר אותה ידנית.
כיצד ניתן לנקות את המכשיר הנגוע?
במידה ואתם מורידים אפליקציות שונות ורבות מחנות האפליקציות Google Play וממקומות אחרים, ייתכן ותרצו לבדוק שלא הושטתם את ידכם אל התוכנה הזדונית הזאת.
בדיקה שהמשחק Jewels Star Classic אינו קיים במכשיר איננה בדיקה מספקת, מכיוון שהתוקפים משנים לעיתים קרובות את האפליקציות שמנוצלות לרעה לטובת ההפצה של BankBot. על מנת לבדוק אם המכשיר שלכם נפגע, אנחנו ממליצים לבדוק את הסמנים הבאים:
• נוכחותה של אפליקציה בשם "Google Update" (מופיעה בתמונה 8 ונמצאת תחת Settings > Application manager/Apps > Google Update)
• מנהל מכשיר פעיל בשם "System Update" (מופיע בתמונה 9 ונמצא תחת Settings > Security > Device Administrators).
• הופעה חוזרת ונשנית של ההתראה "Google Service" (מופיעה בתמונה 2).
תמונה 8 – האפליקציות הזדוניות במנהל האפליקציות (Application manager)
תמונה 9 – BankBot מוסווה בתור System update תחת מנהלי מכשיר פעילים
במידה ומצאתם אחד מהסמנים שהוזכרו למעלה, ייתכן והמכשיר שלכם נגוע בגרסה זו של BankBot. על מנת לנקות את המכשיר שלכם באופן ידני, תצטרכו תחילה להשבית את זכויות מנהל המכשיר עבור "System update", ולאחר מכן להסיר את ההתקנה של "Google Update" והאפליקציה הטרויאנית הנלווית.
עם זאת, מציאת האפליקציה הטרויאנית שהתחילה את הזיהום (במקרה שלנו, Jewels Star Classic) מוכיחה כמשימה בעייתית, עקב העיכוב באורך 20 דקות שנקבע לפעילות הזדונית, וכמו כן עקב העובדה שהאפליקציה עובדת בהתאם לציפיות. על מנת לזהות ולהסיר את האיום, על כל רכיביו, אנחנו ממליצים להשתמש בפתרון אבטחה סלולרית אמין.
מוצרי האבטחה של חברת ESET מזהים וחוסמים גרסה זו של BankBot בתור Android/Spy.Banker.LA.
איך להישאר בטוחים?
מלבד השימוש בפתרון אבטחה אמין למובייל, ישנם דברים אחרים שניתן לעשות כדי לא לפול קורבן לתוכנות זדוניות באנדרואיד:
• במידת האפשר, יש להעדיף חנויות אפליקציות רשמיות על פני חלופיות. למרות שהיא מלווה בבעיות משלה, Google Play משתמשת במנגנוני אבטחה מתקדמים; זה לאו דווקא המקרה בחנויות חלופיות.
• במידה ויש ספק לגבי התקנת אפליקציה, בדקו את הפופולריות שלה לפי מספר התקנות, דירוגים ותוכן הביקורות.
• לאחר שהפעלתם כל אפליקציה שהתקנתם במכשיר הסלולרי שלכם, שימו לב להרשאות שהיא מבקשת מכם. במידה ואפליקציה מבקשת הרשאות פולשניות – על אחת כמה וכמה אם הן קשורות בנגישות – יש לעבור עליהן בקפידה ובזהירות ולהעניק אותן רק במידה ואתם בטוחים לחלוטין באמינותה של האפליקציה.
מהו BankBot?
זוהה לראשונה על ידי חברת ESET בתאריך 26.12.2016, ונותח לראשונה על ידי Dr. Web, BankBot הוא סוס טרויאני שפעיל באנדרואיד וניתן לשליטה מרחוק, וביכולתו לאסוף פרטי בנק בעזרת טפסי התחברות מזויפים במספר אפליקציות, לשבש הודעות טקסט על מנת לעקוף אימות דו-שלבי, ולהציג התראות דחיפה (push notification) לא רצויות.
זמן קצר לאחר גילוי האפליקציות שהפכו לטרויאניות עקב BankBot בחנות האפליקציות Google Play בתחילת 2017, אימתנו שמקורן של האפליקציות הזדוניות הינו בקוד מקור שהפך ציבורי בפורומים מחתרתיים בדצמבר 2016. הזמינות הציבורית של הקוד הובילה לעלייה הן במספר והן בתחכום של סוסים טרויאניים מתחום הבנקאות במכשירים סלולריים.