./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-role
IAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME
: Value fromvar.deployment_name
.API_DOMAIN_NAME
: Constructed fromvar.deployment_name
andvar.domain_name
ifvar.enable_domain_name
is 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-role
IAM 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_0
subnet created during deployment.SUBNET_1
: ID of thedeployment_subnet_1
subnet created during deployment.SECURITY_GROUP
: ID of the${var.deployment_name}-listener-lb-default
security group created during deployment.ROLE_ARN
: ARN of the${var.deployment_name}-trigger-executor-role
IAM role created during deployment.TRIGGER_EXECUTOR_ARN
: ARN of the${var.deployment_name}-trigger-executor
Lambda 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-role
IAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME
: Value fromvar.deployment_name
.SUBNET
: ID of thedeployment_subnet_0
subnet 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-role
IAM 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-role
IAM 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-role
IAM Role created during deployment. - Environment Variables:
DEPLOYMENT_NAME
: Value fromvar.deployment_name
.SUBNET
: ID of thedeployment_subnet_0
subnet created during deployment.SECURITY_GROUP
: ID of the${var.deployment_name}-tasks-default
security 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-role
IAM 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-role
IAM 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-role
IAM 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-role
IAM 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 1 year ago