关于CloudSploit
CloudSploit是一个开源项目,旨在帮助广大研究人员检测云基础设施账户中的安全风险,包括:亚马逊网络服务(AWS)、微软Azure、谷歌云平台(GCP)、甲骨文云基础设施(OCI)和GitHub。在该工具的帮助下,广大研究人员能够轻松识别自己云基础设施中的错误配置和安全风险。
工具架构
CloudSploit的运行分为两个阶段。首先,它会向云基础设施API查询有关目标账号的各种元数据,即“收集”阶段。一旦工具收集到了所有必要的数据之后,结果就会被传递到“扫描”阶段。而“扫描”阶段会使用收集的数据搜索潜在的错误配置、风险和其他安全问题,并输出最终的分析结果。
工具安装
首先,请确保本地设备上安装并配置好了NodeJS环境,如果没有的话,请点击【这里】进行安装。接下来,使用下列命令将该项目源码克隆至本地,并完成安装:
$ git clone git@github.com:cloudsploit/scans.git $ npm install
CloudSploit配置文件
CloudSploit配置文件可以允许我们通过下列方式传递云服务提供商的凭证:
JSON文件
环境变量
硬编码(不推荐)
首先,拷贝项目提供的配置文件样例:
$ cp config_example.js config.js
去掉配置文件中的注释来编辑盘诶只文件,并填写相关的选项:
azure: { // OPTION 1: If using a credential JSON file, enter the path below // credential_file: '/path/to/file.json', // OPTION 2: If using hard-coded credentials, enter them below // application_id: process.env.AZURE_APPLICATION_ID || '', // key_value: process.env.AZURE_KEY_VALUE || '', // directory_id: process.env.AZURE_DIRECTORY_ID || '', // subscription_id: process.env.AZURE_SUBSCRIPTION_ID || '' }
如果你使用了“credential_file”选项,则需要指向一个包含下列内容且格式正确的凭证:
AWS:
{ "accessKeyId": "YOURACCESSKEY", "secretAccessKey": "YOURSECRETKEY" }
Azure:
{ "ApplicationID": "YOURAZUREAPPLICATIONID", "KeyValue": "YOURAZUREKEYVALUE", "DirectoryID": "YOURAZUREDIRECTORYID", "SubscriptionID": "YOURAZURESUBSCRIPTIONID" }
GCP:
{ "type": "service_account", "project": "GCPPROJECTNAME", "client_email": "GCPCLIENTEMAIL", "private_key": "GCPPRIVATEKEY" }
Oracle OCI:
{ "tenancyId": "YOURORACLETENANCYID", "compartmentId": "YOURORACLECOMPARTMENTID", "userId": "YOURORACLEUSERID", "keyFingerprint": "YOURORACLEKEYFINGERPRINT", "keyValue": "YOURORACLEKEYVALUE", }
工具帮助信息
$ ./index.js -h _____ _ _ _____ _ _ _ / ____| | | |/ ____| | | (_) | | | | | ___ _ _ __| | (___ _ __ | | ___ _| |_ | | | |/ _ \| | | |/ _` |\___ \| '_ \| |/ _ \| | __| | |____| | (_) | |_| | (_| |____) | |_) | | (_) | | |_ \_____|_|\___/ \__,_|\__,_|_____/| .__/|_|\___/|_|\__| | | |_| CloudSploit by Aqua Security, Ltd. Cloud security auditing for AWS, Azure, GCP, Oracle, and GitHub usage: index.js [-h] --config CONFIG [--compliance {hipaa,cis,cis1,cis2,pci}] [--plugin PLUGIN] [--govcloud] [--china] [--csv CSV] [--json JSON] [--junit JUNIT] [--table] [--console {none,text,table}] [--collection COLLECTION] [--ignore-ok] [--exit-code] [--skip-paginate] [--suppress SUPPRESS]
工具运行
如需执行一次标准扫描任务,并显示所有的输出结果,可以运行下列命令:
$ ./index.js
数据输出格式
CloudSploit支持多种格式的输出,以供其他工具使用。如果不另行指定,CloudSploit会将输出作为表写入标准输出控制台。
向控制台输出一个表,并存储至一个CSV文件中:
$ ./index.js --csv=file.csv --console=table
向控制台打印文本数据,并存储至一个JSON和JUnit文件中:
$ ./index.js --json=file.json --junit=file.xml --console=text --ignore-ok
运行单个插件
如果你只想运行单个 插件,可以使用“--plugin”选项:
$ ./index.js --plugin acmValidation
项目地址
CloudSploit:【GitHub传送门】
参考资料
https://github.com/aquasecurity/cloudsploit/blob/master/docs/aws.md#cloud-provider-configuration
https://github.com/aquasecurity/cloudsploit/blob/master/docs/azure.md#cloud-provider-configuration
https://github.com/aquasecurity/cloudsploit/blob/master/docs/gcp.md#cloud-provider-configuration
https://github.com/aquasecurity/cloudsploit/blob/master/docs/oracle.md#cloud-provider-configuration
https://github.com/aquasecurity/cloudsploit/blob/master/docs/gcp.md