SANS CloudNativeSecurityToolsCheatSheet V1.0.0
SANS CloudNativeSecurityToolsCheatSheet V1.0.0
# Git Documentation
# Git global setup # Prowler is a multi-cloud audit tool
git config --global user.name "John Doe" # Install and run the tool, which will use the
git config --global user.email cloud APIs to gather information
"[email protected]" # Ensure you’re logged into the correct cloud
provider prior to running prowler
# Clone and Edit a repository pip3 install prowler
prowler --help
git clone
[email protected]:repository/project.git Cloud Native Security Tool
# Review options for the aws, azure, and gcp
cd project
providers
Cloud Security and DevOps
touch README.md
prowler aws --help By Jon Zeolla
git add README.md
prowler azure --help Cheat Sheet v1.0.0
git commit -m "docs: add README"
git push -u origin main prowler gcp --help sans.org/cloud-security
# Checkov is a misconfiguration scanner. It # Conftest uses a language called Rego to scan aws ssm put-parameter --name MyParameter
can scan Terraform, Kubernetes, Dockerfiles, configuration files such as Terraform, --value "secret value" --type SecureString
and other file types. Dockerfiles, Kubernetes manifests, and any
other structured data aws ssm get-parameter --name MyParameter
pip3 install checkov --with-decryption
# See numerous examples here
checkov -f example/file.tf
# Write a policy that disallows the use of Azure Key Vault
# Recursively scan a directory
checkov --directory . nginx
mkdir policy && cat > policy/policy.rego << # Create a Resource Group
EOF az group create --name MyResourceGroup --
# Find security misconfigurations in Helm
Charts package main location EastUS
checkov --framework helm --directory .
denylist := ["nginx"] # Create a new key in the keyvault
# Use easy_infra to run IaC tools in a az keyvault create --name MyKeyVault --
secure-by-default docker image deny[msg] { resource-group MyResourceGroup --location
# Turn off security scans to ensure it
some i EastUS
functionally works in your environment
docker run -e DISABLE_SECURITY=true -v input[i].Cmd == "from"
val := input[i].Value # Show details of a key vault
.:/iac seiso/easy_infra:latest-terraform az keyvault show --name MyKeyVault
terraform validate contains(val[i], denylist[_])
msg = sprintf("unallowed image found %s",
[val]) # List Azure Key Vaults
# Run security scans but suppress failures
docker run -e LEARNING_MODE=true -v .:/iac } az keyvault list --resource-group
seiso/easy_infra:latest-terraform terraform EOF MyResourceGroup
validate
# Create and scan a disallowed Dockerfile # Delete a Key Vault
# Fail on detected security issues cat > Dockerfile << EOF az keyvault delete --name MyKeyVault --
docker run -v .:/iac
FROM nginx:latest resource-group MyResourceGroup
seiso/easy_infra:latest-terraform terraform
validate EOF