“快手直播事件”引发的技术思考

2025 年 12 月 25 日
 youngxxx

先来看下,近几年大厂发生的几个影响较大的运营事故:

这几起事件的共同点:影响范围广、故障时间长、造成非常负面的舆论影响;

这次快手的事情,还是远远超出了我的想象,服务故障只会影响正常使用,但是被攻击进而导致了大面积非法活动;对于监管来说,没有比这更严重的事情,属于妥妥的红线。


为什么会发生

黑客、灰产,从互联网诞生之初,就一直存在,今天我们不去讨论黑客如何操作大规模账号、如何进行的实名认证,我们从开发这个角度去考虑,怎样去避免事件的发生?

直播和视频播放不一样,它的内容属于实时产生,平台没有办法提前审核;因此直播平台建设怎样的审核机制,就关系平台能否控制用户的直播内容。

大部分直播审核机制我们可以简化为上图:截取画面、音频等,通过模型自动化判定,然后再人工复审,最后处罚封禁。

瓶颈节点

在开发中,我们经常会提一个瓶颈节点的概念,意味着它决定着整个链路的承载量,如果它停止工作,则整个链路瘫痪。

而在上面的审核链路中,可以认为人工复审是一个瓶颈节点,因为人力是有限的;也许平时只需要 1000 个审核员既可以应对,但是当极端情况出现,同时涌现出上万个甚至更多非法直播时,这套机制自然就被攻破了。

我们可以猜测,黑客操作大量账号,同时开启非法直播,当部分账号被封禁后,又不停的新增非法账号直播,人工复审节点一直处于过载状态,没办法处理全部的审核。


可能的解决方式

假设我们按照上图的审核机制,怎样优化可以解决同时出现大量非法直播的问题呢?

自动判定节点

根据模型分析结果,辅助额外账号信息,自动判定是否需要“二次人工复审”,对于不需要的案例,直接处罚。当然自动判定存在误判的风险,而快手这次事件,可以看到大部分直播是常规的淫秽视频,通过模型辅助账号信息是可以精确判定的。

为了让自动判定足够精确,我们需要做些什么?

目的

减轻“人工复审”节点的压力,使它不再是瓶颈节点,是我们的最终目的,毕竟其他节点都可以通过扩容的方式解决。也许自动判定可能会存在误判的情形,但是我们可以不断优化,不断减少误判的概率。

思考

小概率事件

对快手而言,“同时出现大规模非法直播”是一个小概率事件,在它们设计审核机制时,可能也有考虑到过?但是可能认为“几万人同时直播黄片”是几乎不可能出现的事情,因此并没有做预案。

在互联网领域,尤其是后端模块,海量用户+长时间运行,任何小概率 bug 都演变成必然触发;如果没有完美解决方案,则往往可以采取有损的妥协折中方案。

欢迎快手同学现身说法!

最后宣传下自己的技术公众号:欢迎关注,讨论交流

9435 次点击
所在节点    程序员
51 条回复
billbur
2025 年 12 月 25 日
@youngxxx #15 怎么我看的版本是绕过了审核
jackOff
2025 年 12 月 25 日
很简单,国内直播从明年开始强制延迟半小时,反正现在很多都是延迟的,无所谓了属于是
youngxxx
2025 年 12 月 25 日
@billbur 绕过就更离谱了,审核机制应该是后端的一个必经流程,如果都能绕过,那只能说快手的技术缺陷也太低级了。。。
Kirkcong
2025 年 12 月 25 日
@TArysiyehua #18 “实际上你跟厂商好好沟通,大部分厂商都认并且发放奖金”,不一定会的,他们会想,他怎么发现的?为了发现/验证这个漏洞做了什么?在此期间接触到了什么?发现之后有没有做什么?如果我们认下了会怎么样?要不要给奖励?钱谁来出?要不要写进报告?奖金是不是得安全团队的绩效来扣?

至于后面的 如果不认,白帽子会不会泄漏出去,那就得看情况了。就算泄漏出去了,他自己没有保留足够的证据证明自己是善意的,或者没有造成损失,那就送进去完事儿。

不是说这种情况一定会发生,但真很危险的,白帽子不会反咬入侵计算机是因为他们有厂商的许可,如果没有这个许可,是真的会进去的。我当时报那个漏洞都是和一个很熟的小伙伴商量后才决定报的,而且报之前我是直接和公司架构师打电话经过同意才说的。如果不是有信任的伙伴能讨论,能为我作证,我是肯定不会暴出去这个漏洞的,最好的选择是自己利用,万一哪天出事了用这个漏洞无痕删除记录,留着用来保护自己。

对于外面没有许可的非白帽子,一个不小心就进去了,尤其是高压环境下,肯定不希望给自己惹事的。
duanxianze
2025 年 12 月 25 日
快手的问题,显然是整个内部系统被人攻破了,以至于管理员自己控制不了平台了,只能通过运维直接切断所有直播,个人认为,和如何审核关系不大,还是在于如何防范系统漏洞
mrhunhun
2025 年 12 月 25 日
我觉得黑客随时都可以黑 就老人家愿不愿意了
lanced
2025 年 12 月 25 日
youngxxx
2025 年 12 月 25 日
@duanxianze 如果是内部系统被攻破,那造成这样的结果能理解!但是怎么也算个大厂,内部系统能被攻击成这样,也太丢人了。。。
whitewash
2025 年 12 月 25 日
挖到洞的人,得不到相应的奖励,甚至会被反咬一口,或者经常被告知已经修复,自然就把会洞藏好咯。甚至不只是人、也可能是小团体,单位、公司、都会藏着,等着某次比赛大放异彩。
InkAndBanner
2025 年 12 月 25 日
emmmm 其实任何内容平台的审核里面,对于在线实时处置都是比较谨慎的一把武器,目前对于审核大模型永远是辅助人审,很难替代人审,在晚上的高峰期,并且这么大的数量,没有预案的情况下 任何环节都有很大可能出现问题。其实已经不是审核团队该解决的事情了,而是安全团队的责任。打个比方 支付宝号如果大批量被盗,风控团队再怎么尽责 ,总有漏放的情况,安全是 1 其他是 0
haruhi
2025 年 12 月 25 日
在想啥呢,当然有机审自动处罚,咋可能全人审。

快手是明显没有降级策略或者没有做过真实的演练(问题必然会出现,无论是漏洞攻击还是人为的出现问题),出这种事情,应该是直接除了白名单用户,其他用户全部断播。
guyeu
2025 年 12 月 25 日
@youngxxx 我倾向于是黑灰产通过某种方式把审核模型搞崩之后大面积上线违规内容。把模型搞崩的方式就不清楚了,有可能是内容投毒,也有可能是利用了某个 0day 。具体还得等官方或者快手内部调查的结论。你这个人工瓶颈的理论过于不合理,制度设计导致某个流程依赖某个单点的人,这个单点的人出车祸都比你这个合理。
duanxianze
2025 年 12 月 25 日
@youngxxx #27 并没有想象中那么难(不是说不难),毕竟这世界就是一堆草台班子,攻击远比防御简单,之所以很少搞出大事,是因为付出和收益不对等,就像这次这次被搞如果用这个漏洞找快手要钱肯定更赚,不过显然背后还有其他事,不是单单为了让快手出个丑
hellopz
2025 年 12 月 25 日
@jackOff 哪来的信源,听起来不太可能啊
mooyo
2025 年 12 月 26 日
其实问题在于,业务不太可能(至少在这次事故之前)接受全自动且比较智能的封禁的机制,可控性太低了。如果出错,可能导致整个业务宕机,风险太大。开播流程被当作关键流程进行保护了,掐流人工介入其实是合理的(在这次事故之前)。

我也推测很可能是人工复核过载了,一般来说自动封禁只会用在 100%正确的情况,比如版权 logo 露出什么的。
JimmyChan1506
2025 年 12 月 26 日
请问楼主的图是使用什么工具画的?
jinjiang2024
2025 年 12 月 26 日
难道就不可能是裁员裁到大动脉了? 国内找到漏洞 你告诉厂商了 好的给你个三瓜两枣的 不好直接告你
listen2wind
2025 年 12 月 26 日
@jackOff 半个小时还怎么和观众互动?
imnpc
2025 年 12 月 26 日
看到个 360 的分析 自动审核内容没问题 审核以后封杀 NSFW 内容几乎都是秒封
但是执行封杀任务的子系统没有处理海量信息的能力
都卡在队列中等待执行了 所以就出现了问题(目前绝大部分系统都是这样的队列执行 虽然有强大的并发支持 但是海量攻击还是不行 以前没人这么搞过)

最后快手强制拔线 下线直播系统才解决问题

需要说明一下 能精准洞察这个漏洞 绝对有内鬼 就是不知道是离职还是在职的泄露的
youngxxx
2025 年 12 月 26 日
@JimmyChan1506 drawio 客户端和网页版都有,很方便

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1181152

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX