异常的“异常”哲学
异常的“异常”哲学
—— “每逢周五必有事” 作者:破锣嗓子
本文的初衷:
家里雨伞丢了好几把,工作中有那么一丁点儿小想法。
1、每逢周五必有事
企业安全运营过程中,异常事件层出不穷。我所在的部门几乎每天都在处置“黑灰产”制造的各类异常,问题严重的还会被上升到公司层面的“故障”。其中,下班后、夜间、节假日处置过的异常数不胜数。
要说哪一天所有的系统都显示安全状况正常,没有任何被攻击的迹象,组内的小伙伴们一定会非常紧张的,这就是异常哲学的第一条:
2、“一切正常”就是异常
我编出来的案例:A君在一家游戏公司从事线上安全运营工作,他每天到公司的第一件事就是打开业务安全监控视图,然后起身泡茶。等他坐定,若上来就是大吼:“黑产升级武器了?盗号拦截率飙升!新出的装备又被刷了……”,那你就知道:“恩,监控系统还在干活,一切都还在掌控之中。”
相反,如果是一声惊叹:“不会吧,监控曲线完美至极啊!”,大家就会心里“咯噔”一下:“鬼知道黑产又玩出什么新花样!”那个忐忑啊——
企业安全的总体态势从来都是动态的,异常一直伴随着组织和系统存在。经验告诉我们:关于安全态势或系统运行,所有的正常都是临时的,异常才是永久的,正常只是无数异常中的“异常”。
3、异常总是以出其不意的方式出现
攻击事件从来就没有停止过,除了自动化的监控告警,有时仍然需要更高(wú)效(nài)的“人工(ròu)智能”。别问我为什么,来干几个月你就不会问了。
在经历过无数次异常处置经历后,直观上我们的感觉是:异常总是在你认为最不可能的时间和最出乎意料的方式出现。然而,业务安全工作过程到底有哪些类异常呢?我无法从科学的角度给予归纳总结,但团队一次次从坑里爬出来总结的具有代表性的场景能够帮助你理解:
● 基于规则或模式匹配发现的安全事件
● 基于统计发现的集中恶意请求行为
● 策略失效导致风险行为拦截失败
● 系统误报导致错误拦截
● 悖于常理的事件形式
● 安全系统自身故障
老大经常说:“每一个大的故障背后都是一系列小的问题的叠加。但凡我们能提前发现并遏制其中任何一个环节,都不会产生这样的悲剧……”
如果你不想悲剧重演,更不想在大家团建登山的时候开机,那么提前做好隐患排查,设置自动化异常发现和风险拦截策略是非常有必要的。
4、为什么异常那么多
要问为什么每天都有处理不完的工作,总是有千奇百怪的异常,还真没办法给出标准的答案。有时是人员操作失误,有时是外部攻击导致,有时可能只是某根网线松动……
以下列表从根本上说明了,我们每天都要面临异常的原因:
● 从来就没有什么静态的系统或安全
● 复杂的系统有更多的机会出现异常
● “黑灰产”亡我之心不死
● 设计、开发、运营和挑战系统的是人
理论上,一成不变的稳定系统根本不存在;攻防体系中的系统,本身就是在异常中诞生的。如果你承认这样的假设或论断,那么我们继续探讨下一问题:
5、练就发现异常的火眼金睛
异常事件每天有,要是再走点心,还总是那么多!那些看上去没什么大不了的小异常,如果不能及时发现并处置,还可能产生重大灾难。那么,如何快速发现安全运营过程中的各类异常呢?我们这里给出了一些建议:
5.1、关注黄金指标
公认的系统运维监控指标通常包括:请求数、错误数、响应时间等。而作为业务安全工作中最常用的监控指标则包括:
● 曲线走势
● 历史同期
● 分类对比
● 事件关联
某日,监控团队发现APP某业务活跃异常,有飙升。通常在总体监控视图上我们只能感觉异常,却无法快速定位异常。
当对综合监控视图进行钻取(Drill Down)查询时,运营人员发现线上业务在不同APP版本上的活跃数字是有明显差异的,其中绿色是某个已经废弃版本的活跃数据——经过简单的透视,问题一下就发现了!
5.2、关注投诉
有些安全事件和业务异常通过监控系统就能快速发现,而有些问题则显得比较后知后觉,但仍然可以一定程度上弥补监控系统在资源、人力和覆盖面上的不足。
客服投诉就是异常事件发现的重要途径之一。
关注客诉,深入思考其背后的原因,能够弥补安全团队在人员、技术、能力上的不足,扩大异常发现的覆盖面。
5.3、关注业务
几乎所有的业务安全异常事件,最终都能在业务上得到一定程度的体现。
以安全视角建立的安全监控视图能够快速发现已知的安全事件,但对那些未知的新型模式的异常事件,却未必奏效。如果能结合企业的业务做分析,那么发现和定位异常会更加全面和有效。
最简单的例子,公司在微信公众号上做一次大范围的推送,往往就能产生流量陡增。倘若不了解这背后的营销策略、流量渠道、技术承载,在处理这样的异常流量时将会浪费大量时间。
5.4、打铁还需自身硬
oncall工程师和后台专家紧密结合才能从万千复杂的数据中发现和诊断异常。人员的知识面、思维、经验以及心理素质在异常事件处理过程中往往起着决定性作用。关于这一点,未来我们会单独讨论。
6、处理异常的节操
无论是什么级别的异常或故障,面对异常首先要坦然、淡定。在处理异常或故障时务必冷静,避免出现次生故障。每一次异常发现和处置都是验证既有方法论和流程机制的机会,也是团队学习成长的机会,不要轻易放过这样的机会。
好的异常处理方法、思(tào)路都是刻意练习出来的,这也是故障处置专家和参照手册进行问题响应的一线工程师的重要区别。虽然我们不希望线上系统出现P1级别的故障,但现实是有过P1故障经历的人,在面对下一次严峻的挑战时会更淡定和从容。
每一异常都是一个火点,解决一个异常就是一次灭火实践。但我们又不能单纯的以解决故障为最终目标,还有很多工作需要同步或事后完成:
1. 发现异常
2. 快速恢复业务
3. 做好异常处置记录,并归档
4. 做好事后总结和分享
如果你想发现更多的问题,精通业务的特性,提升综合的技能,那么深究异常背后的根因永远是最好的途径。
6.1、警惕非常态变成常态
工作过程中最容易出现一种情情况,那就是:某种不疼不痒的攻击行为一旦发生,就会进入我们的监控视野,直接触发异常。如果该行为造成的影响并没有想象那么大,而解决该问题的方案或成本(资源、事件)又比较高,那么很可能会出现在很长一段时间这个曾经的异常一直存在,直到它变得“正常”(几乎每天都在发生)。
作为风控运营人员,一定要警惕这种异常。至少要做到以下几样工作:
1. 反复确认该恶意行为不会造成实质性安全影响
2. 如果没有即时有效的遏制措施,至少应该实施多套缓解措施
3. 监控并在数量级发生质变时及时告警
4. 传递压力,督促其他团队给出问题解决的最终时间
5. 记住:
6. 必要时升级问题
6.2、良性异常更受欢迎
不是每个异常都会产生故障或灾难,也不是每个异常我们都要排斥。充分利用异常,特别是良性异常能够帮助我们全面挖掘系统脆弱性,验证监控系统的有效性,考验团队综合水平,锻炼运营人员的技术能力。
心得总结 系统从来都是异常的,风控运营人员要发现异常背后的内在问题和事件规律,推动发现、定位和解决异常是我们的职责,经验在斗争中获得,理论在实践中提炼。
最后,良性的异常更受欢迎!
记得关注我,我们下次继续聊业务安全技术实践。
你投稿!我送礼!
VSRC欢迎精品原创类文章投稿,优秀文章一旦采纳发布,将有好礼相送(至少为500元唯品卡或现金)我们为您准备的丰富奖品包括但不仅限于:MacbookAir、VSRC定制雨伞,VSRC定制水杯以及VSRC精美靠枕!(活动最终解释权归VSRC所有)
点击原文阅读VSRC精选系列之《电商业务安全,老板怎么看?》