ב-Android יש מגוון אותות למכשיר שבאמצעותם אדמינים יכולים לקבוע את מצב האבטחה של המכשיר. במודל אבטחה של אפס אמון, האותות האלה משמשים כדי להעריך אם צריך לתת למכשיר גישה למידע הארגוני.
תכונה | תיאור | מכשירים בניהול מלא | פרופיל עבודה במכשירים בבעלות החברה | פרופיל עבודה במכשירים בבעלות אישית (BYOD) | מכשירים לא מנוהלים |
---|---|---|---|---|---|
Play Integrity API | ברוקר
נאמנות יכול לאחזר את האותות הבאים:
|
כן | כן | כן | כן |
מצב חומרה מאובטח / אימות עם מפְתח | מתווך Trust יכול לאמת שפרטי הכניסה ל-PKI נוצרו ואוחסנו בחומרה מאובטחת. | כן | כן | כן | כן |
אימות (attestation) של מאפייני מכשיר | כחלק מהאימות עם המפתח, אפשר לכלול את מאפייני המכשיר כחלק מרשומת האימות | כן | כן | כן | כן |
רמת תיקון האבטחה של המכשיר | ברוקר מהימנות יכול לאמת את רמת תיקון האבטחה של מערכת ההפעלה | כן | כן | כן | כן |
האם במכשיר יש OTA בהמתנה | הכלי לניהול מהימנות יכול לבדוק אם יש עדכון זמין למערכת ההפעלה של המכשיר | כן | כן | כן | לא רלוונטי |
רמת תיקון האבטחה הראשית | ברוקר Trust יכול לקרוא את רמת תיקון האבטחה של הרכבת הראשית שמותקנת | כן | כן | כן | כן |
מזהה ספציפי להרשמה | ברוקר Trust יכול לגשת למזהה מכשיר ייחודי וספציפי לאותו ארגון. המזהה הזה עדיין לא תקף מיצירה מחדש של פרופיל עבודה ומאיפוס להגדרות המקוריות של המכשיר | כן | כן | כן | לא רלוונטי |
מצב ניהול (וניהול האפליקציה) | הברוקר יכול להשתמש בהגדרה הזו כדי לקבוע אם מכשיר מנוהל | כן | כן | כן | לא רלוונטי |
הצפנת דיסק | מתווך מהימנות יכול לבדוק אם המכשיר מוצפן (אם נדרשת תמיכה ב-Android 8) | כן | כן | כן | כן |
גרסת מערכת ההפעלה | הברוקר יכול לבדוק את גרסת מערכת ההפעלה של המכשיר ולאשר שהיא חורגת מגרסה מסוימת | כן | כן | כן | כן |
מצב הרשת (מצב הרשת ומצב ה-Wi-Fi) | ברוקר Trust יכול לקבל מידע על מצב הרשת הפעילה (סלולרית ו-Wi-Fi) | כן | כן | כן | כן |
גישה למצב ה-Wi-Fi (Android 11 ומטה, Android 12 ואילך תומכים גם בהתקשרות חזרה וגם בגישה לפי דרישה) | מתווך מהימנות יכול לקבל מידע על רשת ה-Wi-Fi הפעילה | כן | כן | כן | כן |
הגדרות לשרת proxy | מתווך אמון יכול לקבל מידע על הגדרות ברירת המחדל הנוכחיות של שרת ה-proxy ל-HTTP. | כן | כן | כן | כן |
בדיקת איכות של נעילת מסך | הברוקר יכול לוודא שמוגדרת במכשיר נעילת מסך באיכות מסוימת לפני שהוא נותן גישה | כן | כן | כן | כן |
האפשרויות למפתחים מופעלות | ברוקר מהימנות יכול לזהות שלמכשיר יש שכבת התקפה רחבה יותר כשאפשרויות למפתחים מופעלות | כן | כן | כן | כן |
האם DNS ב-TLS מופעל | ברוקר Trust יכול להשתמש בכך כדי לוודא שהמצב 'שרת DNS פרטי' מופעל | כן | כן | כן | כן |
SafetyNet גלישה בטוחה | מתווך מהימנות יכול לקבוע אם כתובת URL מסוימת סווגה על ידי Google כאיום ידוע. | כן | כן | כן | כן |
התקנה של מדיה חיצונית | אפשר לקבל הודעה לסוחר מהימנות כשמתבצעת טעינה של אחסון חיצוני | כן | כן | כן | כן |
UsageStatsManager | ברוקר Trust יכול לחקור דפוסי שימוש של אפליקציות ספציפיות | כן | כן | כן | כן1 |
רישום אבטחה | ברוקר Trust יכול למנף את הנתונים האלה כחלק ממנוע ההקשר שלו כדי להבטיח תאימות וליצור טביעת אצבע שמבוססת על התנהגות | כן | כן2 | כן2 | לא רלוונטי |
רישום רשת ביומן | ברוקר Trust יכול למנף את הנתונים האלה כחלק ממנוע ההקשר שלו כדי להבטיח תאימות וליצור טביעת אצבע שמבוססת על התנהגות | כן | כן2 | כן2 | לא רלוונטי |
NetworkStatsManager | ברוקר Trust יכול להריץ שאילתות על השימוש ברשת של האפליקציה בפרק זמן נתון | כן | כן | כן2 | כן1 |
הרשאות גישה לחבילה (פירוט כל האפליקציות במכשיר) | מתווך מהימנות יכול לבדוק אילו אפליקציות מותקנות במכשיר | כן | כן3 | כן3 | כן |
קריאת מצב הטלפון | ברוקר Trust יכול לקבל מידע על הרשת הסלולרית, הסטטוס של השיחות השוטפות ורשימה של PhoneAccount שרשומות במכשיר | כן | כן | כן | כן |
הפעם האחרונה שבה המכשיר הופעל מחדש | מתווך מהימנות יכול לקבל זמן פעולה תקינה של המערכת | כן | כן | כן | כן |
יצירת חשבונות | ברוקר מהימנות יכול להשתמש באפשרות הזו כדי לגשת לרשימת החשבונות בשירות החשבונות. | כן | כן3 | כן3 | כן1 |
מעקב אחר שינויים משמעותיים ברמת הסוללה | ברוקר מהימנות יכול לעקוב אחר שינויים משמעותיים ברמת הסוללה | כן | כן | כן | כן |
מיקום (מהימן, לא גס וכו') | לסוכן מהימנות יש גישה למיקום הפיזי של המכשיר | כן | כן | כן1 | כן1 |
1 בהסכמת המשתמש
2 פרופיל עבודה בלבד
3 הגישה מוגבלת לפרטי פרופיל העבודה
אחזור גרסת ראשי
ברוקר Trust יכול לגשת ל-PackageInfo של המודול com.google.android.modulemetadata
ולאחזר ממנו את versionName
:
private fun mainlineVersion(context: Context): String? {
val moduleProvider = "com.google.android.modulemetadata"
return try {
val pm = context.packageManager
val packageInfo = pm.getPackageInfo(moduleProvider, 0)
packageInfo.versionName
} catch (e: PackageManager.NameNotFoundException) {
null
}
}
אפשר לנתח את המחרוזת שהוחזרה לאובייקט Date
באמצעות המחלקה SimpleDateFormat
:
private val VERSION_NAME_DATE_PATTERNS = Arrays.asList(
"yyyy-MM-dd",
"yyyy-MM"
)
private fun parseDateFromVersionName(text: String): Date? {
for (pattern in VERSION_NAME_DATE_PATTERNS) {
try {
val simpleDateFormat = SimpleDateFormat(
pattern,
Locale.getDefault()
)
simpleDateFormat.timeZone = TimeZone.getDefault()
return simpleDateFormat.parse(text)
} catch (e: ParseException) {
// ignore and try next pattern
}
}
return null
}
חשוב לזכור שב-Android מגרסה 11 ואילך צריך להוסיף הצהרת שאילתה בקובץ AndroidManifest.xml
כדי לעמוד בהרשאות הגישה של חבילות של Android:
<manifest package="com.example.game"> <queries> <package android:name="com.google.android.modulemetadata" /> </queries> ... </manifest>
מצב ניהול האחזור
הכלי לניהול מהימנות יכול להשתמש בשיטות האלה כדי לבדוק אם המכשיר נמצא במצב ניהול ואיזה מצב ניהול פעיל.
חיפוש של ניהול מכשירים
אפשר להשתמש בפונקציה getActiveAdmins() כדי לבדוק אם מכשיר מנוהל. אם השיטה הזו מחזירה null
, המכשיר לא מנוהל.
חיפוש מכשיר מנוהל באופן מלא
באמצעות isDeviceOwnerApp()
אפשר לבדוק אם המכשיר מנוהל באופן מלא.
איך מחפשים את פרופיל העבודה במכשיר בבעלות החברה
אפשר להשתמש ב-isOrganizationOwnedDeviceWithManagedProfile()
כדי לבדוק אם המכשיר משתמש במצב של ניהול פרופיל עבודה למכשירים בבעלות החברה.
חיפוש של פרופיל עבודה במכשיר בבעלות אישית
משתמשים בפונקציה isProfileOwnerApp() כדי לבדוק אם למכשיר יש פרופיל עבודה ומוודאים ש-isOrganizationOwnedDeviceWithManagedProfile()
מחזיר false
.