You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
14 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 23 | SIEM一个人管理好几个安全工具如何高效运营
你好,我是何为舟。
在前面的课程中,我们介绍了一些常见的安全产品。但实际上,解决公司的安全问题,并不是部署了这些安全产品就万事大吉了。安全防护的过程是一个与黑客持续进行攻防对抗的过程,黑客总是能够发现新的方法,绕过安全产品的防护,实施攻击。
如果黑客绕过安全产品,我们应该如何及时发现黑客的攻击呢?具体来说,我们应该如何对黑客的攻击路径和攻击产生的影响进行统计分析?以及在发现黑客的攻击之后,我们要如何提取攻击特征,补充安全产品的检测规则呢?这些都是我们需要持续关注的事情。因此,我们常说“建立一个安全体系很简单,运营好一个安全体系却很复杂”。
我们经常会使用SIEMSecurity Information and Event Management安全信息和事件管理来帮助我们运营一个安全体系。通过SIEM我们可以将散落于各个系统、设备和安全产品中的日志进行汇总和梳理快速串联出黑客的完整攻击路径更高效地完成安全体系运营的工作。
那SIEM究竟是如何高效运营安全体系的呢下面我们一起来看。
## SIEM有哪些功能
我们先来说一下SIEM是什么。简单来说SIEM就是一个基于各类日志提供安全运营和管理能力的统一平台。基于这个定义我们来总结一下SIEM的功能。
首先是收集日志。对SIEM来说需要收集的日志来源于操作系统、路由器、数据库等业务设备防火墙、WAF、IDS等安全产品以及业务前后端本身。
在收集到大量的日志之后SIEM会对数据进行分析统计将海量的日志进行筛选和总结给予安全运营人员最精简的结果提高分析效率。经过数据分析之后安全运营人员就能够快速发现并处理各类安全事件了。
最后SIEM还需要提供完整的运营流程。比如通过工单功能完成安全事件的管理通过报表追踪各安全产品产生的报警、发起的安全事件、数据的流动情况等清晰地表现出公司的安全现状和能力。
没有SIEM平台之前安全运营人员需要对这些安全事件和报警进行人工处理和记录不仅效率较低而且容易出现纰漏。有了SIEM平台之后我们就可以将整个运营工作线上化大大提升运营的效率和质量。
## SIEM是如何落地的
不知道你有没有发现我一直强调“运营”这个词。相比我们之前讲过的安全产品SIEM更加注重运营。因此落地SIEM可不仅仅是部署一款安全产品这么简单。
我们之前提到的安全产品防火墙、WAF、IDS等都是以技术为导向的。换一句话说这些安全产品效果好不好实际上取决于技术和检测规则。只要技术实现上能够满足性能要求规则上能够尽可能多地覆盖攻击特征、检测黑客行为、减少误伤就很容易落地并产生收益。
但是SIEM不一样。我在说SIEM的核心功能的时候你可能很快联想到可以使用经典的日志分析组件ELK去实现SIEM的各个功能。所以你看SIEM其实不存在特别明显的技术挑战。
那为什么很多公司在规划做一个SIEM的时候最终都“虎头蛇尾”、不了了之了呢原因就是我们一直强调的“运营”能力不足。运营能力不足让这些公司做出来的SIEM空有一个架子无法实际落地也就无法产生应有的价值。
那么问题来了SIEM究竟该如何落地呢下面我就结合SIEM落地的流程图带你一起分析。
![](https://static001.geekbang.org/resource/image/56/42/5686ab8e335a54e2ada6fd7568b02542.jpeg)
### 1\. 制定计划
首先当我们决定要做SIEM的时候需要制定一个长期的计划。依据公司的安全情况这个长期可能意味着1-3年的持续投入。
在部署一些成熟的安全产品比如防火墙、WAF等公司只需要在采购和研发时进行一次性投入之后再花费少量的资源运维就可以了。所以这些安全产品的落地就是发现问题、解决问题的过程。
但是SIEM并不是一个通用的安全产品每个公司都需要花费大量时间磨合SIEM的设计、部署和运转。因此我们需要制定长期的、体系化的落地计划。通常这个计划分三个阶段设计阶段、建设阶段和运营阶段。在SIEM启动之前我们就要预估每个阶段投入的人力、时间、成本每个阶段的需求和预期产出每个阶段按月或者按季度的时间节点等。这些确定下来之后还要公司同步确认才行。
### 2\. 设计阶段
计划制定完成之后就进入设计阶段了。在设计阶段我们首先需要明确公司对SIEM的需求或者说我们希望SIEM能够解决哪些问题。这些问题和需求都是从哪里产生的呢
其实,在建设安全体系,引入了部分的安全产品之后,我们在安全运营上会感受到很多痛点。比较常见的,由于安全设备过多,我们在实际分析日志的时候,需要一个一个登录这些设备查找日志,这大大降低了我们的工作效率。
这个时候很多人会提出搭建一个SIEM平台来解决这些痛点。但实际上这些痛点都是很宽泛的需求。这些需求没有很清晰地定位出SIEM平台究竟需要收集哪些设备上的哪些日志我们又应该以什么样的格式存储和整合这些日志。
所以为了给SIEM一个清晰的定位我们需要总结出一份详细的需求列表。我认为可以从三方面来总结。
**第一方面SIEM需要管理哪些设备收集哪些数据。**
这个列表需要根据我们的实际运营工作来进行总结。一般来说,我们可以根据黑客的攻击路径来进行梳理。
比如在Web攻击中黑客首先需要发起HTTP请求。那么黑客会先在前端进行操作然后HTTP请求经过防火墙、WAF最终到达服务端。因此前端、防火墙、WAF和服务端对应的请求日志我们都需要收集。
如果涉及进一步的权限提升那黑客需要在服务器内进行操作或者通过路由器、交换机访问其他服务器。所以这些服务器、网络设备和IDS中的行为日志同样需要收集。
**第二方面:安全运营目前遇到的痛点的典型场景是什么,预期的解决方案又是怎么样的。**
安全运营最大的痛点有两个,一是日志分散,二是日志无法关联。通过日志收集功能,我们已经将日志进行了汇总,解决了日志分散问题。那日志间的关联问题该怎么解决呢?
我们来看一个例子。
一次Web攻击要收集的日志有很多网关上记录的一次HTTP请求WAF上对应的一次判定记录服务端可能记录的具体请求参数。如果黑客攻击成功那么系统上还可能留下一次命令执行的记录。如果我们想要将这些日志进行串联还原完整的攻击链路就必须要求SIEM在各个日志中能记录特殊的标记。在Web请求中这些特殊的标记通常是用户ID、IP或者设备ID等。
更复杂一些的当HIDS发现了一起攻击时你可能需要回溯黑客是怎么进入系统的那我们就需要将HIDS中的日志和NIDS、WAF等其他日志进行关联。但是这些日志类型不同没有能够贯穿始终的标记。这个时候就需要SIEM能够通过额外的信息进行关联。比如通过登录日志中的用户和IP关联HIDS和NIDS日志等。对这些关联关系的梳理和定义决定了SIEM需要以什么形式存储日志。
**第三方面:完整的安全运营流程是什么。**
我们最终设计出来的SIEM肯定不只是简单地堆砌一些功能。对于运营工作来说工具和标准化流程同样重要。如果在实际工作中运营人员使用线上工具执行的却是线下流程。这种状态切换导致的时间消耗对于运营工作来说反而得不偿失。因此在数据分析完成之后我们需要依据运营工作的需求整合出SIEM需要的管理功能比如。工单、报表形成一个完整的运营流程。
通过对这些需求的分析和整理我相信你已经能够清晰地预估SIEM的完整形态了。那么不管是你自己设计、研发还是采购商业的SIEM平台你都能够进行合理地功能分析和收益评估了。
### 3\. 建设阶段
在完成需求设计之后就进入SIEM平台的建设阶段了。首先SIEM要收集各种设备和应用的日志每个公司的设备和应用都有很多我们没有能够取巧的方式只能一个一个进行对接。可想而知SIEM的建设一定是一个十分漫长的过程。SIEM的实施周期长、成本大所以我们的预期常常很高很容易产生达不到预期的失落感。
那么,我们应该如何去建立正确的预期呢?最简单有效的方法就是**建立短期预期,并且快速迭代**。比如在最开始的建设阶段SIEM只需要满足日志管理也就是满足我们在一个统一的平台查看各个日志即可至于如何去分析数据、产出报表我们可以放到下一个迭代周期去规划。在明确了这些可实现的预期之后我们就能理清每个迭代周期的工作也能够增强公司对SIEM这个长期项目的信心从而获得更好地支持。
### 4\. 运营阶段
在收集到部分常用日志有了基础的数据分析能力之后安全运营人员就可以使用SIEM平台进行运营分析工作了。
但是SIEM平台的运营和建设阶段并不是完全独立的。因为SIEM平台的建设需要通过不断的短期迭代进行推进。SIEM平台建设迭代周期主要参考的就是运营阶段SIEM平台的使用情况和产生的需求。
这样一来SIEM平台就能够以不断满足安全运营需求为导向持续完善自身功能最终大大提升安全运营人员的工作效率。
## SIEM落地中有哪些常见问题
现在相信你已经知道SIEM平台落地的几个主要步骤了。除此之外我还想强调SIEM落地中几个常见的问题。
**第一个:垃圾数据太多。**
如果你接触过大数据分析你应该听说过“Garbage ingarbage out”。SIEM的本质其实也是一个大数据分析的平台它同样对数据的质量有着极高的要求。
因此在考虑SIEM的数据收集需求时我们需要思考清楚哪些日志对SIEM有用基于这些日志你是否能够解决安全运营问题。这样一来SIEM就不会变成一个只用来存储大量无用数据的“垃圾场”了。
**第二个:数据维度缺失。**
数据维度缺失对SIEM来说同样是一个致命伤。为什么这么说呢SIEM中的数据都是需要长期积累的某些历史数据一旦缺失就很难有办法补充。因此经常会出现在使用SIEM的过程中我们突然发现某些关键字段缺失导致事件排查中断。
比如对于一次网络请求我们可能会记录的日志字段包括时间、源IP、目标IP等。但是当出现一起安全事件时你除了要知道是哪个IP发起的请求可能还需要进一步挖掘是哪个用户或者哪个进程发起的这次请求。这个时候如果数据维度缺失了就会出现没有日志可以进行关联的情况分析运营工作也就无法继续下去了。
**第三个:人员投入不足。**
SIEM平台实际上是对安全运营工作的一个线上化呈现而运营工作始终是需要依靠人来进行主导的。很多公司乐观地认为有了SIEM平台就不需要专门的人员来维持安全运营工作了。
事实上SIEM只是一个管理的工具它无法自己运行需要有人去使用它。除此之外随着安全的对抗升级运营工作的需求也会不断更新SIEM自身的迭代升级会一直持续。因此SIEM需要有一个完整的安全团队来进行长期的维护。
## 总结
好了,今天的内容讲完了。我们来一起总结回顾一下,你需要掌握的重点内容。
**安全的发展,前期在于技术建设,长期在于运营升级。**SIEM就是在安全运营升级过程中为公司提升效率、加强管理的一个工具。SIEM通过收集各个系统和设备的日志能够为我们提供安全统一管理的基础数据。然后通过对常见的数据分析和报表展示SIEM可以帮助我们快速排查安全事件、进行事件管理同时满足数据报表甚至合规审查的需求。
你可能听说过这样一句话“技术总是短期内被高估在长期内又被低估”。SIEM也是一样。SIEM的落地和生效是一个长期发展的过程很难在短期内有十分明显的收益。所以我们需要做好长期规划、明确需求同时拆解目标一步一个脚印去迭代发展才能最终将SIEM长期稳定地运营和使用起来。
![](https://static001.geekbang.org/resource/image/87/e3/87e2e89dbdcbea3ceefee27dbf237ee3.jpg)
## 思考题
最后,我们来看一道思考题。
如果你的公司使用了很多安全产品你想要对这些产品进行统一的管理和运营。那么你需要SIEM收集哪些日志、提供哪些数据分析的能力来帮助你进行高效运营呢
欢迎留言和我分享你的思考和疑惑,也欢迎你把文章分享给你的朋友。我们下一讲再见!