CSPM云安全配置管理CSPM(云安全动态管理)
CSPM云安全配置管理CSPM(云安全动态管理)
CSPM能够对基础设施安全配置进⾏分析与管理。这些安全配置包括账号特权、⽹络和存储配置、以及安全配置(如加密设置)。如果发现配置不合规,CSPM会采取⾏动进⾏修正。如图6所⽰,应该将CSPM视为⼀个持续改进和适应云安全态势的过程,其⽬标是降低攻击成功的可能性,以及在攻击者获得访问权限的情况下降低发⽣的损害。
由于云基础架构始终处于变化之中,因此,CSPM策略应该是在云应⽤的整个⽣命周期中进⾏持续评估和改进的⼀个策略,从研发开始⼀直延伸到运维(图6中从左到右),并在需要时做出响应和改进。同样,由于不断提出新的云功能,不断颁发新法规,云使⽤安全的策略也在不断变化。图6的顶部显⽰,CSPM策略应不断发展并适应新的情况、不断发展的⾏业标准和外部威胁情报,并根据在开发和运维中观察到的风险进⾏改进。
CloudSploit by Aqua-云安全扫描
Quick Start
$gitclonegit@github:cloudsploit/scans.git$cdscans$ npm install$ ./index.js -h
Documentation
Background
部署选项Self-Hosted托管在Aqua Wave
Installation
配置Amazon Web Services Microsoft AzureGoogle Cloud PlatformOracle云基础设施CloudSploit配置⽂件凭据⽂件AWS Azure GCP Oracle OCI环境变量
Running
CLI Options
Compliance
HIPAA
PCI
CIS Benchmarks
输出格式控制台输出忽略传递结果CSV JSON JUnit XML集合输出
Suppressions
运⾏单个插件
Architecture
编写插件
Other Notes
Background
CloudSploit by Aqua是⼀个open-source项⽬,旨在检测云基础设施帐户中的安全风险,包括:Amazon Web Services(AWS)、Microsoft Azure、Google Cloud Platform(GCP)、Oracle云基础设施(OCI)和GitHub。这些脚本旨在返回⼀系列潜在的错误配置和安全风险。
Deployment Options
CloudSploit有两种部署选项:
Self-Hosted
按照下⾯的说明,只需⼏个简单的步骤就可以在您的机器上部署open-source版本的CloudSploit。
在Aqua Wave举办
在Aqua Wave上托管的CloudSploit的商业版本。今天试试⽔波吧!
Installation
确保已安装NodeJS。如果没有,从这⾥安装。
$ git clone git@github:cloudsploit/scans.git$ npm install
Configuration
CloudSploit需要read-only权限才能访问您的云帐户。按照以下指南设置此访问权限:
Amazon Web Services
Microsoft Azure
Google Cloud Platform
Oracle Cloud Infrastructure
对于AWS,您可以直接运⾏CloudSploit,它将使⽤默认的AWS凭证链检测凭证。
CloudSploit Config File
CloudSploit配置⽂件允许您通过以下⽅式传递云提供商凭据:
⽂件系统上的JSON⽂件
Environment variables
Hard-coding(不推荐)
⾸先复制⽰例配置⽂件:
$ cp config_example.jsconfig.js
通过取消注释正在测试的云提供程序的相关部分来编辑配置⽂件。每个云既有credential_file选项,也有内联选项。例如:
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: v.AZURE_APPLICATION_ID || '',// key_value: v.AZURE_KEY_VALUE || '',// directory_id: v.AZURE_DIRECTORY_ID || '',// subscription_id:
Credential Files
如果使⽤credential_file选项,请指向⽂件系统中符合所使⽤云的正确格式的⽂件。
AWS
{"accessKeyId":"YOURACCESSKEY","secretAccessKey":"YOURSECRETKEY"}
Azure
{"ApplicationID":"YOURAZUREAPPLICATIONID","KeyValue":"YOURAZUREKEYVALUE","DirectoryID":"YOURAZUREDIRECTORYID"," SubscriptionID":"YOURAZURESUBSCRIPTIONID"}
GCP
注意:对于GCP,您可以直接从GCP控制台⽣成⼀个JSON⽂件,您不应该编辑它。
{"type":"service_account","project":"GCPPROJECTNAME","client_email":"GCPCLIENTEMAIL","private_key":"GCPPRIVATEKEY"} Oracle OCI
{"tenancyId":"YOURORACLETENANCYID","compartmentId":"YOURORACLECOMPARTMENTID","userId":"YOURORACLEUSERID","k eyFingerprint":"YOURORACLEKEYFINGERPRINT","keyValue":"YOURORACLEKEYVALUE",}
Environment Variables
CloudSploit⽀持传递环境变量,但必须⾸先取消对config.js⽂件中与正在扫描的云提供程序相关的部分的注释。
然后可以传递每个部分中列出的变量。例如,对于AWS:
{access_key: v.AWS_ACCESS_KEY_ID ||'', secret_access_key: v.AWS_SECRET_ACCESS_KEY ||'',
session_token: v.AWS_SESSION_TOKEN ||'',}
Running
要运⾏标准扫描,显⽰所有输出和结果,只需运⾏:
$ ./index.js
CLI Options
CloudSploit⽀持许多选项来定制运⾏时。⼀些流⾏的选项包括:
AWS GovCloud⽀持:--govcloud
AWS中国⽀持:--china
保存原始云提供程序响应数据:--collection=file.json
忽略传递(确定)结果:--ignore-ok
如果到non-passing结果,则使⽤non-zero代码退出:--exit-code这对于CI/CD系统是⼀个不错的选择
将输出从表更改为原始⽂本:--console=text
有关更多输出选项,请参见下⾯的输出格式。
Click for a full list of options
Compliance
CloudSploit⽀持将其插件映射到特定的法规遵从性策略。要运⾏符合性扫描,请使⽤--compliance标志。例如:
$ ./index.js--compliance=hipaa$ ./index.js--compliance=pci
可以同时运⾏多种合规模式:
$ ./index.js--compliance=cis1 --compliance=cis2
CloudSploit⽬前⽀持以下合规映射:
HIPAA
$ ./index.js--compliance=hipaa
HIPAA扫描将CloudSploit插件映射到1996年的健康保险可移植性和责任法案。
PCI
$ ./index.js--compliance=pci
PCI扫描将CloudSploit插件映射到⽀付卡⾏业数据安全标准。
CIS Benchmarks
$ ./index.js--compliance=cis$ ./index.js--compliance=cis1$ ./index.js--compliance=cis2
⼀级和⼆级控制都⽀持CIS基准测试。传递--compliance=cis将同时运⾏级别1和级别2控件。
Output Formats
CloudSploit⽀持多种格式的输出,供其他⼯具使⽤。如果不另外指定,CloudSploit将输出作为表写⼊标准输出(控制台)。
注意:您可以传递多种输出格式并组合选项以进⾏进⼀步的⾃定义。例如:
# Print a table to the console and save a CSV file$ ./index.js --csv=file.csv --console=table# Print text to the console and save a JSON and JUnit file while ignoring passing results$ ./index.js --json=file.json --l --console=text --ignore-ok
Console Output
默认情况下,CloudSploit结果以表格格式(带颜⾊)打印到控制台。您可以通过运⾏以下命令覆盖此选项并改⽤纯⽂本:
$ ./index.js --console=text
或者,您可以通过运⾏以下命令来完全抑制控制台输出:
$ ./index.js --console=none
Ignoring Passing Results
通过传递--ignore-ok命令⾏参数,可以忽略返回OK状态的输出结果。
CSV
$ ./index.js--csv=file.csv
JSON
$ ./index.js--json=file.json
JUnit XML
$ ./index.l
Collection Output
js获取json的key和valueCloudSploit以JSON格式保存从云提供者api查询的数据,这些数据可以与其他⽂件⼀起保存,以⽤于调试或历史⽬的。
$ ./index.js--collection=file.json
Suppressions
可以通过以下格式传递--suppress标志(⽀持多个选项)来抑制结果:
--suppresspluginId:region:resourceId
For example:
# Suppress all results for the acmValidation plugin$ ./index.js --suppressacmValidation:*:*# Suppress all us-east-1 region results$ ./index.js --suppress *:us-east-1:*# Suppress all results matching the reg
ex "certificate/*" in all regions for all plugins$ ./index.js --suppress *:*:certificate/*
运⾏单个插件
如果只想运⾏⼀个插件,可以使⽤--plugin标志。
$ ./index.js--plugin acmValidation
Architecture
CloudSploit分两个阶段⼯作。⾸先,它查询云基础设施api以获取关于您帐户的各种元数据,即“收集”阶段。⼀旦收集到所有必要的数据,结果将被传递到“扫描”阶段。扫描使⽤收集的数据来搜索潜在的错误配置、风险和其他安全问题,这些都是最终的输出。
编写插件
请参阅我们的贡献指南和编写CloudSploit插件的完整指南。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论