Noções básicas sobre a postura de segurança

securityPosture é a avaliação de segurança de um dispositivo, determinada pelo status atual dele. O status atual do dispositivo é determinado por fatores como se ele tem acesso root, se está executando uma ROM personalizada e muito mais.

securityPosture é dividido na resposta em devicePosture e uma lista adicional de postureDetails, que contém o campo securityRisk.

O campo securityRisk dá uma ideia de por que o dispositivo não é considerado o mais seguro, enquanto a lista advice pode ajudar a realizar ações para melhorar a postura de segurança do dispositivo. Exemplo:

 {
  "devicePosture": "POTENTIALLY_COMPROMISED",
  "postureDetails": [
    {
      "securityRisk": "UNKNOWN_OS",
      "advice": [
        {
          "defaultMessage": "The user should lock their device's bootloader."
        }
      ]
    },
    {
      "securityRisk": "HARDWARE_BACKED_EVALUATION_FAILED"
    }
  ]
}

Como avaliar a postura de segurança

Por padrão, o securityPosture é avaliado usando o atestado de chave, especificamente o atestado de chave com suporte de hardware (HBKA, na sigla em inglês), se aplicável, fornecendo um veredito de segurança confiável, já que gera e assina o atestado em hardware seguro.

Às vezes, a HBKA não pode ser usada para essa avaliação. Para refletir isso, securityRisk vai retornar "HARDWARE_BACKED_EVALUATION_FAILED". Isso significa que securityPosture pode ser avaliado, mas não com o HBKA, o que significa que o estado de integridade de inicialização do dispositivo pode ser comprometido (por exemplo, o dispositivo pode ser rooteado) e não ser detectado pela detecção baseada em software.

Noções básicas sobre os vereditos de postura de segurança

Diferentes combinações de devicePosture e securityRisk podem ser interpretadas para entender a segurança geral do dispositivo. A lista abaixo não é exaustiva:

  • Se devicePosture retornar "SECURE" e securityRisk retornar "HARDWARE_BACKED_EVALUATION_FAILED", a integridade do dispositivo é segura, mas isso não pode ser confirmado pelo HBKA.
  • Se devicePosture retornar "POTENTIALLY_COMPROMISED" e nenhum resultado securityRisk for retornado, o HBKA será usado na avaliação e o dispositivo será considerado comprometido.
  • Se devicePosture retornar "POTENTIALLY_COMPROMISED" e securityRisk retornar "HARDWARE_BACKED_EVALUATION_FAILED", apenas verificações baseadas em software poderão ser realizadas, mas os indicadores de ameaça à integridade são fortes o suficiente para considerar o dispositivo como comprometido.
  • Se devicePosture retornar "POSTURE_UNSPECIFIED", a avaliação de segurança não poderá ser concluída. Recomendamos aguardar a nova emissão do HBKA, que ocorre quando um novo veredito é retornado, para saber se ele pode retornar um valor específico. No entanto, é esperado que "POSTURE_UNSPECIFIED" ocorra na instalação inicial por um curto período.

Mapeamentos da API Android Management para a API Play Integrity

A tabela a seguir mostra a equivalência de mapeamento entre o veredito da API AM e a resposta do veredito da API Play Integrity.

API AM DevicePosture API AM Posture.Detail.SecurityRisk Veredito equivalente da API Play Integrity
SECURE SECURITY_RISK_UNSPECIFIED MEETS_STRONG_INTEGRITY
SECURE contém: HARDWARE_BACKED_EVALUATION_FAILED MEETS_DEVICE_INTEGRITY
POTENTIALLY_COMPROMISED contém: UNKNOWN_OS MEETS_BASIC_INTEGRITY
POTENTIALLY_COMPROMISED contém: COMPROMISED_OS <unset>
POSTURE_UNSPECIFIED <any> <unset>