Application API Abuse: API Gateway
AWS Specific Sub-Technique
Other sub-techniques of Application API Abuse (1)
ID | Name |
---|---|
AT1667.001 | API Gateway |
AWS Specific Content
A prerequisite for this technique is that a threat actor has already gained control of an AWS identity with the permissions to perform the actions in the AWS CloudTrail Event Name(s) section.
With access to an AWS identity that has the appropriate permissions, threat actors may add unauthorized resources that support Amazon API Gateways and associate them with other adversary-controlled resources, such as Lambda functions, within the AWS account. This allows the threat actor to maintain access by invoking the API Gateway endpoint to activate the other AWS resources. Upon activation, the Lambda functions can then be used to perform actions such as starting EC2 instances or creating new users with administrative privileges. The new users created with this technique are fully controlled by the threat actor and provide them with a method of persistent access.
Detection
AWS Specific Content
When this technique is used by the threat actor, actions taken by the threat actor using the credentials obtained will be logged in CloudTrail. You can use the Event history page in the AWS CloudTrail console to view the last 90 days of management events in an AWS Region for the events listed in the AWS CloudTrail Event Name(s) section, such as
apigateway:CreateDeployment
or apigateway:CreateResource
.A separate CloudTrail trail will give you an ongoing record of events in your AWS account past 90 days and can be configured to log events in multiple regions. You can also review events using the console as well as the AWS CLI.
It is also possible to create a CloudWatch metric filter to watch for when specific AWS API calls are used and perform notification actions if logged, and additionally configure CloudWatch to automatically perform an action in response to an alarm.
Mitigation
AWS Specific Content
Review and remove unauthorized resources in your AWS account, specifically Lambda functions and the resources that support AWS API gateways that appear suspicious.
You can make sure that principals are scoped with the least-privileged permissions necessary to perform duties, limiting the ability to perform unauthorized actions in an AWS account when not required. One possible method of applying the principle of least-privileged permissions is to use Service Control Policies to restrict the maximum available permissions for the IAM users and IAM roles within your AWS Organizations accounts (note - you should test SCPs in a development environment before deploying them in production).
You can also use IAM Access Analyzer to regularly review and verify access and manage permissions across your AWS environment, which will highlight AWS identities with excessive permissions and the actions performed by those identities