目前移动领域的黑灰产有以下几大类:
1.隐私数据盗用,包含姓名、联系方式、通讯录、社交账号、公积金数据、移动运营商数据等;
2.业务数据盗用,包含购物记录、外卖记录、打车记录等;
3.自动化请求,包含刷单、刷量、抢号、抢票的行为;
4.游戏外挂,包含修改器、加速器、模拟器、云真机等;
5.业务漏洞利用,优惠券漏洞、奖励漏洞等;
下面,我们就来具体聊聊黑灰产的产业链路和各种骚操作。
黑灰产产业链路
数据黑灰产典型的链路就是,通过非法获取个人隐私数据和第三方业务数据,整合多个平台的数据,融合到一个完整的内部数据库,然后通过将数据包装,分装到各个业务场景(金融风控、电商风控、定向推送、电话黑名单、信用评级)等。
当然,如果抛开非法获取,基于自有的运营数据,进行的数据挖掘分析,从而再进行其他的拓展,实际上是一个合法合理的数据产业链。
自动化产业链路就是上图的路径,简单的来说就是刷子、黄牛做的事情,只不过这是一个专业度非常高的刷子。流程一是基于逆向开发,破解接口加密,直接进行批量化的请求,这种方式受限于被破解的App的加固难度和业务场景,开发难度大。流程二说的开发成本更低、设备成本更高,但是设备可重复利用,这里忽略这部分的成本,这一套体系后续会更加详细的进行描述。
典型的黑灰产形态
自动化请求
这是一个医院的挂号业务流程,选医生-选时间-提交预约。在一些医院的知名专家号是非常的热门抢手,除了因为本身有他们超高的职业能力以外,还有一部分黄牛刷子的存在,这些号的本身的价值就高达几百上千元,非法获利者的利润空间非常的大,造成了他们不惜一切代价的去利用漏洞。
这个APP本身也进行了一定程度的风控,比如登陆限制等,但是破解难度依然不大。加密算法也只是简单的进行了一个RSA加密,密钥也能轻易的在App中获取到。本身需要进行三个流程的操作,现在只需要一步便能直接取号,完全超过了正常人的获取速度。
目前,这个App大概也是发现了风控需求的紧迫性,在提交环节新增设了验证码的环节,虽然阻止了一部分的低水平刷子,但是验证码的强度不够,破解难度依然不高。这里推荐负责业务安全的同学使用行为式验证码,安全性高,用户体验又好。比如说,易盾的行为式验证码,易盾的行为式验证码包括智能无感知、滑动拼图、文字点选、图标点选、推理拼图等,能够高效过滤机器行为,并保证用户体验。
多头探测
是指通过手机号或者邮箱账号等,检测用户在多家金融机构(P2P、现金贷、证券、银行等)的注册行为。一般用来判定用户的风险等级、是否是潜在客户、账号黑名单等。
数据的获取方式
获取数据的时候并不需要进行登陆、可直接利用账号进行检测,一般通过客户端或者Web端的注册接口、登陆接口、忘记密码接口。
漏洞分析
关联接口返回的数据内容冗余(这个需要开发者自行修复)、接口缺少验证码等校验、缺少风控工具、业务流程漏洞。
事例分析
下图是一家现金贷的公司接口返回值,入参仅需要手机号,加密能够破解,从这个接口返回我们就可以看出这个手机号已经在这家公司注册。假设我们拿这个账号,探测100家的注册行为,是不是这个手机我们就能做一个维度的风险测评了。
{
"phone_ok": true,
"message": "Nomor dapat digunakan untuk reset password"
//该号码可用于重置密码
}
下图是印尼规模靠前某电商某接口的返回值,原理同上,假设被其他电商利用,进行批量请求,就能发现一大批潜在的客户,从而进行广告的推送,等其他商业行为。作为普通用户,我们的行为数据在不经意之间,就因为开发商的疏忽被泄漏了。作为开发商,我们有责任去保护我们的数据安全可靠。
{
"data": {
"checkEmail": {
"isExist": true,
"errors": [],
"__typename": "CheckEmail"
}
}
}
这是一个国内前三电商的海外版本接口,同样有这样的问题
{
"code": "1",
"data": true,
“msg”: “Nomor handphone telah terdaftar”,
(手机号已注册)
"state": "SUCCESS"
}
这是印度规模很靠前的某出行APP上的疏漏,如果手机注册他们会提示一种话术,不存在则有另外一种话术,同样能都利用。
{
"data": {
"message": "Enter the code we sent via SMS to your registered phone number (+86XXXXXXXX884).",
"otp_token": "6d358cf9-f82f-4a41-9d68-1cb17c375d1d",
"expires_in": 300,
"otp_length": 4,
"next_retry": {
"state": "sms",
"timer_in_seconds": 30
}
},
"success": true,
"errors": null
}
有人说这是海外开发者的水平不足的问题,其实不然,国内的黑灰产更加的盛行,被突破的App只会更多。作为开发者,我们在关注逻辑安全、代码安全、业务安全的时候,也应该更加的重视数据的安全。
授权爬取
下图一个已知的被授权爬取业务攻克的东南亚大型APP的列表,包含东南亚最大的出行平台、东南亚最大三家电商平台、政府APP(公积金数据等)、全球知名的社交平台、运营商等。每一个都是在当地数一数二的企业龙头,可见个人数据的泄漏不仅只是小厂商的问题,这是一个全行业都面临的危机,大家可自行对标国内的公司。
下面介绍一个国内的例子。
想必大部分人都听过或用过电商返利App,这种类型的App在前几年非常的流行,他们都是利用电商们的推广SDK,进行相关营销,从何获得分成。这种SDK都会有一个授权的登陆页,跳转到电商的App进行授权,返回返利App获得授权Token。其实本身这样的流程看上去没有任何问题,然而电商所用的SDK可以在后台打开相关的个人喜好、收藏、浏览记录、购物车等。返利App没有强大的数据挖掘和精准营销的能力,但是利用这些页面,他们就能获得比较好的推荐资源。这些页面大多是Web页面,通过监控App底层的流量接口,就能很轻易的获取,个人的喜好数据。
上述的业务形态,是一个很有局限性的场景,下面介绍一个比较通用的业务形态。
上图看我们很难分辨,到底哪里一个是真的授权登录页。右图其实也是真实的登录页,只不过是被进行了改造,注入了监控的代码和想要的UI效果,加入了一个协议用于提示授权风险,这个对于大多数用户来说,完全不会关注到。通过用户的自发登录(可能用户会被变相引导为第三方登录),能够获取到Token与Cookie,用于后续的其他操作。
至于为什么不完全仿造或者保存密码,是因为保存密码的法律风险更大,而且破解加密的方法更难,大型厂商在登录环节的风控更严格。拿到Token后,会发送到相应的服务器,进行数据爬取。用户对于自己的数据丢失很多时候是无感知的,很多厂商自身也是无感知的,这个就需要专业的风控产品去帮助他们。同时也要更加的注重全流程的风控,通过对某宝的观察,不难发现他们的Web端的数据越来越少,很多数据只能出现在App端,比如信用分。这里也建议,一些核心的流程应该越来越多的往App的方向进行转移,利用好加固和风控产品,能够更加有效的和黑灰产进行对抗。只是通过Web端的爬取,也依然还有受限的地方,随着我们风控的升级,黑灰产的手段也在不断的升级迭代,我们也一直致力于黑灰产的对抗,乐此不疲。
下面介绍一种在App端发生的漏洞(目前已经失效):早些年,某宝的信用分一直都是风控行业的宠儿,在P2P还盛行的那几年,无数厂商都希望能够抓到这样的数据。然而,想直接通过破解某宝获取信用分几乎是不可能的。
原理还是类似,有人只是做了一个变种:突破口是在一个二手的交易平台,他们集成了某宝的SDK,通过SDK他们能够拿到相关的数据。由于直接破解的难度很高,这时候就可以利用,先前登录拿到的Token,将Token发送到群控设备上,此时的群控设备上有交易平台的App,直接hook相关API,进行参数拼装,发送相关请求,就能达到我们的目的。最后再进行数据的解析,通过架设服务器将数据发回。
以上就是这次起底的全部内容。
结束语
安全其实是全链路都需要关注的问题,任何一个环节做的不到位,都将会前功尽弃。作为开发者,我们需要提高我们的安全意识,在每一个细节上都要考虑一点安全问题,因为现在已经不在是只做产品的互联网时代,而是一个安全为先的互联网时代。
小到验证码、安全键盘,大到应用加固、反外挂、反垃圾、反作弊,方方面面的安全领域我们都需要开始应用起来。
最后,如果想更加针对性地讨论移动黑灰产、应用安全、手游安全,欢迎加入我们的QQ技术交流群:931107146!