去哪儿移动安全产品领域专家的探索之路是怎样的?

摘要:李建威。2018年加入去哪儿网,毕业后一直在从事抓取与反抓取相关工作,先后负责搭建过智能打码、设备指纹以及环境检测等服务。目前主要负责反爬风控的基础移动安全产品建设。对各类作弊原理感兴趣。文章首发于公众号《Qunar技术沙龙》 0x01-前
李建威。2018年加入去哪儿网,毕业后一直在从事抓取与反抓取相关工作,先后负责搭建过智能打码、设备指纹以及环境检测等服务。目前主要负责反爬风控的基础移动安全产品建设。对各类作弊原理感兴趣。文章首发于公众号《Qunar技术沙龙》 0x01-前言 本文主要介绍反爬风控相关基础安全产品演变过程中的思考。 文章以总-分的形式讲述,主要分为三部分:(1)产品演变;(2)环境检测;(3)检测分析。 希望其中一些思考能够给大家带来启发。 懂的不多,做的太少。欢迎批评、指正。 0x02-基础安全产品 产品演变 一、问题 ​ 在19年之前Qunar的反爬虫、反作弊等场景是业务线各自为战。作为机票反爬最早期的参与者之一,在负责机票App反爬期间就有一个问题一直在困扰我,我的工作一直在不断、重复地编写识别策略,工作量的多少完全取决于爬虫量的多少,防御完全陷入被动局面。是否有办法从根本上解决这类重复性劳动问题。 二、例子 举个例子。下图中蓝色(CRITICAL)代表已识别为疑似用户。黄色(ATTACK)代表已识别为异常用户。 每一次蓝黄交替,就代表一次攻防对抗,就意味着需要进行一次策略的调整。策略例子: (1)发现某个参数拼写错误; ​(2)发现某个设备信息缺失; ​(3)发现某个账号对应的IP数量过多。 ​类似的一次策略调整就需要投入0.5-1pd的人力进行代码编写、发布和验证。 三、思考 ​ 重复性劳动注定会使团队陷入被动忙碌且无积累的状态,如何破解这一局面? ​ 比较幸运的是,我在刚毕业的第一年在负责智能打码平台时有研究过几大安全厂商的三代验证码,在此过程中使我具备了一定的逆向技能,让我在解决这一问题上有些新的想法和思路。 1、现象看本质 以上例子举例: 我们的问题是发现某个参数拼写错误,现象是拼写错误,但其实我们本质最应该关注的问题是为什么参数会被篡改和通过什么方式进行篡改的。 解决方法: (1)方法一:解决现象问题。写判断策略识别拼写错误的异常请求。这种解决方案只能够解决单次问题,下次同类型问题出现还是得通过编写类似策略来解决。 (2)方法二:解决本质问题。弄清楚为什么会被篡改,用什么方式进行篡改的。进行针对性的检测就可以一次性解决类似问题。 2、提升作弊门槛 ​ 如同社会金字塔结构,作弊人群金字塔也一样,原理、工具的创造者是少数。如果能够从作弊工具和作弊原理层面去识别作弊者,就可以提升作弊门槛,从根本上解决重复且被动防御的问题。 四、解决 ​ 从上述思考的两点出发,“本质”其实就是将问题特征梳理出来,“作弊门槛”的提升方式就是找到问题背后的原理。 以反爬场景为例 ​ 我大概将爬虫特征分为四类。 1、问题特征分类一 (1)具有一定规模的数据才有价值; (2)抓取设备出于成本考虑,需要控制设备数量。 结合以上特征点,我们需要解决的问题是:如何标记真实的设备。 2、问题特征分类二 (1)防护代码会被分析; (2)安全数据会被篡改。 结合以上特征点,我们需要解决的问题是:如何保证数据的真实性。 3、问题特征分类三 (1)机器自动化抓取; (2)拦截数据与模拟请求。 结合以上特征点,我们需要解决的问题是:如何更高效准确地识别异常设备环境。 4、问题特征分类四 (1)容器外模拟请求。 结合以上特征点,我们需要解决的问题是:如何识别脱离容器请求。 最后我们将需要解决的问题去孵化安全产品,通过安全产品的方式识别某一类型作弊者,这样即使出现了新的“现象”,我们也能通过最“本质”的原理将他们识别出来。 环境检测 因为这中间涉及到的点非常多,篇幅有限,我觉得可以拿比较有意思的安全产品中的环境检测来详细聊聊。 一、是什么 基于应用当前运行环境,检测设备是否存在作弊风险。 二、为什么 原因有以下两点: (1)作弊机器一定会篡改应用运行环境; (2)通过对作弊原理的检测,能从根本上解决作弊问题,将被动防御转换为主动防御。 三、怎么做 我总结为以下三点: (1)作弊原理分析; (2)作弊特征提取; (3)特征检测服务化。 四、作弊原理分析 我把作弊分析分为两部分。分别是作弊设备分析和作弊方式分析 1、作弊设备分析 ​ 通过作弊设备分析应用外部运行环境风险。 ​ 我把作弊设备大致分为三种:真机、模拟器以及云手机。 真机-应用多开 通过修改应用名称或运行于多开容器中,使得可以在同一台设备内同时运行多个相同的应用。(常见多开应用有VirtualApp、小米分身等)。 模拟器 通过软件模拟移动设备硬件操作,使得App可以直接运⾏在PC上。(常见模拟器有腾讯模拟器、夜神模拟器等) 云手机 通过ARM服务器以及虚拟化技术,在云端虚拟的原生手机实例。
阅读全文