Personalizar cuándo y cómo ver los resultados de auditoría de AWS IoT Device Defender - AWS IoT Device Defender

Personalizar cuándo y cómo ver los resultados de auditoría de AWS IoT Device Defender

La auditoría de AWS IoT Device Defender proporciona controles de seguridad periódicos para confirmar que los dispositivos y los recursos de AWS IoT siguen las prácticas recomendadas. Para cada comprobación, los resultados de auditoría se clasifican en conformes o no conformes, mientras que en caso de incumplimiento aparecen iconos de advertencia en la consola. Para reducir el ruido provocado por la repetición de problemas conocidos, la función de supresión de resultados de auditoría permite silenciar temporalmente estas notificaciones de incumplimiento.

Puede suprimir determinadas comprobaciones de auditoría para un recurso o una cuenta específicos durante un período de tiempo predeterminado. El resultado de una comprobación de auditoría que se ha suprimido se clasifica como resultado suprimido, independientemente de las categorías de conformidad y no conformidad. Esta nueva categoría no activa una alarma como si se tratara de un resultado no conforme. Esto le permite reducir las interrupciones en las notificaciones de incumplimiento durante los períodos de mantenimiento conocidos o hasta que esté programada la finalización de una actualización.

Introducción

En las siguientes secciones se detalla cómo puede utilizar las supresiones de los resultados de auditoría para suprimir una comprobación de Device certificate expiringen la consola y en la CLI. Si desea seguir alguna de las demostraciones, primero debe crear dos certificados que venzan para que Device Defender los detecte.

Use lo siguiente para crear sus certificados.

Si usa la CLI para crear los certificados, escriba el comando siguiente.

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

Personalización de los resultados de la auditoría en la consola

En el siguiente tutorial, se utiliza una cuenta con dos certificados de dispositivo caducados que provocan una comprobación de auditoría no conforme. En este escenario, queremos deshabilitar la advertencia porque nuestros desarrolladores están probando una característica que solucionará el problema. Creamos una supresión de resultados de auditoría para cada certificado con el fin de evitar que el resultado de la auditoría no sea conforme durante la semana siguiente.

  1. En primer lugar, realizaremos una auditoría bajo demanda para comprobar que la comprobación del certificado del dispositivo caducado no es conforme.

    En la consola de AWS IoT, elija Defend en la barra lateral izquierda, luego Audit y después Resultados. En la página Resultados de auditoría, seleccione Crear. Se abrirá la ventana Crear una auditoría nueva. Seleccione Crear.

    Ejecute una auditoría bajo demanda para comprobar que la comprobación del certificado del dispositivo caducado no es conforme.

    A partir de los resultados de la auditoría bajo demanda, podemos ver que la expresión «El certificado de dispositivo está caducando» no es compatible con dos recursos.

  2. Ahora, queremos desactivar la advertencia de verificación de no conformidad que indica que el certificado del dispositivo está caducando, ya que nuestros desarrolladores están probando nuevas características para corregir esta advertencia.

    En la barra lateral izquierda, debajo de Defend, elija Audit y, a continuación, Supresiones de resultados. En la página Supresiones de resultados de la auditoría, seleccione Crear.

    Flujo para crear supresiones de los resultados de auditoría en la consola
  3. En la ventana Crear una supresión de resultados de la auditoría, necesitamos rellenar lo siguiente.

    • Comprobación de auditoría: seleccionamos Device certificate expiring porque es la verificación de auditoría que queremos suprimir.

    • Identificador de recursos: introducimos el identificador del certificado del dispositivo de uno de los certificados cuyos resultados de auditoría queremos suprimir.

    • Duración de la supresión: seleccionamos 1 week porque ese es el tiempo durante el que queremos suprimir la comprobación de auditoría de Device certificate expiring.

    • Descripción (opcional): agregamos una nota que describe por qué estamos suprimiendo este resultado de auditoría.

    Página Creación de una supresión de resultados de la auditoría en la que se debe introducir la información detallada

    Tras de completar los campos, elija Crear. Vemos un banner indicando que se ha realizado todo correctamente después de que se haya creado la supresión de resultados de la auditoría.

  4. Hemos suprimido el resultado de una auditoría para uno de los certificados y ahora necesitamos suprimir el resultado de la auditoría del segundo certificado. Podríamos utilizar el mismo método de supresión que utilizamos en el paso 3, pero utilizaremos un método diferente con fines de demostración.

    En la barra lateral izquierda, debajo de Defend, elija Audit y, a continuación, Resultados. En la página Resultados de auditoría, elija la auditoría con el recurso no conforme. A continuación, seleccione el recurso en Comprobaciones de no conformidad. En nuestro caso, seleccionamos «Certificado de dispositivo que va a caducar».

  5. En la página Certificado de dispositivo que va a caducar, en Política no conforme, seleccione el botón de opción situado junto al resultado que quiera suprimir. A continuación, seleccione el menú desplegable Acciones y luego elija el tiempo durante el que quiere que se suprima el resultado. En nuestro caso, elegimos 1 week como hicimos con el otro certificado. En la ventana Confirme la supresión, seleccione Habilite la supresión.

    Página Creación de una supresión de auditorías en la que se completa el flujo Aparecerá un aviso de confirmación después de que se haya creado la supresión de resultados de la auditoría.

    Vemos un banner indicando que se ha realizado todo correctamente después de que se haya creado la supresión de resultados de la auditoría. Ahora, los dos resultados de la auditoría se han ocultado durante una semana mientras nuestros desarrolladores trabajan en una solución que aborde la advertencia.

Personalización de los resultados de la auditoría en la CLI

En el siguiente tutorial, se utiliza una cuenta con un certificado de dispositivo caducado que provoca una comprobación de auditoría no conforme. En este escenario, queremos deshabilitar la advertencia porque nuestros desarrolladores están probando una característica que solucionará el problema. Creamos una supresión de resultados de auditoría para el certificado con el fin de evitar que el resultado de la auditoría no sea conforme durante la semana siguiente.

Utilizamos los siguientes comandos de la CLI.

  1. Utilice el siguiente comando para activar la auditoría.

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

    Salida:

    Ninguna.

  2. Utilice el siguiente comando para ejecutar una auditoría bajo demanda dirigida a la comprobación de auditoría de DEVICE_CERTIFICATE_EXPIRING_CHECK.

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

    Salida:

    { "taskId": "787ed873b69cb4d6cdbae6ddd06996c5" }
  3. Utilice el comando describe-account-audit-configuration para describir la configuración de la auditoría. Queremos confirmar que hemos activado la comprobación de auditoría para DEVICE_CERTIFICATE_EXPIRING_CHECK.

    aws iot describe-account-audit-configuration

    Salida:

    { "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 debe tener un valor de true.

  4. Utilice el comando list-audit-task para identificar las tareas de auditoría completadas.

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

    Salida:

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

    El taskId de la auditoría que ejecutó en el paso 1 debe tener un taskStatus de COMPLETED.

  5. Utilice el comando describe-audit-task para obtener detalles sobre la auditoría completada utilizando el resultado taskId del paso anterior. Este comando muestra los detalles de la auditoría.

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

    Salida:

    { "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. Utilice el comando list-audit-findings para buscar el identificador de certificado que no cumple los requisitos para que podamos suspender las alertas de auditoría de este recurso.

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

    Salida:

    { "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. Utilice el comando create-audit-suppression para suprimir las notificaciones de la comprobación de auditoría de DEVICE_CERTIFICATE_EXPIRING_CHECK de un certificado de dispositivo con el identificador c7691e<shortened> hasta el 20-08-2022

    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. Utilice el comando list-audit-suppression para confirmar la configuración de supresión de la auditoría y obtener detalles sobre la supresión.

    aws iot list-audit-suppressions

    Salida:

    { "suppressions": [ { "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", "resourceIdentifier": { "deviceCertificateId": "c7691e<shortened>" }, "expirationDate": 1597881600.0, "suppressIndefinitely": false } ] }
  9. El comando update-audit-suppression se puede utilizar para actualizar la supresión de resultados de la auditoría. En el siguiente ejemplo, se actualiza el 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. El comando delete-audit-suppression se puede utilizar para eliminar la supresión de un resultado de auditoría.

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

    Para confirmar la eliminación, utilice el comando list-audit-suppressions.

    aws iot list-audit-suppressions

    Salida:

    { "suppressions": [] }

En este tutorial, le mostramos cómo suprimir una comprobación de Device certificate expiring en la consola y en la CLI. Para obtener más información acerca de las supresiones de resultados de la auditoría, consulte Supresiones de resultados de auditoría.