几个月前,安全公司娜迦 CTO 阎文斌的观念还是“小富即安”,经过五年发展,娜迦在创业丛林里,一路披荆斩棘,作为一家创业公司成功活了下来。
“只要平稳发展就好。”
不料,公司最近谈成了一笔大生意。国内某著名视频生态企业 L 一直苦恼于视频被盗链,屡和盗链组织打官司,官司虽然胜利,盗链却依然猖獗。
尤其是那种“什么资源都有”的全聚合视频软件,简直是盗链行业的战斗机,让视频商愁坏了。
作为一穷二白的追剧群众,用免费的 App 能看到那些“要收钱”的剧,还能看直播,想想应该是一件很开心的事情。但是,像 L 这种公司可能会哭晕在地上。
盗链行为,是指破解技术措施的深度链接,也是目前视频聚合平台侵权盗版的主要形式。深度链接分为一般深度链接和破解技术措施的深度链接两种形式。两者在播放时均未进行跳转呈现出被链网站页面,最终均未实现被链网站上的广告利益并占用被链网站的宽带资源。
这意味着,像 L 这种公司,一旦被盗链严重,你以为突然涌进来许多“流量”,看上去自家网站很受欢迎的样子。实则,是盗链 App盗取了 L 视频资源的直接下载链接,绕过了 L,盗链 App 在前方几乎不用投入什么资源,就可以获得流量、视频和用户,但 L 却要加服务器、带宽,这都要花出去白花花的银子。
本来 L 等视频厂商需要花很多钱买视频,这些“收费”视频被聚合类盗链 App 一挪,成了让别人免费看,L 投的钱可能回不来。视频被盗链后,还会引起用户量流失,用户量是互联网企业的生命,用户量因此流失比剜一刀还疼。
所以,这不是在挖视频商的墙角,而是成堆“白蚁”在啃咬视频商“基柱”的内部,假以时日,大厦或可因此倾塌。
在服务器端搞防盗链技术好说,视频商可以投入大量的精力自己搞。但是,来到了移动互联网时代,在“移动端”为王的时代,面对纷繁复杂的各类安卓机、电视盒子等,要花大价钱,还要面对技术的高门槛,视频商自己来做移动端防盗链,有心无力。
娜迦的项目经理马宏亮说,这也是为什么 L 会找上门的原因。
娜迦公司是一家以做“软件保护壳”起家的安全公司,在对移动端的切入上,比较符合视频商的诉求。不过,雷锋网了解到,在与 L 的项目前,娜迦并没有专门针对视频防盗链的产品或技术推出。
但是,对方是一家著名的视频公司,如果能结结实实地把这个项目做成案例,成立五年的娜迦不仅能在这个项目上赚到钱,移动视频防盗链的广阔市场也将对它敞开。
这是一笔好买卖。
以前没有做过,不是难题。此前,阎文斌对雷锋网宅客频道(微信ID:letshome)曾表示,娜迦的创始人团队都是一些做技术出身的人,“做安全产品的人不好自吹自擂说自己的防守能力怎么样,但是论‘打架’,我们说第一,应该没有人说第二”。
他指的“打架”,就是攻击破解能力。
马宏亮所在的项目组在自家的攻防实验室围成了一个小圆桌——这是他们惯有的讨论方式,每个人谈谈自己的思路。想了半天,大家一致认为,要想做成视频防盗链,怎么也得了解盗链机制对不对?
于是,他们梳理了市场上所有的聚合类视频 App,直接下载了排名第一的 App ,着手开始破解和解析。
攻防之间,虽然正邪不两立,但有时也会感叹对手的“霹雳手段”。
马宏亮说,这个 App 还真不可小觑:聚合所有热门视频播放器的全部资源,几乎所有电视频道的直播无障碍,还能缓存所有频道 7 小时的资源……而且,这个 App 可以在所有安卓盒子使用,包括手机、电视等。
他们觉得这个 App 很厉害,然后逆向破解了它,搞清楚了它的盗链原理。
在 PC 机时代,一般视频软件用 VC++ 语言实现,为什么用这种语言?因为在 window系统下,用 VC++做视频,效率会很高。到了安卓移动端时代,一些原来写视频软件的程序员思路还是按照之前的做法,而且安卓也正好支持这种语言,他们会把视频软件里面写的东西也移植到安卓端,形成了一个压缩文件。
这个文件就是动态共享库文件(SO 文件)。
大概 70%、80% 的视频 APP 都是用 java 写的,再加一个 SO 文件,这个文件会和服务器交互。也就是说,所有视频链接请求都会通过 SO 文件和服务器交互,服务器再返回视频流,因此APP 就可以获取视频流。
盗链 App 会从正规视频商的 APP 里的 APK 把 SO 文件拆出来,放到自己的 App 中,这就意味着它拿到了正规视频商的“钥匙”。
既然如此,为什么不对至关重要的 SO 文件加密,让盗链 App 拿到了也没法用?原来,一旦对 SO 文件加密,运行起来就会再次遇到机器适配性的问题,整个 App 的运行速度都会变慢,这条路看上去行不通。
视频商也不傻,因此想出来在 SO 文件与服务器通讯时进行一次验证,证明这就是“我的那片原版钥匙” 。
“嘿,这是自己的SO ,不是别家的 SO”,好,验证通过。
但是,这个验证过程中担当重任的是一个签名文件,签名文件和 SO 在匹配确认时,盗链 App 却直接跳出来,把 SO 文件逆向破解,把签名文件直接抹掉了。
这意味着,这种验证方法根本不起作用,这条路又走不通了。
为了保护 SO 文件,张宏亮想出了一个办法。他们给 SO 文件穿上了一层保护壳,让 SO 文件只能在正版视频商的 App 上跑,盗链 App 就算拿到了它,也无能为力。
因为 SO文件是 ELF格式,这种格式安卓可以识别,而我把它换了,换成我们创建的一个私有格式,所以安卓不能识别,只能靠我们做出来的链接器做识别。
原来,马宏亮换了一把特殊的钥匙和锁。
为了再次核验,他们还琢磨了另一层保护。
厂商之前会验证是不是自己的 App,我们现在也在做。还是在这个思路下,把验证代码再放到壳体里面,再做一次校验,原来视频请求链接的时候,会有一款参数,我们在源参数码上再加一个私有参数标识,这个私有参数标识还会实时发生变化。相当于在通讯时,加了一个验证码。
但是,在这三层验证的保护手段下,马宏亮和同事发现,不对?怎么盗链还是很频繁?哪里失效了吗?原来,一个 App 在安卓手机里跑,要和安卓系统发生通讯。如果盗链者劫持了安卓系统通讯的关键函数,那么前面的工作都等于白做。
于是,马宏亮想到,要对安卓环境再进行一次检测,预防被劫持。
在这四层手段下,马宏亮觉得还不够,万一盗链者花大力气把私有文件、私有参数标识库都给破了怎么办?于是,他们提出了第五层保护措施——每隔一段时间,加密函数或者是解谜函数,私有的标识什么的全部都换一遍。
“一些厂商要么没有针对 SO 文件来进行加固,要么就是保护做得不好。力气没有用到点子上,这就是为什么保护措施失效的原因。”张宏亮说。
之前提到,由于技术门槛高,投入精力和资源多,视频商要在移动端自己做防盗链,显得有心无力。但是,这个“盘子”到底有多大?还是仅仅是一个很小的细分市场?
马宏亮没有给具体数据,他说:“我是一个搞技术的,不懂市场,但是在我看来,现在移动视频市场兴起,大家搞直播什么也很起劲,大家看视频的习惯都逐渐往移动端迁移。”
据雷锋网了解,目前进入移动视频软件安全加固领域的,除了BAT,还有梆梆(洋浦伟业)、爱加密、娜迦和一些新兴厂家,总体而言,还处于新兴阶段。
“你说这个市场值不值得搞?”他反问。
不过,雷锋网了解到,目前娜迦和 L 的项目正在推进中,L 正在对娜迦上交的技术进行核验。如果“盘子”真的不负所望,那么技术真的足够成熟,可以拿出手了吗?
“这个东西可能现在看很成熟,但要明年反过来看的话,肯定有一些不太成熟的地方。随着时间往后走,这个方案肯定会越来越成熟,没有说完全成熟的东西。”
马宏亮对雷锋网表示,下阶段他们将对私有化解析技术发力,力求做到“一家一个格式”,这也是他们的核心竞争力。“不过,这个得需要完成不同格式的解析器,还有不同的平台都得往上做,比较麻烦。”他强调。