analyzing-cloud-storage-access-patterns — Claude Code skill
A Claude Code skill that reads CloudTrail Data Events, GCS audit logs and Azure Storage Analytics to flag after-hours bulk downloads, fresh source IPs and GetObject spikes.
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill analyzing-cloud-storage-access-patterns -a claude-codeWhat analyzing-cloud-storage-access-patterns does
This skill goes through the access logs of cloud buckets and surfaces what breaks the usual pattern: downloads outside working hours, a sharp rise in GetObject calls, addresses never seen before. It covers three stores — AWS S3 via CloudTrail Data Events, GCS via audit logs, Azure Blob via Storage Analytics. Useful when you suspect data left the bucket, or when you are writing detection rules for T1530.
Setup is short. Install the dependencies with pip install boto3 requests, pull CloudTrail events for the window you care about, then build a baseline: hourly request volume, object counts per user, source IP history. The detections run on top of that baseline: access outside 8am–6pm local time, more than 100 GetObject calls from a single principal within an hour, new source IPs absent from the prior 30 days, and ListBucket spikes that look like enumeration. The result is a findings report sorted by priority.
The runner is scripts/agent.py, for example python scripts/agent.py --bucket my-sensitive-data --hours-back 24 --output s3_access_report.json. Python 3.8+ and read access to the logs in your own accounts are required beforehand; with no way to reach CloudTrail there is nothing to analyse. Run it against a test or lab environment.
What it helps with
- spot after-hours downloads from a bucket holding sensitive files
- find the principal behind more than 100 object reads in an hour
- catch requests from IPs unseen in the prior 30 days
- detect bucket enumeration through
ListBucketcalls - export a prioritised report for a SOC investigation
Example prompts for the agent
- Run
python scripts/agent.py --bucket my-sensitive-data --hours-back 24 --output s3_access_report.jsonand walk me through the findings by priority. - Build an access baseline for the bucket over the last 24 hours and show which principal has a
GetObjectspike. - Check whether any request to the storage account in the past 30 days came from a new IP.
How to install analyzing-cloud-storage-access-patterns
1Skills CLI (Vercel)
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill analyzing-cloud-storage-access-patterns -a claude-code2Manually: put the files in place
~/.claude/skills/analyzing-cloud-storage-access-patterns/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/analyzing-cloud-storage-access-patterns/
1Skills CLI (Vercel)
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill analyzing-cloud-storage-access-patterns -a codex2Manually: put the files in place
.agents/skills/analyzing-cloud-storage-access-patterns/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill analyzing-cloud-storage-access-patterns -a cursor2Manually: put the files in place
.cursor/skills/analyzing-cloud-storage-access-patterns/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install mukul975/Anthropic-Cybersecurity-Skills analyzing-cloud-storage-access-patterns2Manually: put the files in place
.github/skills/analyzing-cloud-storage-access-patterns/SKILL.md1Skills CLI (Vercel)
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill analyzing-cloud-storage-access-patterns -a gemini-cli2Platform CLI
gemini skills install https://github.com/mukul975/Anthropic-Cybersecurity-Skills --path skills/analyzing-cloud-storage-access-patternsManually: put the files in place
.devin/skills/analyzing-cloud-storage-access-patterns/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill analyzing-cloud-storage-access-patterns -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about analyzing-cloud-storage-access-patterns
How do I install analyzing-cloud-storage-access-patterns in Claude Code?
Run npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill analyzing-cloud-storage-access-patterns -a claude-code. The skill then sits at ~/.claude/skills/analyzing-cloud-storage-access-patterns/SKILL.md.
What does analyzing-cloud-storage-access-patterns do?
It hunts for abnormal access to S3, GCS and Azure Blob Storage: after-hours downloads, bulk GetObject calls, new source IPs and ListBucket enumeration. Output is a prioritised findings report.
Which storage services does the skill cover?
AWS S3 through CloudTrail Data Events, Google Cloud Storage through audit logs, and Azure Blob Storage through Storage Analytics. All three are handled by the same detection procedure.
Source text
SKILL.md · Apache-2.0
---
name: analyzing-cloud-storage-access-patterns
description: Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.
domain: cybersecurity
subdomain: cloud-security
tags:
- cloud-security
- aws-s3
- gcs
- azure-blob-storage
- cloudtrail
- data-access-anomaly
- exfiltration-detection
version: '1.0'
author: mahipal
license: Apache-2.0
atlas_techniques:
- AML.T0024
- AML.T0056
nist_ai_rmf:
- MEASURE-2.7
- MAP-5.1
- MANAGE-2.4
nist_csf:
- PR.IR-01
- ID.AM-08
- GV.SC-06
- DE.CM-01
mitre_attack:
- T1530
- T1567.002
- T1619
- T1078.004
- T1048
---
# Analyzing Cloud Storage Access Patterns
## When to Use
- When investigating security incidents that require analyzing cloud storage access patterns
- When building detection rules or threat hunting queries for this domain
- When SOC analysts need structured procedures for this analysis type
- When validating security monitoring coverage for related attack techniques
## Prerequisites
- Familiarity with cloud security concepts and tools
- Access to a test or lab environment for safe execution
- Python 3.8+ with required dependencies installed
- Appropriate authorization for any testing activities
## Instructions
1. Install dependencies: `pip install boto3 requests`
2. Query CloudTrail for S3 Data Events using AWS CLI or boto3.
3. Build access baselines: hourly request volume, per-user object counts, source IP history.
4. Detect anomalies:
- After-hours access (outside 8am-6pm local time)
- Bulk downloads: >100 GetObject calls from single principal in 1 hour
- New source IPs not seen in the prior 30 days
- ListBucket enumeration spikes (reconnaissance indicator)
5. Generate prioritized findings report.
```bash
python scripts/agent.py --bucket my-sensitive-data --hours-back 24 --output s3_access_report.json
```
## Examples
### CloudTrail S3 Data Event
```json
{"eventName": "GetObject", "requestParameters": {"bucketName": "sensitive-data", "key": "financials/q4.xlsx"},
"sourceIPAddress": "203.0.113.50", "userIdentity": {"arn": "arn:aws:iam::123456789012:user/analyst"}}
```
© mahipal · Apache-2.0 · mukul975/Anthropic-Cybersecurity-Skills