תיקון פרצת אבטחה של סקריפטים חוצי אפליקציות

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

מה הלאה?

אחת או יותר מהאפליקציות שלכם כוללת בעיה חוצת אפליקציות של WebView, שעלולה לאפשר לאפליקציות זדוניות לגנוב קובצי cookie ונתונים אחרים של משתמשים. יש לעיין בהודעה שב-Play Consoleלאחר המועדים האחרונים לתיקון שמופיעים ב-Play Console, אפליקציות שיכילו פרצות אבטחה שלא תוקנו יוסרו מ-Google Play.

נדרשת פעולה​

  1. נכנסים לחשבון Play Console, ועוברים לקטע ההתראות כדי לבדוק אילו אפליקציות מושפעות מהבעיות ומהם המועדים האחרונים לתיקון.
  2. מעדכנים את האפליקציות המושפעות ומתקנים את פרצת האבטחה.
  3. שולחים את הגרסאות המעודכנות של האפליקציות המושפעות.

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

פרטים נוספים

רכיבי WebView המאפשרים JavaScript ומטעינים נתונים שנקראים ממנגנוני Intent לא מהימנים, עלולים להיות מוטעים על ידי אפליקציות זדוניות ולהריץ קוד JavaScript בהקשרים לא מאובטחים. אנחנו ממליצים למנוע פגיעוּת זו באחת מהדרכים הבאות:

אפשרות 1: מקפידים לא לייצא את הפעולות המושפעות

מאתרים את כל הפעילויות המכילות רכיבי WebView מושפעים. אם הפעילויות האלה לא מקבלות מנגנוני Intent מאפליקציות אחרות, ניתן להגדיר android:exported=false עבור הפעילויות במניפסט שלכם. פעולה זו תבטיח שאפליקציות זדוניות לא יוכלו להזיק לנתוני הקלט המגיעים אל רכיבי ה-WebView בזמן פעילויות אלה.

אפשרות 2: מגינים על רכיבי WebView בזמן פעילויות ייצוא

אם ברצונכם להגדיר לייצוא פעילות הכוללת ממשקWebView שמושפע, אנחנו ממליצים על השינויים הבאים:

  1. הגנה על קריאות ל-evaluateJavascript ול-loadUrl

    יש לוודא שהפרמטרים ל-evaluateJavascript מאובטחים תמיד. קריאה ל-evaluateJavascript באמצעות קלט לא מאובטח ממנגנוני Intent לא מהימנים, מאפשרת לתוקפים להריץ סקריפטים מזיקים בממשק ה-WebView המושפע. באופן דומה, תוקפים יוכלו להריץ סקריפטים מזיקים על ידי קריאה ל-loadUrl באמצעות קלט לא מאובטח המכיל כתובות URL של סכמת javascript:‎.

  2. הימנעות מטעינת קבצים לא מאובטחים

    יש לוודא שרכיבי WebView מושפעים לא יוכלו לטעון מסד נתונים של קובצי cookie. רכיבי WebViews שטוענים כתובות URL לא מאובטחות של //:file‎ ממנגנוני Intent לא מהימנים, עלולים להיות יעד תקיפה של אפליקציות זדוניות בשני שלבים. שלב ראשון: דף אינטרנט זדוני עשוי לכתוב תגי <script> לתוך מסד הנתונים של קובצי ה-cookie. שלב שני: אותו קובץ מסד נתונים של קובצי ה-cookie שעבר שינוי יכול להיטען אם אפליקציה זדונית שולחת Intent באמצעות כתובת URL של //:file‎ המצביע על מסד הנתונים של קובצי ה-cookie של רכיב ה-WebView, או אם דף האינטרנט הזדוני מפנה בעצמו את רכיב ה-WebView לכתובת ה-URL של הקובץ. ה-<script> הזדוני השמור במסד הנתונים של קובצי ה-cookie ייטען ויופעל. זה עלול לגרום לגניבת מידע על הפעילות.

    ניתן לוודא שרכיבי WebView מושפעים לא יוכלו לטעון את מסד הנתונים של קובצי ה-cookie של ה-WebView בשלוש דרכים.

    1. להשבית את הגישה לכל הקבצים.
    2. לוודא שרכיבי ה-WebView טוענים רק כתובות URL של //:file‎ ולוודא שכל כתובת URL של //:file‎ שנטענת תצביע על קבצים מאובטחים. חשוב לזכור שהתוקף עלול להשתמש בקישור סמלי כדי להוליך שולל את הבדיקות בנתיב כתובת ה-URL. כדי להימנע מתקיפה כזאת, יש להקפיד לבדוק את הנתיב הקנוני (הרשמי) של כל כתובת URL לא מאובטחת של file://‎ לפני טעינה ולא להסתפק בבדיקה של נתיב כתובת ה-URL בלבד.
    3. אם אתם רוצים לאפשר כתובות URL של //:http‎ וגם כתובות URL של //:file‎, עליכם להטמיע את האימות של כתובות ה-URL של //:file‎ באמצעות shouldOverrideUrlLoading וכמו כן shouldInterceptRequest ב-WebViewClient. פעולה זו תבטיח שכל כתובות ה-URL שייטענו לתוך WebView יהיו מאומתות, ולא רק כתובות ה-URL שמסופקות ישירות לבקשה להפעלת פונקציה ()loadUrl‎.

נשמח לעזור
אם יש לכם שאלות טכניות לגבי פרצת האבטחה, תוכלו לפרסם פוסט באתר Stack Overflow ולהשתמש בתג "android-security". להבהרה לגבי השלבים שיש לבצע עד לפתרון הבעיה, תוכלו לפנות לצוות התמיכה למפתחים.

false
התפריט הראשי
14394989952821912639
true
חיפוש במרכז העזרה
true
true
true
true
true
5016068
false
false