CDN加速

技术博客 > 正文

如何快速搭建属于自己的SIEM

2022-04-14

SIEM(Security Information and Event Management) 是一种安全解决方案,可以帮助企业识别潜在的安全威胁和漏洞,发现用户的行为异常,还可以结合自动化工具实现威胁检测和事件响应。

SIEM已经成为企业安全运营的必备武器,那该如何搭建一套自己的SIEM了?如果从0搭建,挑战会非常大,一开始的日志收集,转换,存储,就让人举步维艰,后面还有分析和展示两座大山。

如何快速搭建属于自己的SIEM,网宿msp推荐使用OpenSearch来构建您的SIEM。借助Cloudformation,可以一键部署OpenSearch,只需30分钟就可以拥有一套完整的SIEM。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升
解决方案分为日志收集,转换,分析洞察,可视化报表展示,以及实时告警。

方案步骤

1,日志收集

首先,日志从哪里来?总的来说,可以分为下面几类:
1, 安全服务的审计日志,比如Networkfirewall 日志,GuardDuty 日志,Config 日志,Cloudtrail日志,MSK日志,以及 Security Hub 日志;
2, 应用服务的访问日志,比如S3 Access记录,R53 Resolve 记录, ELB 负载转发记录,Cloudfront 响应记录等;
3, 服务器日志,比如linux上部署的apache日志;
4, 流量日志VPC Flow,比如SSH远程操作,WEB应用访问等;
AWS GuardDuty, CloudTrail,和VPC Flow Logs,这三个安全服务在安全分析中经常用到。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

Amazon GuardDuty 是一个持续的威胁检测服务,它可以分析VPC flow日志,AWS CloudTrail管理事件日志、CloudTrail日志,S3 数据事件日志和 DNS 日志,使用基于IP库的威胁情报源,来持续的监控针对AWS账号以及工作负载的恶意行为。比如,GuardDuty 可检测恶意软件感染或隐藏挖矿的 EC2 实例。

我们可以启用GuardDuty服务,并且将GuardDuty产生的分析日志存放到指定S3存储桶中等待处理。同时也可以配置恶意IP库,提升GuardDuty的检测精准度。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

AWS CloudTrail是一种追踪服务,它帮助监管AWS账户,检查合规性,审核操作。可以将用户、角色或 AWS 服务(API调用)执行的操作记录为 CloudTrail 事件。

我们可以创建一个CloudTrail追踪,并且选择记录哪些操作,然后记录的 CloudTrail 事件存放到指定S3存储桶中等待处理。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

AWS VPC Flow Logs是流日志记录服务,它可以抓取VPC中网络接口的IP流量信息。

同样,可以在VPC的可以创建一个Flow Log,然后将记录发送到指定S3存储桶中等待处理。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

如果你是基于EC2自建的服务,可以在云主机上安装fluentd。fluentd是一个开源的日志收集系统,能够收集各式各样的日志, 并将日志转换成方便处理的json格式。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

fluentd可以将Apache,MySQL,MongoDB等应用产生的logs文件推送到指定S3存储桶中等待处理。

2,日志转换

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

现在各路日志汇总到了S3存储桶,如果是json格式的数据,可以直接触发lambda函数,将数据推送到OpenSearch。如果不是json格式的数据,还需要触发lambda函数做ETL转换成json格式的数据。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

首先要检查log的格式,定义好字段名称,顺序,类型和长度,然后使用正则表达式去匹配,这里推荐一个非常好用的工具RegEx101,来测试正则表达式。

另外,我们还可以写一个lambda函数去获取Geo信息,将日志中的IP地址信息映射成地理信息,比如经纬度,国家城市。

3,分析洞察

现在日志数据到了OpenSearch,可以进一步做分析洞察。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

OpenSearch 是个开源搜索和分析套件,它基于ElasticSearch优化而来,可谓是青出于蓝而胜于蓝,它最大的优势是可以和AWS的服务做集成,比如触发SNS消息告警。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

日志分析,也叫日志洞察,基于OpenSearch的Discover功能,可以做:关键字搜索,指定时间范围展示,日志源选择,字段纵向分析,字段横向分析,时序展示。当然,你可以去探索更多有用的分析视角。

1, 关键字搜索,比如搜索KMS服务的调用记录。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

2, 指定时间范围展示,可以检索任意时间段的攻击事件。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

3, 日志源选择,可以选择CloudTrail的日志,或者GuardDuty的日志,或者选择所有的日志源,做统一的关联分析。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

4, 字段纵向分析,可以基于字段的值展开分析,比如TOP10分析,占比分析等等。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

5, 字段横向分析,挑选你感兴趣的字段来对比分析。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

6, 时序展示,基于时间纵轴展示攻击趋势。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

4,可视化展示

分析洞察强调的是运维同事实时的去发现安全事件,这些宝贵的运维经验可以沉淀下来,梳理出各种模板。这些模板可以直接生成可视化的报告,提供给业务部门。OpenSearch的Dashboard功能可以帮我们实现这个想法。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

Dashboard可以协助我们创建各种饼图,柱状图,甚至是基于Geo的热力图。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

用饼图展示攻击类型,其中文件上传攻击占到近60%,其次是非法下载占近20%,另外还有10%的是扫描攻击。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

用柱状图展示被攻击的区域,我们发现,黑客最喜欢攻击BODY,其次是URL和HEADER.

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

通过Geo图,查看用户来源分布,发现攻击主要来自哪个地区。

5,实时告警

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

前面提到,OpenSearch较于ElesticSearch的一个很重要的优势是可以和AWS其他服务做集成,这里我们将SNS消息通知服务集成进来,做实时的监控告警。

网宿安全报告:日均抵御33.37亿次攻击 新型攻击持续攀升

首先,定义需要监控的指标,比如我们去监控CloudTrail trail authentication failure指标,每3分钟检索一次有没有人尝试恶意登录AWS账号控制台;接着创建一个触发规则,调用SNS服务;最后,SNS服务向定义好的收件人列表发送邮件提醒。

本文内容的版权持有者为网宿科技股份有限公司(“网宿科技”),未经许可,不得转载。