חזרה
zLabs מגלה תוכנת זדונית ל-Android בשם RatHat, המונעת על ידי AI גנרטיבי
SiTech AI Team3 דק׳ קריאה

zLabs מגלה תוכנת זדונית ל-Android בשם RatHat, המונעת על ידי AI גנרטיבי

לפי zLabs, RatHat היא תוכנת זדונית ל-Android הקשורה לקבוצה פעילה בסין. היא משתמשת ב-AI גנרטיבי, אתרי פישינג, Accessibility ו-ADB מקומי כדי לגנוב נתונים פיננסיים ולשמור על גישת shell.

התפשטות RatHat ומטרות פיננסיות

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

RatHat משתמש בממשקי בנקאות, קריפטו ותשלום מזויפים כדי לאסוף נתונים פיננסיים. שכבות מוזרמות מכוונות לאפליקציות בנקאות וקריפטו נבחרות, ומסכים מוטמעים ל-WeChat ו-Alipay. האפליקציה גונבת שמות משתמש ו-PIN-ים, ועורכת האזנה ל-SMS מאפשרת לתוקף לחתוך קודי OTP ו-2FA. מנוע ה-AI הגנרטיבי שולח בזמן אמת ל-Accessibility בפורמט XML לעוזר AI, אשר מנתח טקסט, מחזיר קואורדינטות לחיצות סינתטיות ומפרסם פקודות כגון SCROLL_DOWN.

ADB מקומי שובר את sandbox של האפליקציה

RatHat תלויה בהתחלה בכך שהמשתמש יאשר גישה ל-Accessibility. ה-SystemHelperService שלה לוחץ שבע פעמים על Build Number באמצעות מחוות סינתטיות, מפעיל Wireless Debugging וקורא את קוד שישה ספרות של ADB ופורט דינמי. באמצעות הספרייה המוטמעת libadb-android, האפליקציה מתחברת לדימון ADB המקומי של המכשיר ומגיעה ל-/data/local/tmp, ובכך משיגה גישת shell מעבר למגבלות sandbox של אפליקציה רגילה.

באמצעות ADB היא מכינה את liblocal-service.so, סוכן Go ואת libmedia_codec.so, לקוח פרוקסי הפוך של frpc, המוסווה כספרייה מקומית. סוכן Go מבטיח פעילות רציפה ו-WRITE_SECURE_SETTINGS, משתמש בחריגי ניהול אנרגיה ויכול לכבות חבילות. לקוח FRP מקים מעגל תמידי עם שרת התוקף, מה שמאפשר ניתוב כללי לדימון ADB של המכשיר.

גניבת נתונים והתאוששות עצמית

RatHat אוסף מידע באמצעות אירועי טקסט של Accessibility, נתוני שורת הכתובת של הדפדפן והדפסת מסך או קלט. ה-AdbTouchCapture המבוסס על Go שלה קורא נתוני גולמיים מ-/dev/input באמצעות getevent. השוואת קואורדינטות מגע עם פריסות מקלדת ותבניות ב-locateValues.json מאפשרת לאפליקציה לזהות PIN-ים, סיסמאות ותבניות ביטול נעילה, גם כאשר FLAG_SECURE, מקלדת מותאמת או הגנת נעילת מסך מסתירה טקסט מ-Accessibility.

היא גם מתנגדת למחיקה. RatHat יכולה לכסות את חלון אישור המחיקה במסך שגיאה מזויף של Google Play ולבטל את הפעולה. גם במקרה של מחיקת APK, local-service ממשיך לפעול דרך מחזור החיים של החבילה, בודק את קיומה של האפליקציה ומתקינה אותה שוב, משחזר הרשאות אתחול וגישה ל-Accessibility. heartbeat משחזר את השירות, סורק פורטי ADB ומפעיל מחדש דיבוג לפי הצורך.

אנטי-אנליזה וניהול מרחוק

הדרופר מכיל שני משאבי payload מוצפנים. ארבע שכבות אנטי-אנליזה משתמשות בהזיות של מכולת ZIP, manifest בגודל 61MB המורכב בעיקר מרשומות לא מתועדות, הוראות DEX פסווו-אינסטרוקציה ברוחב שגוי ו-StringFog עם הצפנת StringCrypto. שכבת אנטי-דיבוג נפרדת מבצעת שש בדיקות, הכוללות JDWP, ptrace, פרמטרי דיבוג, Frida, Xposed, סטטוס root ואותות אמולטור.

האפליקציה נרשמת באמצעות HTTP ושומרת על WebSocket באמצעות heartbeat, תוך שימוש באימות HMAC-SHA256. סוכן Go פותח שרת HTTP מקומי ב-127.0.0.1:7910, שומר על heartbeat נפרד ומאחסן משימות לא מקוונות במאגר. רכיב FRP מבטיח מעגל הפוך תמידי. לפי zLabs, ארכיטקטורה זו הופכת ביצוע אדפטיבי מעבר לגבולות sandbox הרגילים של אפליקציה לאפשרי ומאפשרת לשמור על גישה גם לאחר מחיקת האפליקציה הראשית.

מקורות: Malwarebytes · Security Affairs · Fox News

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.