فهم الوضع الأمني
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
securityPosture
هو تقييم أمان الجهاز، ويتم تحديده حسب حالة الجهاز الحالية.
يتم تحديد حالة الجهاز الحالية حسب عوامل مثل ما إذا تم تحديد جذر الجهاز أو ما إذا كان يعمل بنظام تشغيل مخصّص وغير ذلك.
يتم تقسيم 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، ما يعني أنّه يمكن اختراق حالة سلامة عملية تشغيل الجهاز (على سبيل المثال، يمكن أن يكون الجهاز مزوّدًا بإذن الوصول إلى الجذر) بدون أن يتم رصده من خلال ميزة الكشف المستندة إلى البرامج.
فهم نتائج حالة الأمان
يمكن تفسير مجموعات مختلفة من devicePosture
وsecurityRisk
لفهم مستوى الأمان العام للجهاز. يُرجى العِلم أنّ القائمة أدناه ليست شاملة:
- إذا عرضت
devicePosture
القيمة "آمن" وعرضت securityRisk
القيمة "تعذّر إكمال التقييم المستند إلى الأجهزة"، تكون سلامة الجهاز آمنة، ولكن لا يمكن تأكيد ذلك من خلال 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.
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003e\u003ccode\u003esecurityPosture\u003c/code\u003e provides a security evaluation of an Android device based on factors like rooting, custom ROMs, and key attestation.\u003c/p\u003e\n"],["\u003cp\u003eIt uses \u003ccode\u003edevicePosture\u003c/code\u003e and \u003ccode\u003esecurityRisk\u003c/code\u003e fields to determine if a device is secure, potentially compromised, or if evaluation failed.\u003c/p\u003e\n"],["\u003cp\u003eHardware-backed key attestation (HBKA) provides a trustworthy security verdict, but software-based checks are used if HBKA fails.\u003c/p\u003e\n"],["\u003cp\u003eDifferent combinations of \u003ccode\u003edevicePosture\u003c/code\u003e and \u003ccode\u003esecurityRisk\u003c/code\u003e values offer insight into the specific security state of a device.\u003c/p\u003e\n"],["\u003cp\u003eThe Android Management API security verdicts have corresponding mappings to Play Integrity API verdict responses.\u003c/p\u003e\n"]]],["`securityPosture` evaluates device security based on factors like rooting or custom ROMs. It breaks down into `devicePosture` and `postureDetails`, the latter including `securityRisk` and `advice`. `securityRisk` highlights potential security issues. Evaluations use hardware-backed key attestation (HBKA) when possible; failures are marked by `HARDWARE_BACKED_EVALUATION_FAILED` in `securityRisk`. Different `devicePosture` and `securityRisk` combinations indicate varying security levels, such as \"SECURE\" with HBKA failure, or \"POTENTIALLY_COMPROMISED\". It also maps the AM API verdicts to the Play Integrity API.\n"],null,["# Understanding Security Posture\n\n[`securityPosture`](/android/management/reference/rest/v1/enterprises.devices#securityposture) is the security evaluation of a device, determined by the current device status.\nCurrent device status is determined by factors such as if the device has been rooted, if it is running a custom ROM, and more.\n\n`securityPosture` is broken down in the response into [`devicePosture`](/android/management/reference/rest/v1/enterprises.devices#deviceposture) and an additional list of [`postureDetails`](/android/management/reference/rest/v1/enterprises.devices#posturedetail) which contains the field [`securityRisk`](/android/management/reference/rest/v1/enterprises.devices#securityrisk).\n\nThe `securityRisk` field gives an idea of why the device is not considered to be in the most secure state, while the `advice` list can help perform actions to improve the security posture of the device.\nFor example: \n\n```gdscript\n {\n \"devicePosture\": \"POTENTIALLY_COMPROMISED\",\n \"postureDetails\": [\n {\n \"securityRisk\": \"UNKNOWN_OS\",\n \"advice\": [\n {\n \"defaultMessage\": \"The user should lock their device's bootloader.\"\n }\n ]\n },\n {\n \"securityRisk\": \"HARDWARE_BACKED_EVALUATION_FAILED\"\n }\n ]\n}\n```\n\nEvaluating Security Posture\n---------------------------\n\nBy default, `securityPosture` is evaluated using key attestation, specifically [hardware-backed key attestation (HBKA)](https://developer.android.com/training/articles/security-key-attestation) if applicable, providing a trustworthy security verdict as it generates and signs the attestation in secure hardware.\n\nIt may sometimes be the case that HBKA cannot be used for this evaluation. To reflect this, `securityRisk` will return \"HARDWARE_BACKED_EVALUATION_FAILED\". This means that `securityPosture` can be evaluated but not with HBKA, meaning that the device's boot integrity state could be compromised (e.g. the device could be rooted) and go undetected by software-based detection.\n\nUnderstanding Security Posture Verdicts\n---------------------------------------\n\nDifferent combinations of `devicePosture` and `securityRisk` can be interpreted to understand the overall security of the device. Please be aware that the list below is not exhaustive:\n\n- If `devicePosture` returns \"SECURE\" and `securityRisk` returns \"HARDWARE_BACKED_EVALUATION_FAILED\" the device's integrity is secure, but this could not be confirmed by HBKA.\n- If `devicePosture` returns \"POTENTIALLY_COMPROMISED\" and no `securityRisk` result is returned, then HBKA is used in the evaluation and considers the device as compromised.\n- If `devicePosture` returns \"POTENTIALLY_COMPROMISED\" and `securityRisk` returns \"HARDWARE_BACKED_EVALUATION_FAILED\" then only software based checks could be performed, yet the integrity threat signals are strong enough to consider the device as compromised.\n- If `devicePosture` returns \"POSTURE_UNSPECIFIED\" then the security evaluation could not be completed. We recommend waiting for the re-issuance of the HBKA, which occurs when a new verdict is returned, to see if it can return a specific value. However, it is expected for \"POSTURE_UNSPECIFIED\" to occur on initial install for a short period of time.\n\n### Android Management API to Play Integrity API mappings\n\nThe following table provides the mapping equivalence between AM API verdict and\nthe Play Integrity API verdict response.\n\n| [AM API DevicePosture](/android/management/reference/rest/v1/enterprises.devices#deviceposture) | [AM API Posture.Detail.SecurityRisk](/android/management/reference/rest/v1/enterprises.devices#PostureDetail.FIELDS.security_risk) | [Play Integrity API verdict equivalent](/google/play/integrity/verdicts#device-integrity-field) |\n|------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|\n| [`SECURE`](/android/management/reference/rest/v1/enterprises.devices#DevicePosture.ENUM_VALUES.SECURE) | [`SECURITY_RISK_UNSPECIFIED`](/android/management/reference/rest/v1/enterprises.devices#SecurityRisk.ENUM_VALUES.SECURITY_RISK_UNSPECIFIED) | `MEETS_STRONG_INTEGRITY` |\n| [`SECURE`](/android/management/reference/rest/v1/enterprises.devices#DevicePosture.ENUM_VALUES.SECURE) | contains: [`HARDWARE_BACKED_EVALUATION_FAILED`](/android/management/reference/rest/v1/enterprises.devices#SecurityRisk.ENUM_VALUES.HARDWARE_BACKED_EVALUATION_FAILED) | `MEETS_DEVICE_INTEGRITY` |\n| [`AT_RISK`](/android/management/reference/rest/v1/enterprises.devices#DevicePosture.ENUM_VALUES.AT_RISK) | contains: [`HARDWARE_BACKED_EVALUATION_FAILED`](/android/management/reference/rest/v1/enterprises.devices#SecurityRisk.ENUM_VALUES.HARDWARE_BACKED_EVALUATION_FAILED) | `MEETS_DEVICE_INTEGRITY` |\n| [`POTENTIALLY_COMPROMISED`](/android/management/reference/rest/v1/enterprises.devices#DevicePosture.ENUM_VALUES.POTENTIALLY_COMPROMISED) | contains: [`UNKNOWN_OS`](/android/management/reference/rest/v1/enterprises.devices#SecurityRisk.ENUM_VALUES.UNKNOWN_OS) | `MEETS_BASIC_INTEGRITY` |\n| [`POTENTIALLY_COMPROMISED`](/android/management/reference/rest/v1/enterprises.devices#DevicePosture.ENUM_VALUES.POTENTIALLY_COMPROMISED) | contains: [`COMPROMISED_OS`](/android/management/reference/rest/v1/enterprises.devices#SecurityRisk.ENUM_VALUES.COMPROMISED_OS) | `\u003cunset\u003e` |\n| [`POSTURE_UNSPECIFIED`](/android/management/reference/rest/v1/enterprises.devices#DevicePosture.ENUM_VALUES.POSTURE_UNSPECIFIED) | `\u003cany\u003e` | `\u003cunset\u003e` |"]]