【领域专家系列】去哪儿风控安全产品的探索之路

这篇具有很好参考价值的文章主要介绍了【领域专家系列】去哪儿风控安全产品的探索之路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原创文章,转载请标注。https://blog.csdn.net/leeboyce/article/details/135468055

李建威。2017年7月以春招暑期实习生的身份加入去哪儿网,毕业后一直在从事抓取与反抓取相关工作,先后负责搭建过智能打码、设备指纹以及环境检测等服务。目前主要负责反爬风控的基础安全产品建设。对各类作弊原理感兴趣。

声明

原创文章,转载请标注。https://blog.csdn.net/leeboyce/article/details/135468055
《码头工人的一千零一夜》是一位专注于技术干货分享的博主,追随博主的文章,你将深入了解业界最新的技术趋势,以及在Java开发和安全领域的实用经验分享。无论你是开发人员还是对逆向工程感兴趣的爱好者,都能在《码头工人的一千零一夜》找到有价值的知识和见解。

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服务器以及虚拟化技术,在云端虚拟的原生手机实例。(常见有百度云手机、红手指云手机等)

2、作弊方式分析

​ 作弊方式分析应用内部被篡改的风险。我把作弊方式大致分为两种:篡改和非篡改。
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

重打包

​ 重打包是指将应用反编译后,修改或添加代码后从新打包,将其安装至设备上,应用运行时就会被加载。

HOOK

​ 当程序在执行某段代码时,控制其执行恶意代码。这种篡改就被称为HOOK。

自动化工具

​ 基于Google/苹果发布的自动化测试框架,进行一些列如点击、滑动、键盘输入等操作。

检测分析

​ 由于篇幅关系,不能对其中细节过多展开讲。我选择比较有意思的作弊方式中的动态篡改进行详细分析。

一、介绍

​ 无论是Android还是iOS端,不同分层的代码都有不同的HOOK框架及其对应的原理。
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

二、分析

​ 框架和原理有很多,框架以Xposed为例,HOOK原理以Inline HOOK为例来进行分析。
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

1、框架检测-Xposed

(1)要了解Xposed框架,需要先来学习下什么是Zygote。
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

​ Init是内核启动的第一个用户进程,zygote是由init创建的进程。zygote所对应的具体可执行程序是app-process,所对应的源文件是app-main.cpp。所有的app进程都是由zygote进程fork出来的。

(2)接下来了解一下Xposed的初始化过程
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

(3)Xposed代码分析

​ 疑问1:Xposed到底修改了什么?
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

​ 答案1:

a. Xposed为了在系统启动时优先加载xposed模块和hook系统资源。会将原本的ZygoteInit类替换为XposedBridge类。
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

b. 函数执行顺序的变化,就会在堆栈中体现出来。
​ 疑问2:Xposed到底加载了什么?
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

​ 答案2:
a. 加载核心代码libxposed_art.so。
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫
b. 其核心代码对应的特征就必定会出现在运行内存中。

2、原理检测-INLINE HOOK

(1)Android Inline Hook框架源码

【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

(2)Inline Hook原理分析

核心代码含义

​ 1)LDR PC, [PC, 4] :将地址为PC + 4的连续4个字节的数据读入PC寄存器;

​ 2)[PC, 4] :以PC寄存器为锚点,加上一个偏移量来标识绝对地址。(PC相对寻址);

​ 3)LDR PC, hook函数地址:将hook函数地址读入PC寄存器中,实现函数跳转;

​ 4)指令偏移量变化原因:三级流水线取值与执行之间相差2条指令,所以偏移量需要调整。

汇编指令
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

​ ARM架构下CPU三级流水线:CPU运行被拆分为三个步骤分别为取址、转义、执行,步骤可以近似理解为三个并行线程。取址与执行之间相差2条指令。例如:执行到0x00006004时,pc寄存器取值0x00006012。

(3)Inline Hook流程
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

了解原理之后,只需要在必经之路埋下检测点就可以达到对作弊方式进行原理性检测的目的。

3、服务化

​ 通过场景分析问题,根据问题提出解决方案,根据方案孵化出目标安全产品。将孵化出的基础安全产品提供给上游业务风控使用。由基础安全产品提供专业能力,能够降低业务安全参与人员的门槛,上游系统能够更加聚焦于业务防护本身。
【领域专家系列】去哪儿风控安全产品的探索之路,业务安全,安全,网络,系统架构,爬虫,网络爬虫

0x03-思考

(1)以攻促防。从业务安全场景出发,从作弊者角度思考问题,从数据、原理发现解决问题。不断进行攻防对抗,才能使研发人员和系统不断成长。

(2)真人化。真人化的演变过程是从协议破解到模拟器,再到真机,目前正在朝真人众包方向发展。如何定义与识别真实用户和作弊者是新的难题。

0x04-结尾

《码头工人的一千零一夜》是一位专注于技术干货分享的博主,追随博主的文章,你将深入了解业界最新的技术趋势,以及在Java开发和安全领域的实用经验分享。无论你是开发人员还是对逆向工程感兴趣的爱好者,都能在《码头工人的一千零一夜》找到有价值的知识和见解。

软件工程没有银弹,逆向工程永远胜利。

懂得不多,做得太少。欢迎批评、指正。文章来源地址https://www.toymoban.com/news/detail-822706.html

到了这里,关于【领域专家系列】去哪儿风控安全产品的探索之路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ChatGPT在工业领域的研究与应用探索-产品化部署及应用

         《ChatGPT在工业领域的研究与应用探索-数据与工况认知》      《ChatGPT在工业领域的研究与应用探索-AI助手实验应用》       ChatGPT在工业领域的应用需要解决两个问题:(1).私有化部署,并且保障工业企业数据资产安全;(2).要有具体领域的基础数据,能够训练

    2024年02月16日
    浏览(52)
  • 电商商业平台技术架构系列教程之:电商平台安全与风控

    作者:禅与计算机程序设计艺术 随着互联网的飞速发展、电商的蓬勃发展、线上线下的数字化转型,传统商业模式逐渐成为历史,而随之而来的新型商业模式又将诞生在各个领域。比如以“服务”为代表的互联网零售、以“支付”为代表的电子商务、以“物流”为代表的快递

    2024年01月22日
    浏览(27)
  • ChatGPT探索系列之一:理解ChatGPT的背景和应用领域

    ChatGPT发展到目前,其实网上已经有大量资料了,博主做个收口,会出一个ChatGPT探索系列的文章,帮助大家深入了解ChatGPT的。整个系列文章会按照一下目标来完成: 理解ChatGPT的背景和应用领域; 学习GPT模型系列的发展历程和原理; 探究ChatGPT的训练、优化和应用方法; 分析

    2023年04月21日
    浏览(28)
  • 李浩然:从大数据能力提升项目出发,探索化工大数据之路 | 提升之路系列(一)...

    导读 为了发挥清华大学多学科优势,搭建跨学科交叉融合平台,创新跨学科交叉培养模式,培养具有大数据思维和应用创新的“π”型人才,由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项目”开始实施并深受校内师生

    2024年01月25日
    浏览(25)
  • ChatGPT探索系列之四:分析ChatGPT在各领域的实际案例

    ChatGPT发展到目前,其实网上已经有大量资料了,博主做个收口,会出一个ChatGPT探索系列的文章,帮助大家深入了解ChatGPT的。整个系列文章会按照一下目标来完成: 理解ChatGPT的背景和应用领域; 学习GPT模型系列的发展历程和原理; 探究ChatGPT的训练、优化和应用方法; 分析

    2023年04月18日
    浏览(35)
  • 探索 Blind SSRF Chains:安全领域的创新工具

    项目地址:https://gitcode.com/assetnote/blind-ssrf-chains 在这个数字化的时代,网络安全愈发重要。Web应用程序的漏洞成为黑客攻击的主要目标,其中Server-Side Request Forgery(SSRF)是一种常见的安全威胁。为了帮助开发者检测和防御这类漏洞,Assetnote 团队开发了一个开源项目 —— Blin

    2024年04月22日
    浏览(26)
  • 探索AI领域,AI图像安全技术助力行业健康发展

    大家好,我是哪吒。 去年11月ChatGPT横空出世之后,生成式AI向人们展示出了自己的强大力量,各种大模型如雨后春笋一样涌现,并实现了大规模的商业化。 闲暇之余,我也研究了一番,发现AI在图像处理领域具有许多卓越的优点。其中一项突出的优势是,AI可以快速准确地处

    2024年02月13日
    浏览(27)
  • 蚂蚁数科持续发力PaaS领域,SOFAStack布局全栈软件供应链安全产品

    8月18日,记者了解到,蚂蚁数科再度加码云原生PaaS领域,SOFAStack率先完成全栈软件供应链安全产品及解决方案的布局,包括静态代码扫描Pinpoint、软件成分分析SCA、交互式安全测试IAST、运行时防护RASP、安全洞察Appinsight等,帮助客户应用软件实现“发布前检测,运行时免疫”

    2024年02月12日
    浏览(29)
  • 【优化技术专题】「性能优化系列」针对Java对象压缩及序列化技术的探索之路

    序列化和反序列化 序列化就是指把对象转换为字节码; 对象传递和保存时,保证对象的完整性和可传递性。把对象转换为有字节码,以便在网络上传输或保存在本地文件中; 反序列化就是指把字节码恢复为对象; 根据字节流中保存的对象状态及描述信息,通过反序列化重建

    2024年01月22日
    浏览(39)
  • 领域专家精心讲解AI视频生成

      大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的

    2024年01月23日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包