Die AWS IoT-Richtlinie ist möglicherweise falsch konfiguriert - AWS IoT Device Defender

Die AWS IoT-Richtlinie ist möglicherweise falsch konfiguriert

Eine AWS IoT-Richtlinie wurde als potenziell falsch konfiguriert identifiziert. Falsch konfigurierte Richtlinien, einschließlich übermäßig permissiver Richtlinien, können zu Sicherheitsvorfällen führen, z. B. wenn Geräten der Zugriff auf unbeabsichtigte Ressourcen ermöglicht wird.

Die Überprüfung auf potenziell falsch konfigurierte AWS IoT-Richtlinien ist eine Warnung, mit der Sie sicherstellen müssen, dass nur beabsichtigte Aktionen zulässig sind, bevor Sie die Richtlinie aktualisieren.

In der CLI und API wird diese Prüfung als IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK angezeigt.

Schweregrad: Mittel

Details

AWS IoT gibt den folgenden Ursachencode zurück, wenn bei dieser Prüfung eine potenziell falsch konfigurierte AWS IoT-Richtlinie gefunden wird:

  • POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT

  • TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS

Warum dies wichtig ist

Falsch konfigurierte Richtlinien können unbeabsichtigte Folgen haben, da sie Geräten mehr Berechtigungen gewähren als erforderlich. Wir empfehlen, die Richtlinie sorgfältig zu prüfen, um den Zugriff auf Ressourcen einzuschränken und Sicherheitsbedrohungen zu verhindern.

Die AWS IoT-Richtlinie ist möglicherweise falsch konfiguriert und prüft MQTT-Platzhalterzeichen (+ oder #) in Anweisungen zur Zugriffsverweigerung. Platzhalter werden von AWS IoT-Richtlinien als wörtliche Zeichenfolgen behandelt und können dazu führen, dass die Richtlinie zu permissiv ist.

Das folgende Beispiel soll verhindern, dass Sie Themen abonnieren, die sich auf die Verwendung von building/control_room unter Verwendung des MQTT-Platzhalters # in Richtlinien beziehen. MQTT-Platzhalter haben jedoch keine Platzhalterbedeutung in AWS IoT-Richtlinien und Geräten, die für building/control_room/data1 abonniert werden können.

Bei der Prüfung, ob die AWS IoT-Richtlinie möglicherweise falsch konfiguriert ist, wird diese Richtlinie mit einem Ursachencode POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT gekennzeichnet.

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

Nachstehend finden Sie ein Beispiel für eine ordnungsgemäß konfigurierte Richtlinie. Geräte sind nicht berechtigt, Unterthemen von building/control_room/ zu abonnieren, und sie verfügen nicht über die Berechtigung, Nachrichten aus Unterthemen von building/control_room/ zu empfangen.

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

Die folgende Beispielrichtlinie soll verhindern, dass Sie das Abonnieren von Themen in Bezug auf building/control_room ablehnen, indem Sie die Ressource building/control_room/* ablehnen. Geräte können jedoch Anfragen zum Abonnieren an building/# senden, und Nachrichten zu allen Themen in Bezug auf building empfangen, einschließlich building/control_room/data1.

Bei der Prüfung, ob die AWS IoT-Richtlinie möglicherweise falsch konfiguriert ist, wird diese Richtlinie mit einem Ursachencode TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS gekennzeichnet.

Die folgende Beispielrichtlinie verfügt über Berechtigungen zum Empfangen von Nachrichten auf 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/*" } ] }

Nachstehend finden Sie ein Beispiel für eine ordnungsgemäß konfigurierte Richtlinie. Geräte sind nicht berechtigt, Unterthemen von building/control_room/ zu abonnieren, und sie verfügen nicht über die Berechtigung, Nachrichten aus Unterthemen von building/control_room/ zu empfangen.

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

Bei dieser Prüfung werden möglicherweise falsch positive Ergebnisse gemeldet. Wir empfehlen Ihnen, alle markierten Richtlinien zu überprüfen und Ressourcen mithilfe von Prüfungsunterdrückungen als falsch positiv zu kennzeichnen.

So lässt es sich beheben

Diese Prüfung kennzeichnet potenziell falsch konfigurierte Richtlinien, sodass es zu falsch positiven Ergebnissen kommen kann. Markieren Sie alle falsch positiven Ergebnisse mithilfe von Prüfunterdrückungen, damit sie künftig nicht mehr gemeldet werden.

Sie können auch folgendermaßen vorgehen, um alle nicht konformen Richtlinien zu korrigieren, die an Objekte, Objektgruppen oder andere Entitäten angefügt sind:

  1. Verwenden Sie CreatePolicyVersion zum Erstellen einer neuen, konformen Version der Richtlinie. Legen Sie das Flag setAsDefault auf „true“ fest. (Dies macht diese neue Version operativ für alle Entitäten, die die Richtlinie verwenden.)

    Beispiele für das Erstellen von AWS IoT-Richtlinien für allgemeine Anwendungsfälle finden Sie unter Richtlinienbeispiele zum Veröffentlichen/Abonnieren im AWS IoT Core-Entwicklerhandbuch.

  2. Stellen Sie sicher, dass alle zugeordneten Geräte in der Lage sind, eine Verbindung mit AWS IoT herzustellen. Wenn ein Gerät keine Verbindung herstellen kann, führen Sie mit SetPolicyVersion ein Rollback der Standardrichtlinie auf die vorherige Version durch, überarbeiten Sie die Richtlinie und versuchen Sie es erneut.

Sie können mit Abhilfemaßnahmen für Folgendes verwenden:

  • Wenden Sie die Abhilfemaßnahme REPLACE_DEFAULT_POLICY_VERSION auf Ihre Prüfungsergebnisse an, um diese Änderung vorzunehmen.

  • Wenden Sie die Abhilfemaßnahme PUBLISH_FINDINGS_TO_SNS an, wenn Sie eine benutzerdefinierte Antwort als Antwort auf die Amazon SNS-Nachricht implementieren möchten.

Weitere Informationen finden Sie unter Abschwächungsaktionen.

Verwenden Sie IoT-Core-Richtlinienvariablen im AWS IoT Core-Entwicklerhandbuch, um dynamisch auf spezifische AWS IoT-Ressourcen in Ihren Richtlinien zu verweisen.