securityPosture
הוא הערכת האבטחה של מכשיר, שמתבססת על סטטוס המכשיר הנוכחי.
סטטוס המכשיר הנוכחי נקבע על סמך גורמים כמו אם המכשיר עבר תהליך רוט (Root), אם פועל בו ROM בהתאמה אישית ועוד.
השדה securityPosture
מפורט בתגובה כ-devicePosture
ורשימה נוספת של postureDetails
שמכילה את השדה securityRisk
.
השדה securityRisk
מספק מושג לגבי הסיבה לכך שהמכשיר לא נחשב למכשיר במצב האבטחה המאובטח ביותר, בעוד שהרשימה advice
יכולה לעזור לבצע פעולות לשיפור מצב האבטחה של המכשיר.
לדוגמה:
{ "devicePosture": "POTENTIALLY_COMPROMISED", "postureDetails": [ { "securityRisk": "UNKNOWN_OS", "advice": [ { "defaultMessage": "The user should lock their device's bootloader." } ] }, { "securityRisk": "HARDWARE_BACKED_EVALUATION_FAILED" } ] }
הערכת מצב האבטחה
כברירת מחדל, הערך של securityPosture
נבדק באמצעות אימות מפתחות, ובמיוחד באמצעות אימות מפתחות מבוסס-חומרה (HBKA) אם רלוונטי. כך מתקבלת תוצאת אבטחה מהימנה, כי האימות נוצר ונחתם בחומרה מאובטחת.
לפעמים לא ניתן להשתמש ב-HBKA לצורך ההערכה הזו. כדי לשקף זאת, הערך שיוחזר על ידי securityRisk
יהיה 'HARDWARE_BACKED_EVALUATION_FAILED'. המשמעות היא שאפשר להעריך את securityPosture
, אבל לא באמצעות HBKA. כלומר, יכול להיות שמצב תקינות האתחול של המכשיר נפרץ (למשל, יכול להיות שהמכשיר עבר תהליך root) ולא ניתן לזהות זאת באמצעות זיהוי מבוסס-תוכנה.
הסבר על תוצאות הבדיקה של מצב האבטחה
אפשר לפרש שילובים שונים של devicePosture
ו-securityRisk
כדי להבין את האבטחה הכוללת של המכשיר. חשוב לזכור שזוהי רשימה חלקית בלבד:
- אם הערך המוחזר על ידי
devicePosture
הוא SECURE והערך המוחזר על ידיsecurityRisk
הוא HARDWARE_BACKED_EVALUATION_FAILED, התקינות של המכשיר מאובטחת, אבל לא ניתן היה לאמת זאת באמצעות HBKA. - אם הפונקציה
devicePosture
מחזירה את הערך POTENTIALLY_COMPROMISED ולא מוחזר ערך שלsecurityRisk
, המערכת משתמשת ב-HBKA במסגרת ההערכה ומתייחסת למכשיר כאל מכשיר שנפרץ. - אם הערך המוחזר של
devicePosture
הוא POTENTIALLY_COMPROMISED והערך המוחזר שלsecurityRisk
הוא HARDWARE_BACKED_EVALUATION_FAILED, ניתן לבצע רק בדיקות מבוססות-תוכנה, אבל אותות האיום על תקינות המכשיר חזקים מספיק כדי להחשיב אותו כמכשיר שנפרץ. - אם הערך המוחזר של
devicePosture
הוא POSTURE_UNSPECIFIED, לא ניתן היה להשלים את הערכת האבטחה. מומלץ להמתין להנפקה מחדש של ה-HBKA, שמתרחשת כשמתקבלת תוצאה חדשה, כדי לראות אם הוא יכול להחזיר ערך ספציפי. עם זאת, הערך POSTURE_UNSPECIFIED צפוי להופיע בהתקנה הראשונית למשך פרק זמן קצר.
מיפויים של Android Management API ל-Play Integrity API
בטבלה הבאה מפורטת ההתאמה בין התוצאה של AM API לתשובה של Play Integrity API.
AM API DevicePosture | AM API Posture.Detail.SecurityRisk | הקביעה המקבילה של Play Integrity API |
---|---|---|
SECURE |
SECURITY_RISK_UNSPECIFIED |
MEETS_STRONG_INTEGRITY |
SECURE |
מכיל: HARDWARE_BACKED_EVALUATION_FAILED |
MEETS_DEVICE_INTEGRITY |
AT_RISK |
מכיל: HARDWARE_BACKED_EVALUATION_FAILED |
MEETS_DEVICE_INTEGRITY |
POTENTIALLY_COMPROMISED |
מכיל: UNKNOWN_OS |
MEETS_BASIC_INTEGRITY |
POTENTIALLY_COMPROMISED |
מכיל: COMPROMISED_OS |
<unset> |
POSTURE_UNSPECIFIED |
<any> |
<unset> |