Politique AWS IoT potentiellement mal configurée - AWS IoT Device Defender

Politique AWS IoT potentiellement mal configurée

Une politique AWS IoT a été identifiée comme potentiellement mal configurée. Des politiques mal configurées, notamment des politiques trop permissives, peuvent provoquer des incidents de sécurité tels que le fait de permettre aux appareils d'accéder à des ressources inattendues.

La vérification de la politique AWS IoT potentiellement mal configurée est un avertissement qui vous permet de vous assurer que seules les actions prévues sont autorisées avant de mettre à jour la politique.

Dans la CLI et l’API, cette vérification apparaît comme IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK.

Gravité : Moyenne

Détails

AWS IoT renvoie le code de motif suivant lorsque cette vérification détecte une politique AWS IoT potentiellement mal configurée :

  • POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT

  • TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS

Pourquoi est-ce important ?

Des politiques mal configurées peuvent entraîner des conséquences inattendues en accordant plus d’autorisations aux appareils que nécessaire. Nous recommandons d'examiner attentivement la politique afin de limiter l'accès aux ressources et de prévenir les menaces de sécurité.

La politique AWS IoT de vérification potentiellement mal configurée inspecte la présence de caractères génériques MQTT (+ ou #) dans les instructions de refus. Les caractères génériques sont traités comme des chaînes littérales par les politiques AWS IoT et peuvent rendre la politique trop permissive.

L'exemple suivant vise à refuser l'abonnement à des sujets liés à building/control_room à l'aide du caractère générique MQTT dans les politiques #. Cependant, les caractères génériques MQTT n'ont pas de signification générique dans les politiques AWS IoT auxquelles les appareils peuvent s'abonner building/control_room/data1.

La vérification de la politique AWS IoT potentiellement mal configurée signalera cette politique avec un code POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT anomalie.​

{ "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/*" } ] }

Voici un exemple de politique correctement configurée. Les appareils ne sont pas autorisés à s'abonner aux sous-rubriques de building/control_room/ et ne sont pas autorisés à recevoir des messages provenant de rubriques secondaires 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/*" } ] }

L'exemple de politique suivant vise à refuser l'abonnement à des rubriques liées à building/control_room en refusant la ressource building/control_room/*. Cependant, les appareils peuvent envoyer des demandes d'abonnement building/# et de réception de messages concernant toutes les rubriques connexes building, y compris building/control_room/data1.

La vérification de la politique AWS IoT potentiellement mal configurée signalera cette politique avec un code TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS anomalie.​

L'exemple de politique suivant permet de recevoir des messages sur 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/*" } ] }

Voici un exemple de politique correctement configurée. Les appareils ne sont pas autorisés à s’abonner aux sous-rubriques de building/control_room/ et ne sont pas autorisés à recevoir des messages provenant de rubriques secondaires 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/*" } ] }
Note

Cette vérification peut signaler des faux positifs. Nous vous recommandons d'évaluer toutes les politiques signalées et de marquer les ressources faussement positives à l'aide de suppressions d'audit.

Comment réparer

Cette vérification signale les politiques potentiellement mal configurées, de sorte qu'il peut y avoir des faux positifs. Marquez les faux positifs à l'aide de suppressions d'audit afin qu'ils ne soient pas signalés à l'avenir.

Vous pouvez également suivre ces étapes pour corriger les politiques non conformes attachées aux objets, groupes d'objets ou autres entités :

  1. Utilisez CreatePolicyVersion pour créer une nouvelle version conforme de la stratégie. Définissez l’indicateur setAsDefault sur true. (Cela rend cette nouvelle version opérationnelle pour toutes les entités qui utilisent la stratégie.)

    Pour des exemples de création de politiques AWS IoT pour des cas d’utilisation courants, consultez Exemples de politiques de publication/d’abonnement dans le Guide du développeur AWS IoT Core.

  2. Vérifiez que tous les appareils associés sont en mesure de se connecter à AWS IoT. Si un appareil n’est pas en mesure de se connecter, utilisez SetPolicyVersion pour restaurer la version précédente de la politique par défaut, révisez la politique et faites une nouvelle tentative.

Vous pouvez utiliser des actions d’atténuation pour effectuer les actions suivantes :

  • Appliquer l’action d’atténuation REPLACE_DEFAULT_POLICY_VERSION sur vos résultats d’audit pour effectuer ce changement.

  • Appliquer l’action d’atténuation PUBLISH_FINDINGS_TO_SNS si vous souhaitez mettre en œuvre une réponse personnalisée pour répondre au message Amazon SNS.

Pour plus d’informations, consultez Actions d'atténuation.

Consultez Variables de stratégie IoT Core dans le Guide du développeur AWS IoT Core pour faire référence de manière dynamique aux ressources AWS IoT dans vos politiques.