Seguridad de Serverless.com
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- 脷nete al 馃挰 Discord group o al telegram group o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
Informaci贸n B谩sica
Organizaci贸n
Una Organizaci贸n es la entidad de m谩s alto nivel dentro del ecosistema de Serverless Framework. Representa un grupo colectivo, como una empresa, departamento o cualquier entidad grande, que abarca m煤ltiples proyectos, equipos y aplicaciones.
Equipo
El Equipo son los usuarios con acceso dentro de la organizaci贸n. Los equipos ayudan a organizar a los miembros seg煤n roles. Colaboradores pueden ver y desplegar aplicaciones existentes, mientras que Administradores pueden crear nuevas aplicaciones y gestionar la configuraci贸n de la organizaci贸n.
Aplicaci贸n
Una Aplicaci贸n es un agrupamiento l贸gico de servicios relacionados dentro de una Organizaci贸n. Representa una aplicaci贸n completa compuesta de m煤ltiples servicios serverless que trabajan juntos para proporcionar una funcionalidad cohesiva.
Servicios
Un Servicio es el componente central de una aplicaci贸n Serverless. Representa tu proyecto serverless completo, encapsulando todas las funciones, configuraciones y recursos necesarios. Se define t铆picamente en un archivo serverless.yml, un servicio incluye metadatos como el nombre del servicio, configuraciones del proveedor, funciones, eventos, recursos, plugins y variables personalizadas.
service: my-service
provider:
name: aws
runtime: nodejs14.x
functions:
hello:
handler: handler.hello
Funci贸n
Una Funci贸n representa una 煤nica funci贸n serverless, como una funci贸n AWS Lambda. Contiene el c贸digo que se ejecuta en respuesta a eventos.
Se define en la secci贸n functions en serverless.yml, especificando el controlador, el entorno de ejecuci贸n, los eventos, las variables de entorno y otras configuraciones.
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
Evento
Eventos son disparadores que invocan tus funciones sin servidor. Definen c贸mo y cu谩ndo se debe ejecutar una funci贸n.
Los tipos de eventos comunes incluyen solicitudes HTTP, eventos programados (trabajos cron), eventos de base de datos, cargas de archivos y m谩s.
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
- schedule:
rate: rate(10 minutes)
Recurso
Recursos te permiten definir recursos adicionales en la nube de los que depende tu servicio, como bases de datos, buckets de almacenamiento o roles de IAM.
Se especifican en la secci贸n resources, a menudo utilizando la sintaxis de CloudFormation para AWS.
resources:
Resources:
MyDynamoDBTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: my-table
AttributeDefinitions:
- AttributeName: id
AttributeType: S
KeySchema:
- AttributeName: id
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
Proveedor
El objeto Proveedor especifica el proveedor de servicios en la nube (por ejemplo, AWS, Azure, Google Cloud) y contiene configuraciones relevantes para ese proveedor.
Incluye detalles como el tiempo de ejecuci贸n, la regi贸n, la etapa y las credenciales.
yamlCopy codeprovider:
name: aws
runtime: nodejs14.x
region: us-east-1
stage: dev
Etapa y Regi贸n
La etapa representa diferentes entornos (por ejemplo, desarrollo, preproducci贸n, producci贸n) donde tu servicio puede ser desplegado. Permite configuraciones y despliegues espec铆ficos del entorno.
provider:
stage: dev
La regi贸n especifica la regi贸n geogr谩fica donde se desplegar谩n tus recursos. Es importante para consideraciones de latencia, cumplimiento y disponibilidad.
provider:
region: us-west-2
Plugins
Plugins extienden la funcionalidad del Serverless Framework al agregar nuevas caracter铆sticas o integrarse con otras herramientas y servicios. Se definen en la secci贸n plugins y se instalan a trav茅s de npm.
plugins:
- serverless-offline
- serverless-webpack
Capas
Capas te permiten empaquetar y gestionar c贸digo compartido o dependencias por separado de tus funciones. Esto promueve la reutilizaci贸n y reduce el tama帽o de los paquetes de implementaci贸n. Se definen en la secci贸n layers y son referenciadas por las funciones.
layers:
commonLibs:
path: layer-common
functions:
hello:
handler: handler.hello
layers:
- { Ref: CommonLibsLambdaLayer }
Variables y Variables Personalizadas
Variables permiten la configuraci贸n din谩mica al permitir el uso de marcadores de posici贸n que se resuelven en el momento de la implementaci贸n.
- Sintaxis: La sintaxis
${variable}puede hacer referencia a variables de entorno, contenidos de archivos u otros par谩metros de configuraci贸n.
functions:
hello:
handler: handler.hello
environment:
TABLE_NAME: ${self:custom.tableName}
- Variables Personalizadas: La secci贸n
customse utiliza para definir variables y configuraciones espec铆ficas del usuario que pueden ser reutilizadas en todo elserverless.yml.
custom:
tableName: my-dynamodb-table
stage: ${opt:stage, 'dev'}
Salidas
Salidas definen los valores que se devuelven despu茅s de que un servicio es implementado, como ARNs de recursos, puntos finales u otra informaci贸n 煤til. Se especifican en la secci贸n outputs y a menudo se utilizan para exponer informaci贸n a otros servicios o para un f谩cil acceso despu茅s de la implementaci贸n.
隆outputs:
ApiEndpoint:
Description: "API Gateway endpoint URL"
Value:
Fn::Join:
- ""
- - "https://"
- Ref: ApiGatewayRestApi
- ".execute-api."
- Ref: AWS::Region
- ".amazonaws.com/"
- Ref: AWS::Stage
Roles y Permisos de IAM
Roles y Permisos de IAM definen las credenciales de seguridad y los derechos de acceso para tus funciones y otros recursos. Se gestionan bajo la configuraci贸n del provider o de funciones individuales para especificar los permisos necesarios.
provider:
[...]
iam:
role:
statements:
- Effect: 'Allow'
Action:
- 'dynamodb:PutItem'
- 'dynamodb:Get*'
- 'dynamodb:Scan*'
- 'dynamodb:UpdateItem'
- 'dynamodb:DeleteItem'
Resource: arn:aws:dynamodb:${aws:region}:${aws:accountId}:table/${self:service}-customerTable-${sls:stage}
Variables de Entorno
Variables te permiten pasar configuraciones y secretos a tus funciones sin codificarlos de forma r铆gida. Se definen en la secci贸n environment para el proveedor o funciones individuales.
provider:
environment:
STAGE: ${self:provider.stage}
functions:
hello:
handler: handler.hello
environment:
TABLE_NAME: ${self:custom.tableName}
Dependencias
Dependencias gestionan las bibliotecas y m贸dulos externos que requieren tus funciones. Generalmente se manejan a trav茅s de administradores de paquetes como npm o pip, y se empaquetan con tu paquete de despliegue utilizando herramientas o complementos como serverless-webpack.
plugins:
- serverless-webpack
Hooks
Hooks te permiten ejecutar scripts o comandos personalizados en puntos espec铆ficos del ciclo de vida de despliegue. Se definen utilizando plugins o dentro del serverless.yml para realizar acciones antes o despu茅s de los despliegues.
custom:
hooks:
before:deploy:deploy: echo "Starting deployment..."
Tutorial
Este es un resumen del tutorial oficial de la documentaci贸n:
- Crea una cuenta de AWS (Serverless.com comienza en la infraestructura de AWS)
- Crea una cuenta en serverless.com
- Crea una aplicaci贸n:
# Create temp folder for the tutorial
mkdir /tmp/serverless-tutorial
cd /tmp/serverless-tutorial
# Install Serverless cli
npm install -g serverless
# Generate template
serverless #Choose first one (AWS / Node.js / HTTP API)
## Indicate a name like "Tutorial"
## Login/Register
## Create A New App
## Indicate a name like "tutorialapp)
Esto deber铆a haber creado una app llamada tutorialapp que puedes verificar en serverless.com y una carpeta llamada Tutorial con el archivo handler.js que contiene algo de c贸digo JS con un c贸digo helloworld y el archivo serverless.yml declarando esa funci贸n:
exports.hello = async (event) => {
return {
statusCode: 200,
body: JSON.stringify({
message: "Go Serverless v4! Your function executed successfully!",
}),
}
}
- Crea un proveedor de AWS, yendo al dashboard en
https://app.serverless.com/<org name>/settings/providers?providerId=new&provider=aws. - Para dar acceso a
serverless.coma AWS, pedir谩 ejecutar una pila de cloudformation usando este archivo de configuraci贸n (en el momento de escribir esto): https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml - Esta plantilla genera un rol llamado
SFRole-<ID>conarn:aws:iam::aws:policy/AdministratorAccesssobre la cuenta con una Identidad de Confianza que permite que la cuenta de AWS deServerless.comacceda al rol.
Yaml roleTemplate
```yaml Description: This stack creates an IAM role that can be used by Serverless Framework for use in deployments. Resources: SFRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: AWS: arn:aws:iam::486128539022:root Action: - sts:AssumeRole Condition: StringEquals: sts:ExternalId: !Sub "ServerlessFramework-${OrgUid}" Path: / RoleName: !Ref RoleName ManagedPolicyArns: - arn:aws:iam::aws:policy/AdministratorAccess ReporterFunction: Type: Custom::ServerlessFrameworkReporter Properties: ServiceToken: "arn:aws:lambda:us-east-1:486128539022:function:sp-providers-stack-reporter-custom-resource-prod-tmen2ec" OrgUid: !Ref OrgUid RoleArn: !GetAtt SFRole.Arn Alias: !Ref Alias Outputs: SFRoleArn: Description: "ARN for the IAM Role used by Serverless Framework" Value: !GetAtt SFRole.Arn Parameters: OrgUid: Description: Serverless Framework Org Uid Type: String Alias: Description: Serverless Framework Provider Alias Type: String RoleName: Description: Serverless Framework Role Name Type: String ```Relaci贸n de Confianza
```json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::486128539022:root" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "ServerlessFramework-7bf7ddef-e1bf-43eb-a111-4d43e0894ccb" } } } ] } ```- El tutorial pide crear el archivo
createCustomer.js, que b谩sicamente crear谩 un nuevo endpoint de API manejado por el nuevo archivo JS y pide modificar el archivoserverless.ymlpara que genere una nueva tabla DynamoDB, defina una variable de entorno, el rol que estar谩 utilizando las lambdas generadas.
"use strict"
const AWS = require("aws-sdk")
module.exports.createCustomer = async (event) => {
const body = JSON.parse(Buffer.from(event.body, "base64").toString())
const dynamoDb = new AWS.DynamoDB.DocumentClient()
const putParams = {
TableName: process.env.DYNAMODB_CUSTOMER_TABLE,
Item: {
primary_key: body.name,
email: body.email,
},
}
await dynamoDb.put(putParams).promise()
return {
statusCode: 201,
}
}
- Despliegue ejecutando
serverless deploy - El despliegue se realizar谩 a trav茅s de un CloudFormation Stack
- Tenga en cuenta que las lambdas est谩n expuestas a trav茅s de API gateway y no a trav茅s de URLs directas
- Pru茅belo
- El paso anterior imprimir谩 las URLs donde se han desplegado las funciones lambda de sus puntos finales de API
Revisi贸n de Seguridad de Serverless.com
Roles y Permisos IAM Mal Configurados
Los roles IAM excesivamente permisivos pueden otorgar acceso no autorizado a recursos en la nube, lo que lleva a filtraciones de datos o manipulaci贸n de recursos.
Cuando no se especifican permisos para una funci贸n Lambda, se crear谩 un rol con permisos solo para generar registros, como:
Permisos m铆nimos de lambda
```json { "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:TagResource" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/jito-cranker-scripts-dev*:*" ], "Effect": "Allow" }, { "Action": ["logs:PutLogEvents"], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/jito-cranker-scripts-dev*:*:*" ], "Effect": "Allow" } ] } ```Estrategias de Mitigaci贸n
- Principio de Menor Privilegio: Asignar solo los permisos necesarios a cada funci贸n.
provider:
[...]
iam:
role:
statements:
- Effect: 'Allow'
Action:
- 'dynamodb:PutItem'
- 'dynamodb:Get*'
- 'dynamodb:Scan*'
- 'dynamodb:UpdateItem'
- 'dynamodb:DeleteItem'
Resource: arn:aws:dynamodb:${aws:region}:${aws:accountId}:table/${self:service}-customerTable-${sls:stage}
- Usar Roles Separados: Diferenciar roles seg煤n los requisitos de la funci贸n.
Secretos Inseguros y Gesti贸n de Configuraci贸n
Almacenar informaci贸n sensible (por ejemplo, claves API, credenciales de base de datos) directamente en serverless.yml o en el c贸digo puede llevar a la exposici贸n si los repositorios son comprometidos.
La manera recomendada de almacenar variables de entorno en el archivo serverless.yml de serverless.com (en el momento de escribir esto) es usar los proveedores ssm o s3, que permiten obtener los valores de entorno de estas fuentes en el momento de la implementaci贸n y configurar las variables de entorno de las lambdas con el texto claro de los valores!
Caution
Por lo tanto, cualquier persona con permisos para leer la configuraci贸n de las lambdas dentro de AWS podr谩 acceder a todas estas variables de entorno en texto claro!
Por ejemplo, el siguiente ejemplo usar谩 SSM para obtener una variable de entorno:
provider:
environment:
DB_PASSWORD: ${ssm:/aws/reference/secretsmanager/my-db-password~true}
Y incluso si esto previene la codificaci贸n dura del valor de la variable de entorno en el serverless.yml, el valor se obtendr谩 en el momento de la implementaci贸n y se agregar谩 en texto claro dentro de la variable de entorno de lambda.
Tip
La forma recomendada de almacenar variables de entorno usando serveless.com ser铆a almacenarla en un secreto de AWS y solo almacenar el nombre del secreto en la variable de entorno y el c贸digo de lambda deber铆a recogerlo.
Estrategias de Mitigaci贸n
- Integraci贸n con Secrets Manager: Utilizar servicios como AWS Secrets Manager.
- Variables Encriptadas: Aprovechar las caracter铆sticas de encriptaci贸n del Serverless Framework para datos sensibles.
- Controles de Acceso: Restringir el acceso a secretos seg煤n roles.
C贸digo y Dependencias Vulnerables
Dependencias desactualizadas o inseguras pueden introducir vulnerabilidades, mientras que un manejo inadecuado de entradas puede llevar a ataques de inyecci贸n de c贸digo.
Estrategias de Mitigaci贸n
- Gesti贸n de Dependencias: Actualizar regularmente las dependencias y escanear en busca de vulnerabilidades.
plugins:
- serverless-webpack
- serverless-plugin-snyk
- Validaci贸n de Entradas: Implementar una validaci贸n y sanitizaci贸n estrictas de todas las entradas.
- Revisiones de C贸digo: Realizar revisiones exhaustivas para identificar fallas de seguridad.
- An谩lisis Est谩tico: Utilizar herramientas para detectar vulnerabilidades en la base de c贸digo.
Registro y Monitoreo Inadecuados
Sin un registro y monitoreo adecuados, las actividades maliciosas pueden pasar desapercibidas, retrasando la respuesta a incidentes.
Estrategias de Mitigaci贸n
- Registro Centralizado: Agregar registros utilizando servicios como AWS CloudWatch o Datadog.
plugins:
- serverless-plugin-datadog
- Habilitar Registro Detallado: Capturar informaci贸n esencial sin exponer datos sensibles.
- Configurar Alertas: Configurar alertas para actividades sospechosas o anomal铆as.
- Monitoreo Regular: Monitorear continuamente registros y m茅tricas en busca de posibles incidentes de seguridad.
Configuraciones Inseguras de API Gateway
APIs abiertas o mal aseguradas pueden ser explotadas para acceso no autorizado, ataques de Denegaci贸n de Servicio (DoS) o ataques entre sitios.
Estrategias de Mitigaci贸n
- Autenticaci贸n y Autorizaci贸n: Implementar mecanismos robustos como OAuth, claves API o JWT.
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
authorizer: aws_iam
- Limitaci贸n de Tasa y Regulaci贸n: Prevenir abusos limitando las tasas de solicitud.
provider:
apiGateway:
throttle:
burstLimit: 200
rateLimit: 100
- Configuraci贸n Segura de CORS: Restringir or铆genes, m茅todos y encabezados permitidos.
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
cors:
origin: https://yourdomain.com
headers:
- Content-Type
- Usar Firewalls de Aplicaciones Web (WAF): Filtrar y monitorear solicitudes HTTP en busca de patrones maliciosos.
Aislamiento Insuficiente de Funciones
Recursos compartidos y un aislamiento inadecuado pueden llevar a escalaciones de privilegios o interacciones no deseadas entre funciones.
Estrategias de Mitigaci贸n
- Aislar Funciones: Asignar recursos y roles de IAM distintos para asegurar una operaci贸n independiente.
- Particionamiento de Recursos: Utilizar bases de datos o buckets de almacenamiento separados para diferentes funciones.
- Usar VPCs: Desplegar funciones dentro de Nubes Privadas Virtuales para un mejor aislamiento de red.
provider:
vpc:
securityGroupIds:
- sg-xxxxxxxx
subnetIds:
- subnet-xxxxxx
- Limitar Permisos de Funciones: Asegurarse de que las funciones no puedan acceder o interferir con los recursos de otras funciones a menos que sea expl铆citamente necesario.
Protecci贸n de Datos Inadecuada
Datos no encriptados en reposo o en tr谩nsito pueden ser expuestos, llevando a brechas de datos o manipulaci贸n.
Estrategias de Mitigaci贸n
- Encriptar Datos en Reposo: Utilizar caracter铆sticas de encriptaci贸n de servicios en la nube.
resources:
Resources:
MyDynamoDBTable:
Type: AWS::DynamoDB::Table
Properties:
SSESpecification:
SSEEnabled: true
- Encriptar Datos en Tr谩nsito: Usar HTTPS/TLS para todas las transmisiones de datos.
- Comunicaci贸n API Segura: Hacer cumplir protocolos de encriptaci贸n y validar certificados.
- Gestionar Claves de Encriptaci贸n de Forma Segura: Utilizar servicios de claves gestionadas y rotar claves regularmente.
Falta de Manejo Adecuado de Errores
Mensajes de error detallados pueden filtrar informaci贸n sensible sobre la infraestructura o la base de c贸digo, mientras que excepciones no manejadas pueden llevar a ca铆das de la aplicaci贸n.
Estrategias de Mitigaci贸n
- Mensajes de Error Gen茅ricos: Evitar exponer detalles internos en las respuestas de error.
javascriptCopy code// Ejemplo en Node.js
exports.hello = async (event) => {
try {
// L贸gica de la funci贸n
} catch (error) {
console.error(error);
return {
statusCode: 500,
body: JSON.stringify({ message: 'Error Interno del Servidor' }),
};
}
};
- Manejo Centralizado de Errores: Gestionar y sanitizar errores de manera consistente en todas las funciones.
- Monitorear y Registrar Errores: Rastrear y analizar errores internamente sin exponer detalles a los usuarios finales.
Pr谩cticas de Despliegue Inseguras
Configuraciones de despliegue expuestas o acceso no autorizado a pipelines de CI/CD pueden llevar a despliegues de c贸digo malicioso o configuraciones incorrectas.
Estrategias de Mitigaci贸n
- Asegurar Pipelines de CI/CD: Implementar controles de acceso estrictos, autenticaci贸n multifactor (MFA) y auditor铆as regulares.
- Almacenar Configuraci贸n de Forma Segura: Mantener archivos de despliegue libres de secretos codificados y datos sensibles.
- Usar Herramientas de Seguridad de Infraestructura como C贸digo (IaC): Emplear herramientas como Checkov o Terraform Sentinel para hacer cumplir pol铆ticas de seguridad.
- Despliegues Inmutables: Prevenir cambios no autorizados despu茅s del despliegue adoptando pr谩cticas de infraestructura inmutable.
Vulnerabilidades en Plugins y Extensiones
Usar plugins de terceros no verificados o maliciosos puede introducir vulnerabilidades en sus aplicaciones serverless.
Estrategias de Mitigaci贸n
- Evaluar Plugins a Fondo: Evaluar la seguridad de los plugins antes de la integraci贸n, favoreciendo aquellos de fuentes reputadas.
- Limitar el Uso de Plugins: Usar solo los plugins necesarios para minimizar la superficie de ataque.
- Monitorear Actualizaciones de Plugins: Mantener los plugins actualizados para beneficiarse de parches de seguridad.
- Aislar Entornos de Plugins: Ejecutar plugins en entornos aislados para contener posibles compromisos.
Exposici贸n de Puntos Finales Sensibles
Funciones accesibles p煤blicamente o APIs sin restricciones pueden ser explotadas para operaciones no autorizadas.
Estrategias de Mitigaci贸n
- Restringir el Acceso a Funciones: Usar VPCs, grupos de seguridad y reglas de firewall para limitar el acceso a fuentes confiables.
- Implementar Autenticaci贸n Robusta: Asegurarse de que todos los puntos finales expuestos requieran autenticaci贸n y autorizaci贸n adecuadas.
- Usar API Gateways de Forma Segura: Configurar API Gateways para hacer cumplir pol铆ticas de seguridad, incluyendo validaci贸n de entradas y limitaci贸n de tasa.
- Deshabilitar Puntos Finales No Utilizados: Revisar regularmente y deshabilitar cualquier punto final que ya no est茅 en uso.
Permisos Excesivos para Miembros del Equipo y Colaboradores Externos
Conceder permisos excesivos a miembros del equipo y colaboradores externos puede llevar a acceso no autorizado, brechas de datos y uso indebido de recursos. Este riesgo se agrava en entornos donde m煤ltiples individuos tienen diferentes niveles de acceso, aumentando la superficie de ataque y el potencial de amenazas internas.
Estrategias de Mitigaci贸n
- Principio de Menor Privilegio: Asegurarse de que los miembros del equipo y colaboradores tengan solo los permisos necesarios para realizar sus tareas.
Seguridad de Claves de Acceso y Claves de Licencia
Claves de Acceso y Claves de Licencia son credenciales cr铆ticas utilizadas para autenticar y autorizar interacciones con el CLI de Serverless Framework.
- Claves de Licencia: Son identificadores 煤nicos requeridos para autenticar el acceso a Serverless Framework Versi贸n 4 que permite iniciar sesi贸n a trav茅s del CLI.
- Claves de Acceso: Credenciales que permiten al CLI de Serverless Framework autenticarse con el Dashboard de Serverless Framework. Al iniciar sesi贸n con el cli
serverless, se generar谩 y almacenar谩 una clave de acceso en la computadora port谩til. Tambi茅n puede configurarse como una variable de entorno llamadaSERVERLESS_ACCESS_KEY.
Riesgos de Seguridad
- Exposici贸n a Trav茅s de Repositorios de C贸digo:
- Codificar o comprometer accidentalmente Claves de Acceso y Claves de Licencia en sistemas de control de versiones puede llevar a acceso no autorizado.
- Almacenamiento Inseguro:
- Almacenar claves en texto claro dentro de variables de entorno o archivos de configuraci贸n sin la encriptaci贸n adecuada aumenta la probabilidad de filtraciones.
- Distribuci贸n Inadecuada:
- Compartir claves a trav茅s de canales no seguros (por ejemplo, correo electr贸nico, chat) puede resultar en la interceptaci贸n por actores maliciosos.
- Falta de Rotaci贸n:
- No rotar regularmente las claves extiende el per铆odo de exposici贸n si las claves son comprometidas.
- Permisos Excesivos:
- Claves con permisos amplios pueden ser explotadas para realizar acciones no autorizadas en m煤ltiples recursos.
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- 脷nete al 馃挰 Discord group o al telegram group o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
HackTricks Cloud

