הפגיעות של Janus מאפשרת לתוקפים לשנות אפליקציות מבלי להשפיע על החתימות שלהם. זה התגלה על ידי GuardSquare ותוקן על ידי גוגל.
אנדרואיד מותקן על מספר עצום של מכשירים, וזה הופך אותו למטרה עבור תוקפים זדוניים. נקודות תורפה במערכת ההפעלה לנייד של גוגל ממשיכות להתגלות מדי חודש, אבל החדשות הטובות הן שגוגל בדרך כלל מקפיד לתקן אותם בתיקוני אבטחה רגילים המוצעים לאחר מכן ליצרני ציוד מקורי, שלאחר מכן שולחים אותו אל מכשירים.
לאחרונה, חוקרי אבטחה חשפו פגיעות מה שהטעה משתמשים לאפשר לתוקפים להקליט את מסך המכשיר שלהם. הניצול המסוים הזה תוקן באנדרואיד אוראו, אבל אנליסטים ב GuardSquare לאחרונה דווח על פגיעות חמורה נוספת שמשפיעה על אפליקציות אנדרואיד החתומות על ידי סכימות חתימה ישנות יותר.
GuardSquareהדו"ח של מציין כי יאנוספגיעות (CVE-2017-13156) באנדרואיד מאפשר לתוקפים לשנות את הקוד באפליקציות מבלי להשפיע על החתימות שלהם. הדו"ח ממשיך ואומר ששורש הפגיעות הוא שקובץ יכול להיות קובץ APK חוקי וקובץ DEX חוקי בו-זמנית.
יאנוס מנצל את העובדה שבתים נוספים אינם מורגשים בקבצי APK ובקבצי DEX. ה GuardSquare הדוח מסביר שקובץ APK הוא ארכיון ZIP שיכול להכיל בתים שרירותיים בהתחלה, לפני ובין ערכי ה-ZIP שלו. סכימת החתימות של JAR לוקחת בחשבון רק את ערכי ה-ZIP, ומתעלמת מכל בתים נוספים בעת חישוב או אימות חתימת היישום.
זה ממשיך ומסביר שקובץ DEX, לעומת זאת, יכול להכיל בתים שרירותיים בסוף - אחרי הקטעים הרגילים של מחרוזות, מחלקות, הגדרות מתודות וכו'. לכן, קובץ יכול להיות קובץ APK חוקי וקובץ DEX חוקי בו-זמנית.
GuardSquare מזכיר גם שמרכיב מרכזי של הפגיעות הוא תכונה "לא מזיקה" של המכונה הוירטואלית Dalvik/ART. הדוח קובע כי בתיאוריה, זמן הריצה של אנדרואיד טוען את קובץ ה-APK, מחלץ את קובץ ה-DEX שלו ואז מריץ את הקוד שלו. עם זאת, בפועל, המכונה הוירטואלית (VM) יכולה לטעון ולהפעיל גם קבצי APK וגם קבצי DEX. הבעיה היא שכאשר ה-VM מקבל קובץ APK, הוא עדיין מסתכל על בתים הקסומים בכותרת כדי להחליט באיזה סוג קובץ מדובר: DEX או APK. במציאת כותרת DEX, הוא טוען את הקובץ כקובץ DEX. אם הוא לא מוצא כותרת, הוא טוען את הקובץ כקובץ APK המכיל ערך zip עם קובץ DEX. לפיכך, הוא יכול לפרש לא נכון קבצי DEX/APK כפולים.
GuardSquare אומר שתוקף יכול למנף את תכונת הדואליות הזו של ה-VM כדי להוסיף קובץ DEX זדוני לקובץ APK רגיל מבלי להשפיע על החתימה שלו. זמן הריצה של אנדרואיד יקבל את קובץ ה-APK כעדכון חוקי לגרסת אפליקציה קודמת לגיטימית, אך ה-Dalvik VM יטען את הקוד מקובץ DEX, שהוחדר לו קוד זדוני.
בדרך כלל, בכל פעם שמשתמש מתקין גרסה מעודכנת של אפליקציה, חתימת האפליקציה מאומתת על ידי זמן הריצה של אנדרואיד כדי לוודא שהיא תואמת לגרסה הישנה יותר. כאשר האימות חיובי, האפליקציה המעודכנת מקבלת את ההרשאות שניתנו לאפליקציה המקורית. בדרך זו, תוקפים יכולים להשתמש בפגיעות Janus כדי לעקוף את תהליך אימות החתימה ולהתקין קוד לא מאומת במכשירים של משתמשים תמימים.
מה שגרוע עוד יותר הוא שהקוד הלא מאומת הזה עשוי לקבל גישה להרשאות חזקות. זה מעלה כמה אפשרויות חמורות. GuardSquare מדינות:
"תוקף יכול להחליף יישום מהימן עם הרשאות גבוהות (אפליקציית מערכת, למשל) בעדכון שונה כדי להשתמש בהרשאות שלו לרעה. בהתאם לאפליקציה הממוקדת, זה יכול לאפשר להאקר לגשת למידע רגיש המאוחסן במכשיר או אפילו להשתלט על המכשיר לחלוטין. לחלופין, תוקף יכול להעביר שיבוט שונה של אפליקציה רגישה כעדכון לגיטימי [שיכול להיראות ולהתנהג כמו האפליקציה המקורית אך להחדיר התנהגות זדונית".
החברה הוסיפה כי נכון לעכשיו, הם לא ראו אף אפליקציה המנצלת את יאנוס בטבע. הבשורה האחרת היא שהפגיעות מחייבת משתמש להתקין עדכון זדוני ממקור מחוץ לחנות Google Play. לכן, משתמשים המגבילים התקנות אפליקציה לחנות Play מוגנים.
הפגיעות של Janus משפיעה על מכשירים עם אנדרואיד 5.0+. אפליקציות שנחתמו עם ערכת חתימות APK v1 מושפעות. חבילות APK חתומות עם ערכת חתימות v2 מוגנות מפני הפגיעות. זה מחייב שחבילות ה-APK פועלות במכשירים התומכים בסכימת החתימות העדכנית ביותר (אנדרואיד 7.0 ואילך). Scheme v2 מוגנת מכיוון שבניגוד לתכנית v1, היא מחשיבה את כל הבתים בקובץ ה-APK.
"גרסאות ישנות יותר של יישומים ויישומים חדשים יותר הפועלים במכשירים ישנים נשארים רגישים. מפתחים צריכים לפחות תמיד ליישם סכימת חתימות v2," GuardSquare מדינות.
GuardSquare דיווח על בעיה זו ל-Google ב-31 ביולי 2017, וקיבל אישור באותו יום. הדיווח של החברה אומר שגוגל פרסמה תיקון לשותפיה בנובמבר, ופרסמה את הבאג (CVE-2017-13156) בעלון האבטחה של אנדרואיד ב-4 בדצמבר 2017. לפגיעות יש תוקן בתיקון האבטחה של אנדרואיד של דצמבר 2017. בנפרד, יישומי F-Droid מהמאגר הרשמי שלהם אושרו בטוחים. לבסוף, אושר כי הפגיעות תוקנה APKMirror.
מקור: GuardSquare