有钱赚的地方就有黑灰产。
近几年,随着互联网技术的发展,黑灰产的规模也日渐庞大。据统计,国内黑灰产从业者规模超过百万;2021年,黑灰产造成的损失已高达千亿级,可预见的是,凡有利可图、有洞可钻之处,黑产就不会绝迹。而且随着社会经济、生活进一步“互联网化”,黑产规模注定会持续扩大。
黑灰产的产业链也从10年前的小作坊模式发展为现在有明确分工的上、中、下游完整的产业链条。上游负责黑灰产的基础服务,比如代理平台、软件工具等的搭建和编写;中游负责账号的生产销售,比如恶意注册、盗号、洗号等;下游则负责获利套现。
正所谓,道高一尺,魔高一丈,与黑灰产的攻防战也在悄悄展开。
今天我们就以移动端攻防对抗中的地理位置模拟对抗为例,讲讲与黑灰产“斗智斗勇”的那些事儿。
地理位置模拟开发初衷
地理位置模拟顾名思义就是基于手机地理位置的模拟工具,可以通过对位置的模拟改变当前位置。
最初,地理位置模拟是用来开发App 时测试用的,其主要目的是帮助开发者模拟某些App 的当前地址来实现测试的定位功能,且设备无需root权限,只需通过模拟软件、第三方工具等就可以改变所在位置的经纬度,可以穿越到任何地方。
这对于黑灰产而言,简直是天然的“作案工具”。
比如,在某些特定的营销场景里,黑灰产可以利用地理位置模拟工具修改地理位置,冲破商家对地理位置的限制,恶意骗取营销资源。
不久前,顶象曾在第六期业务安全情报《黑灰产盯上政府消费券,最高套现额超千万》一文中详细介绍过黑灰产的攻击手段和攻击套路——黑产中介为了方便更多的刷手能够顺利参与其中,会提供更改定位的教程,并提供相应的软件。通过作弊软件更改IP、GPS等,刷手们能够立刻模拟成当地的用户,成功参与领券。
再比如,在一些上班打卡的场景里,黑灰产可以通过地理位置模拟轻松实现异地打卡。顶象曾在上期直播《保险代打卡对抗实战》中讲到代打卡作弊业务。
在网上搜索“代打卡”,会出现大量搜索结果,不仅有详细的图文介绍,更有手把手教人如何“考勤作弊”的视频。部分电商平台上也有大量“XX异地考勤打卡助手”、“考勤打卡助手”“考勤打卡更改地址”等产品和服务出售。根据不同的作弊方式推出对应的价格套餐:
方式一使用打卡作弊软件随心飞,收费标准是60元/人/月;
方式二使用蓝牙打卡器+GPS软件,收费标准是150元/人/月;
方式三直接黑产代打卡,收费标准是80元/人/月。
黑灰产如何通过地理位置模拟作弊?
在安卓系统中,本身是提供相应的地理位置模拟功能,但其权限只有开发者才可以使用。
对于开发者来说,可以直接打开应用根据需求进行位置模拟。
那么,这是不是说明正常用户没有权限就无法进行地理位置模拟呢?
答案是否定的。
事实上,只要你的手机有Root 权限,我们就可以通过代码注入的方式进行相应的地理位置模拟,所谓代码注入就是在App 里植入我们想要执行的代码即可进行相关操作。
那么,如何检测呢?
事实上,在非Root 权限的手机上,我们打开开发者选项,其系统会提供相应的API,通过调用相应的API,我们就可以检测到当前手机是否打开了地理位置模拟功能。如果这个选项是被打开的,那么当前我们获得的地理位置信息,可能并不是真实的,此时就需要业务方或者App 的开发者做相应的处理。
但在有Root 权限的手机上,我们不一定需要打开开发者选项。前文中提到,在有Root 权限的手机上,有可能通过代码注入的方式篡改地理位置,这也就意味着篡改这部分的代码或者信息已经注入到了整个进程中,此时就需要通过其他手段来检测当前的代码是否被注入。
通常我们的检测方法有两种。
一种是通过检测文件系统中是否存在位置模拟的代码库。以下图为例,可以看到,模拟位置的代码库通过共享代码注入到代码里。一般情况下,我们可以通过检测整体的进程空间,在进程空间里,如果发现了这部分so 文件存在,那么也就说明这部分文件被注入到了内存里,由此也可以判断出当前App 所获得的代码信息及位置信息。
第二种方法是通过逆向分析App代码找那个是否存在加载了位置模拟的代码库。通常情况下,App的代码被注入是通过静态的方法植入到App 里面去的,App在运行过程中把这部分so 文件load 起来。通过逆向分析,我们就可以看到App在代码里面是否存在加载这个位置模拟的相应代码。
以下图为例,可以看到该App在代码执行的过程中,调用了代码加载的一个函数,那么由此可以判断这个App是被感染过的——在安装过程发生之前就已经被攻击者植入了相应的代码,来进行相应的so 文件加载。
整体来看,黑灰产的对抗工作,不是简单的一环,而是一个完整的链条。
但偷袭者魔高一尺,狙击者道高一丈,与黑灰产之间的攻防注定是一场持久战,需要攻守双方不断磨炼实力。