Uso de BatchUpdateFindings para actualizar un hallazgo - AWS Security Hub

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de BatchUpdateFindings para actualizar un hallazgo

La acción BatchUpdateFindings se utiliza para actualizar la información relacionada con el procesamiento por parte de un cliente de los resultados derivados de los proveedores de resultados. Puede ser utilizada por un cliente o por una herramienta de SIEM, de tickets, de administración de incidentes o de SOAR que funcione en nombre de un cliente. Se puede utilizar BatchUpdateFindings para actualizar campos específicos en el formato AWS de búsqueda de seguridad (ASFF).

No se puede usar BatchUpdateFindings para crear nuevos resultados. Se puede utilizar para actualizar hasta 100 resultados a la vez.

Cada vez que Security Hub recibe una BatchUpdateFindings solicitud para actualizar un hallazgo, genera automáticamente un Security Hub Findings - Importedevento en Amazon EventBridge. Consulte Respuesta y corrección automatizadas.

BatchUpdateFindings no cambia el campo UpdatedAt para el hallazgo. UpdatedAt solo refleja la actualización más reciente del proveedor de hallazgos.

Campos disponibles para BatchUpdateFindings

Las cuentas del Administrador pueden utilizar >BatchUpdateFindings para actualizar los resultados de su cuenta o de sus cuentas miembro. Las cuentas miembro pueden utilizar >BatchUpdateFindings para actualizar los resultados de su cuenta.

Los clientes solo pueden usar >BatchUpdateFindings para actualizar los siguientes campos y objetos.

  • Confidence

  • Criticality

  • Note

  • RelatedFindings

  • Severity

  • Types

  • UserDefinedFields

  • VerificationState

  • Workflow

De forma predeterminada, las cuentas de administrador y miembro tienen acceso a todos los campos y valores de campo anteriores. Security Hub también proporciona claves de contexto que le permiten restringir el acceso a los campos y valores de los campos.

Por ejemplo, es posible que solo permita a las cuentas miembro establecer Workflow.Status como RESOLVED. O tal vez no desee permitir que las cuentas de los miembros cambien a Severity.Label.

Configuración del acceso a BatchUpdateFindings

Puede configurar las políticas de IAM para restringir el acceso al uso de BatchUpdateFindings para actualizar los campos y los valores de los campos.

En una declaración para restringir el acceso a BatchUpdateFindings, utilice los siguientes valores:

  • Action es securityhub:BatchUpdateFindings

  • Effect es Deny

  • Para Condition, puede denegar una solicitud BatchUpdateFindings en función de lo siguiente:

    • El resultado incluye un campo específico.

    • El resultado incluye un valor de campo específico.

Claves de condición

Estas son las claves de condición para restringir el acceso a BatchUpdateFindings.

Campo de ASFF

La clave de condición de un campo de ASFF es la siguiente:

securityhub:ASFFSyntaxPath/<fieldName>

Sustituya <fieldName> por el campo de ASFF. Al configurar el acceso a BatchUpdateFindings, incluya uno o más campos de ASFF específicos en su política de IAM en lugar de un campo de nivel principal. Por ejemplo, para restringir el acceso al campo Workflow.Status, debe incluir securityhub:ASFFSyntaxPath/Workflow.Status en su política en lugar del campo de nivel principal Workflow.

Cómo no permitir todas las actualizaciones de un campo

Para evitar que un usuario actualice un campo específico, utilice una condición como esta:

"Condition": { "Null": { "securityhub:ASFFSyntaxPath/<fieldName>": "false" } }

Por ejemplo, la siguiente declaración indica que no se puede usar BatchUpdateFindings para actualizar el estado del flujo de trabajo.

{ "Sid": "VisualEditor0", "Effect": "Deny", "Action": "securityhub:BatchUpdateFindings", "Resource": "*", "Condition": { "Null": { "securityhub:ASFFSyntaxPath/Workflow.Status": "false" } } }

Cómo no permitir valores de campo específicos

Para evitar que un usuario establezca un campo en un valor específico, utilice una condición como esta:

"Condition": { "StringEquals": { "securityhub:ASFFSyntaxPath/<fieldName>": "<fieldValue>" } }

Por ejemplo, la siguiente declaración indica que no se puede usar BatchUpdateFindings para establecer Workflow.Status como SUPPRESSED.

{ "Sid": "VisualEditor0", "Effect": "Deny", "Action": "securityhub:BatchUpdateFindings", "Resource": "*", "Condition": { "StringEquals": { "securityhub:ASFFSyntaxPath/Workflow.Status": "SUPPRESSED" } }

También puede proporcionar una lista de valores que no están permitidos.

"Condition": { "StringEquals": { "securityhub:ASFFSyntaxPath/<fieldName>": [ "<fieldValue1>", "<fieldValue2>", "<fieldValuen>" ] } }

Por ejemplo, la siguiente declaración indica que no se puede usar BatchUpdateFindings para establecer Workflow.Status como RESOLVED o SUPPRESSED.

{ "Sid": "VisualEditor0", "Effect": "Deny", "Action": "securityhub:BatchUpdateFindings", "Resource": "*", "Condition": { "StringEquals": { "securityhub:ASFFSyntaxPath/Workflow.Status": [ "RESOLVED", "NOTIFIED" ] } }

Mediante el batch-update-findings comando del AWS CLI

En el AWS Command Line Interface, se utiliza el batch-update-findingscomando para actualizar los resultados.

Para cada resultado que se actualice, debe proporcionar tanto el ID de resultado como el ARN del producto que generó el resultado.

--finding-identifiers ID="<findingID1>",ProductArn="<productARN>" ID="<findingID2>",ProductArn="<productARN2>"

Cuando proporcione los atributos que desea actualizar, puede usar un formato JSON o un formato abreviado.

Este es un ejemplo de una actualización del objeto Note que utiliza el formato JSON:

--note '{"Text": "Known issue that is not a risk.", "UpdatedBy": "user1"}'

Esta es la misma actualización que usa el formato de acceso directo:

--note Text="Known issue that is not a risk.",UpdatedBy="user1"

La referencia de AWS CLI comandos proporciona el JSON y la sintaxis de atajos para cada campo.

En el siguiente ejemplo de >batch-update-findings se actualizan dos resultados para añadir una nota, cambiar la etiqueta de gravedad y resolverlos.

aws securityhub batch-update-findings --finding-identifiers Id="arn:aws:securityhub:us-west-1:123456789012:subscription/pci-dss/v/3.2.1/PCI.Lambda.2/finding/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",ProductArn="arn:aws:securityhub:us-west-2::product/aws/securityhub" Id="arn:aws:securityhub:us-west-1:123456789012:subscription/pci-dss/v/3.2.1/PCI.Lambda.2/finding/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",ProductArn="arn:aws:securityhub:us-west-1::product/aws/securityhub" --note '{"Text": "Known issue that is not a risk.", "UpdatedBy": "user1"}' --severity '{"Label": "LOW"}' --workflow '{"Status": "RESOLVED"}'

Este es el mismo ejemplo, pero utiliza los atajos en lugar de JSON.

aws securityhub batch-update-findings --finding-identifiers Id="arn:aws:securityhub:us-west-1:123456789012:subscription/pci-dss/v/3.2.1/PCI.Lambda.2/finding/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",ProductArn="arn:aws:securityhub:us-west-1::product/aws/securityhub" Id="arn:aws:securityhub:us-west-1:123456789012:subscription/pci-dss/v/3.2.1/PCI.Lambda.2/finding/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",ProductArn="arn:aws:securityhub:us-west-1::product/aws/securityhub" --note Text="Known issue that is not a risk.",UpdatedBy="user1" --severity Label="LOW" --workflow Status="RESOLVED"