Risoluzione dei problemi di AWS IoT Device Defender
Aiutaci a migliorare questo argomento
Generali
- D: Sono previsti prerequisiti per l'uso di AWS IoT Device Defender?
-
R: se si desidera utilizzare parametri riportati sul dispositivo, è necessario distribuire un agente sul dispositivo o il gateway di dispositivi AWS IoT connessi. I dispositivi devono fornire un identificatore client coerente o un nome dell'oggetto.
Audit
- D: Ho abilitato un controllo e lo stato dell'audit è rimasto "In corso" per molto tempo. C'è qualcosa che non funziona? Quando posso aspettarmi i risultati?
-
R: Quando un controllo viene abilitato, la raccolta dei dati inizia immediatamente. Tuttavia, se il tuo account ha una grande quantità di dati da raccogliere (certificati, oggetti o policy), i risultati del controllo potrebbero non essere disponibili per qualche tempo dopo l'abilitazione.
Rilevamento
- D: Come faccio a sapere le soglie da impostare in un comportamento del profilo di sicurezza AWS IoT Device Defender?
-
R: Inizia creando un comportamento del profilo di sicurezza con soglie basse e collegalo a un gruppo di oggetti che contiene un set di dispositivi rappresentativo. È possibile utilizzare AWS IoT Device Defender per visualizzare i parametri correnti e quindi modificare le soglie del comportamento del dispositivo per ottenere la corrispondenza al tuo caso d'uso.
- D: Ho creato un comportamento, ma non attiva una violazione quando previsto. Come posso risolvere il problema?
-
R: Quando si definisce un comportamento, si specifica in cosa consista un comportamento normale da parte del dispositivo. Se, ad esempio, hai una telecamera di sicurezza che si connette solo a un server centrale sulla porta TCP 8888, non è previsto che vengano stabilite altre connessioni. Per ricevere un avviso se la telecamera stabilisce una connessione su un'altra porta, puoi definire un comportamento, ad esempio:
{ "name": "Listening TCP Ports", "metric": "aws:listening-tcp-ports", "criteria": { "comparisonOperator": "in-port-set", "value": { "ports": [ 8888 ] } } }
Se la fotocamera invia una connessione TCP sulla porta TCP 443, il comportamento del dispositivo viene violato e viene attivato un avviso.
- D: Uno o più dei comportamenti hanno provocato una violazione. Come posso cancellare la violazione?
-
R: Gli allarmi si disattivano quando il dispositivo torna al comportamento previsto, secondo quanto definito nei profili di comportamento. I profili di comportamento vengono valutati al momento della ricezione dei dati dei parametri per il dispositivo. Se il dispositivo non pubblica alcun parametro per più di due giorni, l'evento di violazione è impostato automaticamente su
alarm-invalidated
. - D: Ho eliminato un comportamento che provocava una violazione, come posso interrompere gli avvisi?
-
R: L'eliminazione di un comportamento interrompe tutte le violazioni future e gli avvisi relativi a tale comportamento. Gli avvisi precedenti devono essere eliminati dal tuo meccanismo di notifica. Quando, tuttavia, un comportamento viene eliminato, la registrazione delle violazioni per tale comportamento viene conservata per lo stesso periodo di tempo applicato ad altre violazioni nell'account.
Parametri dei dispositivi
- D: Sto inviando segnalazioni di parametri che so che violano i miei comportamenti, ma non vengono attivate violazioni. Qual è il problema?
-
R: Controlla le segnalazioni di parametri vengano accettate sottoscrivendo gli argomenti MQTT seguenti:
$aws/things/THING_NAME/defender/metrics/FORMAT/rejected $aws/things/THING_NAME/defender/metrics/FORMAT/accepted
THING_NAME
è il nome dell'oggetto che segnala il parametro eFORMAT
è "JSON" o "CBOR", a seconda del formato della segnalazione di parametri inviata dall'oggetto.Dopo aver eseguito la sottoscrizione, dovresti ricevere messaggi su questi argomenti per ogni segnalazione di parametri inviata. Un messaggio
rejected
indica che si è verificato un problema durante l'analisi della segnalazione di parametri. Nel payload del messaggio è incluso un messaggio di errore utile per correggere eventuali errori nella segnalazione di parametri. Un messaggioaccepted
indica che la segnalazione di parametri è stata analizzata correttamente. - D: Cosa succede se invio un parametro vuoto nella segnalazione?
-
R: Un elenco vuoto di porte o indirizzi IP è sempre considerato conforme al comportamento corrispondente. Se il comportamento corrispondente risultava violato, la violazione verrà cancellata.
- D: Perché i miei report sui parametri del dispositivo contengono messaggi per i dispositivi che non sono nel registro AWS IoT?
-
Se disponi di uno o più profili di sicurezza associati a tutti gli oggetti o a tutti gli oggetti non registrati, AWS IoT Device Defender include i parametri degli oggetti non registrati. Se si desidera escludere i parametri dagli oggetti non registrati, è possibile allegare i profili a tutti i dispositivi registrati invece che a tutti i dispositivi.
- D: Non riesco a visualizzare i messaggi provenienti da uno o più dispositivi non registrati anche se viene applicato un profilo di sicurezza a tutti i dispositivi non registrati o a tutti i dispositivi. Come posso risolvere il problema?
-
Verifica che la segnalazione dei parametri che stai inviando sia formalmente corretta e si avvalga di uno dei formati supportati. Per informazioni, consulta Specifica del documento di parametri dei dispositivi. Verificare che i dispositivi non registrati utilizzino un identificatore client coerente o un nome oggetto. I messaggi riferiti dai dispositivi vengono rifiutati se il nome dell'oggetto contiene caratteri di controllo oppure è più lungo di 128 byte di caratteri di codifica UTF-8.
- D: Cosa succede se un dispositivo non registrato viene aggiunto al registro o un dispositivo registrato diventa non registrato?
-
R: Se un dispositivo viene aggiunto o rimosso dal registro:
-
Puoi vedere due diverse violazioni per il dispositivo (una sotto il suo nome oggetto registrato, una sotto la propria identità non registrata), se continuerà a pubblicare i parametri per violazioni. Le violazioni attive per la vecchia identità non vengono più visualizzate dopo due giorni, ma sono disponibili nello storico delle violazioni per un massimo di 14 giorni.
-
- D: Quale valore devo fornire nel campo ID della segnalazione dei parametri di un dispositivo?
-
R: Devi usare un valore univoco per ogni segnalazione di parametri, espresso come valore intero positivo. In genere è consigliabile usare un timestamp di epoca (Unix epoch)
. - D: È consigliabile creare una connessione MQTT dedicata per i parametri di AWS IoT Device Defender?
-
R: Non è necessaria una connessione MQTT separata.
- D: Quale ID client devo usare per la connessione per la pubblicazione di parametri del dispositivo?
-
Per i dispositivi (oggetti) che si trovano nel registro AWS IoT, utilizzare il nome dell'oggetto registrato. Per i dispositivi che non sono presenti nel registro AWS IoT, utilizzare un identificatore coerente durante la connessione a AWS IoT. Questa pratica consente di abbinare le violazioni al nome dell'oggetto.
- D: È possibile pubblicare parametri per un dispositivo con un ID client diverso?
-
È possibile pubblicare i parametri per conto di un altro oggetto. A tale scopo, è possibile pubblicare i parametri per l'argomento AWS IoT Device Defender riservato per quel dispositivo. Ad esempio,
Thing-1
vorrebbe pubblicare i parametri per sé e anche per conto diThing-2
.Thing-1
raccoglie i propri parametri e li pubblica sull'argomento MQTT:$aws/things/Thing-1/defender/metrics/json
Thing-1
quindi ottiene i parametri daThing-2
e pubblica tali parametri nell'argomento MQTT:$aws/things/Thing-2/defender/metrics/json
- D: Quanti profili di sicurezza e comportamenti possono essere presenti nell'account?
-
R: Consulta Endpoint e quote AWS IoT Device Defender.
- D: Cos'è un ruolo target prototipo per un target di avvisi?
-
R: Un ruolo che permette a AWS IoT Device Defender di pubblicare avvisi nel target (argomento SNS) richiede 2 elementi:
-
Una relazione di trust che specifica iot.amazonaws.com come entità attendibile e
-
Una policy collegata per la concessione dell'autorizzazione AWS IoT per pubblicare su un argomento SNS specifico. Ad esempio:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sns:Publish", "Resource": "<sns-topic-arn>" } ] }
-
Se l'argomento SNS utilizzato per la pubblicazione degli avvisi è un argomento crittografato, si devono concedere a AWS IoT l'autorizzazione per la pubblicazione sull'argomento SNS e altre due autorizzazioni. Ad esempio:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "<sns-topic-arn>" } ] }
-
- D: L'invio della segnalazione dei parametri con un tipo di parametro personalizzato
number
fallisce con il messaggio di erroreMalformed metrics report
. Qual è il problema? -
R: Il tipo
number
assume solo un singolo valore di parametro come input, ma durante l'invio del valore del parametro nel report DeviceMetrics deve essere trasmesso come array con un singolo valore. Assicurati di inviare il valore del parametro come array.Errore di payload:
{"header":{"report_id":12334567,"version":"1.0"},"metrics":{"network_stats":{"bytes_in":30680,"bytes_out":10652,"packets_in":113,"packets_out":118}},"custom_metrics":{"my_custom_metric":{"number":0}}}
Messaggio di errore:
{"thingName":"myThing","status":"REJECTED","statusDetails":{"ErrorCode":"InvalidPayload","ErrorMessage":"Malformed metrics report"},"timestamp":1635802047699}
Payload senza errori:
{"header":{"report_id":12334567,"version":"1.0"},"metrics":{"network_stats":{"bytes_in":30680,"bytes_out":10652,"packets_in":113,"packets_out":118}},"custom_metrics":{"my_custom_metric":[{"number":0}]}}
Risposta:
{"thingName":"myThing","12334567":1635800375,"status":"ACCEPTED","timestamp":1635801636023}