Detection rules › Panther
Panther rules: signin
| Rule | Severity |
|---|---|
| SIGNAL - Sign-in with AWS CLI prompt | informational |
SIGNAL - Sign-in with AWS CLI prompt
#Telemetry coverage
Detection logic
def rule(event):
return (
event.get("eventSource") == "sso.amazonaws.com"
and event.get("eventName") == "ListApplications"
)
Rule specification
AnalysisType: rule
Filename: signin_with_aws_cli_prompt.py
RuleID: "Sign-in.with.AWS.CLI.prompt"
DisplayName: "SIGNAL - Sign-in with AWS CLI prompt"
Enabled: true
CreateAlert: false
LogTypes:
- AWS.CloudTrail
Severity: Info
DedupPeriodMinutes: 60
Threshold: 1
Stages and Predicates
Fires on AWS.CloudTrail events when all of the conditions below hold.
Condition
eventSourceissso.amazonaws.comeventNameisListApplications
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
eventName | eq |
| field:"aws::eventName" kind:eq value:"ListApplications" |
eventSource | eq |
| field:"aws::eventSource" kind:eq value:"sso.amazonaws.com" |
Worked example
A sample event from the rule's unit tests that triggers a match.Sample Test Event
{
"eventName": "ListApplications",
"eventSource": "sso.amazonaws.com",
"eventTime": "...",
"eventVersion": "1.08",
"sourceIPAddress": "<Victim source IP>",
"userAgent": "<Victim browser user agent>",
"userIdentity": {
"accountId": "<organization master account ID>",
"principalId": "<internal victim user id>",
"type": "Unknown",
"userName": "<victim display name>"
}
}