שיפורי אבטחה

אנדרואיד משפרת ללא הרף את יכולות האבטחה וההצעות שלה. ראה את רשימות השיפורים לפי שחרור בניווט השמאלי.

אנדרואיד 14

כל מהדורת אנדרואיד כוללת עשרות שיפורי אבטחה כדי להגן על המשתמשים. להלן כמה משיפורי האבטחה העיקריים הזמינים באנדרואיד 14:

  • AddressSanitizer (HWASan) בעזרת חומרה, שהוצג באנדרואיד 10, הוא כלי לזיהוי שגיאות זיכרון הדומה ל- AddressSanitizer . אנדרואיד 14 מביאה שיפורים משמעותיים ל-HWASan. למד כיצד זה עוזר למנוע מבאגים להפוך אותו למהדורות אנדרואיד, HWAddressSanitizer
  • באנדרואיד 14, החל מאפליקציות המשתפות נתוני מיקום עם צדדים שלישיים, תיבת הדו-שיח להרשאות זמן ריצה של המערכת כוללת כעת קטע שניתן ללחוץ עליו המדגיש את נוהלי שיתוף הנתונים של האפליקציה, כולל מידע כמו מדוע אפליקציה עשויה להחליט לשתף נתונים עם צדדים שלישיים .
  • אנדרואיד 12 הציגה אפשרות להשבית את תמיכת ה-2G ברמת המודם, מה שמגן על המשתמשים מפני סיכון האבטחה הטמון במודל האבטחה המיושן של 2G. מתוך הכרה עד כמה השבתת 2G יכולה להיות קריטית עבור לקוחות ארגוניים, Android 14 מאפשרת תכונת אבטחה זו ב-Android Enterprise, ומציגה תמיכה למנהלי IT להגביל את היכולת של מכשיר מנוהל לשדרג לאחור לקישוריות 2G .
  • נוספה תמיכה לדחיית חיבורים סלולריים מוצפנים אפס, מה שמבטיח שתעבורת קול ו-SMS עם מיתוג מעגל תמיד מוצפן ומוגנת מפני יירוט פסיבי באוויר. למידע נוסף על התוכנית של אנדרואיד להקשחת הקישוריות הסלולרית .
  • נוספה תמיכה עבור מספר IMEIs
  • מאז Android 14, AES-HCTR2 הוא המצב המועדף של הצפנת שמות קבצים עבור מכשירים עם הוראות הצפנה מואצות.
  • קישוריות סלולרית
  • התיעוד נוסף עבור מרכז הבטיחות של Android
  • אם האפליקציה שלך ממקדת ל-Android 14 ומשתמשת בטעינת קוד דינמי (DCL), כל הקבצים הנטענים באופן דינמי חייבים להיות מסומנים כקריאה בלבד. אחרת, המערכת זורקת חריג. אנו ממליצים לאפליקציות להימנע מטעינה דינמית של קוד במידת האפשר, שכן פעולה זו מגדילה מאוד את הסיכון שאפליקציה עלולה להיפגע על ידי הזרקת קוד או שיבוש קוד.

בדוק את הערות הגרסה המלאות של AOSP ואת רשימת התכונות והשינויים של מפתחי אנדרואיד.

אנדרואיד 13

כל מהדורת אנדרואיד כוללת עשרות שיפורי אבטחה כדי להגן על המשתמשים. להלן כמה משיפורי האבטחה העיקריים הזמינים באנדרואיד 13:

  • אנדרואיד 13 מוסיפה תמיכה במצגות מרובות מסמכים. ממשק מפגש מצגות חדש זה מאפשר לאפליקציה לבצע מצגת מרובת מסמכים, דבר שאינו אפשרי עם ה-API הקיים. למידע נוסף, עיין ב'אישור זהות'
  • באנדרואיד 13, כוונות שמקורן באפליקציות חיצוניות מועברות לרכיב מיוצא אם ורק אם הכוונות תואמות לרכיבי סינון הכוונות המוצהרים שלהם.
  • Open Mobile API (OMAPI) הוא API סטנדרטי המשמש לתקשורת עם ה-Secure Element של המכשיר. לפני אנדרואיד 13, רק לאפליקציות ולמודולי מסגרת הייתה גישה לממשק הזה. על ידי המרתו לממשק יציב של הספק, מודולי HAL מסוגלים גם לתקשר עם האלמנטים המאובטחים באמצעות שירות OMAPI. למידע נוסף, ראה ממשק יציב ספק OMAPI .
  • החל מ-Android 13-QPR, מזהי UID משותפים הוצאו משימוש. משתמשי אנדרואיד 13 ומעלה צריכים לשים את השורה `android:sharedUserMaxSdkVersion="32"` במניפסט שלהם. ערך זה מונע ממשתמשים חדשים לקבל UID משותף. למידע נוסף על מזהי UID, ראה חתימת יישומים .
  • אנדרואיד 13 הוסיפה תמיכה בפרימיטיבים קריפטוגרפיים סימטריים של Keystore כגון AES (Advanced Encryption Standard), HMAC (Keyed-Hash Message Authentication Code), ואלגוריתמים קריפטוגרפיים א-סימטריים (כולל Elliptic Curve, RSA2048, RSA4096 ו-Curve 25519)
  • אנדרואיד 13 (רמת API 33) ומעלה תומך בהרשאת זמן ריצה לשליחת הודעות שאינן פטורות מאפליקציה . זה נותן למשתמשים שליטה על הודעות ההרשאה שהם רואים.
  • נוספה הנחיה לפי שימוש עבור אפליקציות המבקשות גישה לכל יומני המכשירים , מה שנותן למשתמשים את היכולת לאפשר או לדחות גישה.
  • הציג את מסגרת הווירטואליזציה של Android (AVF) , המפגישה היפרוויזורים שונים תחת מסגרת אחת עם ממשקי API סטנדרטיים. הוא מספק סביבות ביצוע מאובטחות ופרטיות לביצוע עומסי עבודה מבודדים על ידי היפרוויזר.
  • הוצגה סכימת חתימות APK v3.1 כל סיבובי המפתחות החדשים המשתמשים ב-apksigner ישתמשו בסכימת החתימה v3.1 כברירת מחדל כדי למקד סיבוב עבור Android 13 ומעלה.

בדוק את הערות הגרסה המלאות של AOSP ואת רשימת התכונות והשינויים של מפתחי אנדרואיד.

אנדרואיד 12

כל מהדורת אנדרואיד כוללת עשרות שיפורי אבטחה כדי להגן על המשתמשים. להלן כמה משיפורי האבטחה העיקריים הזמינים באנדרואיד 12:

  • אנדרואיד 12 מציגה את BiometricManager.Strings API , המספק מחרוזות מקומיות עבור אפליקציות המשתמשות ב-BiometricPrompt לאימות. מחרוזות אלו נועדו להיות מודעות למכשיר ולספק יותר ספציפיות לגבי סוגי האימות שניתן להשתמש בהם. אנדרואיד 12 כולל גם תמיכה בחיישני טביעות אצבע מתחת לתצוגה
  • נוספה תמיכה בחיישני טביעות אצבע מתחת לתצוגה
  • הקדמה של שפת ההגדרה של ממשק אנדרואיד עם טביעת אצבע (AIDL)
  • תמיכה ב- Face AIDL החדש
  • הצגת Rust כשפה לפיתוח פלטפורמה
  • נוספה האפשרות למשתמשים להעניק גישה רק למיקומם המשוער
  • נוספו מחווני פרטיות בשורת המצב כאשר אפליקציה משתמשת במצלמה או במיקרופון
  • ליבת המחשב הפרטי של אנדרואיד (PCC)
  • נוספה אפשרות להשבית תמיכה ב-2G

אנדרואיד 11

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

אנדרואיד 10

כל מהדורת אנדרואיד כוללת עשרות שיפורי אבטחה כדי להגן על המשתמשים. אנדרואיד 10 כולל מספר שיפורי אבטחה ופרטיות. עיין בהערות הגרסה של Android 10 לרשימה מלאה של שינויים ב-Android 10.

בִּטָחוֹן

BoundsSnitizer

אנדרואיד 10 פורסת את BoundsSanitizer (BoundSan) ב-Bluetooth וב-codec. BoundSan משתמש ב-Bounds חיטוי של UBSan. הפחתה זו מופעלת ברמת כל מודול. זה עוזר לשמור על רכיבים קריטיים של אנדרואיד מאובטחים ואסור להשבית אותם. BoundSan מופעל ברכיבי ה-codec הבאים:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec
  • libaac
  • libxaac

זיכרון לביצוע בלבד

כברירת מחדל, קטעי קוד הניתנים להפעלה עבור קבצים בינאריים של מערכת AArch64 מסומנים לביצוע בלבד (לא קריא) כאמצעי התקפי התקפות שימוש חוזר בקוד בדיוק בזמן. קוד שמערבב נתונים וקוד יחד וקוד שבודק בכוונה את הקטעים הללו (מבלי למפות מחדש את מקטעי הזיכרון כקריאים) כבר לא מתפקד. אפליקציות עם SDK יעד של אנדרואיד 10 (רמת API 29 ומעלה) מושפעות אם האפליקציה מנסה לקרוא קטעי קוד של ספריות מערכת התומכות בזיכרון הפעלה בלבד (XOM) בזיכרון מבלי לסמן תחילה את הקטע כקריא.

גישה מורחבת

סוכני אמון, המנגנון הבסיסי בו משתמשים מנגנוני אימות שלישוני כגון Smart Lock, יכולים להאריך את הנעילה רק ב-Android 10. סוכני אמון אינם יכולים עוד לבטל את הנעילה של מכשיר נעול ויכולים להחזיק מכשיר פתוח רק למשך ארבע שעות לכל היותר.

אימות פנים

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

חיטוי של גלישה שלמה

אנדרואיד 10 מאפשרת חיטוי של Overflow Sanitization (IntSan) ב-Codec תוכנה. ודא שביצועי ההשמעה מקובלים עבור כל רכיבי Codec שאינם נתמכים בחומרה של המכשיר. IntSan מופעל ברכיבי ה-codec הבאים:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec

רכיבי מערכת מודולריים

אנדרואיד 10 יוצר מודולריזציה של חלק ממרכיבי מערכת אנדרואיד ומאפשרת לעדכן אותם מחוץ למחזור השחרור הרגיל של אנדרואיד. חלק מהמודולים כוללים:

OEMCrypto

אנדרואיד 10 משתמש בגרסה 15 של OEMCrypto API.

סקודו

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

ShadowCallStack

ShadowCallStack (SCS) הוא מצב מכשור של LLVM המגן מפני החלפת כתובת החזרה (כמו הצפת מחסנית מחסנית) על ידי שמירת כתובת ההחזרה של פונקציה למופע ShadowCallStack שהוקצה בנפרד בפרולוג הפונקציות של פונקציות שאינן עלים וטעינת כתובת ההחזרה ממופע ShadowCallStack ב- הפונקציה epilog.

WPA3 ו-Wi-Fi Enhanced Open

אנדרואיד 10 מוסיפה תמיכה בתקני האבטחה הפתוחים של Wi-Fi Protected Access 3 (WPA3) ו-Wi-Fi Enhanced Open כדי לספק פרטיות טובה יותר וחוסן מפני התקפות ידועות.

פְּרָטִיוּת

גישה לאפליקציה בעת מיקוד ל-Android 9 ומטה

אם האפליקציה שלך פועלת על אנדרואיד 10 ומעלה אך ממוקדת לאנדרואיד 9 (רמת API 28) ומטה, הפלטפורמה מיישמת את ההתנהגות הבאה:

  • אם האפליקציה שלך מצהירה על רכיב <uses-permission> עבור ACCESS_FINE_LOCATION או ACCESS_COARSE_LOCATION , המערכת מוסיפה אוטומטית רכיב <uses-permission> עבור ACCESS_BACKGROUND_LOCATION במהלך ההתקנה.
  • אם האפליקציה שלך מבקשת ACCESS_FINE_LOCATION או ACCESS_COARSE_LOCATION , המערכת מוסיפה אוטומטית ACCESS_BACKGROUND_LOCATION לבקשה.

הגבלות על פעילות ברקע

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

מטא נתונים של מצלמה

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

נתוני הלוח

אלא אם האפליקציה שלך היא עורך שיטת הקלט המוגדר כברירת מחדל (IME) או שהיא האפליקציה שיש לה כרגע מיקוד, האפליקציה שלך לא יכולה לגשת לנתוני הלוח ב-Android 10 ומעלה.

מיקום המכשיר

כדי לתמוך בשליטה הנוספת שיש למשתמשים על הגישה של אפליקציה למידע על מיקום, Android 10 מציג את הרשאת ACCESS_BACKGROUND_LOCATION .
בניגוד להרשאות ACCESS_FINE_LOCATION ו- ACCESS_COARSE_LOCATION , הרשאת ACCESS_BACKGROUND_LOCATION משפיעה על הגישה של אפליקציה למיקום רק כשהיא פועלת ברקע. אפליקציה נחשבת לגשת למיקום ברקע אלא אם מתקיים אחד מהתנאים הבאים:

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

אחסון חיצוני

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

  • קבצים בספרייה הספציפית לאפליקציה, אליהם ניתן לגשת באמצעות getExternalFilesDir() .
  • תמונות, סרטונים וקטעי אודיו שהאפליקציה יצרה מחנות המדיה .

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

כתובות MAC אקראית

במכשירים המריצים אנדרואיד 10 ומעלה, המערכת משדרת כתובות MAC אקראיות כברירת מחדל.
אם האפליקציה שלך מטפלת במקרה של שימוש ארגוני , הפלטפורמה מספקת ממשקי API למספר פעולות הקשורות לכתובות MAC:

  • השג כתובת MAC אקראית : אפליקציות בעלי מכשיר ואפליקציות בעלי פרופיל יכולות לאחזר את כתובת ה-MAC האקראית שהוקצתה לרשת ספציפית על ידי קריאה ל- getRandomizedMacAddress() .
  • השג כתובת MAC אמיתית של היצרן: אפליקציות של בעלי מכשיר יכולות לאחזר את כתובת ה-MAC של החומרה האמיתית של מכשיר על ידי קריאה ל- getWifiMacAddress() . שיטה זו שימושית למעקב אחר ציי מכשירים.

מזהי מכשירים שאינם ניתנים לאיפוס

החל מ-Android 10, לאפליקציות חייבות להיות ההרשאה המוסמכת READ_PRIVILEGED_PHONE_STATE כדי לגשת למזהים הבלתי ניתנים לאיפוס של המכשיר, הכוללים גם IMEI וגם מספר סידורי.

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

  • אם האפליקציה שלך מתמקדת ב-Android 10 ומעלה, מתרחשת חריגה SecurityException .
  • אם האפליקציה שלך ממקדת ל-Android 9 (רמת API 28) ומטה, השיטה מחזירה נתוני null או מציין מיקום אם לאפליקציה יש הרשאת READ_PHONE_STATE . אחרת, תתרחש SecurityException .

זיהוי פעילות גופנית

Android 10 מציג את הרשאת זמן הריצה android.permission.ACTIVITY_RECOGNITION עבור אפליקציות שצריכות לזהות את ספירת הצעדים של המשתמש או לסווג את הפעילות הגופנית של המשתמש, כגון הליכה, רכיבה על אופניים או תנועה ברכב. זה נועד לתת למשתמשים ראות כיצד נעשה שימוש בנתוני חיישני המכשיר בהגדרות.
חלק מהספריות בשירותי Google Play, כגון ה- API לזיהוי פעילות וממשק ה- API של Google Fit , אינן מספקות תוצאות אלא אם המשתמש העניק לאפליקציה שלך הרשאה זו.
החיישנים המובנים היחידים במכשיר שדורשים ממך להצהיר על הרשאה זו הם חיישני מונה הצעדים וגלאי הצעדים .
אם האפליקציה שלך ממקדת ל-Android 9 (רמת API 28) ומטה, המערכת מעניקה אוטומטית את הרשאת android.permission.ACTIVITY_RECOGNITION לאפליקציה שלך, לפי הצורך, אם האפליקציה שלך עומדת בכל אחד מהתנאים הבאים:

  • קובץ המניפסט כולל את ההרשאה com.google.android.gms.permission.ACTIVITY_RECOGNITION .
  • קובץ המניפסט אינו כולל את ההרשאה android.permission.ACTIVITY_RECOGNITION .

אם המערכת האוטומטית מעניקה את ההרשאה android.permission.ACTIVITY_RECOGNITION , האפליקציה שלך תשמור על ההרשאה לאחר שתעדכן את האפליקציה שלך למיקוד Android 10. עם זאת, המשתמש יכול לבטל הרשאה זו בכל עת בהגדרות המערכת.

/proc/net הגבלות על מערכת הקבצים

במכשירים המריצים אנדרואיד 10 ומעלה, אפליקציות לא יכולות לגשת ל- /proc/net , הכולל מידע על מצב הרשת של המכשיר. אפליקציות הזקוקות לגישה למידע זה, כגון VPNs, צריכות להשתמש במחלקה NetworkStatsManager או ConnectivityManager .

קבוצות ההרשאה הוסרו מממשק המשתמש

החל מ-Android 10, אפליקציות לא יכולות לחפש כיצד הרשאות מקובצות בממשק המשתמש.

הסרת זיקה לאנשי קשר

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

גישה מוגבלת לתוכן המסך

כדי להגן על תוכן המסך של המשתמשים, אנדרואיד 10 מונעת גישה שקטה לתוכן המסך של המכשיר על ידי שינוי היקף ההרשאות READ_FRAME_BUFFER , CAPTURE_VIDEO_OUTPUT ו- CAPTURE_SECURE_VIDEO_OUTPUT . החל מ-Android 10, ההרשאות הללו הן גישה לחתימה בלבד.
אפליקציות שצריכות לגשת לתוכן המסך של המכשיר צריכות להשתמש ב- MediaProjection API, המציג הנחיה המבקשת מהמשתמש לספק הסכמה.

מספר סידורי של מכשיר USB

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

וויי - פיי

אפליקציות הממוקדות ל-Android 10 ומעלה אינן יכולות להפעיל או להשבית Wi-Fi. השיטה WifiManager.setWifiEnabled() תמיד מחזירה false .
אם אתה צריך לבקש מהמשתמשים להפעיל ולהשבית Wi-Fi, השתמש בחלונית הגדרות .

הגבלות על גישה ישירה לרשתות Wi-Fi מוגדרות

כדי להגן על פרטיות המשתמש, תצורה ידנית של רשימת רשתות ה-Wi-Fi מוגבלת ליישומי מערכת ובקרי מדיניות התקנים (DPCs) . DPC נתון יכול להיות בעל המכשיר או בעל הפרופיל.
אם האפליקציה שלך ממקדת ל-Android 10 ומעלה, והיא לא אפליקציית מערכת או DPC, השיטות הבאות לא מחזירות נתונים שימושיים:

אנדרואיד 9

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

אנדרואיד 8

כל מהדורת אנדרואיד כוללת עשרות שיפורי אבטחה כדי להגן על המשתמשים. להלן כמה משיפורי האבטחה העיקריים הזמינים באנדרואיד 8.0:

  • הצפנה . נוספה תמיכה לפינוי מפתח בפרופיל העבודה.
  • אתחול מאומת . נוסף אתחול מאומת של אנדרואיד (AVB). בסיס קוד אתחול מאומת התומך בהגנה לאחור לשימוש במעמיסי אתחול שנוספו ל-AOSP. המלץ על תמיכה ב-bootloader להגנת החזרה לאחור עבור HLOS. ניתן לבטל את הנעילה של מעמיסי אתחול ממליצים רק על ידי אינטראקציה פיזית של המשתמש עם המכשיר.
  • מסך נעילה . נוספה תמיכה בשימוש בחומרה עמידה בפני חבלה כדי לאמת את אישור מסך הנעילה.
  • חנות מפתח . אישור מפתח נדרש עבור כל המכשירים הנשלחים עם Android 8.0+. נוספה תמיכה בהוכחת זיהוי כדי לשפר את רישום Zero Touch.
  • ארגז חול . ארגז חול הדוק יותר רכיבים רבים באמצעות הממשק הסטנדרטי של Project Treble בין רכיבים ספציפיים למסגרת ומכשיר. החיל סינון seccomp על כל האפליקציות שאינן מהימנות כדי לצמצם את משטח ההתקפה של הקרנל. WebView מופעלת כעת בתהליך מבודד עם גישה מוגבלת מאוד לשאר המערכת.
  • התקשות גרעין . הטמעת עותק משתמש מוקשח , אמולציית PAN, קריאה בלבד לאחר init ו-KASLR.
  • הקשחת מרחב המשתמש . הטמיע CFI עבור ערימת המדיה. שכבות-על של אפליקציות כבר לא יכולות לכסות חלונות קריטיים למערכת ולמשתמשים יש דרך לבטל אותם.
  • עדכון מערכת הפעלה זורמת . עדכונים מופעלים במכשירים ששטח הדיסק שלהם נמוך.
  • התקן אפליקציות לא ידועות . משתמשים חייבים להעניק הרשאה להתקין אפליקציות ממקור שאינו חנות אפליקציות של צד ראשון.
  • פרטיות . ל-Android ID (SSAID) יש ערך שונה לכל אפליקציה ולכל משתמש במכשיר. עבור אפליקציות דפדפן אינטרנט, Widevine Client ID מחזיר ערך שונה עבור כל שם חבילת אפליקציה ומקור אינטרנט. net.hostname כעת ריק ולקוח ה-dhcp כבר לא שולח שם מארח. android.os.Build.SERIAL הוחלף ב- Build.SERIAL API המוגן מאחורי הרשאה הנשלטת על ידי המשתמש. שיפור באקראיות של כתובות MAC בכמה ערכות שבבים.

אנדרואיד 7

כל מהדורת אנדרואיד כוללת עשרות שיפורי אבטחה כדי להגן על המשתמשים. להלן כמה משיפורי האבטחה העיקריים הזמינים באנדרואיד 7.0:

  • הצפנה מבוססת קבצים . הצפנה ברמת הקובץ, במקום להצפין את כל שטח האחסון כיחידה אחת, מבודדת ומגינה טוב יותר על משתמשים ופרופילים בודדים (כגון אישי ועבודה) במכשיר.
  • אתחול ישיר . מופעל על ידי הצפנה מבוססת קבצים, אתחול ישיר מאפשר לאפליקציות מסוימות כגון שעון מעורר ותכונות נגישות לפעול כאשר המכשיר מופעל אך אינו נעול.
  • אתחול מאומת . אתחול מאומת נאכף כעת בקפדנות כדי למנוע אתחול של מכשירים שנפגעו; הוא תומך בתיקון שגיאות כדי לשפר את המהימנות נגד השחתת נתונים לא זדונית.
  • SELinux . תצורת SELinux מעודכנת וכיסוי מוגבר של ה-seccomp נועלים עוד יותר את ארגז החול של האפליקציה ומצמצמים את משטח ההתקפה.
  • אקראית לפי סדר עומס של ספרייה ו-ASLR משופר . אקראיות מוגברת הופכת חלק מהתקפות שימוש חוזר בקוד לפחות אמינות.
  • התקשות גרעין . הוספה הגנה נוספת על זיכרון עבור גרעינים חדשים יותר על ידי סימון חלקים מזיכרון הליבה כקריאה בלבד, הגבלת גישת הליבה לכתובות של מרחב המשתמש והפחתה נוספת של משטח ההתקפה הקיים.
  • סכימת חתימות APK v2 . הציג סכימת חתימה של קובץ שלם המשפרת את מהירות האימות ומחזקת ערבויות שלמות.
  • חנות CA מהימנה . כדי להקל על אפליקציות לשלוט בגישה לתעבורת הרשת המאובטחת שלהן, רשויות אישורים שהותקנו על ידי משתמשים וכאלה שהותקנו באמצעות ממשקי API של ניהול מכשיר אינם מהימנים כברירת מחדל עבור אפליקציות המתמקדות ב-API ברמה 24+. בנוסף, כל מכשירי האנדרואיד החדשים חייבים להישלח עם אותה חנות CA מהימנה.
  • תצורת אבטחת רשת . הגדר את אבטחת הרשת ואת TLS באמצעות קובץ תצורה הצהרתי.

אנדרואיד 6

כל מהדורת אנדרואיד כוללת עשרות שיפורי אבטחה כדי להגן על המשתמשים. להלן כמה משיפורי האבטחה העיקריים הזמינים באנדרואיד 6.0:

  • הרשאות זמן ריצה . יישומים מבקשים הרשאות בזמן ריצה במקום להיות מוענקות בזמן התקנת האפליקציה. משתמשים יכולים להפעיל ולכבות הרשאות הן עבור יישומי M והן לפני M.
  • אתחול מאומת . ערכה של בדיקות קריפטוגרפיות של תוכנת המערכת מתבצעת לפני הביצוע כדי לוודא שהטלפון תקין ממטען האתחול ועד למערכת ההפעלה.
  • אבטחה מבודדת חומרה . שכבת אבסטרקציית חומרה חדשה (HAL) בשימוש על ידי Fingerprint API, Lockscreen, Device Encryption ואישורי לקוח כדי להגן על מפתחות מפני התפשרות ליבה ו/או התקפות פיזיות מקומיות
  • טביעות אצבע . כעת ניתן לבטל את הנעילה של מכשירים בלחיצה אחת בלבד. מפתחים יכולים גם לנצל ממשקי API חדשים כדי להשתמש בטביעות אצבע כדי לנעול ולפתוח מפתחות הצפנה.
  • אימוץ כרטיס SD . ניתן לאמץ מדיה נשלפת למכשיר ולהרחיב את האחסון הזמין עבור נתונים מקומיים של אפליקציה, תמונות, סרטונים וכו', אך עדיין להיות מוגן על ידי הצפנה ברמת הבלוק.
  • נקה תנועת טקסט . מפתחים יכולים להשתמש ב-StrictMode חדש כדי לוודא שהאפליקציה שלהם לא משתמשת בטקסט ברור.
  • הקשחת מערכת . הקשחת המערכת באמצעות מדיניות שנאכפת על ידי SELinux. זה מציע בידוד טוב יותר בין משתמשים, סינון IOCTL, הפחתת האיום של שירותים חשופים, הידוק נוסף של דומיינים של SELinux וגישה מוגבלת ביותר ל/proc.
  • בקרת גישה ל-USB: על המשתמשים לאשר לאפשר גישת USB לקבצים, לאחסון או לפונקציונליות אחרת בטלפון. ברירת המחדל היא כעת חיוב רק עם גישה לאחסון הדורשת אישור מפורש מהמשתמש.

אנדרואיד 5

5.0

כל מהדורת אנדרואיד כוללת עשרות שיפורי אבטחה כדי להגן על המשתמשים. להלן כמה משיפורי האבטחה העיקריים הזמינים באנדרואיד 5.0:

  • מוצפן כברירת מחדל. במכשירים הנשלחים עם L מחוץ לקופסה, הצפנת דיסק מלאה מופעלת כברירת מחדל כדי לשפר את ההגנה על נתונים על מכשירים שאבדו או נגנבו. ניתן להצפין מכשירים שמתעדכנים ל-L בהגדרות > אבטחה .
  • הצפנת דיסק מלאה משופרת. סיסמת המשתמש מוגנת מפני התקפות של כוח גס באמצעות scrypt , ובמידת האפשר, המפתח קשור למאגר המפתחות של החומרה כדי למנוע התקפות מחוץ למכשיר. כמו תמיד, סוד נעילת מסך אנדרואיד ומפתח ההצפנה של המכשיר אינם נשלחים מהמכשיר או נחשפים לאפליקציה כלשהי.
  • ארגז חול אנדרואיד מחוזק ב-SELinux . אנדרואיד דורשת כעת את SELinux במצב אכיפה עבור כל הדומיינים. SELinux היא מערכת בקרת גישה חובה (MAC) בליבת לינוקס המשמשת להגדלת מודל האבטחה הקיים של בקרת גישה לפי שיקול דעת (DAC). שכבה חדשה זו מספקת הגנה נוספת מפני פרצות אבטחה אפשריות.
  • Smart Lock. אנדרואיד כולל כעת trustlets המספקים גמישות רבה יותר לפתיחת מכשירים. לדוגמה, trustlets יכולים לאפשר ביטול נעילה אוטומטי של מכשירים כאשר הם קרובים למכשיר מהימן אחר (דרך NFC, Bluetooth) או בשימוש על ידי מישהו עם פנים מהימנות.
  • ריבוי משתמשים, פרופיל מוגבל ומצבי אורח עבור טלפונים וטאבלטים. אנדרואיד מספקת כעת מספר משתמשים בטלפונים וכוללת מצב אורח שניתן להשתמש בו כדי לספק גישה זמנית קלה למכשיר שלך מבלי להעניק גישה לנתונים ולאפליקציות שלך.
  • עדכונים ל-WebView ללא OTA. כעת ניתן לעדכן את WebView ללא תלות במסגרת וללא OTA של מערכת. זה יאפשר תגובה מהירה יותר לבעיות אבטחה פוטנציאליות ב-WebView.
  • קריפטוגרפיה מעודכנת עבור HTTPS ו-TLS/SSL. TLSv1.2 ו-TLSv1.1 מופעלים כעת, כעת מועדף סודיות קדימה, AES-GCM מופעל כעת, וחבילות צופן חלשות (MD5, 3DES וחבילות צופן ייצוא) מושבתות כעת. ראה https://developer.android.com/reference/javax/net/ssl/SSLSocket.html לפרטים נוספים.
  • תמיכת קישור ללא PIE הוסרה. אנדרואיד דורשת כעת את כל קובצי ההפעלה המקושרים באופן דינמי כדי לתמוך ב-PIE (קובצי הפעלה בלתי תלויים במיקום). זה משפר את יישום הפריסה האקראית של מרחב הכתובות (ASLR) של אנדרואיד.
  • שיפורים FORTIFY_SOURCE. הפונקציות הבאות של libc מיישמות כעת הגנות FORTIFY_SOURCE: stpcpy() , stpncpy() , read() , recvfrom() , FD_CLR() , FD_SET() ו- FD_ISSET() . זה מספק הגנה מפני פגיעויות של שחיתות זיכרון המערבות פונקציות אלו.
  • תיקוני אבטחה. אנדרואיד 5.0 כולל גם תיקונים עבור פרצות ספציפיות לאנדרואיד. מידע על פגיעויות אלו נמסר לחברי Open Handset Alliance, ותיקונים זמינים ב-Android Open Source Project. כדי לשפר את האבטחה, מכשירים מסוימים עם גרסאות קודמות של אנדרואיד עשויים לכלול גם תיקונים אלה.

אנדרואיד 4 ומטה

כל מהדורת אנדרואיד כוללת עשרות שיפורי אבטחה כדי להגן על המשתמשים. להלן חלק משיפורי האבטחה הזמינים באנדרואיד 4.4:

  • ארגז חול אנדרואיד מחוזק ב-SELinux. אנדרואיד משתמשת כעת ב-SELinux במצב אכיפה. SELinux היא מערכת בקרת גישה חובה (MAC) בליבת לינוקס המשמשת להגדלת מודל האבטחה הקיים מבוסס בקרת גישה (DAC). זה מספק הגנה נוספת מפני פרצות אבטחה אפשריות.
  • VPN לכל משתמש. במכשירים מרובי משתמשים, VPNs מוחלים כעת לכל משתמש. זה יכול לאפשר למשתמש לנתב את כל תעבורת הרשת דרך VPN מבלי להשפיע על משתמשים אחרים במכשיר.
  • תמיכה בספק ECDSA ב-AndroidKeyStore. לאנדרואיד יש כעת ספק מאגר מפתחות המאפשר שימוש באלגוריתמים של ECDSA ו-DSA.
  • אזהרות ניטור מכשירים. אנדרואיד מספקת למשתמשים אזהרה אם נוספה אישור כלשהו למאגר אישורי המכשיר שיכול לאפשר ניטור של תעבורת רשת מוצפנת.
  • FORTIFY_SOURCE. אנדרואיד תומך כעת ב- FORTIFY_SOURCE ברמה 2, וכל הקוד מורכב עם הגנות אלו. FORTIFY_SOURCE שופר לעבודה עם קלאנג.
  • הצמדת תעודה. אנדרואיד 4.4 מזהה ומונעת שימוש בתעודות הונאה של Google המשמשות בתקשורת SSL/TLS מאובטחת.
  • תיקוני אבטחה. אנדרואיד 4.4 כולל גם תיקונים עבור פרצות ספציפיות לאנדרואיד. מידע על פגיעויות אלו נמסר לחברי Open Handset Alliance ותיקונים זמינים ב-Android Open Source Project. כדי לשפר את האבטחה, מכשירים מסוימים עם גרסאות קודמות של אנדרואיד עשויים לכלול גם תיקונים אלה.

כל מהדורת אנדרואיד כוללת עשרות שיפורי אבטחה כדי להגן על המשתמשים. להלן כמה משיפורי האבטחה הזמינים באנדרואיד 4.3:

  • ארגז חול אנדרואיד מחוזק ב-SELinux. מהדורה זו מחזקת את ארגז החול של אנדרואיד באמצעות מערכת בקרת הגישה החובה של SELinux (MAC) בליבת לינוקס. חיזוק SELinux אינו נראה למשתמשים ומפתחים, ומוסיף חוסן למודל האבטחה הקיים של אנדרואיד תוך שמירה על תאימות עם אפליקציות קיימות. כדי להבטיח תאימות מתמשכת מהדורה זו מאפשרת שימוש ב-SELinux במצב מתירני. מצב זה מתעד כל הפרות מדיניות, אך לא ישבור יישומים או ישפיע על התנהגות המערכת.
  • אין תוכניות setuid/setgid. הוספה תמיכה ביכולות מערכת הקבצים לקבצי מערכת אנדרואיד והסרה את כל תוכניות setuid/setguid. זה מקטין את משטח התקפת השורש ואת הסבירות לפרצות אבטחה פוטנציאליות.
  • אימות ADB. מאז אנדרואיד 4.2.2, חיבורים ל-ADB מאומתים באמצעות צמד מפתחות RSA. זה מונע שימוש לא מורשה ב-ADB כאשר לתוקף יש גישה פיזית למכשיר.
  • הגבל את Setuid מאפליקציות אנדרואיד. מחיצת /system מותקנת כעת nosuid עבור תהליכים שהולידה זיגוטה, ומונעת מיישומי אנדרואיד להפעיל תוכניות setuid. זה מקטין את משטח התקפת השורש ואת הסבירות לפרצות אבטחה פוטנציאליות.
  • גבול יכולת. Android zygote ו-ADB משתמשים כעת ב-prctl(PR_CAPBSET_DROP) כדי להוריד יכולות מיותרות לפני הפעלת יישומים. זה מונע מיישומי אנדרואיד ויישומים שהושקו מהמעטפת לרכוש יכולות מורשות.
  • ספק AndroidKeyStore. לאנדרואיד יש כעת ספק מאגר מפתחות המאפשר לאפליקציות ליצור מפתחות שימוש בלעדי. זה מספק ליישומים ממשק API ליצירה או אחסון של מפתחות פרטיים שלא ניתן להשתמש בהם על ידי יישומים אחרים.
  • KeyChain isBoundKeyAlgorithm. Keychain API מספק כעת שיטה (isBoundKeyType) המאפשרת ליישומים לאשר שמפתחות כלל המערכת קשורים לשורש חומרה של אמון עבור המכשיר. זה מספק מקום ליצור או לאחסן מפתחות פרטיים שלא ניתן לייצא מהמכשיר, אפילו במקרה של פגיעה בשורש.
  • NO_NEW_PRIVS. Android zygote משתמש כעת ב-prctl(PR_SET_NO_NEW_PRIVS) כדי לחסום הוספה של הרשאות חדשות לפני ביצוע קוד יישום. זה מונע מיישומי אנדרואיד לבצע פעולות שיכולות להעלות הרשאות באמצעות execve. (זה דורש גרסת ליבת לינוקס 3.5 ומעלה).
  • שיפורים של FORTIFY_SOURCE. פעיל FORTIFY_SOURCE ב-Android x86 ו-MIPS וקריאות מבוצרות strchr(), strrchr(), strlen() ו-umask(). זה יכול לזהות פגיעויות פוטנציאליות של שחיתות זיכרון או קבועי מחרוזת בלתי נגמרים.
  • הגנות רילוקיישן. אפשרו העברות לקריאה בלבד (relro) עבור קובצי הפעלה מקושרים סטטית והסירו את כל העברות הטקסט בקוד אנדרואיד. זה מספק הגנה מעמיקה מפני פגיעויות פוטנציאליות של שחיתות זיכרון.
  • EntropyMixer משופר. EntropyMixer כותב כעת אנטרופיה בעת כיבוי/אתחול מחדש, בנוסף לערבוב תקופתי. זה מאפשר שמירה על כל האנטרופיה שנוצרת בזמן שהמכשירים מופעלים, והוא שימושי במיוחד עבור מכשירים שמופעלים מחדש מיד לאחר ההקצאה.
  • תיקוני אבטחה. אנדרואיד 4.3 כולל גם תיקונים עבור פרצות ספציפיות לאנדרואיד. מידע על פגיעויות אלו נמסר לחברי Open Handset Alliance ותיקונים זמינים ב-Android Open Source Project. כדי לשפר את האבטחה, מכשירים מסוימים עם גרסאות קודמות של אנדרואיד עשויים לכלול גם תיקונים אלה.

אנדרואיד מספקת מודל אבטחה רב-שכבתי המתואר בסקירת האבטחה של Android . כל עדכון לאנדרואיד כולל עשרות שיפורי אבטחה כדי להגן על המשתמשים. להלן כמה משיפורי האבטחה שהוצגו באנדרואיד 4.2:

  • אימות אפליקציה - משתמשים יכולים לבחור להפעיל "אמת אפליקציות" ולבצע סינון של יישומים על ידי מאמת אפליקציה, לפני ההתקנה. אימות אפליקציה יכול להתריע בפני המשתמש אם הוא מנסה להתקין אפליקציה שעלולה להזיק; אם אפליקציה גרועה במיוחד, זה יכול לחסום את ההתקנה.
  • יותר שליטה ב-SMS פרימיום - אנדרואיד תספק התראה אם ​​אפליקציה תנסה לשלוח SMS לקוד קצר המשתמש בשירותי פרימיום שעלולים לגרום לחיובים נוספים. המשתמש יכול לבחור אם לאפשר לאפליקציה לשלוח את ההודעה או לחסום אותה.
  • VPN תמיד פועל - ניתן להגדיר VPN כך שלאפליקציות לא תהיה גישה לרשת עד ליצירת חיבור VPN. זה מונע מיישומים לשלוח נתונים על פני רשתות אחרות.
  • הצמדת אישורים - ספריות הליבה של Android תומכות כעת בהצמדת אישורים . דומיינים מוצמדים יקבלו כשל באימות אישור אם האישור אינו משורשר לקבוצה של אישורים צפויים. זה מגן מפני פשרה אפשרית של רשויות האישורים.
  • תצוגה משופרת של הרשאות אנדרואיד - ההרשאות אורגנו בקבוצות המובנות יותר למשתמשים. במהלך סקירת ההרשאות, המשתמש יכול ללחוץ על ההרשאה כדי לראות מידע מפורט יותר על ההרשאה.
  • התקשות מותקנות - הדמון installd אינו פועל כמשתמש השורש, מה שמפחית את משטח ההתקפה הפוטנציאלי להסלמה של הרשאות שורש.
  • הקשחת script init - סקריפטים של init מיישמים כעת סמנטיקה של O_NOFOLLOW כדי למנוע התקפות הקשורות ל-Symlink.
  • FORTIFY_SOURCE - אנדרואיד מיישמת כעת FORTIFY_SOURCE . זה משמש ספריות ויישומים של המערכת כדי למנוע השחתת זיכרון.
  • תצורת ברירת המחדל של ContentProvider - יישומים המכוונים לרמת API 17 יוגדרו כברירת מחדל "ייצוא" ל-"false" עבור כל ספק תוכן , מה שמפחית את משטח ההתקפה המוגדר כברירת מחדל עבור יישומים.
  • קריפטוגרפיה - שינה את מימושי ברירת המחדל של SecureRandom ו- Cipher.RSA לשימוש ב-OpenSSL. נוספה תמיכת SSL Socket עבור TLSv1.1 ו-TLSv1.2 באמצעות OpenSSL 1.0.1
  • תיקוני אבטחה - ספריות קוד פתוח משודרגות עם תיקוני אבטחה כוללות WebKit, libpng, OpenSSL ו-LibXML. אנדרואיד 4.2 כולל גם תיקונים עבור פרצות ספציפיות לאנדרואיד. מידע על פגיעויות אלו נמסר לחברי Open Handset Alliance ותיקונים זמינים ב-Android Open Source Project. כדי לשפר את האבטחה, מכשירים מסוימים עם גרסאות קודמות של אנדרואיד עשויים לכלול גם תיקונים אלה.

אנדרואיד מספקת מודל אבטחה רב-שכבתי המתואר בסקירת האבטחה של Android . כל עדכון לאנדרואיד כולל עשרות שיפורי אבטחה כדי להגן על המשתמשים. להלן כמה משיפורי האבטחה שהוצגו בגרסאות אנדרואיד 1.5 עד 4.1:

אנדרואיד 1.5
  • ProPolice למניעת חריפות מחסנית מחסנית (-fstack-protector)
  • safe_iop כדי להפחית את הצפת מספרים שלמים
  • הרחבות ל- OpenBSD dlmalloc כדי למנוע פגיעויות כפולות של free() ולמנוע התקפות של קונסולידציה של נתחים. התקפות קונסולידציה של נתחים הן דרך נפוצה לנצל שחיתות ערימה.
  • OpenBSD calloc למניעת הצפת מספרים שלמים במהלך הקצאת זיכרון
אנדרואיד 2.3
  • הגנות מפני פגיעות של מחרוזת (-Wformat-security -Werror=format-security)
  • מבוסס חומרה No eXecute (NX) למניעת ביצוע קוד בערימה ובערימה
  • Linux mmap_min_addr כדי לצמצם את הסלמה של הרשאות הרשאות מצביע null (משופר עוד יותר באנדרואיד 4.1)
אנדרואיד 4.0
רנדומיזציה של פריסת מרחב כתובות (ASLR) כדי לבצע אקראית מיקומי מפתח בזיכרון
אנדרואיד 4.1
  • תמיכה ב-PIE (Position Independent Executable).
  • העברות לקריאה בלבד / כריכה מיידית (-Wl,-z,relro -Wl,-z,now)
  • dmesg_restrict מופעל (הימנע מדליפת כתובות ליבה)
  • kptr_restrict מופעל (הימנע מדליפת כתובות ליבה)