一个用于 Amazon Web Services 的命令行安全审计工具
Cloud Security Audit 是一个命令行工具,用于扫描您的 AWS 账户中的漏洞。通过简单的方式,您将能够识别基础设施中的不安全部分,并为安全审计准备您的 AWS 账户。
目前 Cloud Security Audit 不支持任何包管理器,但相关工作正在进行中。
首先,您需要将 Cloud Security Audit 下载到您的 GO 工作区:
$GOPATH $ go get github.com/Appliscale/cloud-security-audit
$GOPATH $ cd cloud-security-audit
然后在 cloud-security-audit 目录中构建并安装应用程序的配置,执行:
cloud-security-audit $ make all
如果您使用 MFA,您需要在尝试连接前通过 --mfa 标志告诉 Cloud Security Audit 对您进行身份验证。
示例:
$ cloud-security-audit --service s3 --mfa --mfa-duration 3600
要执行所有 EC2 实例的审计,输入:
$ cloud-security-audit --service ec2
您可以通过 -r 或 --region 标志将审计限定到某个区域。Cloud Security Audit 也支持 AWS 配置文件 - 使用 -p 或 --profile 标志指定配置文件。
+---------------+---------------------+--------------------------------+-----------------------------------+----------+
| AVAILABILITY | EC2 | VOLUMES | SECURITY | |
| | | | | EC2 TAGS |
| ZONE | | (NONE) - NOT ENCRYPTED | GROUPS | |
| | | | | |
| | | (DKMS) - ENCRYPTED WITH | (INCOMING CIDR = 0.0.0.0/0) | |
| | | DEFAULT KMSKEY | | |
| | | | ID : PROTOCOL : PORT | |
+---------------+---------------------+--------------------------------+-----------------------------------+----------+
| eu-central-1a | i-0fa345j6756nb3v23 | vol-0a81288qjd188424d[DKMS] | sg-aaaaaaaa : tcp : 22 | App:some |
| | | vol-0c2834re8dfsd8sdf[NONE] | sg-aaaaaaaa : tcp : 22 | Key:Val |
+---------------+---------------------+--------------------------------+-----------------------------------+----------+
AVAILABILITY ZONE 包含实例所在可用区信息。EC2 包含实例 ID。Volumes 包含挂载到指定 EC2 的卷(虚拟磁盘)ID。后缀含义:
[NONE] - 卷未加密。[DKMS] - 卷使用 AWS 默认 KMS 密钥加密。有关 KMS 的更多信息,请参见 此处。Security Groups 包含权限过于开放的安全组 ID。例如 CIDR 块等于 0.0.0.0/0(对全世界开放)。EC2 TAGS 包含指定 EC2 实例的标签,以帮助您识别该实例的用途。您可以在以下文档中找到有关加密的更多信息:
要执行所有 S3 存储桶的审计,输入:
$ cloud-security-audit --service s3
Cloud Security Audit 支持 AWS 配置文件 - 使用 -p 或 --profile 标志指定配置文件。
+------------------------------+---------+---------+-------------+------------+
| BUCKET NAME | DEFAULT | LOGGING | ACL | POLICY |
| | | | | |
| | SSE | ENABLED | IS PUBLIC | IS PUBLIC |
| | | | | |
| | | | R - READ | R - READ |
| | | | | |
| | | | W - WRITE | W - WRITE |
| | | | | |
| | | | D - DELETE | D - DELETE |
+------------------------------+---------+---------+-------------+------------+
| bucket1 | NONE | true | false | false |
+------------------------------+---------+---------+-------------+------------+
| bucket2 | DKMS | false | false | true [R] |
+------------------------------+---------+---------+-------------+------------+
| bucket3 | AES256 | false | true [RWD] | false |
+--------------------------- --+---------+---------+-------------+------------+
BUCKET NAME 包含 S3 存储桶的名称。DEFAULT SSE 提供关于在您的 S3 存储桶中使用的默认服务器端加密类型的信息:NONE - 未启用默认 SSE。DKMS - 启用了默认 SSE,使用 AWS KMS 密钥加密数据。AES256 - 启用了默认 SSE,使用 AES256。LOGGING ENABLED 包含指定 S3 存储桶是否启用了服务器访问日志记录。这提供了发送到 S3 存储桶的请求的详细记录。有关服务器访问日志记录的更多信息,请参见 此处。ACL IS PUBLIC 提供关于 ACL(访问控制列表)是否包含使存储桶公开的权限(允许任何人读取/写入)的信息。有关 ACL 的更多信息,请参见 此处。POLICY IS PUBLIC 包含关于存储桶策略是否允许匿名用户执行任何操作(读取/写入)的信息。有关存储桶策略的更多信息,请参见 此处。
R、W 和 D 字母描述了每个人可用的操作类型。您可以在以下文档中找到有关保护 S3 的更多信息: