Skip to content

SecOps

Network exposure detection, public storage access, security group misconfiguration, and security posture baseline across AWS and Azure.


What it covers

SkillWhat it detectsOutput
Public ingress detectionSecurity groups with unrestricted inbound rules (0.0.0.0/0, ::/0) on any portFinding
Public storage accessS3 buckets with public ACLs or public access block disabledFinding
Azure NSG exposureNSGs with unrestricted inbound rulesFinding
Azure Blob public accessStorage accounts with public blob access enabledFinding
Exposure rankingRanked list of exposure findings by severity and blast radiusReport
Security posture baselineAggregated view of open findings across all exposure categoriesReport

Example prompts

Which EC2 instances are reachable from the internet?

Are any of my S3 buckets publicly readable?

Show me all security groups with port 22 open to 0.0.0.0/0

What is my overall network exposure score?

List all Azure NSGs allowing unrestricted inbound traffic

Finding severity model

ConditionSeverity
Port 22 or 3389 open to 0.0.0.0/0CRITICAL
Any port open to 0.0.0.0/0 on a production accountHIGH
S3 bucket with public read ACLHIGH
S3 bucket with public access block disabled (no public objects)MEDIUM
Port open to 0.0.0.0/0 on non-production accountMEDIUM
Azure NSG with * source on management portsHIGH

Required permissions

AWS

json
"ec2:DescribeSecurityGroups",
"ec2:DescribeInstances",
"ec2:DescribeNetworkInterfaces",
"s3:ListAllMyBuckets",
"s3:GetBucketAcl",
"s3:GetBucketPolicy",
"s3:GetBucketPolicyStatus",
"s3:GetBucketPublicAccessBlock"

Azure

Assign the Reader role on the target subscription. For NSG and storage scanning, the following additional permissions are required (or use the built-in Security Reader role):

Microsoft.Network/networkSecurityGroups/read
Microsoft.Network/networkSecurityGroups/securityRules/read
Microsoft.Storage/storageAccounts/read
Microsoft.Storage/storageAccounts/blobServices/read
Microsoft.Authorization/roleAssignments/read
bash
# Assign Security Reader role to Escher service principal
az role assignment create \
  --assignee YOUR_SP_APP_ID \
  --role "Security Reader" \
  --scope /subscriptions/YOUR_SUBSCRIPTION_ID

Remediation playbooks

SecOps findings can trigger:

  • security.remediate_public_exposure — removes unrestricted ingress rules from security groups
  • security.lock_public_storage — disables public access on S3 buckets

See Writing Playbooks for the schema.


Next steps

  • IAM — Audit access and privilege escalation
  • Compliance — Map findings to compliance frameworks

Escher — Agentic CloudOps by Tessell