【京东技术双十一】大数据平台红蓝对抗——磨利刃,淬精兵!

Tech 京东技术双十一,参与互动领福利!
双十一京东技术也来送福利啦!本文是京东技术双十一福利文章的最后一篇啦~
活动一直达:【京东技术双十一】记一次线上问题引发的对 Mysql 锁机制分析
活动二直达:【京东技术双十一!集赞有福利】00后如何组织双十一大促看这一篇就够了!
获奖基本条件:关注京东技术公众号并转发本文至朋友圈
截至11月28日9:00,以公众号运营者后台显示为准
“最近阅读前十名”的同学有机会获得京东京造双肩包
“最近分享前十名”的同学有机会获得京东京造吹风机
“最近留言精选次数前十名”的同学将有机会获得京东京造U型枕
注:“最近xx前十名”一般为近十五天在该项目(如阅读量等)表现最活跃的十位同学;每人仅可获奖一次,若同时满足多个获奖条件,则多余奖项取消;领奖方式将另行通知。
京东技术双十一,参与互动领福利!
双十一京东技术也来送福利啦!本文是京东技术双十一福利文章的最后一篇啦~
活动一直达:【京东技术双十一】记一次线上问题引发的对 Mysql 锁机制分析
活动二直达:【京东技术双十一!集赞有福利】00后如何组织双十一大促看这一篇就够了!
获奖基本条件:关注京东技术公众号并转发本文至朋友圈
截至11月28日9:00,以公众号运营者后台显示为准
“最近阅读前十名”的同学有机会获得京东京造双肩包
“最近分享前十名”的同学有机会获得京东京造吹风机
“最近留言精选次数前十名”的同学将有机会获得京东京造U型枕
注:“最近xx前十名”一般为近十五天在该项目(如阅读量等)表现最活跃的十位同学;每人仅可获奖一次,若同时满足多个获奖条件,则多余奖项取消;领奖方式将另行通知。
目前大促备战常见备战工作:专项压测(全链路压测、内部压测)、灾备演练、降级演练、限流、巡检(监控、应用健康度)、混沌演练(红蓝对抗),如下图所示。随着平台业务越来越复杂,红蓝对抗的作用愈来愈明显,下面将详细介绍大数据平台在本次双十一大促备战工作中是如何开展红蓝对抗的。
图1.大促备战常见工作示意
红蓝对抗介绍
蓝方代表攻击方,红方代表防守方。红蓝对抗模拟了真实的网络攻击和防御过程,在受控的环境中进行,蓝方通过模拟各类威胁和攻击手段,对红方进行攻击,测试其防御能力和系统高可用情况。红方则负责防御和应对,寻找并修复系统中的问题,并且收集关于攻击者的信息。
红蓝对抗的好处
红蓝对抗可帮助产研验证监控告警的配置有效性,通知及时性,信息准确性。
红蓝对抗通过识别可能导致系统发生错误的潜在问题,帮助提高系统的可靠性。
红蓝对抗通过识别可能被恶意攻击者利用的潜在弱点,帮助降低发生线上问题的相关风险。
图4.红蓝对抗实践主要包括六个部分
4.1 演练公告
主要包括两个部分:
第一、本次红蓝对抗主负责人组织对抗演练启动会、确定对抗演练时间范围、指定实时/离线演练接口人。
图5.红蓝对抗演练公告
4.2 人员指定与任务分配
最后,分别指定实时和离线侧演练监测员。一般为测试人员,主要是记录演练过程中发出的告警信息(mdc、ump)以及复核演练记录文档。
图6.红蓝对抗人员指定与任务分配
4.3 演练前场景收集
4.3.1 确定演练应用范围
演练应用建议优先选取应用等级L0和L1的应用,具体可根据业务需要进行选取。另外,在京东可通过以下两种方式快速查询对应的应用:
http://XXX.jd.com/dashboard/4/node/XXX
详细演练应用列表由实时/离线接口人(经过C3领导复核通过)提供,输出:攻方批量注入场景收集
图7.演练应用范围
4.3.2 收集演练故障场景
jdos应用 主要是借助【混沌工程】平台进行故障注入,采用以下演练场景:
底层集群 主要是运维人员通过脚本、命令等方式进行故障注入。主要包括以下演练场景:
4.4 红蓝对抗过程
有了演练场景,产品也发送了演练通知邮件后,就可以进行红蓝对抗了。这里要说明几点:
① 不能将具体的攻击时间“透露”给蓝方;
4.4.1 【主负责人】演练前通知
主负责人在蓝方攻击方正式演练前提前在群里发消息,模板如下:
@全体成员【重要通知】今天17:30~21:30大数据平台(实时+离线)进行红蓝对抗演练,不定时进行故障突袭。请各位同学将跟进处理过程在本群进行同步。分三个阶段:问题发现、原因分析诊断、故障处理。每个环节(问题发现、故障诊断、故障处理)确定后立马发消息,不要最后发总结!每个环节(问题发现、故障诊断、故障处理)确定后立马发消息,不要最后发总结!1、问题发现【问题发现】产品-服务名称:(1)收到电话/咚咚告警,告警内容xxx或(2)雷达大屏飘红,截图xx 开始排查处理2、原因分析【故障诊断】产品-服务名称:xx问题原因已查到,原因概要描述。3、故障处理【故障处理】产品-服务名称::xx问题已处理,已恢复,并给出告警恢复/监控截图。
4.4.2 【蓝方】创建&执行演练任务
图8.蓝方创建任务
说明以下几点:
① 底层集群的攻击主要通过命令、脚本实现,这里暂不详细叙述。
② 网络延迟、丢包故障可能演练失败,原因:限制网络故障演练(该宿主机内核版本存已知BUG不能演练) "4.18.0-80.11.2.el8_0.x86_64"。
③ 内存利用率100%场景,因为linux内存满了会触发oom kill,所以建议设置90%。
4.4.3 【红方】防守修复故障
蓝方发起攻击后,红方会收到内部办公app报警,按照既定预案进行故障修复。部分截图如下:
4.4.4 【红方】系统恢复
4.4.5 【红方+蓝方】演练结束
红蓝对抗演练结束后,红蓝双方均填写“红蓝对抗演练场景”文档,蓝方填写:混沌任务链接、混沌演练场景、演练状态、混沌演练执行开始时间、混沌演练执行结束时间。红方填写:排查人、告警信息、根因、排查到原因时间、排查过程描述(包含排查过程,使用工具,辅助决策判断)、计划解决方案&应急预案、预估影响处理时间。如下图所示:
图11.演练结束后文档填写示意
4.5 演练结果收集主负责人复核演练结果、梳理分离演练问题,让红蓝双方尽早完善。主要存在以下问题
图12.演练存在问题
4.6 演练复盘
① 告警级别需要自查修正。目前部分告警级别配置偏低,cpu利用率大于90%时,报【警告】,建议改为【紧急】。
② 延长攻击时间。找某几个应用,攻击时间为30+分钟,验证防守人员是否真正摘流量。
③ 混沌演练常态化。可通过混沌工程平台-常态演练进行,并结合值班表增加演练频次,以战养兵。
④ 分步演练【警告】、【紧急】场景。第一步先攻击10分钟触发【警告】的场景,第二步再攻击10分钟触发【紧急】的场景。
期望混沌平台的支持:
① 混沌工程平台支持一次批量选择多个应用创建、启停混沌演练任务。可提高创建任务效率,目前的批量创建演练任务功能,只能一个一个的添加应用进行创建。
② 混沌工程平台提供常态化混沌演练api。方便用户自定义创建常态化演练任务。
③ 混沌工程平台支持在平台内查看mdc、ump告警。减少用户在多个平台系统来回切换。
通过本次红蓝对抗演练,既有效的增强了大数据平台系统应用的抗风险能力,降低了生产环境系统发生故障的概率,又大大的提升了研发人员解决问题故障的能力,也沉淀了一套快速高效的演练的方案。
再次介绍本文对应【京东技术双十一】福利的获取方式
获奖基本条件:关注京东技术公众号并转发本文至朋友圈
截至11月28日9:00,以公众号运营者后台显示为准
“最近阅读前十名”的同学有机会获得京东京造双肩包
“最近分享前十名”的同学有机会获得京东京造吹风机
“最近留言精选次数前十名”的同学将有机会获得京东京造U型枕
注:“最近xx前十名”一般为近十五天在该项目(如阅读量等)表现最活跃的十位同学;每人仅可获奖一次,若同时满足多个获奖条件,则多余奖项取消;领奖方式将另行通知;奖品图片仅供参考,不代表最终实物。
求分享
求点赞
求在看
▪功能支撑:会员成长体系、等级计算策略、权益体系、营销底层能力支持
▪用户活跃:会员关怀、用户触达、活跃活动、业务线交叉获客、拉新促活