Scout2 介绍
- Scout2 是一款用于 AWS 环境的安全审计工具。有了 Scout2,不必人工浏览所有网页,就可以获取到 AWS 环境的配置数据;它甚至还能生成一份攻击面报告。 Scout2 带有预配置的规则,并且很容易扩展以支持更多的服务和测试用例。因为 Scout2 仅通过 AWS 的 API 去获取配置信息和发现安全隐患,所以无需提交 AWS 安全漏洞和渗透测试申请表。
- 有时候我们不经意间会将我们的某些端口或服务暴露给全世界,这样做的危害是什么呢?
1.暴露的数据:简单地让 S3 桶对世界开放可能对客户造成极大的破坏,因为他们的数据暴露在外并对公司的声誉造成不可挽回的损害。
2.暴露服务:安全组上的开放端口可能会使 MySQL 或 MongoDB 处于打开状态并且数据处于打开状态。
3.帐户泄露:AWS root或 IAM 用户的泄露凭据可能导致帐户完全失去控制权或大额帐单。 - Scout2 是 用Python编写的,运行版本为 2.7、3.3到3.6,需要AWS python库boto3。 Scout2 根据GPL v2.0获得许可,可免费获得,并且拥有一组活跃的贡献者。目前,Scout2 会收集有关以下关键AWS服务的信息,并在本地生成的HTML报告中显示问题,并使用仪表板深入了解详细信息:
- EC2
- IAM
- RDS
- S3
- CloudTrail
- CloudFormation
- CloudWatch
- Route53
- SES
- SQS
- VPC
- SNS
- Redshift
- Elasticache
- EMR
Scout2 安装
安装很简单,通过pip安装:
$ pip install awsscout2
或者通过git克隆源码:
$ git clone https://github.com/nccgroup/Scout2
$ cd Scout2
$ pip install -r requirements.txt
$ python setup.py install
以通过键入 Scout2 -help 来查看帮助
安装 Scout2 之后,需要确保拥有一些AWS凭证(密钥/令牌),这些凭据允许对 Scout2 将要检查的 AWS 服务进行只读访问。 需要将此访问策略授予将运行 Scout2 的用户或角色。 NCCGroup 提供了一个很好的默认策略,称为 Scout2-Default IAM 策略。 此策略提供必要的默认访问权限,可以将其剪切并粘贴到您的 AWS 账户中的策略中。 另一种选择是将名为 ReadOnlyAccess 的默认 AWS 托管策略分配给运行Scout2 的用户或角色。 此策略提供了比运行 Scout2 所需的更多只读访问权限,但它不要求为Scout2创建新策略。
AWS 创建必要权限的用户
- 在账号下创建一个名为 auditor 的用户,并将访问类型勾选为 编程访问
- 为这个用户创建一个 group,并赋予 SecurityAudit 的策略
-
review 之后创建,并将 csv 文件下载下来
使用 Scout2
- 可以直接使用 csv 进行扫描
Scout2 --csv-credentials credentials-2.csv
- 也可以使用 option 选项:
- profile:使用特定AWS配置文件的凭据
- regions:评估特定区域而不是所有区域的默认区域
- mfa-serial:允许使用需要MFA的凭据
- no-browser:完成运行后跳过打开浏览器
- report-dir:生成Scout2 HTML报告的路径
例如:
scout2 ––profile mytestprofile ––regions us-west-2 ––no-browser
这将使用存储在 “mytestprofile” 中的 AWS 凭据运行 Scout2,并仅针对 “us-west-2” 中的资源运行它。 完成后,它不会在浏览器中打开报告。
-
运行完之后如果没有指定不打开包括可能会出现下面的图示
-
可以看到生成的报告文件如下图所示:
-
在浏览器中输入 report.html 的文件路径就可以很方便的查看。下图显示的是 Scout2 的仪表板,它总结了 Scout2 对其正在评估的服务的检测情况。
仪表板根据评估状况显示不同的颜色,可以快速查看问题。 该报告采用颜色编码,绿色=good,黄色=warning,红色=bad。 它显示了为服务评估的资源数量,应用的规则以及结果和检查的完成情况。
然后针对不同的种类,我们就可以再次点进去去查看具体的情况。Scout2 的输出易于查看和遍历,因为每个页面都使用颜色来突出显示问题,而大多数页面都是可以深入查看的仪表板。 在分析帐户时,我们可以深入了解任何关键或警告问题,可以提前了解问题并开始降低相关风险。