Security Check Reference

Detector Reference

Complete reference of all Cloudsploit security detectors. Each detector checks for a specific cloud misconfiguration and provides remediation guidance.

Understanding Detectors

Each Cloudsploit detector:

  • Checks a specific resource: Scans cloud resources (buckets, VMs, IAM, etc.)
  • Validates configuration: Compares settings against security benchmarks
  • Assigns severity: Critical, High, Medium, or Low based on risk
  • Provides remediation: Step-by-step fix instructions

Severity Levels

Critical

Immediate security risk requiring urgent attention. Public exposure, unrestricted access, or encryption disabled.

High

Significant security issue. Missing MFA, no backups, or missing logging.

Medium

Moderate risk. Configuration improvements, monitoring gaps.

Low

Informational or best practice recommendations.

Searchable Detector Table

All 35+ detectors across AWS, Azure, and GCP:

IDProviderSeverityCategoryDescription
IAM_PASSWORD_POLICYAWSHIGHIAMIAM password policy does not meet complexity requirements
IAM_NO_ROOT_ACCESS_KEYAWSCRITICALIAMRoot account has active access keys
IAM_USERS_WITH_PASSWORDAWSMEDIUMIAMIAM users have console passwords without MFA
IAM_MFA_ENABLEDAWSHIGHIAMMFA not enabled for IAM users with passwords
S3_BUCKET_PUBLIC_READAWSCRITICALStorageS3 bucket allows public read access
S3_BUCKET_PUBLIC_WRITEAWSCRITICALStorageS3 bucket allows public write access
S3_BUCKET_ENCRYPTION_DISABLEDAWSHIGHStorageS3 server-side encryption not enabled
S3_BUCKET_LOGGING_DISABLEDAWSLOWStorageS3 access logging not enabled
EBS_VOLUME_UNENCRYPTEDAWSHIGHStorageEBS volume lacks encryption
EC2_SECURITY_GROUP_OPEN_TO_WORLDAWSHIGHComputeSecurity group allows 0.0.0.0/0
EC2_SECURITY_GROUP_UNRESTRICTED_SSHAWSHIGHComputePort 22 open to internet
EC2_SECURITY_GROUP_UNRESTRICTED_RDPAWSHIGHComputePort 3389 open to internet
RDS_INSTANCE_PUBLICLY_ACCESSIBLEAWSCRITICALDatabaseRDS accessible from internet
RDS_INSTANCE_STORAGE_ENCRYPTEDAWSHIGHDatabaseRDS storage not encrypted
CLOUDTRAIL_ENABLEDAWSHIGHMonitoringCloudTrail not enabled
CLOUDTRAIL_LOG_VALIDATION_ENABLEDAWSMEDIUMMonitoringCloudTrail log validation disabled
KMS_KEY_ROTATION_ENABLEDAWSMEDIUMSecurityKMS key automatic rotation disabled
AZURE_AD_PASSWORD_POLICYAzureHIGHIAMAzure AD password policy is weak
AZURE_AD_MFA_ENFORCEMENTAzureHIGHIAMMFA not enforced for all users
STORAGE_ACCOUNT_PUBLIC_ACCESSAzureCRITICALStorageStorage account allows public blob access
STORAGE_ACCOUNT_SECURE_TRANSFERAzureHIGHStorageHTTPS-only not enforced
VM_PUBLIC_IP_ADDRESSAzureMEDIUMComputeVM has public IP address
VM_DISK_ENCRYPTIONAzureHIGHComputeVM disks not encrypted
SQL_SERVER_AUDITINGAzureHIGHDatabaseSQL Server auditing disabled
SQL_SERVER_ENCRYPTIONAzureHIGHDatabaseTransparent Data Encryption disabled
KEY_VAULT_SOFT_DELETEAzureHIGHSecurityKey Vault soft delete disabled
AKS_RBAC_ENABLEDAzureHIGHKubernetesRBAC not enabled for AKS
GCP_IAM_PASSWORD_POLICYGCPHIGHIAMOrganization password policy missing
GCP_IAM_2SVGCPHIGHIAM2-Step verification not enforced
GCS_PUBLIC_ACCESSGCPCRITICALStorageCloud Storage bucket publicly accessible
GCS_VERSIONINGGCPLOWStorageObject versioning not enabled
GCE_PUBLIC_IPGCPMEDIUMComputeCompute Engine has external IP
GCE_SHIELDED_VMGCPMEDIUMComputeShielded VM features disabled
CLOUD_SQL_PUBLIC_IPGCPCRITICALDatabaseCloud SQL accessible publicly
CLOUD_FUNCTION_PUBLIC_ACCESSGCPHIGHServerlessCloud Function allows unauthenticated access

Custom Detectors

Write your own detectors in JavaScript to check for organization-specific requirements:

javascript
1module.exports = {
2 name: "CUSTOM_TAG_REQUIRED",
3 description: "All EC2 instances must have Owner tag",
4 category: "Compute",
5 severity: "MEDIUM",
6
7 async run(provider) {
8 const ec2 = provider.getClient('ec2');
9 const instances = await ec2.describeInstances();
10
11 for (const instance of instances.Reservations.flatMap(r => r.Instances)) {
12 const hasOwnerTag = instance.Tags?.some(t => t.Key === 'Owner');
13 if (!hasOwnerTag) {
14 this.addIssue(
15 'Instance ' + instance.InstanceId + ' missing Owner tag',
16 instance.InstanceId,
17 'Add Owner tag to instance'
18 );
19 }
20 }
21 }
22};

Save custom detectors to ~/.cloudsploit/detectors/ and enable with --custom-dir.