亚马逊AWS官方博客
AWS Security Hub 现已正式发布
我是一名开发人员,或者至少我在被任命成为一名经理时这样告诫自己。我绝对不是一位信息安全专家。在我的职业生涯中,我不止一次被寻呼,因为我编写或配置的内容引起了安全问题。当系统启用频繁部署并删除网关守卫以进行试验时,有时会出现不兼容的资源。这便是我喜欢 AWS Security Hub 等工具的原因,该工具是一种服务,支持自动执行合规性检查以及聚合了来自各种服务的见解。建立这样的防护机制可确保事情按既定计划进行,这样我可以更自信地进行试验。此外,还可以集中查看多个系统的合规性检测结果,当我采用自助方式时,信息安全更助我一臂之力。
通过云计算,我们在合规性和安全性方面有一个责任共担模式。AWS 处理云的安全性:从数据中心到虚拟化层和主机操作系统的所有对象的安全性。客户处理云中的安全性:宾客操作系统 (GOS)、系统配置和安全软件开发实践。
目前,AWS Security Hub 已从预览版升级为正式发行,可帮助您了解云中的安全状态。它可跨 AWS 账户运行,并与许多 AWS 服务和第三方产品集成。您也可以使用 Security Hub API 创建自己的集成。
开始使用
启用 AWS Security Hub 时,将通过 IAM 服务相关角色自动创建权限。自动化持续合规性检查将立即开始。合规性标准确定了这些合规性检查和规则。第一个可用的合规性标准是 Center for Internet Security (CIS) AWS Foundations Benchmark。今年我们将增加更多的标准。
这些合规性检查的结果称为检测结果。每个检测结果都会告知您问题的严重性、报告该问题的系统、受影响的资源以及许多其他有用的元数据。例如,可能会显示这样一个检测结果,它告知您应该为根账户启用多重验证,或者有一些凭证已经 90 天没有使用,应该撤销。
可以使用聚合语句和筛选条件将检测结果分组为见解。
集成
除了合规性标准检测结果外,AWS Security Hub 还可聚合和标准化来自各种服务的数据。它是一个中央资源,集中了来自 AWS Guard Duty、Amazon Inspector、Amazon Macie 以及 30 个 AWS 合作伙伴安全解决方案的检测结果。
AWS Security Hub 还支持从自定义系统或专有系统导入检测结果。检测结果必须格式化为 AWS Security Finding Format JSON 对象。下面是我创建的一个对象示例,它满足格式的最低要求。要将其用于您的账户,请切换出 AwsAccountId
和 ProductArn
。要获取自定义检测结果的 ProductArn
,请替换以下字符串中的 REGION
和 ACCOUNT_ID
:arn:aws:securityhub:REGION:ACCOUNT_ID:product/ACCOUNT_ID/default
。
{
"Findings": [{
"AwsAccountId": "12345678912",
"CreatedAt": "2019-06-13T22:22:58Z",
"Description": "This is a custom finding from the API",
"GeneratorId": "api-test",
"Id": "us-east-1/12345678912/98aebb2207407c87f51e89943f12b1ef",
"ProductArn": "arn:aws:securityhub:us-east-1:12345678912:product/12345678912/default",
"Resources": [{
"Type": "Other",
"Id": "i-decafbad"
}],
"SchemaVersion": "2018-10-08",
"Severity": {
"Product": 2.5,
"Normalized": 11
},
"Title": "Security Finding from Custom Software",
"Types": [
"Software and Configuration Checks/Vulnerabilities/CVE"
],
"UpdatedAt": "2019-06-13T22:22:58Z"
}]
}
然后,我编写了一个名为 importFindings.js
的快速 node.js 脚本来读取这个 JSON 文件,并通过 AWS JavaScript 开发工具包将其发送到 AWS Security Hub。
const fs = require('fs'); // For file system interactions
const util = require('util'); // To wrap fs API with promises
const AWS = require('aws-sdk'); // Load the AWS SDK
AWS.config.update({region: 'us-east-1'});
// Create our Security Hub client
const sh = new AWS.SecurityHub();
// Wrap readFile so it returns a promise and can be awaited
const readFile = util.promisify(fs.readFile);
async function getFindings(path) {
try {
// wait for the file to be read...
let fileData = await readFile(path);
// ...then parse it as JSON and return it
return JSON.parse(fileData);
}
catch (error) {
console.error(error);
}
}
async function importFindings() {
// load the findings from our file
const findings = await getFindings('./findings.json');
try {
// call the AWS Security Hub BatchImportFindings endpoint
response = await sh.batchImportFindings(findings).promise();
console.log(response);
}
catch (error) {
console.error(error);
}
}
// Engage!
importFindings();
快速运行 node importFindings.js
将生成 { FailedCount: 0, SuccessCount: 1, FailedFindings: [] }
。现在,我可以在 Security Hub 控制台中看到我的自定义发现结果:
自定义操作
AWS Security Hub 可以通过使用自定义操作集成响应和补救工作流。通过自定义操作,可使用一批选定的检测结果生成 CloudWatch 事件。通过 CloudWatch 规则,这些事件可以触发其他操作,例如通过聊天系统或寻呼工具发送通知,或向可视化服务发送事件。
首先,我们在 AWS Security 控制台中打开设置,并选择自定义操作。添加自定义操作并记下 ARN。
然后,我们使用在事件模式中作为资源创建的自定义操作创建 CloudWatch 规则,如下所示:
{
"source": [
"aws.securityhub"
],
"detail-type": [
"Security Hub Findings - Custom Action"
],
"resources": [
"arn:aws:securityhub:us-west-2:123456789012:action/custom/DoThing"
]
}
我们的 CloudWatch 规则可以有许多不同类型的目标,例如 Amazon Simple Notification Service (SNS) 主题、Amazon Simple Queue Service (SQS) 队列和 AWS Lambda 函数。实施我们的操作和规则后,我们就可以选择检测结果,然后从“操作”下拉列表中选择我们的操作。这会将选择的检测结果发送到 Amazon CloudWatch Events。这些事件将与我们的规则匹配,且事件目标将被调用。
重要说明
- 必须启用 AWS Config 才能运行 Security Hub 合规性检查。
- AWS Security Hub 现已在 15 个区域推出:美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈)、美国西部(加利福尼亚北部)、加拿大(中部)、南美洲(圣保罗)、欧洲(爱尔兰)、欧洲(伦敦)、欧洲(巴黎)、欧洲(法兰克福)、亚太地区(新加坡)、亚太地区(东京)、亚太地区(悉尼)、亚太地区(首尔)以及亚太地区(孟买)。
- AWS Security Hub 不会将数据传输到生成数据的区域之外。数据不会跨多个区域整合。
AWS Security Hub 已经是我将在大多数由我操作的 AWS 账户中启用的服务类型。今年,随着更多合规性标准即将推出,我预计它将成为许多工具箱中的标准工具。可以免费试用 30 天,因此您可以试用一下,估算一下您将需要的成本。一如既往,我们希望听到您的反馈,并了解您如何使用 AWS Security Hub。保持联系,快乐构建!