
SkyWrapper ayuda a descubrir formas sospechosas de creación y uso de tokens temporales en AWS.

SkyWrapper es un proyecto de código abierto que analiza los comportamientos de los tokens temporales creados en una cuenta de AWS determinada. La herramienta tiene como objetivo encontrar formas y usos sospechosos de creación de tokens temporales para detectar actividad maliciosa en la cuenta. La herramienta analiza la cuenta de AWS y crea una hoja de Excel que incluye todos los tokens temporales actualmente activos. Se imprime un resumen de los hallazgos en la pantalla después de cada ejecución.
Demostración de SkyWrapper:

python SkyWrapper.py
Para ejecutar este script, necesitará al menos la siguiente política de permisos:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "S3TrailBucketPermissions",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucketMultipartUploads",
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::{cloudtrail_bucket_name}/*",
"arn:aws:s3:::{cloudtrail_bucket_name}
]
},
{
"Sid": "IAMReadPermissions",
"Effect": "Allow",
"Action": [
"iam:ListAttachedRolePolicies",
"iam:ListRolePolicies",
"iam:GetRolePolicy",
"iam:GetPolicyVersion",
"iam:GetPolicy",
"iam:ListRoles"
],
"Resource": [
"arn:aws:iam::*:policy/*",
"arn:aws:iam::*:role/*"
]
},
{
"Sid": "GLUEReadWritePermissions",
"Effect": "Allow",
"Action": [
"glue:CreateTable",
"glue:CreateDatabase",
"glue:GetTable",
"glue:GetDatabase"
],
"Resource": "*"
},
{
"Sid": "CLOUDTRAILReadPermissions",
"Effect": "Allow",
"Action": [
"cloudtrail:DescribeTrails"
],
"Resource": "*"
},
{
"Sid": "ATHENAReadPermissions",
"Effect": "Allow",
"Action": [
"athena:GetQueryResults",
"athena:StartQueryExecution",
"athena:GetQueryExecution"
],
"Resource": "arn:aws:athena:*:*:workgroup/*"
},
{
"Sid": "S3AthenaResultsBucketPermissions",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucketMultipartUploads",
"s3:CreateBucket",
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListMultipartUploadParts"
],
"Resource": "arn:aws:s3:::aws-athena-query-results-*"
}
]
}
¡Asegúrese de cambiar el "{trail_bucket}" por el nombre del bucket de su trail!
En caso de que tenga más de un trail y desee que el script también los utilice, debe agregarlos también a la sección de recursos de la política de permisos.
"config.yaml" es el archivo de configuración. En la mayoría de los casos, puede dejar la configuración tal como está. En caso de que necesite cambiarla, el archivo de configuración está documentado.
athena: # Athena configuration
database_name: default # The name of the database Athena uses for querying the trail bucket.
table_name: cloudtrail_logs_{table_name} # The table name of the trail bucket name
output_location: s3://aws-athena-query-results-{account_id}-{region}/ # The default output location bucket for the query results
output:
excel_output_file: run_results_{trail}_{account_id}-{date}.xlsx # Excel results file
summary_output_file: run_summary_{trail}_{account_id}-{date}.txt # Summary text results file
verify_https: True # Enable/ Disable verification of SSL certificates for HTTP requests
account:
account_id: 0 # The account id - Keep it as 0 in case you don't know it
aws_access_key_id: # If you keep it empty, the script will look after the default AWS credentials stored in ~/.aws/credentials
aws_secret_access_key: # If you keep it empty, the script will look after the default AWS credentials stored in ~/.aws/credentials
aws_session_token: # If you keep it empty, the script will look after the default AWS credentials stored in ~/.aws/credentials
Para más comentarios, sugerencias o preguntas, puede contactar a Omer Tsarfati (@OmerTsarfati) y a CyberArk Labs. Puede encontrar más proyectos desarrollados por nosotros en https://github.com/cyberark/.