ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

云上SOC建设实战:从被动响应到主动威胁狩猎的转型之道

云上SOC建设实战:从被动响应到主动威胁狩猎的转型之道 云上安全运营中心(SOC)建设从被动防御到主动狩猎1. 项目概述1.1 我为什么想写这个话题做云上安全这几年我最深的一个感受是很多团队的安全运营还停留在告警响了才动的阶段。告警中心积压了几千条未处置的告警SIEM里查了一天的日志也找不出攻击者到底进来了没有安全工程师每天被各种误报淹没。云上资产规模越铺越大安全团队反而越来越被动这几乎是每家上云企业都会遇到的困境。云上安全运营中心(SOC)建设这个项目就是围绕一件事怎么把安全运营从被动响应模式升级到主动狩猎模式。被动防御的意思是等告警、等通报、等漏洞情报攻击者打进来了我才反应主动狩猎的意思是假设攻击者已经进来了我主动去日志、流量、资产行为里找痕迹。两者之间有本质区别前者是追着攻击者跑后者是蹲在路口等攻击者。我写这篇文章是希望把我在云上SOC建设过程中的整体思路、模块拆解、数据接入方案、狩猎分析流程和踩过的坑系统性地分享出来。适合三类读者一是正准备从零搭建云上SOC的安全负责人二是已经在做安全运营但想往主动狩猎方向转型的工程师三是给云上业务做安全方案但一直觉得差口气的同行。这里不会讲太多厂商产品的厂商逻辑更多是讲方法论和实操细节。1.2 先理清一个概念SOC并不是一个盒子很多人一提到SOC第一反应是买一套平台、上一套大屏。但真正干过安全运营的人都知道SOC本质上是一套组织流程平台数据的运营体系而不是单一的技术产品。那套平台只是载体真正让SOC产生价值的是三件事数据有没有接全、流程有没有跑通、人有没有分析能力。我们这次建设的核心目标是把安全运营从告警驱动转变为狩猎驱动。落地到具体能力上要解决四个问题云上资产与身份数据是否完整可见安全日志和流量数据是否统一接入、集中存储威胁检测规则和狩猎分析流程是否形成闭环安全事件响应是否从单人作战升级为协同处置这四个问题看起来是平台问题实际上每一层都牵扯到组织协作。后面我会逐个展开。2. 整体设计与思路拆解2.1 为什么必须从被动转向主动我先讲一个真实场景。上云初期我们团队走的是标准被动路线接入云厂商的安全告警、部署了WAF和主机安全Agent然后每天打开告警控制台看看有没有高危告警。表面上看该有的都有但实际运转起来有三个严重问题。第一个问题是告警失焦。云上业务每天产生大量告警Web扫描、暴力破解、异常登录各种基础检测规则全线拉响。安全团队只有两三个人根本处理不过来。结果就是只看高危、只看未被自动拦截的告警大量中低危告警直接被忽略。攻击者经常就是从这些不痛不痒的入口一点点探测进来的。第二个问题是检测盲区。云上环境的攻击面跟传统机房很不一样。新开一个OSS Bucket、新创建一台按量付费实例、某员工子账号突然拿到一个高权限策略这些云上特有的配置风险和身份风险传统IDS/IPS根本覆盖不到。依赖云厂商默认告警等于把检视权全部交出去但云厂商的检测重心是平台侧未必关注你业务侧的攻击行为。第三个问题是缺乏验证闭环。收到告警之后经常的做法是封禁IP、重置密码、删后门文件做完就完事。但我们很少问一个问题攻击者进来之后做了什么数据有没有被拖走没有假设验证的运营即使告警处置了下一次同样的通路打进来你依然反应不过来。后来我逐渐意识到被动防御的核心缺陷不是工具不够而是安全团队没有一个主动提问的习惯。主动狩猎要做的就是让安全团队从等告警变为带着假设去日志里找证据。2.2 方案选型在云原生SOC自建与商用平台之间取舍做云上SOC方案选型时首选考虑的是两条路线一条是直接用商用安全态势感知平台另一条是在云上自建SIEMSOC体系。这两条路我都趟过各自的优劣势非常明显。商用平台的优势是开箱即用UEBA、SOAR、大屏展示都有对团队人力要求低。但它的劣势也很致命规则引擎和数据模型往往是黑盒你很难深度订制检测逻辑数据接入受限于厂商支持的日志类型最麻烦的是当你想做狩猎分析时平台的查询能力和灵活性常常跟不上。我们曾经排查一个异常API调用链在商用平台里做关联查询一种事件类型一次筛选一个流程下来要操作十几个步骤效率极低。自建路线的核心是用云原生组件搭一套SIEM底座日志统一进对象存储计算层用日志服务或自建Elasticsearch集群在此之上做规则检测和狩猎分析。这套方案的前期投入很大但后期灵活度极高规则、数据模型、查询逻辑全部可控。我们最终选择了以云原生自建为主、商用平台为辅的路线常规告警汇聚和运营用自建SIEMUEBA类异常行为分析接入商用平台的模型输出作为补充。选这条路有一个关键前提公司有专职的安全分析人员。如果团队只有一个人且没有专职数据分析能力那商用平台可能更适合你。到底选哪条路线本质取决于团队的分析能力储备而不是单纯比功能列表。2.3 核心设计原则数据分层、场景驱动、闭环运营设计云上SOC时我们定了三条核心原则后面所有模块和流程都围绕这三条展开。第一条是数据分层。我们把数据分成三类原始日志、范式化后的安全事件、上下文关联后的情报知识。原始日志全量留存用于溯源和狩猎范式化事件用于规则检测和告警关联知识则服务上层分析场景比如资产与漏洞的对应关系、账号与权限的对应关系。分层的好处是检测时看事件狩猎时查原始日志追责时挖上下文不会一套数据打天下导致性能或精度两头都不靠。第二条是场景驱动。不做大而全的安全大屏而是先把最高频、最危险的场景列出来。我们当时定了六个高优先级场景Web攻击、暴力破解与撞库、异常登录、权限提升、数据外传、恶意命令执行。每个场景都单独沉淀数据模型、检测规则、狩猎用例和处置SOP效果比一套笼统的检测规则好得多。第三条是闭环运营。从威胁发现、分析研判、响应处置到复盘优化必须形成完整闭环。很多SOC建设失败不是技术平台不行而是流程断掉了——告警产生了没人跟进处置完没有复盘复盘完规则没有优化。闭环运营恰好是打通技术和管理的粘合剂。3. 核心模块解析与实操要点3.1 数据接入层到底要接哪些日志SOC的地基是数据。我见过太多SOC项目死在地基不牢上——接了一堆日志但关键日志没接结果分析时到处缺数据。云上SOC至少要覆盖以下几类日志这是底线数据类别具体数据源分析价值主机层主机安全Agent日志、系统操作日志、进程执行日志命令执行、恶意文件、权限提升检测网络层云防火墙日志、VPC流日志、负载均衡访问日志扫描探测、异常流量、C2通信应用层WAF日志、API网关日志、应用运行日志Web攻击、业务逻辑滥用、API异常身份层云访问控制台日志、IAM操作日志、SSO登录日志异常登录、权限提升、密钥泄露利用数据层对象存储访问日志、数据库审计日志数据外传、拖库、内部威胁资产层云资源配置变更日志、资产清单快照配置漂移、新资产暴露、违规开通这里有几个容易踩的细节。云访问控制台日志CloudTrail类是很多团队的盲区大家只盯着攻击流量却忘了攻击者可能拿着泄露的AK/SK直接调API操作云资源。有一次我们在排查中发现某个AccessKey在一个小时内创建了三台按量付费实例每一台都绑定了公网IP——这就是典型的失陷凭证在挖矿。这种日志如果没接靠流量检测根本发现不了。还有一个细节是原始日志全量留存 vs 采集后即丢弃的问题。常规检测只关心告警事件但狩猎分析需要回溯更长时间窗口的历史行为。我们当时直接把核心原始日志的留存周期定为180天对象存储成本大概每月增加了不到两千块换来的是狩猎时随时能拉到半年前的数据做对比分析这笔投入非常值。3.2 检测规则层从大而全到场景化规则检测层最容易犯的毛病是无限堆规则。一开始大家喜欢把网上开源规则集全部导入规则数量好几千条第一天告警量直接爆掉。后来我们做了减法每个场景只保留最有效的十几条规则再加上基于行为的基线检测效果反而好很多。以暴力破解与撞库场景为例我们不再单纯依赖同IP尝试次数超过N这种阈值型规则。因为云上出口IP经常是NAT很多正常用户共享同一个IP固定阈值会误伤。我们改成组合检测逻辑同一账号短时间内登录失败次数异常、同时段该账号存在来自新设备的成功登录、失败登录与成功登录的时间差很短——三条条件命中两条才告警。这样一来撞库成功和单纯扫密码的区分度上来了。规则要定期做召回率评估。我们每个月会把新发现的入侵事件反向对一遍规则命中情况发现漏报就补规则发现误报就调阈值。规则不是写好就结束的它是一个需要持续迭代的动态体系。3.3 主动狩猎层假设驱动的分析框架主动狩猎是整个SOC建设中最核心的一块。做狩猎不是漫无目的地翻日志而是假设驱动的分析。我们构建了一套常用的狩猎分析流程按阶段推进第一阶段是确定假设。比如某个失陷账号在云上创建了新的访问密钥或者某台Web服务器上存在加密流量异常外联。假设要具体要有可验证的数据特征。第二阶段是范围界定。先确定要分析的时间窗口和资产范围。比如最近7天内所有Web服务器对公网的可疑外联、最近30天内所有子账号的权限变更记录。界定范围是为了控制分析量避免从海量日志里大海捞针。第三阶段是指标设计。把假设转化成可量化的指标。例如检测异常外联时关注该服务器历史上从未访问过的IP段外联端口非80/443外联流量具有周期性等指标检测密钥滥用时关注调用API的来源IP与账号常用IP不一致调用云资源创建类API的次数激增等指标。第四阶段是日志回溯与验证。通过SIEM的查询接口在原始日志里关联检索筛选出满足指标特征的行为。这一阶段往往是体力活但也是狩猎最有价值的环节——因为你会在这里发现很多规则引擎永远不会告警的隐蔽行为。我们曾通过追踪某台数据库服务器的外联行为发现攻击者利用一个API网关调试接口做数据回传耗时一个多月而规则始终没报警。第五阶段是响应与武器化。确认可疑行为后把分析到的IOC失陷指标和检测特征沉淀到规则引擎里形成新的检测用例同时进入事件响应流程。狩猎产出的最重要成果不是处置了一个威胁而是沉淀下了一份新的检测能力。3.4 平台选型与日志存储架构自建SIEM底座时最核心的决策是日志存储和查询引擎。我们对比了两种主流方案一种是Elasticsearch集群自建另一种是用云上日志服务。Elasticsearch的优势是查询语法灵活、DSL功能强大可以做复杂的嵌套查询和聚合分析对狩猎场景最友好。劣势是需要自己运维集群高峰期索引压力大存储成本偏高。云日志服务的优势是托管运维、接入简单但在复杂查询上相对受限。我们最终选择了以Elasticsearch为主、对象存储归档为辅的架构热数据存在ES周期超过30天自动沉降到对象存储查询时通过ES的索引生命周期管理和数据回迁去查冷数据。这里有一个实战经验ES索引一定要按天分索引并且给索引加好别名。狩猎分析时经常要跨一个月查数据如果不按天分索引单索引数据量过大会直接把查询拖垮加别名后可以用通配符便捷地跨时间范围查询。还有一点ES的mapping设计要提前规划IP字段要用ip类型时间字段统一用UTC存储展示层再转本地时区否则后面做时间范围检索时会发现各种对不上的问题。4. 实操过程与核心环节实现4.1 第一步资产测绘与数据源盘点SOC建设的第一步不是装平台而是盘点清楚云上有哪些资产、哪些日志现在能接、哪些需要额外开通。我们当时的做法是先通过云厂商的资源管理接口把全量云资源清单拉出来包括云服务器、数据库实例、负载均衡、对象存储Bucket、容器集群等然后逐个确认每类资产的安全日志开关状态。建议你用表格维护一份数据接入清单逐项对照确认。以我们当时的一份清单为例资产类型日志源接入状态留存周期接入方式云服务器主机安全Agent已接入180天Agent自动上报负载均衡访问日志待接入90天日志投递到SLS对象存储访问日志已接入180天Bucket日志投递云APICloudTrail待接入180天事件流投递数据库数据库审计已接入90天审计日志投递云防火墙流量日志待接入90天流日志投递盘点阶段容易遗漏的是新购资产。云上资源是动态的今天买了新的按量实例、明天开了新的RDS如果资产发现不及时日志接入就会有窗口期。我们后来加了定时资产巡检每两小时自动拉一次资产清单发现新资产自动打标并触发日志接入检查基本消除了视盲期。4.2 第二步搭建日志接入管道数据盘点完成后下一步是搭建日志接入管道。云上日志接入的典型路径是各数据源/日志产生/投递到日志服务/消费写入ES。以云防火墙日志接入为例流程是这样的在云防火墙控制台开启日志分析功能配置日志投递到日志服务项目的指定存储然后在日志服务里配置索引把时间、IP、端口、协议等字段建好索引最后通过日志服务的消费组或数据加工任务把日志实时写入自建ES集群。整个过程需要配置的数据加工逻辑不多但有几个细节要提前想清楚。字段映射一定要标准化。我们统一用一套字段规范时间统一叫event_time、源IP统一叫src_ip、目标IP统一叫dst_ip、用户名统一叫user_name。这样在狩猎时写查询语句会非常顺手不用看到底是source_ip还是srcAddress。如果接多个云厂商或混合云字段映射混乱会让你苦不堪言。还有一个容易忽略的问题日志时间的时区一致性。云产品日志有的用UTC有的用本地时间混在一起做时间关联分析就是灾难。我们的办法是写入ES前统一转成UTC时间戳存储查询时统一在可视化层转成北京时间。宁可查询时多做一步转换也不能在存储层埋下时区不一致的坑。4.3 第三步检测规则配置与调优规则配置这块我的建议是从每个场景挑3到5个核心规则启动不要贪多。规则初始值宁严勿松先观察一周的告警量再逐步调整到合适的敏感度。以权限提升场景为例我们配置了一条核心规则逻辑如下触发条件某IAM账号执行了创建管理员策略或附加管理员策略类的API操作附加条件该账号在近30天内未曾执行过此类操作风险评分基础分80叠加来源IP属于非办公网段加10分叠加操作时间在非工作时间加5分这条规则跑下来第一周告警量非常多因为很多正常运维人员习惯了用高权限账号做日常管理。后来我们在规则里加了一个白名单机制把已备案的堡垒机源IP、已申报的运维窗口时间排除掉告警量立刻降到了每周3到5条但每一条基本都值得人工确认。这就是一个典型的规则调优过程——不是把规则调弱而是把误报场景精细化排除。4.4 第四步狩猎用例的落地实践说完规则重点说一下狩猎分析怎么落地。我们设计了一套月度狩猎计划每个月挑一两个假设做深度分析。下面分享一个实际做过的案例完整演示狩猎流程。狩猎假设某台Web服务器失陷后被用作代理节点对外进行扫描或回传数据。数据范围近14天内该服务器关联的所有网络流日志与主机进程日志。分析步骤先拉出该服务器的全部外联IP段建立基线发现从未出现过的目的IP段并计数。在进程日志里搜索该服务器上出现的异常进程名特别是名称伪装成系统进程的如sshd改成ssh -d或nginx出现在非标准路径。交叉关联找到异常进程与异常外联IP之间的对应关系。验证确认为可疑后封锁外联IP提取进程文件做样本分析写入IOC库。那次分析一共花了大概两天工时最终确认了3台服务器上有挖矿木马进程。这个案例里最有意思的是这三台服务器在告警平台里一条高危告警都没有因为挖矿木马的流量特征并没有触发厂商内置的检测规则。但通过狩猎分析把进程名称-外联IP-外联频率几个维度一关联线索就浮出来了。这就是主动狩猎相比被动防御的核心价值所在。4.5 第五步SOAR联动与事件处置闭环检测和生产告警只是前半程真正考验SOC能力的还有事件处置。我们搭建了一个轻量级的SOAR流程把高频易处置的事件类型做成自动化响应剧本。举一个典型的处置场景恶意命令执行。规则检测到某台服务器上执行了高危命令如curl wget下载外部文件并执行SOAR流程自动执行以下动作从云厂商接口隔离该服务器安全组断网或主机隔离。自动通知责任人并创建工单。在ES中回溯该服务器近7天的所有行为日志生成一份初步分析报告。如果分析报告中存在外联可疑IP自动在黑名单中封禁。这个流程上线后恶意命令执行类事件的响应速度从小时级提升到分钟级而且不需要安全人员实时盯着。自动化的前提是流程已经被验证过多次且判断逻辑足够清晰对于复杂事件自动化只做前期处置分析研判仍然要人工完成不能全指望机器。5. 常见问题与排查技巧实录5.1 告警量过大导致狼来了效应建设初期最典型的问题就是告警量爆炸。我们当时上线第一周每天告警量达到三千多条安全团队只有两个半人根本看不完结果就是狼来了——大量低危告警被忽略真正的高危告警也被淹没。解决办法是两个方向同时推进。一方面把检测规则做精细调优能合并的合并、能白名单的白名单另一方面在告警展示层引入告警聚类和降噪机制把相同IP、相同攻击类型、相同目标的告警自动聚合成一条事件。聚合之后三千条告警量直接降到每天一百多条事件处理效率明显提升。核心思路告警系统最终给人看的不应该是每条告警而是一个个可处置的事件。5.2 日志采集丢数据日志丢了、少了、延迟了在自建SIEM场景中非常常见。我们踩过最典型的一个坑是日志服务投递到ES时偶发写入失败数据出现小范围丢失但日志服务控制台不会给明显的失败提示。排查这类问题有一个标准路径先用日志服务的投递任务状态确认是否报错然后对比日志服务每天的写入量趋势和ES每天的索引文档数趋势看是否存在明显落差最后检查消费组offset是否卡住。建议在ES写入链路前面加一个简单的每分钟日志量监控写入量陡降或归零时立刻告警这样至少不会等分析时才发现数据已经丢了一个星期。5.3 高防WAF等安全产品与SOC规则冲突云上安全产品之间经常出现配置打架的情况。例如WAF已经拦截了SQL注入请求但SIEM的规则还是会对原始访问日志做检测于是每一条被WAF拦掉的攻击请求在SOC里又生成一条告警。这类告警本质上没有新增价值但又大量占用分析精力。解决方法是在规则引擎里设置前置判断。如果攻击请求的响应码是WAF拦截专用返回码通常是405或特定的拦截码则自动降级或标记为已拦截不进入人工处置队列。只对WAF放行的可疑请求进行深度分析这样检测和分析的精力全部聚焦在真正穿透防御的流量上。5.4 常见的云上特有盲区排查云上环境有几个传统安全方法论覆盖不到、特别容易出问题的盲区我列了一张清单建议你在SOC运营中定期自查未关联的弹性公网IP直接暴露数据库或Redis端口且未接入任何安全防护对象存储Bucket权限从私有变公有且开启列举权限数据可被公开拉取云账号AccessKey泄漏或嵌入在代码仓库中外部攻击者可调用云API操作资源安全组规则过于宽松入方向全放通或规则条数过多无变更审批镜像仓库公开拉取内部镜像被外部获取云上容器集群的Kubernetes API Server未做访问控制匿名请求可达这些盲区的共同特点是它们不在传统流量检测的视野内但一旦出问题就是严重的数据泄露。建议每季度做一次云上配置审计配合云厂商的合规检查工具加自定义检查规则把这些盲区纳入日常巡检范围。6. 运营经验与长期规划6.1 团队能力建设分析师的狩猎思维培养工具和数据都准备好了但最终决定SOC水平的是人。一个只会看告警的安全分析师和一个会主动狩猎的分析师差别非常大。培养团队狩猎思维我总结了几条经验。第一建立月度狩猎例会制度。每个分析师每个月强制提交一个狩猎分析报告不要求每次都有发现但要求形成假设-数据-结论的完整链路。这个制度一坚持团队的分析思路会越来越清晰。第二鼓励分析师把自己当成攻击者。拿到一个云环境假设你是攻击者你最可能的攻击路径是什么顺着这个思路查日志、看配置、找痕迹。分析师的视角从防守方切换到进攻方很多平时注意不到的线索就浮现了。第三把狩猎成果纳入绩效评估。如果团队绩效只看处置了多少告警大家永远只会被动响应。我们把新增高质量检测规则狩猎发现隐蔽威胁数等主动成果纳入考核团队行为自然就转向了。6.2 运营成熟度评估从L1到L4的阶段划分最后讲讲长期规划。SOC建设不是一次性项目而是一个持续演进的过程。我习惯用四个阶段来评估运营成熟度方便团队定位现在在哪、下一步要去哪。阶段特征核心动作L1 基础建设期日志接入不全流程未闭环完善数据接入建立基础规则L2 响应固化期告警可管理处置有SOP引入SOAR自动化建设事件响应流程L3 主动狩猎期团队具备狩猎能力规则持续迭代常态化狩猎分析构建威胁情报闭环L4 智能运营期数据驱动决策安全态势可预测引入UEBA和AI辅助分析建设安全数据湖我们目前处在L3阶段正在向L4演进。演进的方向不是加更多工具而是把现有数据进一步整合——把漏洞数据、资产数据、威胁情报和告警事件打通做更精准的关联分析。比如当一个新的高危漏洞公开后能自动关联到所有受影响资产评估暴露面并生成处置建议这才是云上SOC长期建设的价值所在。做SOC这些年我最大的体会是安全运营没有终点它是一门持续对抗的学问。被动防御的下限是被动挨打主动狩猎的上限是无限接近未发生的攻击。这个项目让我和团队真正完成了从前者到后者的转变。如果你正在建设云上SOC建议从数据接入和场景化检测做起先跑通一条闭环再逐步扩展狩猎能力。这套方法论不需要一步到位但它值得你从现在就开始做。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进