./HAVOC Lambda Functions
Details about AWS Lambda functions created in a ./HAVOC deployment
When creating a new ./HAVOC deployment, a series of AWS Lambda functions are created in your AWS account. Below is a list of the Lambda functions and their environment variables.
The Terraform configuration file that is used to create the lambda functions is available here: https://github.com/havocsh/havoc/blob/main/havoc_deploy/aws/terraform/lambdas.tf
AWS Lambda Functions
authorizer
authorizer- Runtime: Python 3.8
- Timeout: 60 seconds
- Source code: https://github.com/havocsh/havoc/tree/main/havoc_control_api/authorizer
- Deployment package: Local zip package of source code at
build/authorizer.zip. - Handler:
lambda_function.lambda_handler - Role: Assumes the
${var.deployment_name}-lambda-roleIAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME: Value fromvar.deployment_name.API_DOMAIN_NAME: Constructed fromvar.deployment_nameandvar.domain_nameifvar.enable_domain_nameis true; otherwisenull.
manage
manage- Runtime: Python 3.8
- Timeout: 60 seconds
- Source code: https://github.com/havocsh/havoc/tree/main/havoc_control_api/manage
- Deployment package: Local zip package of source code at
build/manage.zip. - Handler:
lambda_function.lambda_handler - Role: Assumes the
${var.deployment_name}-lambda-roleIAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME: Value fromvar.deployment_name.VPC_ID: ID for VPC created during ./HAVOC deployment.SUBNET_0: ID of thedeployment_subnet_0subnet created during deployment.SUBNET_1: ID of thedeployment_subnet_1subnet created during deployment.SECURITY_GROUP: ID of the${var.deployment_name}-listener-lb-defaultsecurity group created during deployment.ROLE_ARN: ARN of the${var.deployment_name}-trigger-executor-roleIAM role created during deployment.TRIGGER_EXECUTOR_ARN: ARN of the${var.deployment_name}-trigger-executorLambda function created during deployment.
playbook_operator_control
playbook_operator_control- Runtime: Python 3.8
- Timeout: 300 seconds (5 minutes)
- Source code: https://github.com/havocsh/havoc/tree/main/havoc_control_api/playbook_operator_control
- Deployment package: Local zip package of source code at
build/playbook_operator_control.zip. - Handler:
lambda_function.lambda_handler - Role: Assumes the
${var.deployment_name}-lambda-roleIAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME: Value fromvar.deployment_name.SUBNET: ID of thedeployment_subnet_0subnet created during deployment.
playbook_operator_result
playbook_operator_result- Runtime: Python 3.8
- Timeout: 60 seconds
- Source code: https://github.com/havocsh/havoc/tree/main/havoc_control_api/playbook_operator_result
- Deployment package: Local zip package of source code at
build/playbook_operator_result.zip. - Handler:
lambda_function.lambda_handler - Role: Assumes the
${var.deployment_name}-lambda-roleIAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME: Value fromvar.deployment_name.ENABLE_PLAYBOOK_RESULTS_LOGGING: Value fromvar.enable_playbook_results_logging.RESULTS_QUEUE_EXPIRATION: Value fromvar.results_queue_expiration.
remote_task
remote_task- Runtime: Python 3.8
- Timeout: 60 seconds
- Source code: https://github.com/havocsh/havoc/tree/main/havoc_control_api/remote_task
- Deployment package: Local zip package of source code at
build/remote_task.zip. - Handler:
lambda_function.lambda_handler - Role: Assumes the
${var.deployment_name}-lambda-roleIAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME: Value fromvar.deployment_name.ENABLE_TASK_RESULTS_LOGGING: Value fromvar.enable_playbook_results_logging.RESULTS_QUEUE_EXPIRATION: Value fromvar.results_queue_expiration.
task_control
task_control- Runtime: Python 3.8
- Timeout: 60 seconds
- Source code: https://github.com/havocsh/havoc/tree/main/havoc_control_api/task_control
- Deployment package: Local zip package of source code at
build/task_control.zip. - Handler:
lambda_function.lambda_handler - Role: Assumes the
${var.deployment_name}-lambda-roleIAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME: Value fromvar.deployment_name.SUBNET: ID of thedeployment_subnet_0subnet created during deployment.SECURITY_GROUP: ID of the${var.deployment_name}-tasks-defaultsecurity group created during deployment.
task_result
task_result- Runtime: Python 3.8
- Timeout: 60 seconds
- Source code: https://github.com/havocsh/havoc/tree/main/havoc_control_api/task_result
- Deployment package: Local zip package of source code at
build/task_result.zip. - Handler:
lambda_function.lambda_handler - Role: Assumes the
${var.deployment_name}-lambda-roleIAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME: Value fromvar.deployment_name.ENABLE_TASK_RESULTS_LOGGING: Value fromvar.enable_playbook_results_logging.RESULTS_QUEUE_EXPIRATION: Value fromvar.results_queue_expiration.
trigger_executor
trigger_executor- Runtime: Python 3.8
- Timeout: 900 seconds (15 minutes)
- Source code: https://github.com/havocsh/havoc/tree/main/havoc_control_api/trigger_executor
- Deployment package: Local zip package of source code at
build/trigger_executor.zip. - Handler:
lambda_function.lambda_handler - Role: Assumes the
${var.deployment_name}-lambda-roleIAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME: Value fromvar.deployment_name.RESULTS_QUEUE_EXPIRATION: Value fromvar.results_queue_expiration.
workspace_access_get
workspace_access_get- Runtime: Python 3.8
- Timeout: 60 seconds
- Source code: https://github.com/havocsh/havoc/tree/main/havoc_control_api/workspace_access_get
- Deployment package: Local zip package of source code at
build/workspace_access_get.zip. - Handler:
lambda_function.lambda_handler - Role: Assumes the
${var.deployment_name}-workspace-access-get-lambda-roleIAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME: Value fromvar.deployment_name.
workspace_access_put
workspace_access_put- Runtime: Python 3.8
- Timeout: 60 seconds
- Source code: https://github.com/havocsh/havoc/tree/main/havoc_control_api/workspace_access_put
- Deployment package: Local zip package of source code at
build/workspace_access_put.zip. - Handler:
lambda_function.lambda_handler - Role: Assumes the
${var.deployment_name}-workspace-access-put-lambda-roleIAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME: Value fromvar.deployment_name.
AWS Lambda Permissions
- Permissions are defined to allow various AWS services to invoke the Lambda functions. These services include API Gateway, CloudWatch, and AWS Events.
- The source ARNs and principals are defined per permission, ensuring that only the specified services can invoke the Lambda functions.
Updated about 2 years ago
