云上SOC主动狩猎:从告警洪流到主动发现未知威胁

发布时间:2026/10/10 18:57:16
云上SOC主动狩猎:从告警洪流到主动发现未知威胁 如果你在一个稍微有点规模的云环境里做过安全运营下面这个场景应该不陌生早上打开工单系统又是上千条告警去掉误报真正需要处理的只有两三条。但问题在于你往往需要花大半天时间才能从告警洪流里把那两三条捞出来。更让人沮丧的是某次真实的入侵恰恰是在我们例行处理告警的时候从一条没人注意到的日志里悄悄完成的。这是大多数云上SOC的常态——我们不是没有安全能力而是防御体系太被动只会等着已知告警来敲门。云上安全运营中心SOC建设之所以难难的不是买工具、上平台而是要从“被动响应”的惯性里挣脱出来转向主动狩猎。这不是一句口号而是一套涉及数据采集、分析平台、团队协作和运营节奏的完整改造。这篇文章我就从自己实际建设云上SOC的经验出发讲讲为什么被动防御在云上越来越失灵主动狩猎到底要准备什么以及落地时最容易踩的坑。1. 云上SOC的告警洪流被动响应为什么越来越失灵1.1 传统安全运营在云上水土不服的三处硬伤传统本地SOC的思路是以物理边界为中心部署防火墙、入侵检测、终端杀软然后把流量镜像接到分析平台。这个模式在自建机房里运行了很多年搬到云上之后却明显水土不服。原因并不复杂云上核心资产的形态从物理服务器变成了“资源加身份”攻击真正的出口也不再只是流量而更多是API调用、密钥配置和开发者的日常行为。我见过不少团队一开始照搬本地SOC的方案把云主机流量镜像拉出来做东西向分析结果发现要么覆盖不全要么成本高得离谱。真正的问题出在三处第一控制面不可见——谁创建了新的访问密钥、谁改了安全组规则、谁给某个角色附加了管理员策略这些动作根本不走传统网络流量却在审计日志里写得清清楚楚可很多SOC根本没把这些日志接进来第二缺乏身份和行为基线——传统规则只认IP和端口但云上同一个公网IP背后可能是几十个租户IP漂移频繁单纯基于IP的检测逻辑基本失效第三数据孤岛严重——云平台日志、主机日志、身份日志各存各的告警出来之后分析师要手动开好几个界面才能拼出攻击链条。1.2 被动防御的触发逻辑决定了它抓不住未知威胁被动防御的本质是用已知特征去匹配未知流量等规则命中之后产生告警。这套逻辑在病毒库时代是有效的但在云上却越来越吃力。攻击者只要稍微改变一下手法换个参数、换个调用顺序规则就失效了。更关键的是被动防御永远在等等着特征库更新、等着告警产生、等着有人看到告警并处置。整个链条里任何一环延迟攻击者就多一步操作空间。主动狩猎的思路完全不同不等告警而是主动提出假设并验证。比如“这个账号是否存在凭据泄露”“这个角色是否被异常切换”“这台主机是否在向陌生IP持续外传数据”。狩猎不是等证据送到你面前而是带着问题去日志里找证据。我们用一个表格来看两者的核心差异对比维度被动防御主动狩猎触发条件命中已建模的特征或规则主动发起假设并验证数据来源依赖实时告警流原始日志、上下文、基线数据时间视角实时或近实时几乎不回看可回溯数周甚至数月的日志主要产出事件工单假设结论、新检测规则、攻击情报团队状态被告警牵着走按计划探索有节奏感需要说明的是主动狩猎不是要取代现有告警体系而是在告警体系之外增加一条发现未知问题的路径并且把狩猎中确认的问题反馈回去让告警规则变得更聪明。这才是从被动到主动的正确姿势。2. 主动狩猎的前提把云上四类关键遥测数据真正掌握起来主动狩猎最怕的一件事就是“巧妇难为无米之炊”。很多团队一上来就研究高级分析算法结果发现日志源都没接全连基础问题都回答不了。所以我一直强调做狩猎的第一步不是选工具而是先把数据盘明白。2.1 控制面日志云上最好用又最容易漏的一层控制面日志记录的是“谁在什么时间通过什么API对云资源做了什么操作”。比如启动实例、修改安全组、创建访问密钥、给角色附加策略这些行为全部会在控制面审计日志中留下记录。这一层数据是我在所有云上狩猎项目里最看重的因为攻击者的很多关键动作根本不会触碰业务流量而是直接调用API完成。但这也是最容易漏掉的一层。很多云平台默认只保留很短的审计日志或者需要手动开启才会记录详细事件。我建议第一步就把控制面审计日志完整接入统一日志平台并且设定足够的保留周期。如果这里缺失后续所有关于权限提升、持久化、配置篡改的狩猎假设都无从谈起。2.2 数据面日志看得见网络活动才看得见横向移动数据面日志包括虚拟网络流日志、负载均衡访问日志、对象存储访问日志、DNS解析日志等。如果说控制面日志回答的是“谁动了配置”数据面日志回答的就是“谁在网络上和谁通信”。横向移动、数据外传、恶意下载这些行为最终都会在网络层留下痕迹。云上的网络分析比传统内网更复杂。因为云内部IP高度动态容器实例启停频繁服务之间的调用关系也不是固定拓扑。这种情况下基于固定IP的检测规则很难持续有效反而应该把流量日志和资源标签、服务名关联起来从“业务关系”的角度去发现异常访问。比如某个数据库实例突然被一台从未建立过连接的服务器访问即使IP看起来正常也是一条值得追查的线索。2.3 身份与工作负载日志攻击链末端的关键证据身份侧日志包括身份提供商的认证日志、单点登录事件、MFA变更记录等。工作负载侧日志则包括主机进程监控、容器运行时审计、数据库审计等。这两类日志往往是攻击链末端的最后证据。我见过不少团队控制面日志和网络流日志都有了但就是没有主机进程日志。结果追查某次API异常调用时到了“下一步攻击者可能执行了命令”这个环节就彻底断掉了。因为攻击者通过云API拿到权限之后最终要在工作负载上落地可能是创建反弹Shell也可能是植入挖矿程序。没有工作负载侧日志你只能看到上半场看不到下半场。当然工作负载侧日志的采集成本比较高初期不必追求全部覆盖。一个比较务实的最小闭环方案是先完整接入控制面和身份日志保证“权限操作”全可见再从核心业务主机和容器集群开始逐步铺开工作负载日志优先覆盖存储敏感数据或承担核心业务的系统。2.4 日志接入前的三道关标准化、富化、关联日志源不止一个如果每个源都按自己的格式存后面查起来就是灾难。我建议在日志接入阶段就做好三件事。第一时间标准化。所有日志统一为UTC时间并且字段名保持一致。否则跨系统关联事件时时间轴会对不齐差几秒都会误导判断。第二上下文富化。给原始日志补上业务上下文比如把IP地址标记为办公网、云厂商出口或未知地域把账号映射到对应的业务Owner把资源ID映射到业务系统名称。这样每次查询日志时不需要临时去翻资产登记表。第三关联建模。在设计表结构或者索引字段时预留出审计日志、流日志、身份日志之间可以串联的键比如用户名、资源ID、会话ID。有了这些关联键才能把一条API调用的前后网络行为和身份验证行为串成完整的故事线。这里也要提醒一句不要一上来就做过于复杂的ETL清洗。数据管道的核心是“先能用再逐步变好”。最开始只要保证关键字段完整、时间准确就可以开始狩猎了后面再迭代加字段。3. 一个够用的狩猎平台长什么样数据管道、查询引擎与成本取舍很多团队建设SOC时第一个动作就是去选一个重量级的安全分析平台结果配置了三个月还没上线。我的看法是主动狩猎的初期一个“够用”的平台远比一个“豪华”的平台更实际。3.1 最简数据管道采集、缓冲、存储、查询一个最小可用的狩猎平台数据管道通常包含四个环节采集端负责从云控制面、主机、网络设备等位置拉取日志消息队列用于削峰填谷避免日志流量突发时把下游打垮对象存储用于保存原始日志作为长期归档和批量分析的底座查询引擎负责提供交互式分析能力让分析师能快速检索和聚合。采集端要注意两个细节一是断点续传能力如果日志源或网络闪断不能丢数据二是采集状态可监控要能实时知道某个日志源是否延迟、是否异常停止。消息队列的缓冲层看起来很基础但没有它一到业务高峰时段日志写入速度跟不上就有可能直接丢日志这是狩猎最不能接受的。对象存储在这里的角色容易被低估。它不只是冷数据仓库还是“后悔药”。我经历过一次误操作导致索引数据被清空的情况还好对象存储里有原始日志否则那次事件调查就要彻底抓瞎。所以不管实时分析平台多强大原始日志的归档一定不能省。3.2 查询引擎怎么选全量索引、按需扫描还是两者兼顾查询引擎大致可以分为三类。第一类是全文索引型适合对近期日志做交互式快速检索响应速度快但存储和计算成本偏高。第二类是数据湖扫描型直接对对象存储里的文件做批量查询成本低、适合全量回溯但单次查询延迟较高。第三类是混合型近期热数据走索引历史冷数据走扫描。我的建议是实时告警和日常值班查询走索引型引擎每周的主动狩猎和月度历史复扫走扫描型引擎。不要在初期就把所有日志全部实时索引那会让账单涨到让你怀疑人生。把成本花在刀刃上才是可持续的做法。下面给一个控制面审计日志的查询示例类似SQL的写法在主流分析引擎和大数据平台上都能很容易地迁移。这个查询想回答的问题是在过去一周里哪些账号频繁执行了高敏感的权限操作。SELECT userIdentity.account, userIdentity.userName, eventSource, eventName, sourceIPAddress, userAgent, COUNT(*) AS cnt FROM audit_logs WHERE eventTime BETWEEN 2024-06-01 00:00:00 AND 2024-06-07 23:59:59 AND eventName IN (AssumeRole, CreateAccessKey, AttachUserPolicy, UpdateLoginProfile) GROUP BY 1,2,3,4,5,6 HAVING cnt 3 ORDER BY cnt DESC这条查询的价值在于它不看单条事件是否命中规则而是从聚合视角发现“短时间内高频敏感操作”的模式。这种模式往往比单条命中的告警更有狩猎价值因为攻击者的自动化工具一旦跑起来操作频率通常远高于正常运维人员。3.3 保留策略与成本控制热温冷三层不是奢侈品日志保留策略直接决定了你能往前看多远。攻击者从初始入侵到最终数据外传中间可能隔上几个月尤其是慢速攻击。如果日志只保留30天很多早期侦察行为早就被覆盖了。比较务实的是三层保留策略热数据层保留最近30天放在索引引擎里用于日常告警和交互式查询温数据层保留30天到180天的日志做压缩存储保留索引或分区支持偶尔的深度查询冷数据层保留180天以上的原始日志一般放在对象存储中按天或按月分区只在专项复盘或合规审计时使用。还要养成两个习惯一是按时间分区存放数据这能极大加快扫描查询的速度也能让生命周期清理规则更高效二是给冷数据做压缩格式上尽量选择列式存储既省空间又省查询时间。成本控制不是抠门它决定你能不能长期保留数据。而主动狩猎恰恰是一门需要长期历史数据支撑的工作。4. 让狩猎动作可复制ATTCK映射与假设驱动的工作法主动狩猎听起来很酷但如果只是“想起来就查一把”那它永远只能靠个别人的灵感。要把狩猎变成一项可复制、可持续的工作必须把它方法化、流程化。4.1 ATTCK在云狩猎里的正确用法很多团队把ATTCK框架当作一个检查清单逐个战术去对照现有的告警规则然后发现一堆覆盖缺口。这个做法有参考价值但如果停留于此还没有完全发挥框架的作用。我更倾向于把它当作“假设生成器”面对每个战术阶段问自己一个问题——在云上这个阶段可能以什么形态出现我们的哪些数据能看到这类行为。举个例子初始访问阶段云上的典型表现可能是异常来源IP访问控制台、陌生设备首次登录、某个低权限账号突然尝试切换高权限角色防御规避阶段可能是安全组规则被频繁修改、审计功能被关闭、日志被删除数据外传阶段可能是对象存储出现大量下载请求、虚拟网络出方向流量异常、DNS解析出现可疑域名。我把云上狩猎常用的ATTCK映射整理成下表它是我在项目里反复使用的起点团队可以照着这个思路继续扩展自己的版本。战术阶段云上典型行为主要证据源初始访问异常IP登录控制台、新设备首次认证控制面审计日志、身份登录日志凭据访问密码或密钥轮换异常、AssumeRole调用陡增审计日志、密钥管理服务日志持久化新建管理员用户、创建访问密钥、绑定高权限角色控制面审计日志横向移动内网扫描、跨网段远程登录、异常资源访问流日志、主机进程日志、对象存储访问日志防御规避安全组反复修改、停止审计日志、删除日志投递审计日志、配置变更记录信息收集高频调用Describe类API、批量列举资源控制面审计日志数据外传异常大流量出站、大量下载对象、访问陌生域名流日志、负载均衡日志、对象存储日志4.2 一次完整狩猎演示异地登录加角色切换的异常组合理论说多了容易空我用一个实际做过的狩猎案例来演示完整的动作闭环。假设我们观察到某个普通用户账号在非办公时段从海外IP成功登录控制台并且在登录后很短时间内调用了AssumeRole切换到一个高权限角色。针对这个现象我们提出假设“该账号的凭据可能已经泄露攻击者正在利用它提升权限并访问敏感资源。”围绕这个假设我设计了三个查询维度。第一步在身份登录日志中筛选来源IP排除办公网段找出所有非常用的登录IP第二步在控制面审计日志中关联这些异常IP对应的会话在登录后30分钟内执行的操作第三步重点关注是否包含角色切换、读取密钥、访问对象存储等敏感动作。查询逻辑可以这样表达SELECT a.eventTime, a.userName, a.sourceIPAddress, a.eventName, a.requestParameters.roleName, b.eventName AS nextAction FROM login_events a LEFT JOIN audit_logs b ON a.userName b.userName AND b.eventTime BETWEEN a.eventTime AND a.eventTime INTERVAL 30 MINUTE WHERE a.sourceIPAddress NOT IN (office_ip_range) AND a.eventName ConsoleLogin AND b.eventName IN (AssumeRole, PutObject, GetSecretValue) ORDER BY a.eventTime实际调查时不能只停留在查询结果上还要继续追。如果账号的鉴权方式支持就确认这个IP对应的设备指纹是否属于该账号常用设备再查看这个高权限角色的权限边界判断它是否具备读取核心密钥或下载敏感数据的可能然后回溯这个账号过去两周的操作历史看看有没有异常的密钥创建行为。如果假设确认就把这条路径固化成一条新的检测规则同时对相关凭据做重置或吊销。如果假设不成立比如发现这是运维人员的自动化跳板机只是IP没登记到办公网段那就把该IP加入正常基线清单作为后续查询的白名单。这就是一次完整的狩猎闭环。4.3 闭环产出去哪了情报库、检测规则与运营指标主动狩猎最怕的是“猎完就完了”什么也没留下。我建议每个狩猎周期结束之后都要有明确产出。产出去向有三个。第一沉淀到假设库。把这次验证过的狩猎假设、数据源、查询语句、结论全部记录下来下次遇到类似场景可以直接复用。第二转化为检测规则。凡是确认成立的狩猎行为都值得变成告警规则让被动防御体系也分享主动狩猎的成果。第三进入运营指标。比如每周执行了多少个狩猎用例表明确认了多少异常新增了多少检测规则平均调查时间是多久。这样团队才能看到主动狩猎的价值是持续增长的。我会给每个狩猎用例做一个简单的记录模板字段包括狩猎时间、假设描述、涉及的数据源、查询语句、扫描时间范围、结果是否确认、结论和后续动作。坚持两三个月这份记录就会成为团队最宝贵的安全资产之一。5. 分阶段落地主动运营从基础监控到自动化处置的路线图从被动防御切换到主动运营不能一步到位。步子迈得太大容易把团队精力耗散在太多方向上。我习惯把整个建设过程拆成三个阶段每个阶段都有明确的聚焦点和验收结果。5.1 第一阶段把被动底座打牢1-3个月这个阶段先不急着搞狩猎更不急着搞自动化。核心任务是把被动防御底座夯实日志采集覆盖到位尤其是控制面和身份日志告警去重降噪把明显没用的规则关掉事件响应流程跑通出了问题知道找谁、怎么处置、如何记录。关键结果有三个完成核心日志源的统一接入确定至少五条核心检测规则做一次应急响应演练。第一阶段最重要的习惯是每周固定抽出时间看一次日志摘要和基线情况不要等告警响了再看。5.2 第二阶段让狩猎走上日程3-6个月当数据管道稳定之后就可以把主动狩猎排上日程了。建议固定每周半天或者两个半天作为狩猎时间每次围绕一到两个假设展开而不是随机地翻日志。这个阶段有三件事要重点推进。一是按照ATTCK战术逐步完善自己的假设库每周从中挑出优先级最高的执行二是开始建立业务基线和资产清单把正常IP段、正常账号、正常调用模式摸清楚没有基线就没有异常三是每次狩猎完都按模板做记录筛选结果形成新的告警规则。阶段验收时我会看三个数字至少完成二十个狩猎用例的验证新增十条以上有效检测规则告警准确率有明显提升。这里特别提醒一句别让值班的人兼职做狩猎否则狩猎时间永远会被告警挤占。要有固定的人、固定的时间才能形成节奏。5.3 第三阶段成熟后的自动化与持续优化6-12个月当检测规则的稳定率达到一定水平之后再考虑自动化处置。比如自动隔离失陷主机、自动吊销异常访问密钥、自动创建事件工单并通知相应负责人。自动化处置之前一定要先做模拟。我会先在测试环境跑一遍剧本确认动作逻辑正确再灰度放开到小部分资产观察一段时间确认没有误伤才全量启用。关键指标是核心场景的平均响应时间明显下降同时误拦截率不能上升。自动化不是越早越好而是越稳越好。5.4 组织与协作安全团队单打独斗做不好主动狩猎主动狩猎非常依赖对业务环境的理解。安全分析师如果不知道某个业务系统为什么在凌晨跑批任务就会把正常运维当成攻击行为。所以安全团队一定要和云平台团队、应用开发团队、业务方建立固定的沟通渠道。我比较推荐的做法是按业务标签或项目标签来组织运营视角而不是只盯着全局日志做无差别检测。让安全分析师和业务团队的负责人保持一定频率的同步比如每月一次了解近期的业务变更、版本发布、自动化任务调整。这些信息会直接影响狩猎假设的准确性。安全团队不是独立的裁判而是嵌入业务流程里的参与者。6. 主动狩猎最容易翻车的四个细节与我的修正做法主动狩猎做了一段时间之后你会发现真正卡住你的往往不是技术框架而是一些看似很小的细节。下面这四个问题我基本在每个项目里都会遇到。6.1 日志时间错乱和字段缺失会把狩猎引向歧路云的API审计日志默认使用UTC时间但很多业务系统日志用的是本地时间。两套日志混在一起之后事件先后顺序可能完全乱掉。我曾经在一次调查里因为时间轴错位把一次正常发布误判成了攻击行为浪费了整整一天。后来我规定所有日志在接入平台时统一改成UTC时间或者至少保留原始时区字段。同时对关键字段做缺失率监控比如账号、事件名、源IP这些字段如果某一天的缺失率超过阈值就自动告警。日志质量是狩猎的底座底座不稳上面的一切分析都不可信。6.2 不看业务基线狩猎变“猎巫”“某个用户凌晨三点登录”这种问题安全团队看了会兴奋但业务方看了只想翻白眼。因为那可能是定时任务、自动化发布工具或者值班人员的手工操作。建立业务基线是狩猎的前提。我在项目里会把常见办公网IP段、自动化服务账号、定时任务窗口、常用云服务商出口IP都整理成清单并且纳入日志的富化层。这样查询时可以直接排除正常行为把精力聚焦在真正的异常上。全量异常扫描看起来很全面实际会消耗大量时间最终结果往往是狼来了。6.3 只追新数据不复扫历史日志慢速攻击是主动狩猎最大的盲区之一。攻击者可能会在几个星期内分步完成侦察、渗透、权限提升和数据收集每一步单看都很轻微。如果只盯着实时告警这些行为很难被发现。我的做法是每月安排一次历史数据复扫重点针对过去90天的关键日志执行若干假设查询。借助三层存储里的冷数据这个复扫成本可以控制在可接受范围内。平时我也会给自己定一个习惯每天除了处理实时告警至少抽半小时做一个周维度或月维度的聚合分析。不要小看这个习惯很多隐蔽行为都是在聚合视角下现出原形的。6.4 狩猎经验不沉淀团队能力永远原地打转我见过一些团队狩猎做了很多次但每个月都在重复摸索因为上一次的结论、查询语句、遇到的坑全都没留下记录。这种情况最可惜。为了避免这个问题我强制要求每个狩猎用例都必须有记录包括假设描述、查询语句、结果和结论。这些记录不光是文档更是团队以后自动化的基础。坚持两三个月之后团队就有了一套属于自己的云上攻击模式库新人来了也能快速上手而不是重新交一遍学费。主动狩猎做了一段时间之后我的体会是它的价值绝不只是抓到几次入侵而是让整个团队重新认识了自己的云环境。你开始知道哪些账号是正常的、哪些调用模式是可疑的、哪些日志链路是断的。这些认知上的提升会反向让每一类告警的质量都变得更高。最后再分享一个小建议与其把大量精力花在对比各种高端安全工具上不如先把最基础的审计日志读明白把数据管道做稳。哪怕一个月只做两三个狩猎假设坚持半年你看待安全运营的视角都会和以前完全不同。云上SOC建设最核心的从来不是工具本身而是团队持续思考的习惯。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询