Policy AWS IoT potenzialmente configurata in modo errato
Una policy AWS IoT è stata identificata come potenzialmente configurata in modo errato. Le policy configurate in modo errato, comprese quelle eccessivamente permissive, possono causare incidenti di sicurezza, ad esempio consentire ai dispositivi di accedere a risorse indesiderate.
Il controllo AWS IoT policy potentially misconfigured è un avviso per assicurarsi che siano consentite solo le azioni previste prima di aggiornare la policy.
Nella CLI e nell'API, questo controllo viene visualizzato come IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK
.
Gravità: Medium (media)
Informazioni
AWS IoT restituisce il seguente codice motivo quando questo controllo rileva una policy AWS IoT potenzialmente configurata in modo errato:
-
POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT
-
TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS
Perché è importante
Le policy configurate in modo errato possono portare a conseguenze indesiderate fornendo ai dispositivi più autorizzazioni di quelle necessarie. Si consiglia di valutare attentamente la policy per limitare l'accesso alle risorse e impedire le minacce alla sicurezza.
Il controllo AWS IoT policy potentially misconfigured verifica la presenza di caratteri jolly MQTT (+
o #
) nelle istruzioni di rifiuto. I caratteri jolly vengono trattati come stringhe letterali dalle policy AWS IoT e possono rendere la policy eccessivamente permissiva.
L'esempio seguente ha lo scopo di rifiutare la sottoscrizione ad argomenti correlati a building/control_room
utilizzando il carattere jolly MQTT #
nelle policy. Tuttavia, i caratteri jolly MQTT non hanno un significato di carattere jolly nelle policy AWS IoT e i dispositivi possono effettuare la sottoscrizione a building/control_room/data1
.
Il controllo AWS IoT policy potentially misconfigured contrassegnerà questa policy con un codice 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/*" } ] }
Di seguito è riportato un esempio di policy configurata correttamente. I dispositivi non dispongono dell'autorizzazione per effettuare la sottoscrizione ad argomenti secondari di building/control_room/
e non dispongono delle autorizzazioni per ricevere messaggi da argomenti secondari di 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/*" } ] }
La policy di esempio seguente è concepita per rifiutare la sottoscrizione ad argomenti correlati a building/control_room
rifiutando la risorsa building/control_room/*
. Tuttavia, i dispositivi possono inviare richieste per effettuare la sottoscrizione a building/#
e ricevere messaggi da tutti gli argomenti correlati a building
, incluso building/control_room/data1
.
Il controllo AWS IoT policy potentially misconfigured (Policy AWS IoT potenzialmente configurata in modo errato) contrassegnerà questa policy con un codice motivo TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS
.
La policy di esempio seguente dispone delle autorizzazioni per ricevere messaggi su 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/*" } ] }
Di seguito è riportato un esempio di policy configurata correttamente. I dispositivi non dispongono dell'autorizzazione per effettuare la sottoscrizione ad argomenti secondari di building/control_room/
e non dispongono delle autorizzazioni per ricevere messaggi da argomenti secondari di 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
Questo controllo potrebbe segnalare falsi positivi. Si consiglia di valutare tutte le eventuali policy contrassegnate ed evidenziare le risorse con falsi positivi utilizzando le soppressioni di audit.
Come risolvere il problema
Questo controllo contrassegna le policy potenzialmente configurate in modo errato, quindi potrebbero esserci falsi positivi. Evidenziare i falsi positivi utilizzando soppressioni della ricerca di audit in modo che non vengano contrassegnati in futuro.
È anche possibile seguire queste fasi per correggere eventuali policy non conformi collegate a oggetti, gruppi di oggetti o altre entità:
-
Utilizza CreatePolicyVersion per creare una nuova versione conforme ai requisiti della policy. Imposta il flag
setAsDefault
su "true". (In questo modo questa nuova versione è operativa per tutte le entità che utilizzano la policy.)Per esempi di creazione di policy AWS IoT per casi d'uso comuni, consulta Esempi di policy di pubblicazione/sottoscrizione nella Guida per sviluppatori di AWS IoT Core.
-
Verificare che tutti i dispositivi associati possano connettersi a AWS IoT. Se un dispositivo non è in grado di connettersi, eseguire il rollback della policy predefinita alla versione precedente usando SetPolicyVersion, rivedere la policy e riprovare.
Puoi usare le operazioni di mitigazione per:
-
Applicare l'operazione di mitigazione
REPLACE_DEFAULT_POLICY_VERSION
sui risultati di audit per apportare questa modifica. -
Applica l'operazione di mitigazione
PUBLISH_FINDINGS_TO_SNS
per implementare una risposta personalizzata al messaggio di Amazon SNS.
Per ulteriori informazioni, consultare Operazioni di mitigazione.
Usa le variabili delle policy IoT Core descritte nella Guida per gli sviluppatori di AWS IoT Core per fare riferimento in modo dinamico alle risorse AWS IoT nelle policy.