Detection rules › Panther
AWS IAM Group Read Only Events
This rule captures multiple read/list events related to IAM group management in AWS Cloudtrail.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Discovery | T1069 Permission Groups Discovery |
Rules detecting the same action
Other rules on this platform that filter on the same API call or operation.
Rule body yaml
AnalysisType: rule
Description: This rule captures multiple read/list events related to IAM group management in AWS Cloudtrail.
DisplayName: "AWS IAM Group Read Only Events"
Enabled: false
Filename: aws_iam_group_read_only_events.py
Reference: https://attack.mitre.org/techniques/T1069/
Runbook: Examine other activities done by this user to determine whether or not activity is suspicious.
Severity: Info
CreateAlert: false
Tags:
- AWS
- Cloudtrail
- Configuration Required
- IAM
- MITRE
Tests:
- ExpectedResult: true
Log:
awsRegion: us-east-1
eventCategory: Management
eventID: 883efb94-aa58-4512-beb7-10a5fffa33e4
eventName: GetGroup
eventSource: iam.amazonaws.com
eventTime: "2022-12-11 19:42:55"
eventType: AwsApiCall
eventVersion: "1.08"
managementEvent: true
readOnly: true
recipientAccountId: "1231231234"
requestID: f92dd1a7-ad07-4fef-9511-1081d2dd3585
requestParameters:
maxItems: 1000
userName: user-name
sourceIPAddress: cloudformation.amazonaws.com
userAgent: cloudformation.amazonaws.com
userIdentity:
accessKeyId: ASIAVKVYIOO7BDL4T5NG
accountId: "1231231234"
arn: arn:aws:sts::1231231234:assumed-role/AssumedRole-us-east-2/123123123456
invokedBy: cloudformation.amazonaws.com
principalId: AROAVKVYIOO7JN7TN7NSA:123123123456
sessionContext:
attributes:
creationDate: "2022-12-11T19:42:54Z"
mfaAuthenticated: "false"
sessionIssuer:
accountId: "1231231234"
arn: arn:aws:iam::1231231234:role/PAssumedRole-us-east-2
principalId: AROAVKVYIOO7JN7TN7NSA
type: Role
userName: AssumedRole-us-east-2
webIdFederationData: {}
type: AssumedRole
Name: Get Group
- ExpectedResult: true
Log:
awsRegion: us-east-1
eventCategory: Management
eventID: 883efb94-aa58-4512-beb7-10a5fffa33e4
eventName: GetGroupPolicy
eventSource: iam.amazonaws.com
eventTime: "2022-12-11 19:42:55"
eventType: AwsApiCall
eventVersion: "1.08"
managementEvent: true
readOnly: true
recipientAccountId: "1231231234"
requestID: f92dd1a7-ad07-4fef-9511-1081d2dd3585
requestParameters:
maxItems: 1000
userName: user-name
sourceIPAddress: cloudformation.amazonaws.com
userAgent: cloudformation.amazonaws.com
userIdentity:
accessKeyId: ASIAVKVYIOO7BDL4T5NG
accountId: "1231231234"
arn: arn:aws:sts::1231231234:assumed-role/AssumedRole-us-east-2/123123123456
invokedBy: cloudformation.amazonaws.com
principalId: AROAVKVYIOO7JN7TN7NSA:123123123456
sessionContext:
attributes:
creationDate: "2022-12-11T19:42:54Z"
mfaAuthenticated: "false"
sessionIssuer:
accountId: "1231231234"
arn: arn:aws:iam::1231231234:role/PAssumedRole-us-east-2
principalId: AROAVKVYIOO7JN7TN7NSA
type: Role
userName: AssumedRole-us-east-2
webIdFederationData: {}
type: AssumedRole
Name: Get Group Policy
- ExpectedResult: true
Log:
awsRegion: us-east-1
eventCategory: Management
eventID: 883efb94-aa58-4512-beb7-10a5fffa33e4
eventName: ListAttachedGroupPolicies
eventSource: iam.amazonaws.com
eventTime: "2022-12-11 19:42:55"
eventType: AwsApiCall
eventVersion: "1.08"
managementEvent: true
readOnly: true
recipientAccountId: "1231231234"
requestID: f92dd1a7-ad07-4fef-9511-1081d2dd3585
requestParameters:
maxItems: 1000
userName: user-name
sourceIPAddress: cloudformation.amazonaws.com
userAgent: cloudformation.amazonaws.com
userIdentity:
accessKeyId: ASIAVKVYIOO7BDL4T5NG
accountId: "1231231234"
arn: arn:aws:sts::1231231234:assumed-role/AssumedRole-us-east-2/123123123456
invokedBy: cloudformation.amazonaws.com
principalId: AROAVKVYIOO7JN7TN7NSA:123123123456
sessionContext:
attributes:
creationDate: "2022-12-11T19:42:54Z"
mfaAuthenticated: "false"
sessionIssuer:
accountId: "1231231234"
arn: arn:aws:iam::1231231234:role/PAssumedRole-us-east-2
principalId: AROAVKVYIOO7JN7TN7NSA
type: Role
userName: AssumedRole-us-east-2
webIdFederationData: {}
type: AssumedRole
Name: List Attached Group Policies
- ExpectedResult: true
Log:
awsRegion: us-east-1
eventCategory: Management
eventID: 883efb94-aa58-4512-beb7-10a5fffa33e4
eventName: ListGroups
eventSource: iam.amazonaws.com
eventTime: "2022-12-11 19:42:55"
eventType: AwsApiCall
eventVersion: "1.08"
managementEvent: true
readOnly: true
recipientAccountId: "1231231234"
requestID: f92dd1a7-ad07-4fef-9511-1081d2dd3585
requestParameters:
maxItems: 1000
userName: user-name
sourceIPAddress: cloudformation.amazonaws.com
userAgent: cloudformation.amazonaws.com
userIdentity:
accessKeyId: ASIAVKVYIOO7BDL4T5NG
accountId: "1231231234"
arn: arn:aws:sts::1231231234:assumed-role/AssumedRole-us-east-2/123123123456
invokedBy: cloudformation.amazonaws.com
principalId: AROAVKVYIOO7JN7TN7NSA:123123123456
sessionContext:
attributes:
creationDate: "2022-12-11T19:42:54Z"
mfaAuthenticated: "false"
sessionIssuer:
accountId: "1231231234"
arn: arn:aws:iam::1231231234:role/PAssumedRole-us-east-2
principalId: AROAVKVYIOO7JN7TN7NSA
type: Role
userName: AssumedRole-us-east-2
webIdFederationData: {}
type: AssumedRole
Name: List Groups
- ExpectedResult: true
Log:
awsRegion: us-east-1
eventCategory: Management
eventID: 883efb94-aa58-4512-beb7-10a5fffa33e4
eventName: ListGroupsForUser
eventSource: iam.amazonaws.com
eventTime: "2022-12-11 19:42:55"
eventType: AwsApiCall
eventVersion: "1.08"
managementEvent: true
readOnly: true
recipientAccountId: "1231231234"
requestID: f92dd1a7-ad07-4fef-9511-1081d2dd3585
requestParameters:
maxItems: 1000
userName: user-name
sourceIPAddress: cloudformation.amazonaws.com
userAgent: cloudformation.amazonaws.com
userIdentity:
accessKeyId: ASIAVKVYIOO7BDL4T5NG
accountId: "1231231234"
arn: arn:aws:sts::1231231234:assumed-role/AssumedRole-us-east-2/123123123456
invokedBy: cloudformation.amazonaws.com
principalId: AROAVKVYIOO7JN7TN7NSA:123123123456
sessionContext:
attributes:
creationDate: "2022-12-11T19:42:54Z"
mfaAuthenticated: "false"
sessionIssuer:
accountId: "1231231234"
arn: arn:aws:iam::1231231234:role/PAssumedRole-us-east-2
principalId: AROAVKVYIOO7JN7TN7NSA
type: Role
userName: AssumedRole-us-east-2
webIdFederationData: {}
type: AssumedRole
Name: List Groups for User
- ExpectedResult: false
Log:
awsRegion: us-east-1
eventCategory: Management
eventID: 883efb94-aa58-4512-beb7-10a5fffa33e4
eventName: DetachUserGroup
eventSource: iam.amazonaws.com
eventTime: "2022-12-11 19:42:55"
eventType: AwsApiCall
eventVersion: "1.08"
managementEvent: true
readOnly: true
recipientAccountId: "1231231234"
requestID: f92dd1a7-ad07-4fef-9511-1081d2dd3585
requestParameters:
maxItems: 1000
userName: user-name
sourceIPAddress: cloudformation.amazonaws.com
userAgent: cloudformation.amazonaws.com
userIdentity:
accessKeyId: ASIAVKVYIOO7BDL4T5NG
accountId: "1231231234"
arn: arn:aws:sts::1231231234:assumed-role/AssumedRole-us-east-2/123123123456
invokedBy: cloudformation.amazonaws.com
principalId: AROAVKVYIOO7JN7TN7NSA:123123123456
sessionContext:
attributes:
creationDate: "2022-12-11T19:42:54Z"
mfaAuthenticated: "false"
sessionIssuer:
accountId: "1231231234"
arn: arn:aws:iam::1231231234:role/PAssumedRole-us-east-2
principalId: AROAVKVYIOO7JN7TN7NSA
type: Role
userName: AssumedRole-us-east-2
webIdFederationData: {}
type: AssumedRole
Name: Detach User Group
DedupPeriodMinutes: 60
LogTypes:
- AWS.CloudTrail
RuleID: "AWS.IAM.Group.Read.Only.Events"
Threshold: 2
Detection logic
Condition
userIdentity.arn not in
eventSource eq "iam.amazonaws.com"
eventName in ["GetGroup", "GetGroupPolicy", "ListAttachedGroupPolicies", "ListGroupPolicies", "ListGroups", "ListGroupsForUser"]
Exclusions
Top-level NOT(...) conjuncts: predicates this rule actively suppresses.
| Field | Kind | Excluded values |
|---|---|---|
userIdentity.arn | in |
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
eventName | in |
|
eventSource | eq |
|
Output fields
Fields the rule emits when it matches. Chronicle authors list these in the outcome block; they appear on the detection and $risk_score drives alerting. Sentinel / Defender XDR rules build them up through project / summarize / extend stages. Sentinel maps these into alert fields via entityMappings and customDetails; Defender XDR custom detections surface them as alert fields directly.
| Field | Source |
|---|---|
eventName | |
eventSource | |
awsRegion | |
recipientAccountId | |
sourceIPAddress | |
userAgent | |
userIdentity | |
arn | userIdentity.arn |