Política de AWS IoT potencialmente mal configurada - AWS IoT Device Defender

Política de AWS IoT potencialmente mal configurada

Uma política de AWS IoT foi identificada como potencialmente mal configurada. Políticas mal configuradas, incluindo políticas excessivamente permissivas, podem causar incidentes de segurança, como permitir que dispositivos acessem recursos não intencionais.

A verificação da política de AWS IoT potencialmente mal configurada é um aviso para que você se certifique de que somente as ações pretendidas são permitidas antes de atualizar a política.

Na CLI e na API, essa verificação aparece como IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK.

Severidade: média

Detalhes

A AWS IoT retorna o seguinte código de motivo quando essa verificação encontra uma política de AWS IoT potencialmente mal configurada:

  • POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT

  • TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS

Por que isso importa?

Políticas mal configuradas podem resultar em consequências não intencionais ao fornecer mais permissões aos dispositivos do que o necessário. Recomendamos uma análise cuidadosa da política para limitar o acesso aos recursos e evitar ameaças à segurança.

A verificação da política de AWS IoT potencialmente mal configuradas inspeciona os caracteres curinga (+ ou #) do MQTT em declarações de negação. Os curingas são tratados como strings literais pelas políticas de AWS IoT e podem tornar a política excessivamente permissiva.

O exemplo a seguir tem como objetivo negar a assinatura de tópicos relacionados a building/control_room do curinga do MQTT # nas políticas. No entanto, os curingas do MQTT não têm um significado curinga nas políticas de AWS IoT e os dispositivos podem assinar building/control_room/data1.

A verificação da política de AWS IoT potencialmente mal configurada sinalizará essa política com o código de motivo POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region:account-id:topicfilter/building/*" }, { "Effect": "Deny", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region:account-id:topicfilter/building/control_room/#" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:region:account-id:topic/building/*" } ] }

Veja a seguir um exemplo de uma política configurada corretamente. Os dispositivos não têm permissão para assinar subtópicos de building/control_room/ e para receber mensagens de subtópicos de building/control_room/.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:region:account-id:topicfilter/building/*" }, { "Effect": "Deny", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region:account-id:topicfilter/building/control_room/*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:region:account-id:topic/building/*" }, { "Effect": "Deny", "Action": "iot:Receive", "Resource": "arn:aws:iot:region:account-id:topic/building/control_room/*" } ] }

O exemplo de política a seguir tem como objetivo negar a assinatura de tópicos relacionados a building/control_room negando o recurso building/control_room/*. No entanto, os dispositivos podem enviar solicitações para assinar building/# e receber mensagens de todos os tópicos relacionados a building, incluindo building/control_room/data1.

A verificação da política de AWS IoT potencialmente mal configurada sinalizará essa política com o código de motivo TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS.

O exemplo de política a seguir tem permissões para receber mensagens em building/control_room topics:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region:account-id:topicfilter/building/*" }, { "Effect": "Deny", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region:account-id:topicfilter/building/control_room/*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:region:account-id:topic/building/*" } ] }

Veja a seguir um exemplo de uma política configurada corretamente. Os dispositivos não têm permissão para assinar subtópicos de building/control_room/ e para receber mensagens de subtópicos de building/control_room/.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region:account-id:topicfilter/building/*" }, { "Effect": "Deny", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region:account-id:topicfilter/building/control_room/*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:region:account-id:topic/building/*" }, { "Effect": "Deny", "Action": "iot:Receive", "Resource": "arn:aws:iot:region:account-id:topic/building/control_room/*" } ] }
nota

Essa verificação pode relatar falsos positivos. Recomendamos que você avalie todas as políticas sinalizadas e marque os recursos de falsos positivos usando supressões de auditoria.

Como corrigir

Essa verificação sinaliza políticas potencialmente mal configuradas, portanto, pode haver falsos positivos. Marque todos os falsos positivos usando supressões de auditoria para que eles não sejam sinalizados no futuro.

Você também pode seguir estas etapas para corrigir todas as políticas que não estão em conformidade anexadas o objetos, grupos de objetos ou outras entidades:

  1. Use CreatePolicyVersion para criar uma nova versão compatível da política. Defina o sinalizador setAsDefault como verdadeiro. (Isso torna essa nova versão operacional para todas as entidades que usam a política.)

    Para ver exemplos de criação de políticas AWS IoT em casos de uso comuns, consulte exemplos de políticas de publicação/assinatura na Guia do desenvolvedor do AWS IoT Core.

  2. Verifique se todos os dispositivos associados podem se conectar à AWS IoT. Se um dispositivo não conseguir se conectar, use SetPolicyVersion para reverter a política padrão para a versão anterior, revise-a e tente novamente.

Você pode usar ações de mitigação para:

  • Aplicar a ação de mitigação REPLACE_DEFAULT_POLICY_VERSION em suas descobertas de auditoria para fazer essa mudança.

  • Aplicar a ação de mitigação PUBLISH_FINDINGS_TO_SNS se você desejar implementar uma resposta personalizada em resposta à mensagem do Amazon SNS.

Para ter mais informações, consulte Ações de mitigação.

Use as variáveis da política do IoT Core no Guia do desenvolvedor do AWS IoT Core para fazer referência dinâmica aos recursos do AWS IoT nas suas políticas.