securityPosture は、デバイスの現在のステータスによって決定されるデバイスのセキュリティ評価です。デバイスの現在のステータスは、デバイスの root 権限が取得されているかどうか、カスタム ROM を実行しているかどうかなどの要素によって決まります。
securityPosture はレスポンスで devicePosture と、フィールド securityRisk を含む追加の postureDetails リストに分割されます。
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が「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> |