Personalizzare quando e come visualizzare i risultati dell'audit AWS IoT Device Defender - AWS IoT Device Defender

Personalizzare quando e come visualizzare i risultati dell'audit AWS IoT Device Defender

AWS IoT Device Defender audit fornisce controlli periodici di sicurezza per confermare che i dispositivi AWS IoT e le risorse stiano seguendo le best practice. Per ogni controllo, i risultati di audit vengono classificati come conformi o non conformi, dove la non conformità risulta nelle icone di avviso della console. Per ridurre il rumore causato dalla ripetizione di problemi noti, la funzione di soppressione della ricerca di audit consente di disattivare temporaneamente queste notifiche di non conformità.

È possibile eliminare i controlli di audit selezionati per una risorsa o un account specifico per un periodo di tempo predeterminato. Un risultato del controllo audit che è stato eliminato viene classificato come risultato soppresso, separato dalle categorie conformi e non conformi. Questa nuova categoria non attiva un allarme come un risultato non conforme. Ciò consente di ridurre i disturbi delle notifiche di non conformità durante i periodi di manutenzione noti, o fino al completamento di un aggiornamento.

Nozioni di base

Nelle sezioni seguenti viene descritto come utilizzare le soppressioni per la ricerca di audit per sopprimere un controllo Device certificate expiring nella console e nell’interfaccia a riga di comando. Se desideri seguire una delle dimostrazioni, devi prima creare due certificati in scadenza per Device Defender che possano essere rilevati.

Consulta le informazioni riportate di seguito per creare i tuoi certificati.

Se utilizzi l'interfaccia a riga di comando per creare i certificati, immetti il comando seguente.

openssl x509 -req \ -in device_cert_csr_filename \ -CA root_ca_pem_filename \ -CAkey root_ca_key_filename \ -CAcreateserial \ -out device_cert_pem_filename \ -days 1 -sha256

Personalizzare i risultati di audit nella console

Nella procedura dettagliata seguente viene utilizzato un account con due certificati di dispositivo scaduti che attivano un controllo di audit non conforme. In questo scenario, vogliamo disabilitare l'avviso perché i nostri sviluppatori stanno testando una nuova funzionalità che risolverà il problema. Creiamo una soppressione per ogni certificato per impedire che il risultato di audit non sia conforme per la settimana successiva.

  1. Verrà innanzitutto eseguito un audit su richiesta per dimostrare che il controllo del certificato del dispositivo scaduto non è conforme.

    Dall’AWS IoT console, scegli Defend (Protezione) dalla barra laterale sinistra, quindi Audit (Controllo), e Results (Risultati). Sulla pagina Audit Results (Risultati della verifica), scegli Create (Crea). Si aprirà la finestra Create new audit (Crea nuovo audit). Scegli Create (Crea).

    Esegui un audit su richiesta per dimostrare che il controllo del certificato del dispositivo scaduto non è conforme.

    Dai risultati di audit su richiesta, possiamo vedere che “Certificato dispositivo in scadenza” non è conforme per due risorse.

  2. Ora, vorremmo disabilitare l'avviso di controllo non conforme “Certificato dispositivo in scadenza” perché i nostri sviluppatori stanno testando nuove funzionalità che correggeranno l'avviso.

    Dalla barra laterale sinistra sotto Defender (Protezione), scegli Audit (Audit) e quindi scegli Finding suppressions (Ricerca di eliminazioni). Sulla pagina Audit finding suppressions (Verifica delle soppressioni di audit), scegli Create (Crea).

    Flusso per creare le soppressioni degli esiti di audit nella console.
  3. Sulla finestra Create an audit finding suppression (Crea una soppressione della ricerca di audit), dobbiamo compilare quanto segue.

    • Audit check (Controllo di audit): selezioniamo Device certificate expiring, perché questo è il controllo di audit che vorremmo sopprimere.

    • Resource identifier (Identificatore di risorsa): inseriamo l'ID del certificato del dispositivo di uno dei certificati per cui vorremmo eliminare i risultati del audit.

    • Suppression duration (Durata dell’eliminazione): selezioniamo 1 week, perché è per quanto tempo vorremmo sopprimere il controllo audit Device certificate expiring.

    • Description (Descrizione) (facoltativa): aggiungiamo una nota che descrive il motivo per cui stiamo sopprimendo questa ricerca di audit.

    Pagina Crea soppressione degli esiti di un audit, nella quale è necessario inserire le informazioni dettagliate.

    Dopo che abbiamo riempito i campi, scegli Create (Crea). Viene visualizzato un banner di successo dopo che è stata creata la soppressione del rilevamento di audit.

  4. Abbiamo soppresso una ricerca di audit per uno dei certificati e ora abbiamo bisogno di sopprimere la ricerca di audit per il secondo certificato. Potremmo usare lo stesso metodo di soppressione che abbiamo usato nel passaggio 3, ma useremo un metodo diverso per scopi dimostrativi.

    Dalla barra laterale sinistra sotto Difender (Protezione), scegli Audit (Audit), quindi Results (Risultati). Sulla pagina Audit results (Risultati di audit) scegli l’audit con la risorsa non conforme. Quindi, seleziona la risorsa in Non-compliant checks (Controlli non conformi). Nel nostro caso, selezioniamo “Certificato dispositivo in scadenza”.

  5. Sulla pagina Device certificate expiring (Certificato del dispositivo in scadenza), sotto Non-compliant policy (Policy non conforme) scegli il pulsante di opzione accanto al risultato da eliminare. Quindi, seleziona Actions (Operazioni) e scegli la durata per la quale desideri che venga soppressa. Nel nostro caso, scegliamo 1 week come abbiamo fatto per l'altro certificato. Sulla finestra Confirm suppression (Conferma eliminazione), scegli Enable suppression (Abilitazione dell’eliminazione).

    Pagina Crea soppressione di un audit, nella quale completare il flusso. Dopo aver creato la soppressione degli esiti di audit, appare un banner di operazione eseguita correttamente.

    Viene visualizzato un banner di successo dopo che è stata creata la soppressione del rilevamento di audit. Ora, entrambi i risultati dell’audit sono stati soppressi per 1 settimana, mentre i nostri sviluppatori lavorano su una soluzione per risolvere l'avviso.

Personalizzare i risultati dell’audit nell’interfaccia a riga di comando

Nella procedura dettagliata seguente viene utilizzato un account con un certificato di dispositivo scaduto che attiva un controllo audit non conforme. In questo scenario, vogliamo disabilitare l'avviso perché i nostri sviluppatori stanno testando una nuova funzionalità che risolverà il problema. Creiamo una soppressione del rilevamento di audit per il certificato per impedire che il risultato dell’audit non sia conforme per la settimana successiva.

Utilizza i seguenti comandi dell’interfaccia a riga di comando.

  1. Utilizza il seguente comando per abilitare l’audit.

    aws iot update-account-audit-configuration \ --audit-check-configurations "{\"DEVICE_CERTIFICATE_EXPIRING_CHECK\":{\"enabled\":true}}"

    Output:

    Nessuna.

  2. Utilizza il comando seguente per eseguire l’audit on demand che sia destinato al controllo di audit DEVICE_CERTIFICATE_EXPIRING_CHECK.

    aws iot start-on-demand-audit-task \ --target-check-names DEVICE_CERTIFICATE_EXPIRING_CHECK

    Output:

    { "taskId": "787ed873b69cb4d6cdbae6ddd06996c5" }
  3. Utilizza il comando describe-account-audit-configuration per descrivere la configurazione dell’audit. Vogliamo confermare che abbiamo attivato il controllo di audit per DEVICE_CERTIFICATE_EXPIRING_CHECK.

    aws iot describe-account-audit-configuration

    Output:

    { "roleArn": "arn:aws:iam::<accountid>:role/service-role/project", "auditNotificationTargetConfigurations": { "SNS": { "targetArn": "arn:aws:sns:us-east-1:<accountid>:project_sns", "roleArn": "arn:aws:iam::<accountid>:role/service-role/project", "enabled": true } }, "auditCheckConfigurations": { "AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK": { "enabled": false }, "CA_CERTIFICATE_EXPIRING_CHECK": { "enabled": false }, "CA_CERTIFICATE_KEY_QUALITY_CHECK": { "enabled": false }, "CONFLICTING_CLIENT_IDS_CHECK": { "enabled": false }, "DEVICE_CERTIFICATE_EXPIRING_CHECK": { "enabled": true }, "DEVICE_CERTIFICATE_KEY_QUALITY_CHECK": { "enabled": false }, "DEVICE_CERTIFICATE_SHARED_CHECK": { "enabled": false }, "IOT_POLICY_OVERLY_PERMISSIVE_CHECK": { "enabled": true }, "IOT_ROLE_ALIAS_ALLOWS_ACCESS_TO_UNUSED_SERVICES_CHECK": { "enabled": false }, "IOT_ROLE_ALIAS_OVERLY_PERMISSIVE_CHECK": { "enabled": false }, "LOGGING_DISABLED_CHECK": { "enabled": false }, "REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK": { "enabled": false }, "REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK": { "enabled": false }, "UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK": { "enabled": false } } }

    DEVICE_CERTIFICATE_EXPIRING_CHECK dovrebbe avere un valore di true.

  4. Utilizza il comando list-audit-task per identificare le attività di audit completate.

    aws iot list-audit-tasks \ --task-status "COMPLETED" \ --start-time 2020-07-31 \ --end-time 2020-08-01

    Output:

    { "tasks": [ { "taskId": "787ed873b69cb4d6cdbae6ddd06996c5", "taskStatus": "COMPLETED", "taskType": "SCHEDULED_AUDIT_TASK" } ] }

    Il taskId dell’audit eseguito nel passaggio 1 dovrebbe avere un taskStatus di COMPLETED.

  5. Utilizza il comando describe-audit-task per ottenere informazioni dettagliate sull’audit completato tramite l’output taskId dal passaggio precedente. Questo comando elenca i dettagli relativi all’audit.

    aws iot describe-audit-task \ --task-id "787ed873b69cb4d6cdbae6ddd06996c5"

    Output:

    { "taskStatus": "COMPLETED", "taskType": "SCHEDULED_AUDIT_TASK", "taskStartTime": 1596168096.157, "taskStatistics": { "totalChecks": 1, "inProgressChecks": 0, "waitingForDataCollectionChecks": 0, "compliantChecks": 0, "nonCompliantChecks": 1, "failedChecks": 0, "canceledChecks": 0 }, "scheduledAuditName": "AWSIoTDeviceDefenderDailyAudit", "auditDetails": { "DEVICE_CERTIFICATE_EXPIRING_CHECK": { "checkRunStatus": "COMPLETED_NON_COMPLIANT", "checkCompliant": false, "totalResourcesCount": 195, "nonCompliantResourcesCount": 2 } } }
  6. Utilizza il comando list-audit-findings per trovare l'ID certificato non conforme in modo da poter sospendere gli avvisi di audit per questa risorsa.

    aws iot list-audit-findings \ --start-time 2020-07-31 \ --end-time 2020-08-01

    Output:

    { "findings": [ { "findingId": "296ccd39f806bf9d8f8de20d0ceb33a1", "taskId": "787ed873b69cb4d6cdbae6ddd06996c5", "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", "taskStartTime": 1596168096.157, "findingTime": 1596168096.651, "severity": "MEDIUM", "nonCompliantResource": { "resourceType": "DEVICE_CERTIFICATE", "resourceIdentifier": { "deviceCertificateId": "b4490<shortened>" }, "additionalInfo": { "EXPIRATION_TIME": "1582862626000" } }, "reasonForNonCompliance": "Certificate is past its expiration.", "reasonForNonComplianceCode": "CERTIFICATE_PAST_EXPIRATION", "isSuppressed": false }, { "findingId": "37ecb79b7afb53deb328ec78e647631c", "taskId": "787ed873b69cb4d6cdbae6ddd06996c5", "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", "taskStartTime": 1596168096.157, "findingTime": 1596168096.651, "severity": "MEDIUM", "nonCompliantResource": { "resourceType": "DEVICE_CERTIFICATE", "resourceIdentifier": { "deviceCertificateId": "c7691<shortened>" }, "additionalInfo": { "EXPIRATION_TIME": "1583424717000" } }, "reasonForNonCompliance": "Certificate is past its expiration.", "reasonForNonComplianceCode": "CERTIFICATE_PAST_EXPIRATION", "isSuppressed": false } ] }
  7. Utilizza il comando create-audit-suppression per sopprimere le notifiche per il controllo di audit DEVICE_CERTIFICATE_EXPIRING_CHECK per un certificato di dispositivo con l'id c7691e<shortened> fino al 20-08-2020.

    aws iot create-audit-suppression \ --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ --resource-identifier deviceCertificateId="c7691e<shortened>" \ --no-suppress-indefinitely \ --expiration-date 2020-08-20
  8. Utilizza il comando list-audit-suppression per confermare l'impostazione di soppressione del controllo e ottenere dettagli sulla soppressione.

    aws iot list-audit-suppressions

    Output:

    { "suppressions": [ { "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", "resourceIdentifier": { "deviceCertificateId": "c7691e<shortened>" }, "expirationDate": 1597881600.0, "suppressIndefinitely": false } ] }
  9. Il comando update-audit-suppression può essere utilizzato per aggiornare la soppressione della ricerca di controllo. L’esempio seguente aggiorna expiration-date a 08/21/20.

    aws iot update-audit-suppression \ --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ --resource-identifier deviceCertificateId=c7691e<shortened> \ --no-suppress-indefinitely \ --expiration-date 2020-08-21
  10. Il comando delete-audit-suppression può essere utilizzato per rimuovere una soppressione della ricerca di audit.

    aws iot delete-audit-suppression \ --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ --resource-identifier deviceCertificateId="c7691e<shortened>"

    Per confermare l'eliminazione, utilizza il comando list-audit-suppressions.

    aws iot list-audit-suppressions

    Output:

    { "suppressions": [] }

In questo tutorial, ti abbiamo mostrato come sopprimere un controllo Device certificate expiring nella console e nell’interfaccia a riga di comando. Per ulteriori informazioni sul controllo per individuare le soppressioni, consulta Soppressioni della ricerca di audit