ליקוי אבטחה פוטנציאלי ב-Autofill API של Android Oreo מאפשר למנהלי סיסמאות להדליף נתונים כגון סיסמאות, כתובות או כרטיסי אשראי.
מילוי אוטומטי היא אחת התכונות החדשות הגדולות והמפורסמות ביותר שהוצגו עם שחרורו של אנדרואיד 8.0 אוראו. אפליקציות רבות ושונות לניהול סיסמאות, כמו LastPass, כבר הטמיעו את ה-API החדש הזה באפליקציות שלהם. ולמרות שזה יכול להוכיח את עצמו ממש שיפור לעומת ההטמעות הקודמות של מילוי אוטומטי באמצעות שירותי נגישות, יש ליקוי אבטחה פוטנציאלי שצריך לקחת בחשבון. בחודש שעבר פורסם מאמר לבן ל-GitHub, המתעד פגם מובנה ב-Android Oreo Autofill API שיכול עלול להוביל לכך שמנהל הסיסמאות שלך ידליף יותר מהנתונים האישיים שלך ממה שנתת לו רשות. אנחנו הולכים לעשות סקירה מהירה של הנייר הלבן שנכתב על ידי מארק מרפי (הידוע יותר בשם CommonsWare) ופורסם בדף GitHub שלו ב-8 באוגוסט, 2017.
פגם פוטנציאלי של דליפת נתונים ב-API של מילוי אוטומטי של אנדרואיד אוראו
כיצד פועל הפגם?
יישום המילוי האוטומטי באנדרואיד נוגט (וגרסאות נמוכות יותר), ודפדפנים כמו גוגל כרום, הוא משהו ממש פשוט. בדרך כלל, אפליקציות לניהול סיסמאות ישתמשו בשירותי הנגישות כדי לסרוק את תוכן המסך לאיתור תיבת כניסה ולהמליץ על נתוני מילוי אוטומטי על סמך מה שהם מוצאים. בזמן שזה עבד, זה
ב-Android Oreo, זה עובד קצת אחרת, מכיוון שאפליקציות סיסמאות נתמכות כעת באופן רשמי עם ה-API של מילוי אוטומטי. יישומי סיסמאות של צד שלישי אינם דורשים יותר שירותי נגישות, מכיוון שהם יכולים כעת למלא את התפקיד של שירות מילוי אוטומטי, לתקשר עם אפליקציות דרך מסגרת המילוי האוטומטי. כאשר המשתמש מתמקד בווידג'ט, המערכת תארוז מידע על הווידג'ט/טופס הזה ותשלח אותו לאפליקציית המילוי האוטומטי. לאחר מכן, האפליקציה מחזירה נתוני מילוי אוטומטי רלוונטיים כגון סיסמאות, מיילים, כרטיסי אשראי או כל סוג אחר של נתונים רגישים. מערכת אנדרואיד פועלת כמתווך בין האפליקציה המאחסנת את הנתונים לבין זו שמבקשת אותם.
עם זאת, אפליקציות זדוניות או תוכנות זדוניות יכולות למעשה לנצל את תכונת המילוי האוטומטי כדי לקבל יותר נתונים לעצמם. פעילות זדונית יכולה לבקש נתוני מילוי אוטומטי נוספים שיוכנסו באמצעות ווידג'ט בלתי נראה או נסתר. בזמן שהמשתמש מסכים למלא אחד מהווידג'טים הגלויים, כמו טופס התחברות או משהו דומה, הווידג'ט הבלתי נראה מקבל גם נתונים נוספים מבלי שתראה אותם. זה יכול להיות מסוכן מאוד אם המידע שדלף הוא הסיסמה, הכתובת או פרטי כרטיס האשראי שלך!
צילומי המסך שלמעלה מציגים יישום בדיקה זדוני המנצל את פגם האבטחה הזה.
התשובה של גוגל לבעיה
לפי CommonsWare, לבעיית האבטחה הזו אין עדיין פתרון ציבורי שפורסם על ידי גוגל. עם זאת, אנו יודעים שגוגל מודעת לבעיה. CommonsWare מציינת שמהנדסי גוגל הכירו שהבעיה קיימת בדוח פרטי למעקב אחר בעיות, אך יהיה קשה (אם לא בלתי אפשרי) לתקן אותו בפועל או להוציא תיקון.
אבל זה לא אומר שהמילוי האוטומטי אינו בטוח לחלוטין לשימוש, מכיוון שגוגל נוקטת בגישה נוספת להבטחת בטיחות הנתונים. החברה היא דוחף לכך ששירותי המילוי האוטומטי יטפלו בבעיה מצדם וככזה, מנסה להעלות את המודעות למפתחים לשפר את ספקי המילוי האוטומטי שלהם ולהפוך אותם לבטוחים יותר. מה בדיוק מציעים?
קודם כל, ספקי מילוי אוטומטי צריך לחלק את הנתונים שלהם. במקום לשמור את כל נתוני המילוי האוטומטי במאגר יחיד, מפתחים צריכים לפצל את נתוני המשתמש המאוחסנים במחיצות. למשל מחיצת כתובת/טלפון, מחיצה בכרטיס אשראי, מחיצת סיסמא/שם משתמש וכו'. שירות המילוי האוטומטי צריך להחזיר רק את הנתונים של מחיצה אחת בכל פעם בהתבסס על הווידג'ט הממוקד. זהו אחד מה דפים זמינים לציבור על אפליקציות מילוי אוטומטי המגנות על עצמן מפני דליפת נתונים לווידג'טים בלתי נראים.
יש גם כמה דברים אחרים שמפתחים של מנהלי סיסמאות צריכים לעשות, לפי מהנדסי גוגל. לדוגמה, ספק המילוי האוטומטי צריך להחזיר את הנתונים רק לאפליקציה הספציפית שסיפקה אותם מלכתחילה. זה צריך להיעשות על ידי אימות שם החבילה והחתימה הציבורית של האפליקציה כך שאפילו APK שונה לא יוכל לגשת אליה. הדבר השני יהיה שאפליקציות מילוי אוטומטי דורשות אימות לפני אספקת הנתונים בפועל פעילות אימות המודיעה למשתמש איזה סוג של נתונים יסופקו לאפליקציה המבקשת זאת. לעצה זו יש למעשה טעויות רבות, והחשובה שבהן היא שפיסות העצות הללו אינן נאכפות על ידי גוגל.
זכור שרבות מההצעות לעיל נלקחו מדוח מעקב הבעיות הפרטיות של CommonsWare, ולא מכל דף תיעוד רשמי של Google. לקבלת פירוט טכני נוסף של האופן שבו אפליקציות המשתמשות ב-API של מילוי אוטומטי יכולות להגן על עצמן מפני התקפה מסוג זה, אנו ממליצים בחום לקרוא את נייר לבן מלא מאת CommonsWare.
אילו אפליקציות בטוחות מפני פגם זה?
פנינו למפתחי 1Password, Enpass ו-LastPass בנוגע לפגיעות זו, וצוותי האבטחה שמאחורי 3 האפליקציות הללו נִתבָּע שהם לבטח, למרות שטרם אימתנו טענות אלה.
כפי שאנו יכולים לראות בהצהרות שלמעלה, 1Password דורש אימות מהמשתמש לפני מילוי הנתונים, כמו כן מודיע לו אילו נתונים ימולאו מראש. זה גם עוזר בבעיית המילוי השקט, שכן יופיע חלון אימות מוקפץ לכל פעילות ופעילות המבקשת נתוני מילוי אוטומטי.
Enpass לעולם לא תחשוף את כל מחזיק המפתחות לאפליקציה המבקשת, בין אם היא זדונית או אמיתית. רק הפריטים השמורים התואמים לשם החבילה של האפליקציה המבקשת יוצגו למשתמש. הם גם אישרו שיהיו להם אמצעים נוספים בעקבות העצה של גוגל.
יתר על כן, LastPass אישרו לנו שאמנם הם לא ידעו על הבעיה לפני שחרורו של Android Oreo, אבל האפליקציה שלהם כן משתמשת חלוקת נתונים כדי להגן על המשתמשים, יחד עם בדיקות אחרות כדי לוודא ש- LastPass מתמלא רק באפליקציה המשויכת לערך.
אמנם לא אמורות להיות בעיות בשימוש בשלושת היישומים הללו, אבל אם אתה רוצה להישאר ברור לחלוטין, עליך להשבית מילוי אוטומטי לחלוטין בטלפון שלך עד שתוכל לאשר עם מפתח מנהל הסיסמאות שלך שהאפליקציה שלו בטוחה מהקו הזה של לִתְקוֹף. למרבה המזל ניתן לעשות זאת בקלות על ידי מעבר להגדרות > מערכת > שפות וקלט > מתקדם ומציאת העדפת "שירות מילוי אוטומטי", הקשה עליה ובחירה ב"ללא".
כפי שאמרנו לעיל, לא ידוע אם גוגל באמת יכולה לדחוף תיקון לכך, כך ששימוש באפליקציות מהימנות או פשוט השבתת התכונה היא הדרך היחידה שבה תוכל להישאר בטוח. אם אתה רוצה לקרוא עוד על הנושא הזה ועל כל הפרטים הקשורים אליו, כדאי שתקרא על המקור נייר לבן שמתעד זאת ב-GitHub.
מאמר זה עודכן ב-9/13/17 כדי לשקף בצורה מדויקת יותר את ההשלכות של התגובות של LastPass, Enpass ו-1Password.