2022-09-25 如何使用AWS Securityhub快速建立SIEM User Case进行安全态势感知

写写我的个人学习心德,本文仅为个人学习心德,与AWS无关
使用AWS Securityhub快速建立安全态势聚合分析场景

内容简介

许多企业为了维护系统的安全稳定,可能有许多功能强大的安全工具,从防火墙和终端节点保护到漏洞与合规性扫描程序,不一而足。但您的团队每天要处理数成千上万的安全警报,这通常会让数量本就很少的安全人员手忙脚乱地在这些工具之间来回切换。而长期面对大量且纷乱的安全告警,会使人不知所措,很容易产生“告警疲劳”而放弃分析和响应,即使花了大价钱购买或部署的SIEM(Security information and event management )工具也被束之高阁。空留大屏幕上的显示数字,却不去处理告警,解决不了安全隐患。

Amazon Security Hub是亚马逊云科技提供的可以集中查看和管理安全警报并自动执行安全检查的服务。
本文将带您实践一种基于Security Hub自动化安全事态分析的方案,并提供自动化部署cloudformation template和示例CLI命令行

先决条件

  • 安装最新版本的AWS Command Line Interface (CLI)
  • 打开Amazon Security Hub服务
  • 自定义场景(use cases),下文中提供一个示例场景,需要开启Amazon Config和Amazon Guardduty

架构与工作原理

  • 架构一
    如下图左侧部分所示,此种架构是将自定义的场景条件的告警(finding)写入DynamoDB中,再由Lambda对DynamoDB进行聚合条件的查询,如果符合就生成一条Critical的Security Hub Finding。此由方案的问题在于每当您有一个新的user case时都需要将聚合逻辑作为一个function写入Lambda中,代码量会越来越大,对安全人员本身的开发能力要求高,更多细节和相关代码请详见 correlate-security-findings-with-aws-security-hub-and-amazon-eventbridge https://aws.amazon.com/cn/blogs/security/correlate-security-findings-with-aws-security-hub-and-amazon-eventbridge/
  • 架构二
    如下图右侧部分所示,采用Security Hub自带的insight替代架构一的DynamoDB和lambda的聚合逻辑部分,只需要使用一个非常简单的lambda。更新user case时无须修改lambda代码,部署user case操作简单方便,对于安全人员无写代码的负担,节省安全的时间。
两种实现方式的架构对比图

部署方法

让我们使用第二种架构一起来部署一个示例user case:S3数据丢失。
场景聚合条件为:
-S3存储桶没有开启Versioning https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html
-Guardduty产生报警Impact:S3/AnomalousBehavior.Delete
https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-s3.html#:~:text=S3%20Bucket.-,Impact%3AS3/AnomalousBehavior.Delete,-An%20IAM%20entity
当上述条件同时被触发时,说明S3中的数据可能无法恢复面临永久损失的风险,安全人员应立刻响应。因此lambda会自动生成一条Critical级别的Security Hub finding。

第一步 新建两个custom insight

region=(部署的AWS区域,例如:us-east-1)
insight1='s3versioning'
insight2='guarddutys3delete'
arn1=$(aws securityhub create-insight \
--filters \
 '{"RecordState": [{ "Comparison": "EQUALS", "Value": "ACTIVE"}], "WorkflowStatus": [{"Comparison": "EQUALS", "Value": "NEW"}],"ProductName": [{"Comparison": "EQUALS", "Value": "Config"}], "ComplianceStatus": [{"Comparison": "EQUALS", "Value": "FAILED"}]}' \
 --group-by-attribute "ResourceId" \
--name $insight1 \
--query 'InsightArn' --output text --region=$region)
echo $arn1

arn2=$(aws securityhub create-insight \
--filters \
 '{"RecordState": [{ "Comparison": "EQUALS", "Value": "ACTIVE"}], "WorkflowStatus": [{"Comparison": "EQUALS", "Value": "NEW"}],"ResourceType": [{"Comparison": "EQUALS", "Value": "AwsS3Bucket"}], "Type": [{"Comparison": "EQUALS", "Value": "TTPs/Impact:S3-AnomalousBehavior.Delete"}]}' \
 --group-by-attribute "ResourceId" \
--name $insight2 \
--query 'InsightArn' --output text --region=$region)
echo $arn2

第二步 运行Cloudformation Stack

请将附录提供的模板文件保存至本地CLI运行目录,以下为参数说明:
stackname=(CloudFormation stack的名字,例如'usercase-s3dataloss')
templatename=(附录中保存的cloudformation yaml文件,例如'blogtemplate.yaml')
findingtype=(生成的finding的类型,需要遵照security hub的标准规定,本例中请使用 'Effects/Data Exposure/S3DataLost')
title=(生成的finding title, 例如'SIEM Alert-S3 data lost')
resourcetype=(生成的finding中resource的类型,本例中请使用'AwsS3Bucket')

运行以下CLI示例命令行

stackname='usercase-s3dataloss'
templatename='blogtemplate.yaml'
findingtype='Effects/Data Exposure/S3DataLost'
title='SIEM Alert-S3 data lost'
resourcetype='AwsS3Bucket'
aws cloudformation create-stack --stack-name $stackname --template-body file://$templatename \
--parameters  \
ParameterKey=arn1,ParameterValue=$arn1  \
ParameterKey=arn2,ParameterValue=$arn2  \
ParameterKey=findingtype,ParameterValue=$findingtype  \
ParameterKey=title,ParameterValue=$title  \
ParameterKey=resourcetype,ParameterValue=$resourcetype  \
--capabilities CAPABILITY_IAM \
--region=$region

查看结果

满足场景的触发条件后,在Security Hub控制台中可以看到由lambda自动生成的一条Critical的告警,如下图所示:


user case告警示例

小结

在这篇博文中,我介绍了如何使用亚马逊云科技的原生服务Securityhub和lambda实现了快速聚合安全事态实现自动分析告警的方法。示例中的user case是由两个条件组成,您也可以扩展使用三个或四个条件。在安全运营过程中,部署5-10个聚合场景,可以帮忙您的安全团队节省人工分析少量日志的时间,将精力更加集中于处理真正紧急和高风险的安全事件中去。

附录

Cloudformation template示例

本篇作者

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,869评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,716评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,223评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,047评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,089评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,839评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,516评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,410评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,920评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,052评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,179评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,868评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,522评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,070评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,186评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,487评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,162评论 2 356

推荐阅读更多精彩内容