אבטחת מכשיר Android

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

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

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

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

בנוסף להיותה פלטפורמה יציבה שאפשר לבנות עליה, מערכת Android מספקת למפתחים תמיכה נוספת בכמה דרכים. צוות האבטחה של Android מחפש נקודות חולשה פוטנציאליות באפליקציות ומציע דרכים לפתור את הבעיות האלה. במכשירים עם Google Play, ‏ Play Services מספק עדכוני אבטחה לספריות תוכנה קריטיות, כמו OpenSSL, שמשמשת לאבטחת התקשורת בין האפליקציות. צוות האבטחה של Android השיק כלי לבדיקת SSL‏ (nogotofail) שעוזר למפתחים למצוא בעיות אבטחה פוטנציאליות בכל פלטפורמה שבה הם מפתחים.

ב-Android נעשה שימוש גם בתמיכה הבסיסית של החומרה באבטחה. לדוגמה, נעשה שימוש בטכנולוגיית ARM TrustZone כדי לספק אחסון מאובטח למפתחות קריפטוגרפיים וגם לאישורים של תקינות האתחול. ‫DICE משמש למדידת קושחה שנטענת לפני אתחול Android. כך אפשר לבצע אימות מרחוק שהקושחה לא מושפעת מנקודות חולשה קריטיות ומוכרות, שאפשר לנצל כדי לפגוע במפתחים ובמשתמשים.

מפתחי אפליקציות ל-Android יכולים למצוא מידע נוסף בכתובת developer.android.com.

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

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

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

רקע

‫Android מספקת פלטפורמת קוד פתוח וסביבת אפליקציות למכשירים ניידים.

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

איור 1: מחסנית תוכנה של Android

איור 1. סטאק תוכנות של Android

אבני הבניין העיקריות של פלטפורמת Android הן:

  • חומרה של מכשירים: מערכת Android פועלת במגוון רחב של תצורות חומרה, כולל טלפונים ניידים, טאבלטים, שעונים, מכוניות, טלוויזיות חכמות, ממירים וקופסאות גיימינג בשיטת OTT. מערכת Android לא תלויה במעבד, אבל היא מנצלת יכולות אבטחה ספציפיות לחומרה, כמו ARM eXecute-Never.
  • מערכת ההפעלה Android: מערכת ההפעלה הבסיסית מבוססת על ליבת Linux. הגישה לכל משאבי המכשיר, כמו פונקציות המצלמה, נתוני GPS, פונקציות Bluetooth, פונקציות טלפוניה וחיבורים לרשת, מתבצעת דרך מערכת ההפעלה.
  • סביבת זמן הריצה של אפליקציות Android‏ (ART): אפליקציות Android נכתבות בדרך כלל בשפת התכנות Java ופועלות בסביבת זמן הריצה של Android‏ (ART). עם זאת, הרבה אפליקציות, כולל אפליקציות ושירותי ליבה של Android, הן אפליקציות מקוריות או כוללות ספריות מקוריות. גם ART וגם אפליקציות מותאמות פועלות באותה סביבת אבטחה, שמוכלת בארגז החול של האפליקציה. אפליקציות מקבלות חלק ייעודי במערכת הקבצים שבו הן יכולות לכתוב נתונים פרטיים, כולל מסדי נתונים וקבצים גולמיים.

אפליקציות ל-Android מרחיבות את ליבת מערכת ההפעלה Android. יש שני מקורות עיקריים לאפליקציות:

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

שירותי האבטחה של Google

‫Google מספקת קבוצה של שירותים מבוססי-ענן שזמינים במכשירי Android תואמים עם Google Mobile Services. השירותים האלה לא כלולים ב-Android Open Source Project‏ (AOSP), אבל הם כלולים במכשירי Android רבים. מידע נוסף על חלק מהשירותים האלה זמין בסקירה השנתית של Android Security לשנת 2018.

שירותי האבטחה העיקריים של Google הם:

  • Google Play:‏ Google Play הוא אוסף של שירותים שמאפשרים למשתמשים לגלות, להתקין ולקנות אפליקציות ממכשיר Android או מהאינטרנט. פלטפורמת Google Play מאפשרת למפתחים להגיע בקלות למשתמשי Android וללקוחות פוטנציאליים. ב-Google Play יש גם ביקורות של הקהילה, אימות של רישיון האפליקציה, סריקה של אבטחת האפליקציה ושירותי אבטחה אחרים.
  • עדכוני Android: שירות העדכונים של Android מספק יכולות חדשות ועדכוני אבטחה למכשירי Android נבחרים, כולל עדכונים דרך האינטרנט או OTA.
  • שירותי אפליקציות: מסגרות שמאפשרות לאפליקציות Android להשתמש ביכולות ענן כמו (גיבוי) נתוני אפליקציות והגדרות, והודעות מהענן למכשיר (C2DM) להודעות פוש.
  • אימות אפליקציות: מזהיר מפני התקנה של אפליקציות מזיקות או חוסם אותה באופן אוטומטי, וסורק באופן רציף את האפליקציות במכשיר, מזהיר מפני אפליקציות מזיקות או מסיר אותן.
  • SafetyNet: מערכת לשמירה על פרטיות ולזיהוי פריצות, שמסייעת ל-Google לעקוב אחרי איומי אבטחה מוכרים ולצמצם אותם, וגם לזהות איומי אבטחה חדשים.
  • אימות SafetyNet: API של צד שלישי שקובע אם המכשיר תואם ל-CTS. אימות יכול גם לזהות את אפליקציית Android שמתקשרת עם שרת האפליקציות.
  • האפליקציה 'ניהול מכשיר ה-Android': אפליקציית אינטרנט ואפליקציית Android לאיתור מכשיר שאבד או נגנב.

סקירה כללית של תוכנית האבטחה

הרכיבים העיקריים של תוכנית האבטחה של Android כוללים:

  • בדיקת עיצוב: תהליך האבטחה של Android מתחיל בשלב מוקדם במחזור חיי הפיתוח, עם יצירה של מודל ועיצוב אבטחה עשירים וניתנים להגדרה. כל תכונה מרכזית בפלטפורמה נבדקת על ידי צוותי הנדסה ואבטחה, ואמצעי בקרה מתאימים משולבים בארכיטקטורה של המערכת.
  • בדיקות חדירה ובדיקות קוד: במהלך הפיתוח של הפלטפורמה, רכיבים שנוצרו ב-Android ורכיבים בקוד פתוח עוברים בדיקות אבטחה קפדניות. הביקורות האלה מתבצעות על ידי צוות האבטחה של Android, צוות הנדסת אבטחת המידע של Google ויועצי אבטחה עצמאיים. המטרה של הבדיקות האלה היא לזהות חולשות ונקודות תורפה אפשריות הרבה לפני מהדורות גדולות, ולבצע סימולציה של סוגי הניתוחים שמבצעים מומחי אבטחה חיצוניים עם השקת המהדורה.
  • קוד פתוח ובדיקה על ידי הקהילה: AOSP מאפשר בדיקת אבטחה רחבה על ידי כל גורם שמתעניין בכך. ב-Android נעשה שימוש גם בטכנולוגיות קוד פתוח שעברו בדיקת אבטחה חיצונית משמעותית, כמו ליבת לינוקס. ‫Google Play מספקת פורום למשתמשים ולחברות שבו הם יכולים לספק מידע על אפליקציות ספציפיות ישירות למשתמשים.
  • תגובה לאירועים: גם עם אמצעי הזהירות האלה, יכולות להתרחש בעיות אבטחה אחרי המשלוח. לכן, בפרויקט Android נוצר תהליך מקיף של תגובה לאירועים. חברי צוות האבטחה של Android במשרה מלאה עוקבים אחרי דיונים בקהילת האבטחה הכללית ובקהילת האבטחה של Android בנושא פגיעויות פוטנציאליות, ובודקים באגים שקשורים לאבטחה שדווחו במסד הנתונים של באגים ב-Android. אם הצוות של Android מגלה בעיות לגיטימיות, יש לו תהליך תגובה שמאפשר לצמצם במהירות את נקודות החולשה, כדי למזער את הסיכון הפוטנציאלי לכל משתמשי Android. התגובות האלה שנתמכות בענן יכולות לכלול עדכון של פלטפורמת Android (עדכוני AOSP), הסרת אפליקציות מ-Google Play והסרת אפליקציות ממכשירים בשטח.
  • עדכוני אבטחה חודשיים: צוות האבטחה של Android מספק עדכונים חודשיים למכשירי Google Android ולכל השותפים שלנו לייצור מכשירים.

ארכיטקטורת אבטחה של הפלטפורמה

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

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

כדי להשיג את המטרות האלה, מערכת Android מספקת את תכונות האבטחה המרכזיות הבאות:

  • אבטחה חזקה ברמת מערכת ההפעלה באמצעות ליבת Linux
  • ארגז חול חובה לכל האפליקציות
  • תקשורת מאובטחת בין תהליכים (IPC)
  • חתימה על אפליקציות
  • הרשאות שהוגדרו באפליקציה והרשאות שהמשתמש העניק