אפליקציות Google Camera ו- Samsung Camera חשפו את כוונות המצלמה והווידאו לאפליקציות של צד שלישי

Google Camera והאפליקציות של Samsung Camera חשפו את כוונות המצלמה והווידאו שלהן לאפליקציות צד שלישי, מה שהוליד פגיעות לעקוף הרשאה.

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

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

צ'קמרקס גילה כי לאפליקציית המצלמה של גוגל ולאפליקציית המצלמה של סמסונג היו כוונות לא מוגנות להפעיל פעולות כמו צילום תמונה והקלטת וידאו. כוונה לא מוגנת בהקשר זה פירושה שהאפליקציה המקבלת לא בודקת אם לאפליקציה ששולחת את הכוונה יש את ההרשאה הנדרשת לבצע את הפעולה עצמה -- android.permission. מַצלֵמָה במקרה הזה. פעילות המצלמה, com.google.android. GoogleCamera/com.android.camera. CameraActivity, הייתה גם פעילות מיוצאת, כלומר אפליקציות אחרות יכלו לדרוש זאת. הכוונה הבלתי מוגנת והפעילות המיוצאת מובילות לפיכך לפגיעות של עקיפת הרשאה.

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

כהוכחה לקונספט, צ'קמרקס יצרה אפליקציית מזג אוויר דמה שלא הייתה לה הרשאת CAMERA, אבל היא הגיעה עם הרשאת STORAGE יחידה, כזו שלא הופיעה לא תקינה עבור אפליקציית מזג אוויר. ללא רשות המצלמה, אפליקציית מזג האוויר הצליחה להפעיל את מצלמת גוגל ומצלמת סמסונג לצלם תמונות ולהקליט סרטונים. הרשאת ה-STORAGE נכנסת לפעולה בגישה לזה, כמו גם לכל שאר התמונות והסרטונים שנשמרו ב-/DCIM -- היא אינה נחוצה לפעולות של לחיצה על תמונות והקלטת סרטונים.

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

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

צ'קמרקס טוען שהפגיעות, שכותרתה CVE-2019-2234, קיימת גם באפליקציות מצלמות של ספקי סמארטפונים אחרים. אבל החוקרים לא ציינו אילו ספקים ומכשירים הושפעו, מחוץ לזה של גוגל וסמסונג. אם יישומי מצלמה אחרים ייצאו פעילויות כדי להתחיל לכידת תמונות והקלטת וידאו, ויש כוונות לא מוגנות שאינן בודקות את ההרשאה הזמינה לאפליקציה המתקשרת, הן גם כן מושפע.

מכיוון שזו אינה פגיעות בתוך פלטפורמת אנדרואיד או ליבת לינוקס, לא ניתן לכלול אותה ולהפיץ אותה כחלק מה- עלון אבטחה של אנדרואיד. הפגיעות תוקנה באפליקציית מצלמת גוגל באמצעות עדכון אפליקציה ביולי 2019, וכך גם תוקן באפליקציית המצלמה של סמסונג, אם כי אין מידע ספציפי על מתי עדכון זה הופעל הַחוּצָה.

בגרסאות לא מתוקנות של מצלמת Google, תוכל לאלץ סרטון לצלם את הפגיעות הזו על ידי הפעלת פקודת ה-ADB הבאה:

adb shell am start-activity -n
com.google.android.GoogleCamera/com.android.camera.CameraActivity --ez
extra_turn_screen_ontrue-aandroid.media.action.VIDEO_CAMERA--ez
android.intent.extra.USE_FRONT_CAMERAtrue

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