You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hunt AWS threats in minutes — no SIEM required, no Cloud infra needed
Drop in your CloudTrail logs and get 100+ ready-to-run threat hunts, a BI dashboard, and AI-assisted analysis
— all on your laptop with a single make up.
Key Features
🔍 100+ Built-in Hunts + AI Chat
📄 HTML Threat Hunting Report
📊 60 Pre-built Dashboard Charts
🗺 AWS Config Resource Graph
Designed for
🔍 Security engineers — investigating AWS account compromise, privilege escalation, or data exfiltration
🛡 Cloud security teams — running periodic cloud posture reviews without a dedicated SIEM
🧑💻 Developers & SREs — quickly auditing their own account's CloudTrail history during or after an incident
Step 2. Clone the repository, ingest logs, and start all services.
# Clone the repository
git clone https://github.com/Yamato-Security/senrigan.git
cd senrigan
# Place the downloaded logs into the Docker logs directory
cp -r <local-output-dir>/ docker/logs/
# Ingest CloudTrail logs into DuckDB
make ingest
# Start all services (agent + dashboard)
make up
Detects users added to groups with 'admin' in the name — classic privilege escalation
9
👥 IAM Group Membership Changes
timeseries
Detects all AddUserToGroup / RemoveUserFromGroup / CreateGroup / DeleteGroup events regardless of group name
10
👤 New IAM Users / Keys
timeseries
Identifies IAM user and access key creation events — unexpected creation may indicate persistence
11
🎯 IAM PassRole Abuse
timeseries
Detects iam:PassRole usage by inspecting receiving-service events (RunInstances, CreateFunction, CreateNotebookInstance, etc.) where a role ARN is passed
12
🔐 AssumeRole Cross-Account
timeseries
Shows AssumeRole events where caller and target are in different AWS accounts (lateral movement)
13
🏢 Cross-Account Access
timeseries
Finds all events where caller account differs from recipient account
14
🔑 STS Federation Token Issuance
timeseries
Detects GetFederationToken and GetSessionToken — converts long-lived keys into persistent temporary credentials
15
🧩 STS AssumeRoleWithWebIdentity
timeseries
Detects OIDC trust abuse (misconfigured sub claim / GitHub Actions without repo condition)
16
🆔 IAM Identity Center (SSO) Events
timeseries
Detects AWS IAM Identity Center management actions (CreatePermissionSet, CreateAccountAssignment, etc.)
17
🔗 SAML / OIDC Provider Updates
timeseries
Detects SAML/OIDC identity provider changes — updating SAML metadata with attacker-controlled IdP creates a persistent authentication backdoor
18
🧐 IAM Access Analyzer Calls
timeseries
Detects any use of IAM Access Analyzer — attackers leverage the native analyzer to enumerate externally accessible resources without custom recon scripts
19
🔄 Credential Report & Enumeration
timeseries
Detects IAM enumeration (GenerateCredentialReport, ListUsers, ListRoles, GetAccountAuthorizationDetails, etc.)
20
🗝 Access Key Abuse
bar
Detects access keys used from 3+ distinct source IPs in 7 days — strong indicator of key leak
Detects Cognito Identity Pools with allowUnauthenticatedIdentities=true
23
🧪 Glue DevEndpoint Privilege Escalation
timeseries
Detects Glue DevEndpoint creation (iam:PassRole + glue:CreateDevEndpoint = SSH-accessible endpoint running with the passed role's full permissions) and connection enumeration for credential harvest
24
🧪 SageMaker Notebook Privilege Escalation
timeseries
Detects SageMaker notebook creation and presigned URL generation — iam:PassRole + sagemaker:CreateNotebookInstance launches a Jupyter environment with the passed role's full AWS permissions
25
🛠 Data Pipeline / CodeStar Privilege Escalation
timeseries
Detects Data Pipeline and CodeStar resource creation used for iam:PassRole escalation (CreateProjectFromTemplate creates an admin IAM role as a side effect)
26
🧩 Step Functions Privilege Escalation
timeseries
Detects Step Functions state machine creation (iam:PassRole + states:CreateStateMachine executes Lambda/ECS tasks under the passed role)
🪣 Data & Storage
#
Label
Chart
Description
1
💣 S3 Bulk Object Deletion
bar
Detects identities performing ≥50 DeleteObject/DeleteObjects calls per hour — ransomware / wiper data destruction pattern
2
🔥 AWS Backup Tampering
timeseries
Detects Backup Vault / Plan / RecoveryPoint deletion and Vault Lock removal — ransomware first step to eliminate recovery options
Detects EBS Direct API (ListSnapshotBlocks / GetSnapshotBlock) — Pacu ebs__download_snapshots streams raw snapshot data without EC2, bypassing ModifySnapshotAttribute detection
15
🌊 Kinesis Firehose / Stream Exfiltration Channel
timeseries
Detects Firehose delivery stream creation/update pointing to external S3 — real-time data pipeline invisible to network DLP
16
🔁 S3 Cross-Account Replication
timeseries
Detects PutBucketReplication — silently copies all new objects to attacker-controlled bucket without generating additional GetObject events
Detects SES receipt rule and identity configuration changes — forwarding rules relay all inbound mail to attacker addresses; verified identities enable phishing campaigns
19
📡 SQS / SNS Cross-Account Policy Changes
timeseries
Detects SQS/SNS policy changes granting access to external accounts (silent message streaming to attacker endpoints)
20
📸 EC2 Public Snapshot / AMI Sharing
timeseries
Detects EBS snapshots or AMIs shared publicly (group=all) — allows anyone to copy disk images and extract data
21
📧 Data Exfiltration Channels
bar
Detects high-volume SNS/SQS/SES/S3 PutObject calls (≥50/hour) from a single identity
⚡ Compute & Serverless
#
Label
Chart
Description
1
💥 EC2 Mass Stop / Terminate
timeseries
Detects identities performing ≥5 StopInstances/TerminateInstances in one hour — ransomware / wiper indicator
2
🖥️ SSM Session / Run Command
timeseries
Detects SSM StartSession, SendCommand, and StartAutomationExecution — primary lateral movement path via managed instances
3
🔑 EC2 Instance Connect / Serial Console Access
timeseries
Detects SendSSHPublicKey and SendSerialConsoleSSHPublicKey — bypasses EC2 key pairs (valid 60 seconds, leaves no SSH key artifacts)
4
📝 EC2 User Data Modification
timeseries
Detects ModifyInstanceAttribute with userData change — script runs as root on next boot
5
⚡ Lambda Function Tampering
timeseries
Detects Lambda creation, code updates (UpdateFunctionCode), and permission changes (AddPermission)
6
📦 Lambda Layer Addition
timeseries
Detects Lambda layer publication and AddLayerVersionPermission with wildcard principal (public supply-chain attack)
7
📦 ECS Task Definition
timeseries
Detects RegisterTaskDefinition / UpdateService — Pacu ecs__backdoor_task_def injects a malicious sidecar container without touching ECR
8
👤 EC2 Instance Profile Changes
timeseries
Detects AssociateIamInstanceProfile / ReplaceIamInstanceProfileAssociation — attaches a privileged profile enabling lateral movement
9
🖥 EC2 Instance Launches
timeseries
Lists all RunInstances events including instance type, count, key name, and AMI (cryptomining detection)
10
💰 EC2 Spot Fleet / Reserved Instance Abuse
timeseries
Detects large Spot Fleet requests (ec2) and Auto Scaling group creation with high capacity (autoscaling) — cryptomining financial-impact indicator
11
☸️ EKS Cluster API Calls
timeseries
Detects EKS cluster control-plane modifications (public API server exposure, rogue Fargate profiles)
Detects CloudFront origin changes that redirect all CDN traffic to attacker-controlled servers (MitM)
5
🛡 Network Firewall / Shield Tampering
timeseries
Detects Network Firewall and Shield protection removal — exposes entire subnet ranges to attack traffic
6
🧱 Network ACL Changes
timeseries
Detects NACL entry creation, deletion, and replacement — NACLs override security groups at the subnet level
7
🛣️ Route Table Changes
timeseries
Detects route table modifications — attackers redirect traffic to malicious gateways for interception or C2
8
🧱 VPN / Direct Connect / Transit Gateway
timeseries
Detects new VPN connections and Transit Gateway attachments — creates persistent Layer-3 network paths for C2 or exfiltration
9
📡 Elastic IP Allocation / Association
timeseries
Detects Elastic IP allocation/association — assigns a fixed public IP to compromised instances for stable C2 infrastructure
10
🗝️ EC2 Key Pair Creation
timeseries
Detects CreateKeyPair and ImportKeyPair — attacker creates SSH keys for persistent instance access
11
📡 Network Infrastructure Changes
timeseries
Detects VPC / subnet / IGW / NAT Gateway / peering changes that may establish attacker-controlled infrastructure
12
🏷 ACM Certificate Operations
timeseries
Detects ACM certificate requests and deletions — compromised accounts can issue TLS certs for phishing domains
13
🔑 API Gateway Key Creation & Management
timeseries
Detects API Gateway key creation and authorizer changes — Pacu api_gateway__create_api_keys generates persistent credentials that survive IAM key rotation
14
🚧 VPC Endpoint Access Denied
timeseries
Detects access denied errors via VPC endpoints — may indicate misconfigured endpoint policy
🕵 Threat Patterns
#
Label
Chart
Description
1
🔍 Reconnaissance Pattern
bar
Identifies callers who ran 10+ distinct Describe*/List*/Get* APIs in one hour — common early attack phase
2
🤖 Unusual User Agents
bar
Lists rare user agents (<5 events) or known attacker tools (Pacu, curl, wget) — may indicate attack tooling
3
🌍 Multi-Region Activity
bar
Detects identities performing writes in 3+ regions in one day — geographic spread may indicate compromise
4
🕵 First-Time API Calls (24h)
—
Finds API calls seen in the last 24h but never before — novel operations may indicate attacker tooling
📊 Activity & Baseline
#
Label
Chart
Description
1
🖥 Write Events from Management Console
timeseries
Identifies mutating API calls made via the AWS console — useful when CLI-only access is expected
2
🔍 Events with Errors (24h)
timeseries
Lists all error events in the past 24 hours — quick overview of what is failing or being probed
3
❌ Error Spike Detection
—
Finds 1-hour windows where error count exceeds daily average by 3×
🌍 GeoIP Analysis
Requires GeoLite2 .mmdb files for population (columns are NULL if ingested without GeoIP).
#
Label
Chart
Description
1
🕵 Impossible Travel Detection
—
Detects same identity calling APIs from distant cities within 2 hours — strong credential compromise indicator
2
⚠ Identity Multi-Country Access
bar
Finds identities making API calls from 2+ countries — legitimate users rarely operate from multiple countries simultaneously
3
🗺 Console Logins by Country
timeseries
Maps console login events to their geographic origin — logins from unexpected countries are high-risk
4
🚨 Unusual Country Access
bar
Detects rare country/identity combinations (<10 events) — low-volume foreign access may be attacker infrastructure
5
🚫 Access Denied by Country
bar
Groups access denied errors by source country — concentrated denials from one country may signal an attack
6
🔍 Write Events by Country
bar
Shows mutating API calls grouped by source country — writes from unexpected countries are a stronger signal than reads
7
🌍 Top Source Countries
bar
Ranks source countries by API call volume with write-event and unique-identity breakdowns
8
🏢 Top ASN / Organizations
bar
Lists autonomous systems (ISPs/cloud providers) by API call volume — VPN/hosting ASNs may indicate attacker infrastructure
9
📍 Top Source Cities
bar
Ranks source cities by event volume — city-level data pinpoints specific attacker infrastructure or office locations
10
🌐 Private / Internal IP Summary
bar
Summarises events from private/loopback/AWS-internal IPs — baseline for expected internal traffic
11
📋 API Calls by Country (Event Name)
table
Top (event_name, country) pairs by call volume — reveals which API operations originate from unexpected geographic regions
12
👤 Identities by Country (user_identity_arn)
table
Top (user_identity_arn, country) pairs by call volume — surfaces IAM identities active from unexpected countries with first/last seen
☁ IaC & Platform
#
Label
Chart
Description
1
🛠 CodeBuild / CodePipeline Supply Chain Attack
timeseries
Detects CI/CD pipeline creation and modification (UpdateProject injects malicious build steps into every subsequent build)
2
🏗 CloudFormation / IaC Abuse
timeseries
Detects CloudFormation stack operations — attackers may use IaC to rapidly deploy malicious infrastructure