# 设备指纹还有什么作用?

互联网上有一群人会用技术手段打破规则,让设备指纹失效。 结果是投入的资金将被烧毁。 一些抗风险能力较弱的中小初创企业甚至可能导致倒闭。

设备指纹也需要不断加强防护,以对抗恶意组织越来越锋利的长矛。

# 介绍

设备指纹除了描述设备的身份信息外,还可以识别设备在某一时刻的状态,这对于互联网服务来说非常重要。 然而,日光之下,必有黑暗。 互联网上有一群人会用技术手段打破规则,让设备指纹失效。 结果是投入的资金将被烧毁。 一些抗风险能力较弱的中小初创企业甚至可能倒闭。设备指纹除了具备身份识别功能外,还能提供哪些安全功能?

# 攻击手段

俗话说,知己知彼,百战不殆。 在回答这个问题之前,我们需要先了解一下恶意组织或个人的一些攻击手段。 前面提到,设备指纹的生成主要依赖于客户端的一些属性信息,包括但不限于如下: ‍ ● 设备基本信息 ● 定位信息 ● 网络信息,如本机蜂窝IP、WIFI IP、源IP等 接下来我们来看一下恶意组织或个人的一些主流攻击方式。

接下来,让我们看看恶意组织或个人的一些主流攻击方式。

# 设备信息篡改软件

它是一种通过篡改设备信息破坏设备指纹唯一性,从而使设备在某种程度上成为新设备的恶意软件。

众所周知,通用设备无权修改和影响其他应用。 为了达到目的,恶意组织或个人往往需要获得更高的系统权限。 这个操作通常被称为越狱(iOS) 或根(安卓).

设备经过上级系统权限授权后,软件可以通过HOOK随意篡改设备信息,使其成为新的设备。 这种操作通常是通过点击设备信息篡改软件上的按钮完成的,因此攻击者制造新用户的成本几乎为零。

# 虚拟环境

近年来,随着技术和硬件的提升,客户端漏洞也逐渐被修复。

在高版本的系统中,越狱和ROOT都变得非常困难。 因此,许多恶意组织或个人也将目光投向了虚拟环境。 Virtual Environment,简而言之,就是利用本地操作系统模拟出与本地机器兼容的操作系统,并在其上运行软件的环境。

客户端最常见的虚拟环境是模拟器,通常存在于PC机上。 它旨在方便开发者在没有真实设备的情况下尽可能获得与客户端设备相同的真实环境。 为此,模拟器开发者也提供了一些方便的配置,包括但不限于上述修改设备信息、定位信息等功能。 此功能通常用于设备篡改。 因此,在这种环境下运行的软件应用程序具有很高的风险。

# 自定义ROM

ROM的全称是Read Only Memory,也称为只读存储器映象。 复位系统就是将ROM镜像写入ROM的过程。

众所周知,Android系统是开源的。 谷歌允许用户修改内存映像并自定义许多很酷的功能。 然而,任何事情都有两个方面。 过度的自由也会带来很大的伤害。 因为用户可以随意定制和编译Android系统的源代码,所以原来系统提供的API已经不可靠了。

因此,在这种环境下运行软件应用程序也是极其危险的。

# 应用破解

在应用上线前,开发者需要对应用的二进制文件进行签名并上传到商店。 应用破解就是对原始签名的应用进行反编译破解,将加密后的二进制段恢复到加密前的状态。

恢复后,攻击者可以从以下两个层面进行攻击: ● 二次包装 ● 调试攻击

下面介绍具体的攻击方法。

# 二次包装

img

二次包装的步骤是拆包、插入/篡改代码,生成新包,重新签名并运行。 篡改代码使得原始软件应用代码极度不可靠,这也影响了设备指纹的准确性。

# 调试攻击

调试本来是应用开发者在开发过程中修改代码的一种行为。 通常,这应该只发生在开发阶段。

但是,应用破解后,二进制文件的签名被破坏了。 攻击者还拥有与开发者相同的修改代码的权限。 这和二次包装一样,也会给商家带来风险。

# 代理攻击

在描述设备唯一性的元素中,除了设备ID,还有IP位置信息和网络信息,可以用来准确刻画用户。

除了设备id,还有IP位置信息和网络信息,可以用来准确描述用户所在的位置。 代理软件(比如暗影火箭) 市场上很容易伪造上述信息,你甚至可以很容易地从搜索引擎中获得这些工具。 通过观看教程,即使你是小白,也可以快速学习和使用它们。

此外,软件应用程序的接口数据可能会通过 HTTP 代理被窃取和修改。

# 虚拟位置

虚拟位置是指用户通过技术手段伪造当前的位置信息,以达到某种目的。 常见的业务场景包括打卡、区域领券等。

原则上,实现虚拟定位主要有两种攻击方式。

# 软件篡改

这种方法往往依赖于越狱/ROOT和模拟器环境,其攻击目标主要是系统定位相关的API。 ‍ 因此,只能通过检测运行环境和位置API来识别风险。

# GPS信号篡改

GPX文件是一系列描述设备位置信息的标准文件。 系统允许开发者使用GPX文件模拟GPS信号,修改设备GPS模块接收到的GPS信息,达到虚拟定位的目的。 这来自于系统向开发者开放的后门。 它旨在使开发人员能够更好地在设备上模拟和运行当前与定位相关的功能。 ‍ 但是这个方便的功能已经被一些有心人修改,制作了一些用于位置作弊的PC软件或者外设插件。

# 我们可以做什么?

介绍完几种主流的攻击方式后,我们再来说说如何通过设备指纹来对抗恶意组织的攻击。

# 检测运行环境

刚刚提到的设备信息篡改软件和虚拟环境场景需要应用运行在越狱等虚拟环境中/ ROOT 设备或模拟器。 因此,我们可以收集上述环境特征并上报给服务器,在业务进行时根据环境进行业务决策。

# 检测恶意软件安装

并非所有恶意组织都是高手极客。 他们经常从一些个人开发商或销售机构购买一些知名的设备信息篡改软件,进行批量篡改。

因此,我们可以建立应用黑名单机制。 一旦发现设备安装了此类黑名单应用程序,会给业务带来风险。

# 检测ROM

细节决定成败。 虽然定制ROM的自由度很高,但恶意ROM的开发者往往不能做到无漏无漏。 在设备收集到的有限信息中,我们还是可以找到一些线索来证明这款ROM是非原生的。 由于该方案比较开放,这里不再讨论检测方法。

# 检查签名正确性和二进制完整性

为了防止客户端代码被破解,应用开发者会在代码层面对应用进行加固和保护。 为达到攻击目的,攻击者首先要对应用进行加固和破解代码,修改核心逻辑,然后再对应用进行重新打包。 设备指纹不提供代码加固能力,属于加固厂商服务范围。 但是,设备指纹提供了检查二进制文件完整性的能力。 基于此,设备指纹可以标记未发布的应用程序。 因为设备上运行的软件应用程序已经过签名和加密,所以只有攻击者才能破解该文件。 如果签名文件没有泄露,则可以认为不满足二进制文件完整性验证的应用被攻击者修改或破解后重构,风险很大。

# 检测调试行为

调试的原理是将被调试的进程附加到正在运行的目标应用程序上,通过发送指令来控制应用程序。

因此,检测附加应用程序的行为是非常有效的。 检测的方法有很多,这里不一一赘述。

# 检测代理行为

使用代理时,系统会创建不同的网络接口和端口。 目前系统还提供了相关的API接口来获取代理信息。

因此,直接获取座席信息来识别座席行为是非常有效的。

另一方面,代理也将数据转发给一般不在本地的代理服务器。

因此,通过基站信息、IP信息、位置信息的多维度验证,也可以判断用户是否使用代理作弊。

# 检测虚拟位置

前面我们提到,虚拟位置有两种攻击模式,我们针对不同的模式给出了不同的防护建议。

# 软件篡改

该方法需要依赖越狱/ROOT或模拟器环境,需要使用HOOK定位相关API,达到定位篡改的目的。

因此,我们可以通过检测运行环境,定位相关API是否HOOK来识别风险。

# GPS信号篡改

GPS信号篡改的方法比较复杂,可以作用于正常的设备。 作为低权限软件应用,破解难度大。

作为一个低权限的应用软件,对抗难度很大。

幸运的是,方法总比困难多。 我们给出一些建议如下: ‍ ● GPS信息验证。 通过大数据分析,我们发现一些虚拟定位软件为了简化实现,模拟的定位数据非常粗糙。 他们可能只是修改了经纬度,以达到篡改位置的目的。 但他们忽略了一些细节。 长时间保持相同的经纬度和异常的高度和速度会大大增加对用户虚拟位置的怀疑。

● 通过收集IP地址和基站信息分析地理位置信息,并与当前收集到的定位信息进行对比。 如果差异很大,则基本可以确定用户使用了虚拟定位。

# 结语

道高一尺魔高一丈。 攻守对抗是一个永恒的话题。 ‍ 设备指纹也需要不断加强防护,以对抗恶意组织越来越锋利的长矛。

: 2023/06/25 16:20:00