Parametri di ambito nei profili di sicurezza utilizzando le dimensioni
Le dimensioni sono attributi che è possibile definire per ottenere dati più precisi sui parametri e sui comportamenti nel profilo di sicurezza. È possibile definire l'ambito fornendo un valore o un modello utilizzato come filtro. Ad esempio, è possibile definire una dimensione del filtro argomento che applica un parametro solo agli argomenti MQTT corrispondenti a un valore particolare, ad esempio "data/bulb/+/activity". Per informazioni sulla definizione di una dimensione che è possibile utilizzare nel profilo di sicurezza, vedere CreateDimension.
I valori di dimensione supportano i caratteri jolly MQTT. I caratteri jolly MQTT consentono di sottoscrivere più argomenti contemporaneamente. Esistono due diversi tipi di caratteri jolly: single-level (+
) e multi-level (#
). Ad esempio, il valore di dimensione Data/bulb/+/activity
crea una sottoscrizione che corrisponde a tutti gli argomenti esistenti allo stesso livello di +
. I valori di dimensione supportano anche la variabile di sostituzione dell'ID client MQTT ${iot:ClientId}.
Le dimensioni di tipo TOPIC_FILTER sono compatibili con il seguente set di parametri lato cloud:
-
Numero di errori di autorizzazione
-
Dimensione del byte del messaggio
-
Numero di messaggi ricevuti
-
Numero di messaggi inviati
-
Indirizzo IP di origine (disponibile solo per Rules Detect)
Come utilizzare le dimensioni nella console
Per creare e applicare una dimensione a un comportamento del profilo di sicurezza
-
Apri la AWS IoT console
. Nel riquadro di navigazione, espandi Sicurezza, Rileva e scegli Profili di sicurezza. -
Nella pagina Profili di sicurezza, scegli Crea profilo di sicurezza, quindi scegli Crea profilo di rilevamento anomalie basato su regole. Oppure, per applicare una dimensione a un profilo di sicurezza basato su regole esistente, seleziona il profilo di sicurezza e scegli Modifica.
-
Nella pagina Specifica le proprietà del profilo di sicurezza, immetti un nome per il profilo di sicurezza.
-
Scegli il gruppo di dispositivi di cui desideri individuare eventuali anomalie.
-
Seleziona Avanti.
-
Nella pagina Configura i comportamenti della metrica, scegli una delle dimensioni delle metriche sul lato cloud in Tipo di metrica.
-
Per Comportamento del parametro, scegli Invia un avviso (definisci il comportamento della metrica) per definire il comportamento previsto delle metriche.
-
Scegli quando vuoi ricevere avvisi relativi a comportamenti insoliti del dispositivo.
-
Seleziona Avanti.
-
Esamina la configurazione del profilo di sicurezza e scegli Crea.
Visualizzazione degli allarmi
-
Apri la AWS IoT console
. Nel riquadro di navigazione, espandi Sicurezza, Rileva e quindi scegli Allarmi. -
Nella colonna Nome oggetto, scegli l'oggetto per visualizzare le informazioni sulla causa dell'allarme.
Per visualizzare e aggiornare le dimensioni
-
Apri la AWS IoT console
. Nel riquadro di navigazione, espandi Sicurezza, Rileva e quindi scegli Dimensioni. -
Seleziona la dimensione e scegli Modifica.
-
Modifica la dimensione e scegli Aggiorna.
Per eliminare una dimensione
-
Apri la AWS IoT console
. Nel riquadro di navigazione, espandi Sicurezza, Rileva e quindi scegli Dimensioni. -
Prima di eliminare una dimensione, devi eliminare il comportamento della metrica che fa riferimento alla dimensione. Verifica che la dimensione non sia collegata a un profilo di sicurezza selezionando la colonna Profili di sicurezza. Se la dimensione è collegata a un profilo di sicurezza, apri la pagina Profili di sicurezza a sinistra e modifica il profilo di sicurezza a cui è collegata la dimensione. Quindi procedere con l'eliminazione del comportamento. Se si desidera eliminare un'altra dimensione, attenersi alla procedura descritta in questa sezione.
-
Seleziona la dimensione e scegli Elimina.
-
Digita il nome della dimensione nel campo per confermare e quindi scegli Elimina.
Come utilizzare le dimensioni in AWS CLI
Per creare e applicare una dimensione a un comportamento del profilo di sicurezza
-
Creare innanzitutto la dimensione prima di collegarla a un profilo di sicurezza. Utilizza il comando CreateDimension per creare una dimensione:
aws iot create-dimension \ --name
TopicFilterForAuthMessages
\ --type TOPIC_FILTER \ --string-valuesdevice/+/auth
L'output di questo comando è simile al seguente:
{ "arn": "
arn:aws:iot:us-west-2:123456789012:dimension/TopicFilterForAuthMessages
", "name": "TopicFilterForAuthMessages" } -
Aggiungi la dimensione a un profilo di sicurezza esistente utilizzando UpdateSecurityProfile o aggiungila a un nuovo profilo di sicurezza utilizzando CreateSecurityProfile. Nell'esempio seguente viene creato un nuovo profilo di sicurezza che controlla se i messaggi per
TopicFilterForAuthMessages
sono inferiori a 128 byte e mantiene il numero di messaggi inviati ad argomenti non di autenticazione.aws iot create-security-profile \ --security-profile-name ProfileForConnectedDevice \ --security-profile-description "Check to see if messages to TopicFilterForAuthMessages are under 128 bytes and retains the number of messages sent to non-auth topics." \ --behaviors "[{\"name\":\"CellularBandwidth\",\"metric\":\"aws:message-byte-size\",\"criteria\":{\"comparisonOperator\":\"less-than\",\"value\":{\"count\":128},\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}},{\"name\":\"Authorization\",\"metric\":\"aws:num-authorization-failures\",\"criteria\":{\"comparisonOperator\":\"less-than\",\"value\":{\"count\":10},\"durationSeconds\":300,\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}}]" \ --additional-metrics-to-retain-v2 "[{\"metric\": \"aws:num-authorization-failures\",\"metricDimension\": {\"dimensionName\": \"TopicFilterForAuthMessages\",\"operator\": \"NOT_IN\"}}]"
L'output di questo comando è simile al seguente:
{ "securityProfileArn": "
arn:aws:iot:us-west-2:1234564789012:securityprofile/ProfileForConnectedDevice
", "securityProfileName": "ProfileForConnectedDevice" }È inoltre possibile caricare un parametro da un file invece di digitarlo per intero come valore di parametro della riga di comando. Per ulteriori informazioni, consulta Caricamento dei parametri AWS CLI da un file. Di seguito è riportato il parametro
behavior
in formato JSON espanso:[ { "criteria": { "comparisonOperator": "less-than", "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1, "value": { "count": 128 } }, "metric": "aws:message-byte-size", "metricDimension": { "dimensionName:": "TopicFilterForAuthMessages" }, "name": "CellularBandwidth" } ]
Oppure utilizzare CreateSecurityProfile utilizzando una dimensione con ML come riportato nell'esempio seguente:
aws iot create-security-profile --security-profile-name ProfileForConnectedDeviceML \ --security-profile-description “Check to see if messages to TopicFilterForAuthMessages are abnormal” \ --behaviors “[{\“name\“:\“test1\“,\“metric\“:\“aws:message-byte-size\“,\“metricDimension\“:{\“dimensionName\“: \“TopicFilterForAuthMessages\“,\“operator\“: \“IN\“},\“criteria\“:{\“mlDetectionConfig\“:{\“confidenceLevel\“:\“HIGH\“},\“consecutiveDatapointsToAlarm\“:1,\“consecutiveDatapointsToClear\“:1}}]” \ --region us-west-2
Per visualizzare i profili di sicurezza con una dimensione
-
Utilizza il comando ListSecurityProfiles per visualizzare i profili di sicurezza con una determinata dimensione:
aws iot list-security-profiles \ --dimension-name
TopicFilterForAuthMessages
L'output di questo comando è simile al seguente:
{ "securityProfileIdentifiers": [ { "name": "ProfileForConnectedDevice", "arn": "
arn:aws:iot:us-west-2:1234564789012:securityprofile/ProfileForConnectedDevice
" } ] }
Per aggiornare la dimensione
-
Utilizza il comando UpdateDimension per aggiornare una dimensione:
aws iot update-dimension \ --name
TopicFilterForAuthMessages
\ --string-valuesdevice/${iot:ClientId}/auth
L'output di questo comando è simile al seguente:
{ "name": "TopicFilterForAuthMessages", "lastModifiedDate":
1585866222.317
, "stringValues": [ "device/${iot:ClientId}/auth" ], "creationDate":1585854500.474
, "type": "TOPIC_FILTER", "arn": "arn:aws:iot:us-west-2:1234564789012:dimension/TopicFilterForAuthMessages
" }
Per eliminare una dimensione
-
Per eliminare una dimensione, scollegarla prima da tutti i profili di sicurezza a cui è collegata. Utilizza il comando ListSecurityProfiles per visualizzare i profili di sicurezza con una determinata dimensione.
-
Per rimuovere una dimensione da un profilo di sicurezza, utilizza il comando UpdateSecurityProfile. Immettere tutte le informazioni che si desidera conservare, ma escludere la dimensione:
aws iot update-security-profile \ --security-profile-name ProfileForConnectedDevice \ --security-profile-description "Check to see if authorization fails 10 times in 5 minutes or if cellular bandwidth exceeds 128" \ --behaviors "[{\"name\":\"metric\":\"aws:message-byte-size\",\"criteria\":{\"comparisonOperator\":\"less-than\",\"value\":{\"count\":128},\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}},{\"name\":\"Authorization\",\"metric\":\"aws:num-authorization-failures\",\"criteria\":{\comparisonOperator\":\"less-than\",\"value\"{\"count\":10},\"durationSeconds\":300,\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}}]"
L'output di questo comando è simile al seguente:
{ "behaviors": [ { "metric": "aws:message-byte-size", "name": "CellularBandwidth", "criteria": { "consecutiveDatapointsToClear": 1, "comparisonOperator": "less-than", "consecutiveDatapointsToAlarm": 1, "value": { "count": 128 } } }, { "metric": "aws:num-authorization-failures", "name": "Authorization", "criteria": { "durationSeconds": 300, "comparisonOperator": "less-than", "consecutiveDatapointsToClear": 1, "consecutiveDatapointsToAlarm": 1, "value": { "count": 10 } } } ], "securityProfileName": "ProfileForConnectedDevice", "lastModifiedDate": 1585936349.12, "securityProfileDescription": "Check to see if authorization fails 10 times in 5 minutes or if cellular bandwidth exceeds 128", "version": 2, "securityProfileArn": "arn:aws:iot:us-west-2:123456789012:securityprofile/Preo/ProfileForConnectedDevice", "creationDate": 1585846909.127 }
-
Dopo che la dimensione è stata scollegata, utilizza il comando DeleteDimension per eliminarla:
aws iot delete-dimension \ --name
TopicFilterForAuthMessages