7ddae4b493
* [Security Content] Add Investigation Guides - Cloud - 2 * Replace config/setup * Applies suggestions from review * Update credential_access_aws_iam_assume_role_brute_force.toml * Apply suggestions from code review * Update credential_access_aws_iam_assume_role_brute_force.toml * Apply suggestions from code review Co-authored-by: nastasha-solomon <79124755+nastasha-solomon@users.noreply.github.com> Co-authored-by: nastasha-solomon <79124755+nastasha-solomon@users.noreply.github.com>
107 lines
5.4 KiB
TOML
107 lines
5.4 KiB
TOML
[metadata]
|
|
creation_date = "2020/07/06"
|
|
maturity = "production"
|
|
updated_date = "2022/07/19"
|
|
integration = "aws"
|
|
|
|
[rule]
|
|
author = ["Elastic"]
|
|
description = """
|
|
Identifies attempts to modify an AWS IAM Assume Role Policy. An adversary may attempt to modify the AssumeRolePolicy of
|
|
a misconfigured role in order to gain the privileges of that role.
|
|
"""
|
|
false_positives = [
|
|
"""
|
|
Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Policy
|
|
updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can
|
|
be exempted from the rule.
|
|
""",
|
|
]
|
|
from = "now-60m"
|
|
index = ["filebeat-*", "logs-aws*"]
|
|
interval = "10m"
|
|
language = "kuery"
|
|
license = "Elastic License v2"
|
|
name = "AWS IAM Assume Role Policy Update"
|
|
note = """## Triage and analysis
|
|
|
|
### Investigating AWS IAM Assume Role Policy Update
|
|
|
|
An IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar
|
|
to an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot
|
|
do in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone
|
|
who needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated
|
|
with it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.
|
|
|
|
The role trust policy is a JSON document in which you define the principals you trust to assume the role. This policy is
|
|
a required resource-based policy that is attached to a role in IAM. An attacker may attempt to modify this policy by
|
|
using the `UpdateAssumeRolePolicy` API action to gain the privileges of that role.
|
|
|
|
#### Possible investigation steps
|
|
|
|
- Identify the user account that performed the action and whether it should perform this kind of action.
|
|
- Investigate other alerts associated with the user account during the past 48 hours.
|
|
- Contact the account and resource owners and confirm whether they are aware of this activity.
|
|
- Check if this operation was approved and performed according to the organization's change management policy.
|
|
- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,
|
|
and data accessed by the account in the last 24 hours.
|
|
|
|
### False positive analysis
|
|
|
|
- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher
|
|
confidence. Consider adding exceptions — preferably with a combination of the user agent and user ID conditions — to
|
|
cover administrator activities and infrastructure as code tooling.
|
|
|
|
### Response and remediation
|
|
|
|
- Initiate the incident response process based on the outcome of the triage.
|
|
- Disable or limit the account during the investigation and response.
|
|
- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:
|
|
- Identify the account role in the cloud environment.
|
|
- Assess the criticality of affected services and servers.
|
|
- Work with your IT team to identify and minimize the impact on users.
|
|
- Identify if the attacker is moving laterally and compromising other accounts, servers, or services.
|
|
- Identify any regulatory or legal ramifications related to this activity.
|
|
- Use AWS [policy versioning](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-versioning.html) to restore the trust policy to the desired state.
|
|
- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are
|
|
identified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with
|
|
your IT teams to minimize the impact on business operations during these actions.
|
|
- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other
|
|
IAM users.
|
|
- Consider enabling multi-factor authentication for users.
|
|
- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.
|
|
- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.
|
|
- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.
|
|
- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the
|
|
mean time to respond (MTTR).
|
|
|
|
## Setup
|
|
|
|
The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."""
|
|
references = ["https://labs.bishopfox.com/tech-blog/5-privesc-attack-vectors-in-aws"]
|
|
risk_score = 21
|
|
rule_id = "a60326d7-dca7-4fb7-93eb-1ca03a1febbd"
|
|
severity = "low"
|
|
tags = ["Elastic", "Cloud", "AWS", "Continuous Monitoring", "SecOps", "Identity and Access"]
|
|
timestamp_override = "event.ingested"
|
|
type = "query"
|
|
|
|
query = '''
|
|
event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and event.outcome:success
|
|
'''
|
|
|
|
|
|
[[rule.threat]]
|
|
framework = "MITRE ATT&CK"
|
|
[[rule.threat.technique]]
|
|
id = "T1078"
|
|
name = "Valid Accounts"
|
|
reference = "https://attack.mitre.org/techniques/T1078/"
|
|
|
|
|
|
[rule.threat.tactic]
|
|
id = "TA0004"
|
|
name = "Privilege Escalation"
|
|
reference = "https://attack.mitre.org/tactics/TA0004/"
|
|
|