一种应用客户端非法用户检测方法和系统与流程

文档序号:30622164发布日期:2022-07-02 03:51阅读:130来源:国知局
一种应用客户端非法用户检测方法和系统与流程

1.本发明涉及互联网应用处理技术领域,特别地涉及一种应用客户端非法用户检测方法和系统。


背景技术:

2.在互联网应用蓬勃发展的今天,随着移动应用给人们带来便利的同时,采用违规的手段实施作弊行为的用户也越来越多。例如,当终端中安装了某些 xposed框架后,用户利用xposed框架能够实施一些安卓手机官方或应用不支持的违规操作。又例如,用户实施的一些非法分身/多开行为,不但能帮助用户薅商家羊毛,而且还能够纂改应用的某些功能、屏蔽其他用户,同时损害了商家、企业和其他用户的利益。用户运行自动化脚本进行的模拟点击等行为,能够自动获取用户终端屏幕信息进行一些非人工主动操作,这种欺骗行为不但给应用服务器带来巨大的压力,也给公司、商家带来了损失。当用户将应用运行于模拟器中时,可以进行进一些非法行为,如数据操控、账号盗取等等,从而损害提供应用的企业的利益。另外,当用户使用的终端设备被root后,也会造成用户隐私泄露、应用数据损坏、丢失等,如被他人获取微信聊天记录、自行操作手机软件输入密码、侵犯用户隐私等,当然还有其他未列出的违规操作,在此不再一一赘述。
3.从上述的分析可见,有些违规操作是用户故意为之,但是有些并非用户故意,因而并不能依据一种检测出的违规操作简单粗暴地将用户列为非法用户,因而目前存在非法用户的识别难度增大,准确度不高等问题。


技术实现要素:

4.针对现有技术中存在的技术问题,本发明提出了一种应用客户端非法用户检测方法和系统,通过全面的检测和分析提高非法用户识别的准确度。
5.为了解决上述技术问题,根据本发明的一个方面,本发明提供了一种应用客户端非法用户检测方法,其中包括以下步骤:检测安装于用户终端的目标应用是否运行;响应于目标应用运行,按照检测策略对所述用户终端进行检测以获得应用客户端检测结果,其中,所述的检测策略中包括多种检测项;以及分析所述应用客户端检测结果以确定当前用户是否为非法用户。
6.根据本发明的另一个方面,本发明提供了一种应用客户端非法用户检测系统,其包括客户端检测模块、分析模块和通信模块,其中,所述客户端检测模块位于用户终端,经配置在目标应用运行过程中按照检测策略对所述用户终端进行检测以获得应用客户端检测结果,并将检测结果发送给服务端,其中,所述的检测策略中包括多种检测项;所述分析模块位于服务端,经配置以接收所述客户端检测模块发送的应用客户端检测结果,分析所述应用客户端检测结果以确定当前用户是否为非法用户;所述通信模块与所述客户端检测模块和分析模块相连接,经配置以在所述客户端检测模块和分析模块之间传递数据/消息。
7.本发明通过获得通过大量的检测数据,经过对检测数据的分析,根据不同应用对
应的不同非法行为分析,使得本发明能够更加全面、准确地检测出非法用户、各种非法、违规行为,从而可以使得目标应用的开发人员能够及时地做出有效措施,以保护正常用户的权益、隐私,避免企业利益受到损害。
附图说明
8.下面,将结合附图对本发明的优选实施方式进行进一步详细的说明,其中:
9.图1是根据本发明的一个实施例提供的一种应用客户端非法用户检测方法流程图;
10.图2是根据本发明的一个实施例提供的在应用客户端进行检测的方法流程图;
11.图3是根据本发明的一个实施例的服务端分析检测结果的流程图;
12.图4是根据本发明另一个实施例服务端分析检测结果的流程图;
13.图5是根据本发明的一个实施例的应用客户端非法用户检测系统原理框图;
14.图6是根据本发明的一个实施例的客户端检测模块原理框图;
15.图7是根据本发明的一个实施例的分析模块原理框图;
16.图8是根据本发明的一个实施例的具体分析模块原理框图;以及
17.图9是根据本发明另一个实施例的具体分析模块原理框图。
具体实施方式
18.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.在以下的详细描述中,可以参看作为本技术一部分用来说明本技术的特定实施例的各个说明书附图。在附图中,相似的附图标记在不同图式中描述大体上类似的组件。本技术的各个特定实施例在以下进行了足够详细的描述,使得具备本领域相关知识和技术的普通技术人员能够实施本技术的技术方案。应当理解,还可以利用其它实施例或者对本技术的实施例进行结构、逻辑或者电性的改变。
20.图1是根据本发明一个实施例提供的一种应用客户端非法用户检测方法流程图,在本实施例中,包括在用户终端100进行的检测步骤s1和在服务端200 进行的分析步骤s2。在步骤s2中可以确定对于某个应用的某个用户是否为非法用户,并在步骤s3将这一结果分享给其他应用的服务器,从而可以为其他应用的服务器判断其用户是否为非法用户提供了有力的依据。
21.图2是根据本发明一个实施例提供的在应用客户端进行检测的方法流程图,在本实施例中,在应用客户端进行检测的步骤包括:
22.步骤s11,判断安装于用户终端的目标应用是否运行。如果目标应用运行,则执行步骤s12,否则继续检测目标应用是否运行。
23.步骤s12,按照检测策略获取其中的一个检测项。为了比较全面地判断用户是否为非法用户,且获得非法行为,本实施例在检测策略中设置了多个检测项及检测顺序。其中,所述检测项包括用于检测当前用户终端设备及目标应用的运行环境的一些检测项,如“检
测用户终端设备中是否安装有xposed框架”、“检测用户终端设备系统是否被root”、“检测目标应用是否运行于模拟器中”、“检测目标应用是否处于调试状态”、“检测目标应用是否处于多开状态”、“检测目标应用是否处于虚拟定位状态”;另有用于检测当前针对目标应用的操作行为的检测项,如“检测用户终端设备是否使用无障碍模式”和“检测目标应用是否发生模拟点击事件”等等。为了确定是否包含有检测项要检测的内容,通常所述的检测项中还包含多个检测子项,例如,对于“检测用户终端设备中是否安装有xposed框架”这一检测项,其包括“检测应用安装列表”、“检测堆栈信息”、“检测关键java方法是否变为native方法”、“检测xposed相关文件”等等子项;关于“检测目标应用是否处于调试状态这一检测项”,其包括“ptrace检测”、“进程名检测”、“apk线程检测”、“分析android自带调整检测函数”等等。
24.为了协调各个检测项、各个检测子项的有序进行,在检测策略中可以于检测顺序及检测过程进行设置,例如,对于没有相互关联的检测项随机设置其检测顺序。又例如,对于一些有一定关联的检测项,例如,对于“检测用户终端设备中是否安装有xposed框架”、“检测用户终端设备系统是否被root”,通常是设备系统被root后才会安装xposed框架因而可以设置先进行“检测用户终端设备系统是否被root”,然后再“检测用户终端设备中是否安装有xposed框架”。
25.另外,由于不同检测项的检测子项可能相同,但针对不同的检测项所要检测的检测内容会有所不同的情况,因而在一种检测策略的设置中,设置进行一个检测项时,逐个子项进行检测;在另一种检测策略的设置中,当两个不同检测项的检测子项相同时,在进行该检测子项时,同时获取两个检测项对应的内容。例如,在“检测用户终端设备中是否安装有xposed框架”这一检测项,其一个检测子项为“检测应用安装列表”,而对于“检测目标应用是否处于多开状态”这一检测项,其一个检测子项也为“检测应用安装列表”。因而,在进行“检测用户终端设备中是否安装有xposed框架”这一检测项的“检测应用安装列表”子项时,遍历应用列表,辨别是否有安装xposed installer相关的软件包,比如de.robv.android.xposed.installer,同时也比较应用列表中的软件包名,根据软件包名确定是否有两个原始目标应用。从而进行“检测应用安装列表”检测子项时,既完成了“检测用户终端设备中是否安装有xposed框架”这一检测项的“检测应用安装列表”检测子项,也完成了“检测目标应用是否处于多开状态”这一检测项的“检测应用安装列表”检测子项。
26.在另一种检测策略中,为每一个检测项的多个检测子项设置重要权重,依次对确定非法行为的贡献度的大小设置权重大小,在检测时,依据重要权重从大到小的顺序依次实施各个检测子项。例如,对于模拟器检测项,其包括“系统检测”、“硬件检测”和“传感器检测”三个检测子项,其中,“系统检测”的检测内容为检测imei、手机号码,而imei可能会被模拟器处理,手机号码并不一定能够获取到,因而其对确定模拟器的贡献度较小,设定其较小的重要权重。“硬件检测”的内容包括“电池信息”、“mac地址”、“wifi信息”、“蓝牙信息”、“相机”和“gps定位信息”等内容,这些部分内容能够确定模拟器,如“wifi信息”,但是只能在使用wifi时才能获取到wifi信息,对于其他内容,有的可能在未来会被模拟器模拟,如“电池信息”,而用些内容能够被当前部分模拟器模拟,如“mac地址”、“蓝牙信息”、“gps定位信息”等,因而这些内容对确定模拟器具有一定的贡限度。“传感器检测”这一检测子项包括各种传感器,如光传感器(sensor.type_light)、临近传感器 (type_proximity)、计步器(type_
step_counter)、各种加速传感器、方位传感器、磁场传感器、重力传感器等等。模拟器无法模拟这些传感器,因而该检测子项对是否能够确定模拟器的贡献度最大,因而其重要权重最大。因而,对于模拟器检测项,根据重要权重从大到小排列的检测子项为“传感器检测”、“硬件检测”、“系统检测”。
27.步骤s13,按照检测策略及检测项的要求进行检测。例如,对检测项的各个检测子项按照随机顺序进行检测;按照重要权重从大到小的顺序依次实施各个检测子项。
28.步骤s14,判断当前检测项的检测是否完成,如果完成,则在步骤s15将检测结果发送到服务端,如果没有,则返回步骤s13继续检测。
29.步骤s16,判断是否还有检测项未完成,如果还有,则返回步骤s12,如果全部的检测项都已经完成,则本次非法用户的检测过程结束。
30.虽然前述实施例是在每一个检测项检测完成时将其检测结果发送给服务端,本领域的普通技术人员应知,检测结果的发送可以发生在任何时候,如每一个检测子项完成时发送检测子项的检测结果,或者在是全部检测项都完成时一次性发送全部的检测结果。本发明对此不做任何限制。
31.当服务端接收到来自客户端的检测结果后,对检测进行分析以确定用户是否为非法用户。图3是根据本发明一个实施例的服务端分析检测结果的流程图。所述分析过程如下:
32.步骤s21a,计算每个检测子项的非法分数。例如,对于具体的检测子项设置有对应的评分标准,例如,对于一些需要检测出的内容,如果检测出了需要检测的内容,则设置分数为“1”,如果没有检测出要检测的内容,则设置分数为“0”。例如,对于“检测用户终端设备中是否安装有xposed框架”这一检测项的“检测应用安装列表”检测子项,在应用列表检到安装xposed installer 相关的软件包,比如de.robv.android.xposed.installer,则设置其非法分数为“1”,如果没有检测出类似的软件包则设置为“0”。对于一些有多个检测内容的检测子项,将多个检测项的得分相加再归一化到0-1之间的一个数据。如对于模拟器检测项中的“传感器检测”子项,当设置需要检测到48个传感器,检测出一个得1分,没有检测出不得分,最后将总得分除以48得到一个0-1之间的数值,将其作为所述检测子项的非法分数。当检测子项设置有重要性权重时,将检测子项的非法分数乘以其权重之后的数值作为所述检测子项的非法分数。
33.步骤s22a,计算每个检测项的非法分数。在一个实施例中,计算每个检测项的所有检测子项的非法分数的总和作为检测项的非法分数。
34.步骤s23a,基于一个用户的所有检测项的非法分数计算所述用户非法用户得分。在一个实施例中,计算每个用户的所有检测项的非法分数的总和作为检测项的非法分数。或者,在检测项具有权重时,计算所有检测项的非法分数的加权和作为检测项的非法分数。由于根据本发明提供的方法得到的非法用户得分可以在多个应用中进行共享,因而,在另一些实施例中,在计算用户对于当前应用的非法用户得分时,可以参考通过所述用户对于其他应用的非法用户得分。为了以示区别,将所述用户对于其他应用的非法用户得分称为第二非法用户得分,其他应用称为第二应用。在一种计算方法中,计算第一非法用户得分和多个第二非法用户得分的总和作为当前的非法用户得分。在另一种计算方法中,可根据用户在这些应用中可以进行非法行为的可能性设置权重,以这些应用非法用户得分的加权和
作为当前的非法用户得分。
35.步骤s24a,对比所述用户非法用户得分和设置的第一阈值。
36.步骤s25a,判断用户非法用户得分是否大于或等于设置的第一阈值,在用户非法用户得分大于或等于设置的第一阈值时,在步骤s27a确定所述用户为非法用户。否则,在步骤s26a确定所述用户为正常用户。其中,所述的第一阈值为一个经验值或者是通过算法确定的一个衡量一个用户在进行一定数量、一定种类的检测时可以确定为非法用户的数值。
37.在本实施例中通过打分机制来确定一个用户是否为非法用户,由于在客户端进行了多种检测,每项检测又包括多项子项,因而检测全面,通过全面的检测,并配合为针对目标应用设置的检测项对确定非法用户的贡献度的权重可以有针对性地判别用户是否为非法用户。例如,对于多开检测项,对于有些应用,应用多开为非法行为,而有些应用中的多开行为并不是非法行为。因而,通过在检测结果的分析中增加的这些处理,有效地提高了对非法用户判断的准确性。
38.图4是根据本发明另一个实施例服务端分析检测结果的流程图。在本实施例中,服务端采用机器学习模型基于检测结果预测用户类型为非法用户或正常用户。其中包括以下步骤:
39.步骤s21b,将每个检测子项的检测结果处理为特征数据。例如,按照前述图3中所示的计算每个检测子项的非法分数,将其非法分数作为特征数据。
40.步骤s22b,将每项检测项的所有检测子项的非法分数组合在一起构成第一预测样本。其中,每个检测子项作为预测样本的一维特征,检测子项的非法分数作为特征值。
41.步骤s23b,将第一预测样本输入给对应检测项的机器学习模型进行预测得到用户对应所述检测项内容的用户类别,所述的用户类别分为非法用户和正常用户。在本实施例中,对于每个检测项,对应训练一个机器学习模型,所述机器学习模型采用神经网络、决策树、随机森林等算法建模,其输出为二分类输出,即输出为非法用户或正常用户两个类别。所述机器学习模型经过大量训练数据的训练,从而能够根据检测项对应的检测子项数据准确地预测出用户对应该检测项内容的用户类别。
42.步骤s24b,将每项检测项的用户类别作为特征数据,将一个用户的全部检测项的预测结果组合在一起构成第二预测样本。其中,每项检测项为预测样本的一维特征,对应所述检测项的用户类别为特征值,例如,非法用户由-1代表,正常用户由1代表。将针对一个用户进行的所述检测项组合在一起构成了第二预测样本。本实施例中所述的第一预测样本、第二预测样本中的“第一”、“第二”仅用于区分这两种预测样本,而非数量、顺序等上的限定。
43.步骤s25b,将所述第二预测样本输入给机器学习模型,经所述机器学习模型预测得到所述用户的用户类别。即预测到用户为非法用户或正常用户。
44.在另一个实施例中,在第二预测样本中,除了以检测项作为特征外,还可以包括另一个或多个特征,例如,以用户使用的应用检测作为一维特征,以所述用户在使用该应用时检测得到用户类别作为特征值。从而在进行对该目标应用的检测时参考所述用户在使用其他应用时的表现,从而能够更加准确地预测出用户是否为非法用户。同理,在对本目标应用的检测结果也分享给其他应用,帮助在其他应用上进行用户类别的检测。
45.在以上几个实施例中,在一个检测项检测完成时或者全部检测项检测完成时提供
对应的结果回调接口以供目标应用的开发人员调用。使所述开发人员可以根据需求随时查看检测的结果。当然,目标应用的开发人员也可以查看服务器中的分析过程及分析结果。
46.图5是根据本发明一个实施例的一种应用客户端非法用户检测系统原理框图。所述应用客户端非法用户检测系统包括客户端检测模块1、分析模块2和通信模块3,其中,所述客户端检测模块1位于用户终端。在一个实施例中,当用户在下载目标应用时,所述客户端检测模块1与目标应用一起被下载、安装到用户终端上。所述客户端检测模块1在目标应用运行过程中按照检测策略对所述用户终端进行检测以获得应用客户端检测结果,并将检测结果发送到服务端处理模块,其中,所述的检测策略中包括多种检测项。
47.其中,如图6所示,根据本发明一个实施例的客户端检测模块原理框图,在本实施例中,所述客户端检测模块1包括多个检测单元11、检测触发单元 12和检测协调单元13。其中,每个检测单元11对应一个检测项。如图中所述的xposed检测单元111,用于检测用户终端设备中是否安装有xposed框架; root检测单元112,用于检测用户终端设备系统是否被root;模拟器检测单元 113,用于检测目标应用是否运行于模拟器中;调试检测单元114,用于检测目标应用是否处于调试状态;多开检测单元115,用于检测目标应用是否处于多开状态;无障碍模式检测单元116,用于检测用户终端设备是否使用无障碍模式;模拟点击检测单元117,用于检测目标应用是否发生模拟点击事件等等。经配置以基于检测通知分别完成对应的检测项。根据检测内容,每个检测单元 11还可以包括多个用于完成对应检测子项的检测子单元。每个检测单元11在接收到检测通知时,随机启动检测子单元或者是按照一定的顺序,如按照检测子单元的重要权重从大到小的顺序启动检测子单元进行相应内容的检测。
48.检测触发单元12监测触发条件,在满足触发条件时,发出检测触发通知给所述检测协调单元13。其中,所述触发条件包括目标应用处于运行状态,监测的过程例如循环检测当前运行的进程中是否有目标应用的进程,如果检测到当前正在运行的进程中有目标应用进程,检测触发单元12则确定满足检测触发条件,此时向检测协调单元13发送检测触发通知。
49.所述检测协调单元13与所述检测触发单元12和多个检测单元11相连接,在接收到来自检测触发单元12的检测触发通知时,根据检测策略确定的检测顺序分别向对应的检测单元发送检测通知。
50.另外,为了使目标应用的开发人员能够及时调用检测结果,所述客户端检测模块1还设置有一个或多个结果回调接口14,分别与多个检测单元一一对应,用以供目标应用的开发人员调用。
51.分析模块2位于服务端,用以接收所述客户端检测模块发送的应用客户端检测结果,分析所述应用客户端检测结果以确定当前用户是否为非法用户。图 7是根据本发明一个实施例的分析模块原理框图。在本实施例中,分析模块2 包括检测项分析单元21和用户分析单元22,所述检测项分析单元21基于构成所述检测项的检测子项的检测结果确定所述用户是否为对应检测项内容的非法用户。所述用户分析单元22与所述检测项分析单元21相连接,基于每个检测项的分析结果,确定所述用户是否为非法用户。
52.其中,在一个实施例中,如图8所示,为根据本发明一个实施例的分析模块的原理框图。其中,所述检测项分析单元21a包括第一分数计算单元211a 和第二分数计算单元
212a,所述第一分数计算单元211a根据检测子项的检测结果或检测结果及其重要权重计算每个检测子项的非法分数,并将其发送给第二分数计算单元212a。所述第二分数计算单元212a与所述第一分数计算单元相连接,计算每个检测项的全部检测子项非法分数的总和作为所述检测项的非法分数。可选地,还可以包括第二结果确认单元213a,其与所述第二分数计算单元212a相连接,所述第二结果确认单元213a对比每个检测项的非法分数和对应所述检测项的第二阈值;在检测项的非法分数大于或等于其第二阈值时,确定所述用户为对应检测项内容的非法用户,在检测项的非法分数小于第二阈值时,确定所述用户为对应检测项内容的正常用户,即第二结果确认单元213a 确认了所述用户为对应检测项内容的用户类别。对应地,所述用户分析单元22a 包括第三分数计算单元221a和第一结果确认单元222a。所述第三分数计算单元221a与所述第二分数计算单元212a相连接,基于第二分数计算单元212a 得到的检测项的非法分数或基于检测项的非法用户权重和非法分数计算所述用户的非法用户得分。所述第一结果确认单元222a与所述第三分数计算单元 221a相连接,用于对比所述用户的非法用户得分与第一阈值;在所述用户的非法用户得分大于或等于所述第一阈值,确定所述用户是否为非法用户,在所述用户的非法用户得分小于所述第一阈值,确定所述用户是否为正常用户。
53.在另一个实施例中,如图9所示,其为根据本发明另一个实施例的分析模块的原理框图。在本实施例中,利用机器学习模型进行相应的预测。具体地,所述检测项分析单元21b包括第一特征值计算单元211b、第一预测样本生成单元212b和第一预测单元213b,其中,所述第一特征值计算单元211b根据检测子项的检测结果及其重要权重计算每个检测子项的非法分数。所述第一预测样本生成单元212b与第一特征值计算单元211b相连接,将每项检测项的检测子项对应的特征数据组合为第一预测样本。所述第一预测单元213b与所述第一预测样本生成单元212b相连接,将每项检测项的预测样本输入给对应检测项的机器学习模型,由所述检测项的机器学习模型确定所述用户对应检测项内容的用户类别为非法用户或正常用户。
54.对应地,所述用户分析单元22b包括:第二特征值计算单元221b、第二预测样本生成单元222b和第二预测单元223b,其中,所述第二特征值计算单元221b与所述第一预测单元213b,将检测项的检测结果处理为特征数据,例如,在用户对应检测项内容的用户类别为非法用户时,对应该检测项的特征值为-1,在用户对应检测项内容的用户类别为正常用户时,对应该检测项的特征值为1。因而,所述用户分析单元22b也可以与图8中的第二结果确认单元213a 相连接,从而得到用户对应检测项内容的用户类别。所述第二预测样本生成单元222b与第二特征值计算单元221b相连接,将每个用户的检测项对应的特征数据组合为第二预测样本。所述第二预测单元223b与所述第二预测样本生成单元222b相连接,将每个用户的第二预测样本输入给机器学习模型,由所述机器学习模型预测得到的每个用户的用户类别为非法用户或正常用户。
55.本发明通过检测xp、调试、多开、模拟器、root等等多种非正常设备的用户,可以检测使用无障碍模式、模拟点击等自动化脚本非法引导和自动点击广告用户、屏蔽相关用户等行为。通过对用户终端系统文件的读写、管理员权限的变更、系统程序和硬件设备的增删改查的检测判断用户是否通过违规途径获取了超越普通用户的权限,判定用户设备是否为非正常设备;通过系统启动广播accessibilitymanagerservice等监测屏幕触摸,ui触发,
焦点变化,应用安装卸载等行为获得通过大量的检测数据,经过对检测数据的分析,根据不同应用对应的不同非法行为分析,使得本发明能够更加全面、准确地检测出非法用户、各种非法、违规行为,从而可以使得目标应用的开发人员能够及时地做出有效措施,以保护正常用户的权益、隐私、避免企业利益受到损害。
56.上述实施例仅供说明本发明之用,而并非是对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明范围的情况下,还可以做出各种变化和变型,因此,所有等同的技术方案也应属于本发明公开的范畴。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1