CN112380540A - Android应用安全检测方法及装置 - Google Patents
Android应用安全检测方法及装置 Download PDFInfo
- Publication number
- CN112380540A CN112380540A CN202011267911.2A CN202011267911A CN112380540A CN 112380540 A CN112380540 A CN 112380540A CN 202011267911 A CN202011267911 A CN 202011267911A CN 112380540 A CN112380540 A CN 112380540A
- Authority
- CN
- China
- Prior art keywords
- application
- detected
- operation record
- current
- record
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 105
- 230000006399 behavior Effects 0.000 claims description 25
- 238000000034 method Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 206010001488 Aggression Diseases 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 2
- 230000016571 aggressive behavior Effects 0.000 description 2
- 208000012761 aggressive behavior Diseases 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种Android应用安全检测方法及装置,包括:接收客户端发送的待检测应用当前操作的操作记录,将客户操作记录添加至操作记录表中;根据客户操作记录表和预先获取的操作条件表进行安全检测;其中,客户操作记录表,用于存储待检测应用历史操作的操作记录;客户操作条件表,包括待检测应用所有合法操作的操作信息。本发明提供的Android应用安全检测方法及装置,根据操作记录表中待检测应用所有已执行操作的操作记录和操作条件表中待检测应用所有合法操作的操作信息,判断待检测应用是否存在攻击行为,能更准确、有效的检测到攻击行为,安全检测的步骤更简单,适应性更广。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种Android应用安全检测方法及装置。
背景技术
在Android系统上,应用可能遭受黑客的攻击以实现获取用户信息引流、牟取非法利益等非法目的。典型的攻击方式有:利用模拟点击进行自动登录,执行非法操作;或利用Hook技术自动获取用户或应用数据,执行非法的自动化批量处理。
现有的Android应用安全检测方法主要包括Root检测或Hook插件检测。但在实际应用中,若攻击行为经过伪装,则上述安全检测可能会被绕过,且现有的Hook插件检测无法识别未知的Hook插件,从而导致上述安全检测方法准确率低。
发明内容
本发明提供一种Android应用安全检测方法及装置,用以解决现有技术中应用安全检测方法准确率低的缺陷,实现更准确的Android应用安全检测。
本发明提供一种Android应用安全检测方法,包括:
接收客户端发送的待检测应用当前操作的操作记录,将所述操作记录添加至操作记录表中;
根据所述操作记录表和预先获取的操作条件表进行安全检测;
其中,所述操作记录表,用于存储待检测应用历史操作的操作记录;所述操作条件表,包括待检测应用所有合法操作的操作信息。
根据本发明提供的一种Android应用安全检测方法,所述根据所述操作记录表和预先获取的操作条件表进行安全检测,具体包括:
若根据所述操作条件表判断获知所述当前操作的前一操作允许界面切换,则根据所述操作记录表获取所述当前操作的前一操作与所述当前操作之间界面切换的时间;
若判断获知所述界面切换的时间小于预设的时长阈值,则确定所述当前操作为模拟点击。
根据本发明提供的一种Android应用安全检测方法,所述根据所述操作记录表和预先获取的操作条件表进行安全检测,具体包括:
接收所述待检测应用的当前业务逻辑请求;
根据所述操作条件表获取所述当前业务逻辑请求对应的操作;
若判断获知所述操作记录表中不存在所述当前业务逻辑请求对应的操作的操作记录,则确定所述当前业务逻辑请求为Hook攻击。
根据本发明提供的一种Android应用安全检测方法,所述根据所述操作条件表获取所述当前业务逻辑请求对应的操作之后,还包括:
若判断获知所述操作记录表中存在所述当前业务逻辑请求对应的操作的操作记录,则根据所述操作条件表,获取所述当前业务逻辑请求对应的操作的前置操作;
若判断获知所述操作记录表中不存在所述前置操作的操作记录,则确定所述当前业务逻辑请求为Hook攻击。
根据本发明提供的一种Android应用安全检测方法,所述根据所述操作记录表和预先获取的操作条件表进行安全检测之后,还包括:
若检测到所述待检测应用中存在攻击行为,则向客户端发送告警信息,并生成告警日志。
本发明提供一种Android应用安全检测方法,包括:
采集待检测应用当前操作的操作记录;
将所述操作记录发送至应用服务器,以使得所述应用服务器接收所述操作记录,将所述操作记录添加至操作记录表中,根据所述操作记录表和预先获取的操作条件表进行安全检测;
其中,所述操作记录表,用于存储待检测应用历史操作的操作记录;所述操作条件表,包括待检测应用中所有合法操作的操作信息。
本发明还提供一种Android应用安全检测装置,包括:
记录模块,用于接收客户端发送的待检测应用当前操作的操作记录,将所述操作记录添加至操作记录表中;
检测模块,用于根据所述操作记录表和预先获取的操作条件表进行安全检测;
其中,所述操作记录表,用于存储待检测应用历史操作的操作信息;所述操作条件表,包括待检测应用所有合法操作的操作信息。
本发明还提供一种Android应用安全检测装置,包括:
采集模块,用于采集待检测应用当前操作的操作记录;
通信模块,用于将所述操作记录发送至应用服务器,以使得所述应用服务器接收所述操作记录,将所述操作记录添加至操作记录表中,根据所述操作记录表和预先获取的操作条件表进行安全检测;
其中,所述操作记录表,用于存储待检测应用历史操作的操作记录;所述操作条件表,包括待检测应用中所有合法操作的操作信息。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述Android应用安全检测方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述Android应用安全检测方法的步骤。
本发明提供的Android应用安全检测方法及装置,根据操作记录表中待检测应用所有已执行操作的操作记录和操作条件表中待检测应用所有合法操作的操作信息,判断待检测应用是否存在攻击行为,能更准确、有效的检测到攻击行为,安全检测的步骤更简单,适应性更广。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的Android应用安全检测方法的流程示意图;
图2是本发明提供的Android应用安全检测方法的流程示意图;
图3是本发明提供的Android应用安全检测装置的结构示意图;
图4是本发明提供的Android应用安全检测装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
为了克服现有技术的上述问题,本发明提供一种Android应用安全检测方法及装置,其发明构思是,根据已执行操作的操作记录和所有合法操作的操作信息,判断待检测应用中的操作或业务逻辑请求是否为攻击行为,安全检测的准确率更高,适应性更广。
图1是本发明提供的Android应用安全检测方法的流程示意图。下面结合图1描述本发明实施例的Android应用安全检测方法。如图1所示,该方法包括:步骤S101、接收客户端发送的待检测应用当前操作的操作记录,将操作记录添加至操作记录表中。
其中,操作记录表,用于存储待检测应用历史操作的操作记录。
需要说明的是,本发明实施例提供的Android应用安全检测方法的执行主体为应用服务器。
具体地,用户在使用待检测应用时,可以在待检测应用中进行相关操作。客户端可以获取待检测应用当前操作的操作记录,并将操作记录发送至应用服务器。
可以理解的是,用户在待测试应用中完成当前操作后,开始进行下一个操作,上述下一个操作即变为待测试应用的当前操作。因此,待测试应用的当前操作是不断变化的,客户端可以不断获取并发送待测试应用当前操作的操作记录。
应用服务器每接收到一条客户端发送的待检测应用当前操作的操作记录后,将上述操作记录添加至操作记录表中。
操作记录可以包括但不限于:界面标识、操作名称、操作对象和操作时间等信息。
其中,界面标识,可以表示执行当前操作的界面。例如:界面标识可以是Activity的名称、Fragment的名称或任何唯一字符串。
操作名称,可以表示当前操作对应的控件的操作的名称。例如:操作名称可以是ClickButton、InputText、CheckRadio、ClickListItem、ScrollDow或ScrollUp等。
操作对象,指当前操作对应的控件的名称。例如:操作对象可以是控件RefreshControl、ToolBar或Slider等。
操作时间,指进行当前操作的时间。
需要说明的是,操作记录表可以用于存储当前时刻之前某一时刻至当前时刻的时间段内,待检测应用历史操作的操作记录。通过不断将客户端发送的当前操作的操作记录添加至操作记录表中,使得操作记录表的内容不断更新,以确保操作记录表中包括该时间段内所有已执行操作的操作记录。
步骤S102、根据操作记录表和预先获取的操作条件表进行安全检测。
其中,操作条件表,包括待检测应用所有合法操作的操作信息。
根据操作记录表中待检测应用所有已执行操作的操作记录和操作条件表中待检测应用所有合法操作的操作信息,可以判断是否存在攻击行为。
攻击行为可以包括但不限于模拟点击或Hook攻击。
需要说明的是,待检测应用的合法操作,指待检测应用中每一界面中每一控件可以执行的所有合法的操作。操作条件表中包括的待检测应用的每一操作具有唯一性。
待检测应用所有合法操作的操作信息,可以从不同维度描述合法操作,描述了合法操作的属性或特征。操作信息可以包括但不限于:操作代码、操作名称、操作对象和界面标识等信息。
具体地,操作代码,是待检测应用中每一界面中每一控件可以执行的每一合法的操作的标识,操作条件表包括的待检测应用的每一合法操作对应唯一的操作代码。
界面标识,可以表示执行合法操作的界面。例如:界面标识可以是Activity的名称、Fragment的名称或任何唯一字符串。
操作名称,可以表示合法操作对应的控件的操作的名称,例如:操作名称可以是ClickButton、InputText、CheckRadio、ClickListItem、ScrollDow或ScrollUp等。
操作对象,指合法操作对应的控件的名称,操作条件表中不同合法操作的操作对象可以相同,例如:操作对象可以是Refresh Control、ToolBar或Slider等。
操作条件表中不同合法操作的操作名称可以相同,但界面标识或操作对象不同。
可以理解的是,操作条件表描述了合法操作的属性或特征,可以根据操作记录表中的操作信息是否符合合法操作的属性或特征进行安全检测,判断是否存在非法的攻击行为。
如果操作记录表中的任一操作的操作信息不符合合法操作的属性或特征,则检测到存在非法的攻击行为。
本发明实施例根据操作记录表中待检测应用所有已执行操作的操作记录和操作条件表中待检测应用所有合法操作的操作信息,判断待检测应用是否存在攻击行为,能更准确、有效的检测到攻击行为,安全检测的步骤更简单,适应性更广。
基于上述各实施例的内容,根据操作记录表和预先获取的操作条件表进行安全检测,具体包括:若根据操作条件表判断获知当前操作的前一操作允许界面切换,则根据操作记录表获取当前操作的前一操作与当前操作之间界面切换的时间。
需要说明的是,操作信息,还可以包括界面切换标识。
界面切换标识,可以表示进行合法操作是否会造成界面切换。若界面切换标识为True,则表示进行合法操作会造成界面切换,说明允许该界面允许被切换;若界面切换标识为False,则表示进行合法操作不会造成界面切换,说明该界面不允许被切换。
在操作记录表中可以获取当前操作的前一操作的操作记录。获取当前操作的前一操作的操作记录后,可以获知当前操作的前一操作的操作名称、操作对象和界面标识等。根据当前操作的前一操作的操作记录,可以在操作条件表中找到当前操作的前一操作对应的界面切换标识。
若当前操作的前一操作的界面切换标识为True,则可以判断获知当前操作的前一操作允许界面切换。
在操作记录表中可以获取当前操作和当前操作的前一操作的操作时间。可以计算当前操作的操作时间与当前操作的前一操作的操作时间之间的时间差,作为当前操作的前一操作与当前操作之间界面切换的时间。
若当前操作的前一操作的界面切换标识为False,则可以判断获知当前操作的前一操作不允许界面切换,当前操作的前一操作与当前操作之间不存在界面的切换。
若判断获知界面切换的时间小于预设的时长阈值,则确定当前操作为模拟点击。
模拟点击指通过模拟用户的点击操作使得应用中的界面非法切换。常见的模拟点击有:利用Accessibility、Auto.js或按键精灵等进行自动登录。
通常情况下,模拟点击造成的页面切换所需的时间,远小于用户正常操作造成的页面切换所需的时间。因此,根据页面切换时间的长度,可以判断待检测应用中的操作是否为模拟点击。页面切换的时间可以通过操作记录表获得。
模拟点击造成的页面切换所需的时间,远小于用户正常操作造成的页面切换所需的时间。因此,可以判断获知界面切换的时间是否小于预设的时长阈值。
如果小于,则确定当前操作为模拟点击;如果不小于,则不将当前操作确定为模拟点击。
需要说明的是,预设的时长阈值可以根据实际情况确定,例如:可以获取正常操作造成页面切换的时间,根据正常操作造成页面切换的时间确定预设的时长阈值。预设的时长阈值的具体取值,在本发明实施例中不作具体限制。
本发明实施例根据操作条件表获取当前操作的前一操作的界面切换标识,根据界面切换标识判断获知当前操作的前一操作允许界面切换后,根据操作记录表获取当前操作的前一操作与当前操作之间界面切换的时间,通过判断界面切换的时间是否小于预设的时长阈值,确定当前操作是否为模拟点击,能更准确的检测到模拟点击,安全检测的步骤更简单,适应性更广。
基于上述各实施例的内容,根据操作记录表和预先获取的操作条件表进行安全检测,具体包括:接收待检测应用的当前业务逻辑请求。
具体地,业务逻辑请求,用于请求应用服务器处理所请求的业务。业务逻辑请求,携带有所请求的业务的信息。
待测试应用中的操作触发业务逻辑请求后,客户端将业务逻辑请求发送至应用服务器。
应用服务器接收客户端发送的待检测应用的业务逻辑请求。
业务逻辑请求对应的操作为上述待测试应用中的合法操作。
根据操作条件表获取当前业务逻辑请求对应的操作。
需要说明的是,操作信息,还可以包括业务标识。
业务标识,是客户端向应用服务器发送的业务逻辑请求的唯一标识,每一业务逻辑请求对应唯一的业务标识。
根据当前业务逻辑请求的业务标识,可以在操作条件表中获取当前业务逻辑请求对应的操作。进一步地,可以获取当前业务逻辑请求对应的操作的操作信息,可以包括:当前业务逻辑请求对应的操作的界面标识、操作名称和操作对象等信息。
若判断获知操作记录表中不存在当前业务逻辑请求对应的操作的操作记录,则确定当前业务逻辑请求为Hook攻击。
Hook攻击指在应用中发起业务逻辑请求时,在应用正常情况应执行的代码前插入其它功能代码,使得应用在执行正常操作前执行其他非法操作,相当于业务逻辑请求对应的正常操作被替换为插入的其他功能代码对应的非法操作。常见的Hook攻击有:利用Xposed框架或Frida框架自动获取用户或应用数据(例如:个人登陆账号、密码或支付密码等)以及应用沙盒的完整数据,执行非法的自动化批量处理。
通常情况下,应用从未执行过插入的其它功能代码对应的非法操作。因此,可以通过操作条件表获知业务逻辑请求对应的操作。可以通过查找操作记录表获知业务逻辑请求对应的操作是否已被执行过,进而判断该业务逻辑请求是否为Hook攻击。
Hook攻击可以将业务逻辑请求对应的正常操作替换为插入的其他功能代码对应的非法操作,待检测应用从未执行过上述插入的其他功能代码对应的非法操作。因此,可以判断操作记录表中是否存在当前业务逻辑请求对应的操作的操作记录,根据判断结果确定当前业务逻辑请求是否为Hook攻击。
具体地,可以根据当前业务逻辑请求对应的操作的界面标识、操作名称和操作对象等信息,在操作记录表中查询是否有包括当前业务逻辑请求对应的操作的操作记录。
若在操作记录表中查询到存在当前业务逻辑请求对应的操作的操作记录,则暂时不将当前业务逻辑请求确定为Hook攻击。
若在操作记录表中未查询到存在当前业务逻辑请求对应的操作的操作记录,则确定当前业务逻辑请求为Hook攻击。
本发明实施例根据操作条件表获取当前业务逻辑请求对应的操作的操作信息,并根据当前业务逻辑请求对应的操作的操作信息,查询操作记录表中是否存在当前业务逻辑请求对应的操作的操作记录,若在操作记录表中未查询到存在当前业务逻辑请求对应的操作的操作记录,则确定当前业务逻辑请求为Hook攻击,能更准确的检测到非法发起业务逻辑请求的Hook攻击,能更有效的检测到未知的Hook攻击,安全检测的步骤更简单,适应性更广。
基于上述各实施例的内容,根据操作条件表获取当前业务逻辑请求对应的操作之后,还包括:若判断获知操作记录表中存在当前业务逻辑请求对应的操作的操作记录,则根据操作条件表,获取当前业务逻辑请求对应的操作的前置操作。
需要说明的是,操作信息,还可以包括前置操作。
前置操作,指执行合法操作前,必须执行的上一个合法操作。一个合法操作可以有多个前置操作,例如:若干个合法操作执行后,都可以继续执行相同的下一个合法操作,则上述若干个合法操作均为上述下一个合法操作的前置操作;执行上述下一个合法操作的前提,为必须执行上述若干个合法操作中的一个。
根据当前业务逻辑请求的业务标识,可以在操作条件表中获取当前业务逻辑请求对应的操作的前置操作。
进一步地,根据上述前置操作,可以在操作条件表中获取当前业务逻辑请求对应的操作的前置操作的操作信息。操作信息可以包括:前置操作对应的界面标识、操作名称和操作对象等信息。
若判断获知操作记录表中不存在前置操作的操作记录,则确定当前业务逻辑请求为Hook攻击。
Hook攻击还可以通过插入其他功能代码,非法发起业务逻辑请求。待检测应用从未执行过插入的其它功能代码对应的非法操作。
因此,可以通过操作记录表中是否存在当前业务逻辑请求对应的操作的前置操作的操作记录,判断当前业务逻辑请求是否为Hook攻击。
具体地,可以根据当前业务逻辑请求对应的操作的前置操作的界面标识、操作名称和操作对象等信息,在操作记录表中查询是否有前置操作的操作记录。
若在操作记录表中查询到前置操作的操作记录,说明操作记录表中存在前置操作的操作记录,则不将当前业务逻辑请求确定为Hook攻击。
若在操作记录表中未查询到前置操作的操作记录,说明操作记录表中不存在前置操作的操作记录,则确定当前业务逻辑请求为Hook攻击。
本发明实施例根据操作条件表获取当前业务逻辑请求对应的操作的前置操作的操作信息,根据前置操作的操作信息,查询操作记录表中是否存在当前业务逻辑请求对应的操作的前置操作的操作记录,若在操作记录表中未查询到当前业务逻辑请求对应的操作的前置操作的操作记录,则确定当前业务逻辑请求为Hook攻击,能更准确的检测到非法发起业务逻辑请求的Hook攻击,能更有效的检测到未知的Hook攻击,安全检测的步骤更简单,适应性更广。
基于上述各实施例的内容,操作记录表和预先获取的操作条件表进行安全检测之后,还包括:若检测到待检测应用中存在攻击行为,则向客户端发送告警信息,并生成告警日志。
具体地待检测应用中存在的攻击行为,可以包括模拟点击或Hook攻击。
若检测到待检测应用的当前操作为模拟点击,则向客户端发送当前操作为模拟点击的告警信息。告警信息的内容还可以包括当前操作的操作记录。
若检测到待检测应用的当前业务逻辑请求为Hook攻击,则向客户端发送当前业务逻辑请求为Hook攻击的告警信息。告警信息的内容还可以包括当前业务逻辑请求的业务标志、当前业务逻辑请求对应的合法操作的操作信息或当前业务逻辑请求对应的合法操作的前置操作对应的操作信息。
根据告警信息可以生成告警日志,并可以定时将告警日志发送至客户端。
本发明实施例通过检测到待检测应用中存在模拟点击或Hook攻击后,向客户端发送告警信息,并根据告警信息生成告警日志,向客户端发送告警日志,能及时通知用户发现待测试应用中的攻击行为,能根据告警信息做出响应,能根据告警日志分析攻击行为,能为待检测应用的后期安全防护工作提供数据基础。
图2是本发明提供的Android应用安全检测方法的流程示意图。下面结合图2描述本发明实施例的Android应用安全检测方法。如图2所示,该方法包括:步骤S201、采集待检测应用当前操作的操作记录。
需要说明的是,本发明实施例提供的Android应用安全检测方法的执行主体为客户端。
具体地,用户在使用待检测应用时,可以在待检测应用中完成相关操作。客户端可以采集待检测应用当前操作的操作记录。
客户端可以通过多种方式采集待检测应用当前操作的操作记录,例如:埋点采集等。
可以理解的是,用户在待测试应用中完成当前操作后,开始进行下一个操作,上述下一个操作即变为待测试应用的当前操作。因此,待测试应用的当前操作是不断变化的,客户端可以不断获取并发送待测试应用当前操作的操作记录。
应用服务器每接收到一条客户端发送的待检测应用当前操作的操作记录,将上述操作记录添加至操作记录表中。
操作记录可以包括但不限于:界面标识、操作名称、操作对象和操作时间等信息。
其中,界面标识,可以表示执行当前操作的界面。例如:界面标识可以是Activity的名称、Fragment的名称或任何唯一字符串。
操作名称,可以表示当前操作对应的控件的操作的名称。例如:操作名称可以是ClickButton、InputText、CheckRadio、ClickListItem、ScrollDow或ScrollUp等。
操作对象,指当前操作对应的控件的名称。例如:操作对象可以是控件RefreshControl、ToolBar或Slider等。
操作时间,指进行当前操作的时间。
步骤S202、将操作记录发送至应用服务器,以使得应用服务器接收操作记录,将操作记录添加至操作记录表中,根据操作记录表和预先获取的操作条件表进行安全检测。
其中,操作记录表,用于存储待检测应用历史操作的操作记录。操作条件表,包括待检测应用中所有合法操作的操作信息。
客户端每次采集待测试应用当前操作的操作记录后,将采集到的操作记录发送至应用服务器。
应用服务器每接收到一条客户端发送的待检测应用当前操作的操作记录,将上述操作记录添加至操作记录表中。
需要说明的是,操作记录表可以用于存储当前时刻之前某一时刻至当前时刻的时间段内,待检测应用历史操作的操作记录。并通过不断将客户端发送的当前操作的操作记录添加至操作记录表中,使得操作记录表的内容不断更新,以确保操作记录表中包括该时间段内所有已执行操作的操作记录。
应用服务器根据操作记录表中待检测应用所有已执行操作的操作记录和操作条件表中待检测应用所有合法操作的操作信息,可以判断是否存在攻击行为。
攻击行为可以包括但不限于模拟点击或Hook攻击。
具体地,模拟点击指通过模拟用户的点击操作使得应用中的界面非法切换。常见的模拟点击有:利用Accessibility、Auto.js或按键精灵等进行自动登录。
通常情况下,模拟点击造成的页面切换所需的时间,远小于用户正常操作造成的页面切换所需的时间。因此,根据页面切换时间的长度,可以判断待检测应用中的操作是否为模拟点击。页面切换的时间可以通过操作记录表获得。
Hook攻击指在应用中发起业务逻辑请求时,在应用正常情况应执行的代码前插入其它功能代码,使得应用在执行正常操作前执行其他非法操作,相当于业务逻辑请求对应的正常操作被替换为插入的其他功能代码对应的非法操作。常见的Hook攻击有:利用Xposed框架或Frida框架自动获取用户或应用数据(例如:个人登陆账号、密码或支付密码等)以及应用沙盒的完整数据,执行非法的自动化批量处理。
通常情况下,应用从未执行过插入的其它功能代码对应的非法操作。因此,可以通过操作条件表获知业务逻辑请求对应的操作。可以通过查找操作记录表获知业务逻辑请求对应的操作是否执行过,进而判断该业务逻辑请求是否为Hook攻击。
需要说明的是,待检测应用的合法操作,指待检测应用中每一界面中每一控件可以执行的所有操作。操作条件表中包括的待检测应用的每一合法操作具有唯一性。
待检测应用所有合法操作的操作信息,可以从不同维度描述合法操作。操作信息可以包括但不限于:操作代码、操作名称、操作对象和界面标识等信息。
具体地,操作代码,是合法操作的唯一标识,操作条件表包括的待检测应用的每一合法操作对应唯一的操作代码。
界面标识,可以表示执行合法操作的界面。例如:界面标识可以是Activity的名称、Fragment的名称或任何唯一字符串。
操作名称,可以表示合法操作对应的控件的操作的名称,操作条件表中不同合法操作的操作名称可以相同,例如:操作名称可以是ClickButton、InputText、CheckRadio、ClickListItem、ScrollDow或ScrollUp等。
操作对象,指合法操作对应的控件的名称,操作条件表中不同合法操作的操作对象可以相同,例如:操作对象可以是Refresh Control、ToolBar或Slider等。
需要说明的是,若检测到待检测应用中存在攻击行为,则客户端还可接收应用服务器发送的告警信息和告警日志。
本发明实施例通过采集待检测应用的当前操作后,将待检测应用的当前操作发送至应用服务器,以使得应用服务器接收操作记录,将操作记录添加至操作记录表中,根据操作记录表中待检测应用所有已执行操作的操作记录和操作条件表中待检测应用所有合法操作的操作信息,判断待检测应用是否存在攻击行为,能更准确、有效的检测到攻击行为,安全检测的步骤更简单,适应性更广。
下面对本发明提供的Android应用安全检测装置进行描述,下文描述的Android应用安全检测装置与上文描述的Android应用安全检测方法可相互对应参照。
图3是本发明提供的Android应用安全检测装置的结构示意图。下面结合图3描述本发明实施例的Android应用安全检测装置。如图3所示,该装置包括:记录模块301和检测模块302,其中:
记录模块301,用于接收客户端发送的待检测应用当前操作的操作记录,将操作记录添加至操作记录表中。
检测模块302,用于根据操作记录表和预先获取的操作条件表进行安全检测。
其中,操作记录表,用于存储待检测应用历史操作的操作信息;操作条件表,包括待检测应用所有合法操作的操作信息。
需要说明的是,本发明实施例的Android应用安全检测装置为上述任一实施例中的应用服务器。
具体地,记录模块301和检测模块302电连接。
记录模块301每接收到一条客户端发送的待检测应用当前操作的操作记录,将上述操作记录添加至操作记录表中。操作记录可以包括但不限于:界面标识、操作名称、操作对象和操作时间等信息。
检测模块302根据操作记录表中待检测应用所有已执行操作的操作记录和操作条件表中待检测应用所有合法操作的操作信息,可以判断待检测应用中是否存在攻击行为。
需要说明的是,本发明实施例的Android应用安全检测装置还可以包括告警模块。
告警模块,用于若检测到待检测应用中存在攻击行为,则向客户端发送告警信息,并生成告警日志。
具体地,告警模块与检测模块302电连接。
若检测到待检测应用的当前操作为模拟点击或若检测到待检测应用的当前业务逻辑请求为Hook攻击,告警模块可以向客户端发送告警信息,并根据告警信息生成告警日志,并定时将告警日志发送至客户端。
本发明实施例根据操作记录表中待检测应用所有已执行操作的操作记录和操作条件表中待检测应用所有合法操作的操作信息,判断待检测应用是否存在攻击行为,能更准确、有效的检测到攻击行为,安全检测的步骤更简单,适应性更广。
图4是本发明提供的Android应用安全检测装置的结构示意图。下面结合图4描述本发明实施例的Android应用安全检测装置。如图4所示,该装置包括:采集模块401和通信模块402,其中:
采集模块401,用于采集待检测应用当前操作的操作记录。
通信模块402,用于将操作记录发送至应用服务器,以使得应用服务器接收操作记录,将操作记录添加至操作记录表中,根据操作记录表和预先获取的操作条件表进行安全检测。
其中,操作记录表,用于存储待检测应用历史操作的操作记录。操作条件表,包括待检测应用中所有合法操作的操作信息。
需要说明的是,本发明实施例的Android应用安全检测装置为上述任一实施例中的客户端。
具体地,采集模块401和通信模块402电连接。
采集模块401可以采集待检测应用当前操作的操作记录。采集模块401可以通过多种方式采集待检测应用当前操作的操作记录,例如:埋点采集等。
通信模块402每次采集待测试应用当前操作的操作记录后,将采集到的操作记录发送至应用服务器。记录模块301每接收到一条客户端发送的待检测应用当前操作的操作记录,将上述操作记录添加至操作记录表中。检测模块302根据操作记录表中待检测应用所有已执行操作的操作记录和操作条件表中待检测应用所有合法操作的操作信息,可以判断是否存在攻击行为。
通信模块402还可以接收告警模块发送的告警信息和告警日志。
本发明实施例通过采集待检测应用的当前操作后,将待检测应用的当前操作发送至应用服务器,以使得应用服务器接收操作记录,将操作记录添加至操作记录表中,根据操作记录表中待检测应用所有已执行操作的操作记录和操作条件表中待检测应用所有合法操作的操作信息,判断待检测应用是否存在攻击行为,能更准确、有效的检测到攻击行为,安全检测的步骤更简单,适应性更广。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行Android应用安全检测方法,该方法包括:接收客户端发送的待检测应用当前操作的操作记录,将所述操作记录添加至操作记录表中;根据所述操作记录表和预先获取的操作条件表进行安全检测;其中,所述操作记录表,用于存储待检测应用历史操作的操作记录;所述操作条件表,包括待检测应用所有合法操作的操作信息;或者包括:采集待检测应用当前操作的操作记录;将操作记录发送至应用服务器,以使得应用服务器接收操作记录,将操作记录添加至操作记录表中,根据操作记录表和预先获取的操作条件表进行安全检测;其中,操作记录表,用于存储待检测应用历史操作的操作记录;操作条件表,包括待检测应用中所有合法操作的操作信息。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的Android应用安全检测方法,该方法包括:接收客户端发送的待检测应用当前操作的操作记录,将所述操作记录添加至操作记录表中;根据所述操作记录表和预先获取的操作条件表进行安全检测;其中,所述操作记录表,用于存储待检测应用历史操作的操作记录;所述操作条件表,包括待检测应用所有合法操作的操作信息;或者包括:采集待检测应用当前操作的操作记录;将操作记录发送至应用服务器,以使得应用服务器接收操作记录,将操作记录添加至操作记录表中,根据操作记录表和预先获取的操作条件表进行安全检测;其中,操作记录表,用于存储待检测应用历史操作的操作记录;操作条件表,包括待检测应用中所有合法操作的操作信息。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的Android应用安全检测方法,该方法包括:接收客户端发送的待检测应用当前操作的操作记录,将所述操作记录添加至操作记录表中;根据所述操作记录表和预先获取的操作条件表进行安全检测;其中,所述操作记录表,用于存储待检测应用历史操作的操作记录;所述操作条件表,包括待检测应用所有合法操作的操作信息;或者包括:采集待检测应用当前操作的操作记录;将操作记录发送至应用服务器,以使得应用服务器接收操作记录,将操作记录添加至操作记录表中,根据操作记录表和预先获取的操作条件表进行安全检测;其中,操作记录表,用于存储待检测应用历史操作的操作记录;操作条件表,包括待检测应用中所有合法操作的操作信息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种Android应用安全检测方法,其特征在于,包括:
接收客户端发送的待检测应用当前操作的操作记录,将所述操作记录添加至操作记录表中;
根据所述操作记录表和预先获取的操作条件表进行安全检测;
其中,所述操作记录表,用于存储待检测应用历史操作的操作记录;所述操作条件表,包括待检测应用所有合法操作的操作信息。
2.根据权利要求1所述的Android应用安全检测方法,其特征在于,所述根据所述操作记录表和预先获取的操作条件表进行安全检测,具体包括:
若根据所述操作条件表判断获知所述当前操作的前一操作允许界面切换,则根据所述操作记录表获取所述当前操作的前一操作与所述当前操作之间界面切换的时间;
若判断获知所述界面切换的时间小于预设的时长阈值,则确定所述当前操作为模拟点击。
3.根据权利要求1所述的Android应用安全检测方法,其特征在于,所述根据所述操作记录表和预先获取的操作条件表进行安全检测,具体包括:
接收所述待检测应用的当前业务逻辑请求;
根据所述操作条件表获取所述当前业务逻辑请求对应的操作;
若判断获知所述操作记录表中不存在所述当前业务逻辑请求对应的操作的操作记录,则确定所述当前业务逻辑请求为Hook攻击。
4.根据权利要求3所述的Android应用安全检测方法,其特征在于,所述根据所述操作条件表获取所述当前业务逻辑请求对应的操作之后,还包括:
若判断获知所述操作记录表中存在所述当前业务逻辑请求对应的操作的操作记录,则根据所述操作条件表,获取所述当前业务逻辑请求对应的操作的前置操作;
若判断获知所述操作记录表中不存在所述前置操作的操作记录,则确定所述当前业务逻辑请求为Hook攻击。
5.根据权利要求1至4任一所述的Android应用安全检测方法,其特征在于,所述根据所述操作记录表和预先获取的操作条件表进行安全检测之后,还包括:
若检测到所述待检测应用中存在攻击行为,则向客户端发送告警信息,并生成告警日志。
6.一种Android应用安全检测方法,其特征在于,包括:
采集待检测应用当前操作的操作记录;
将所述操作记录发送至应用服务器,以使得所述应用服务器接收所述操作记录,将所述操作记录添加至操作记录表中,根据所述操作记录表和预先获取的操作条件表进行安全检测;
其中,所述操作记录表,用于存储待检测应用历史操作的操作记录;所述操作条件表,包括待检测应用中所有合法操作的操作信息。
7.一种Android应用安全检测装置,其特征在于,包括:
记录模块,用于接收客户端发送的待检测应用当前操作的操作记录,将所述操作记录添加至操作记录表中;
检测模块,用于根据所述操作记录表和预先获取的操作条件表进行安全检测;
其中,所述操作记录表,用于存储待检测应用历史操作的操作信息;所述操作条件表,包括待检测应用所有合法操作的操作信息。
8.一种Android应用安全检测装置,其特征在于,包括:
采集模块,用于采集待检测应用当前操作的操作记录;
通信模块,用于将所述操作记录发送至应用服务器,以使得所述应用服务器接收所述操作记录,将所述操作记录添加至操作记录表中,根据所述操作记录表和预先获取的操作条件表进行安全检测;
其中,所述操作记录表,用于存储待检测应用历史操作的操作记录;所述操作条件表,包括待检测应用中所有合法操作的操作信息。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述Android应用安全检测方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述Android应用安全检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011267911.2A CN112380540A (zh) | 2020-11-13 | 2020-11-13 | Android应用安全检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011267911.2A CN112380540A (zh) | 2020-11-13 | 2020-11-13 | Android应用安全检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112380540A true CN112380540A (zh) | 2021-02-19 |
Family
ID=74583873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011267911.2A Pending CN112380540A (zh) | 2020-11-13 | 2020-11-13 | Android应用安全检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112380540A (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870572A (zh) * | 2014-03-18 | 2014-06-18 | 北京博雅立方科技有限公司 | 一种防御恶意点击广告页面的方法及装置 |
CN104361282A (zh) * | 2014-10-31 | 2015-02-18 | 中国联合网络通信集团有限公司 | 移动终端安全防护方法及装置 |
CN104426881A (zh) * | 2013-09-03 | 2015-03-18 | 深圳市腾讯计算机系统有限公司 | 一种检测恶意行为的方法及装置 |
CN105183873A (zh) * | 2015-09-18 | 2015-12-23 | 北京博雅立方科技有限公司 | 恶意点击行为检测方法及装置 |
CN106055215A (zh) * | 2016-05-26 | 2016-10-26 | 维沃移动通信有限公司 | 一种事件时间记录方法及移动终端 |
US20170220797A1 (en) * | 2014-11-20 | 2017-08-03 | Huawei Technologies Co., Ltd. | Malware Detection Method and Malware Detection Apparatus |
CN108306787A (zh) * | 2017-12-29 | 2018-07-20 | 重庆小雨点小额贷款有限公司 | 一种应用监测方法及相关设备 |
CN108665297A (zh) * | 2017-03-31 | 2018-10-16 | 北京京东尚科信息技术有限公司 | 异常访问行为的检测方法、装置、电子设备和存储介质 |
CN109726601A (zh) * | 2018-12-29 | 2019-05-07 | 360企业安全技术(珠海)有限公司 | 违规行为的识别方法及装置、存储介质、计算机设备 |
CN109753791A (zh) * | 2018-12-29 | 2019-05-14 | 北京奇虎科技有限公司 | 恶意程序检测方法及装置 |
CN110011997A (zh) * | 2019-03-28 | 2019-07-12 | 杭州数梦工场科技有限公司 | 入侵检测方法及装置和计算机可读存储介质 |
CN110737887A (zh) * | 2019-10-22 | 2020-01-31 | 厦门美图之家科技有限公司 | 恶意代码检测方法、装置、电子设备及存储介质 |
CN111095221A (zh) * | 2017-10-09 | 2020-05-01 | 华为技术有限公司 | 一种刷新显示异常处理的方法及终端 |
CN111898127A (zh) * | 2020-07-02 | 2020-11-06 | 中国科学院信息工程研究所 | 一种可抵抗基于flush操作的Spectre攻击的方法及系统 |
-
2020
- 2020-11-13 CN CN202011267911.2A patent/CN112380540A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104426881A (zh) * | 2013-09-03 | 2015-03-18 | 深圳市腾讯计算机系统有限公司 | 一种检测恶意行为的方法及装置 |
CN103870572A (zh) * | 2014-03-18 | 2014-06-18 | 北京博雅立方科技有限公司 | 一种防御恶意点击广告页面的方法及装置 |
CN104361282A (zh) * | 2014-10-31 | 2015-02-18 | 中国联合网络通信集团有限公司 | 移动终端安全防护方法及装置 |
US20170220797A1 (en) * | 2014-11-20 | 2017-08-03 | Huawei Technologies Co., Ltd. | Malware Detection Method and Malware Detection Apparatus |
CN105183873A (zh) * | 2015-09-18 | 2015-12-23 | 北京博雅立方科技有限公司 | 恶意点击行为检测方法及装置 |
CN106055215A (zh) * | 2016-05-26 | 2016-10-26 | 维沃移动通信有限公司 | 一种事件时间记录方法及移动终端 |
CN108665297A (zh) * | 2017-03-31 | 2018-10-16 | 北京京东尚科信息技术有限公司 | 异常访问行为的检测方法、装置、电子设备和存储介质 |
CN111095221A (zh) * | 2017-10-09 | 2020-05-01 | 华为技术有限公司 | 一种刷新显示异常处理的方法及终端 |
CN108306787A (zh) * | 2017-12-29 | 2018-07-20 | 重庆小雨点小额贷款有限公司 | 一种应用监测方法及相关设备 |
CN109753791A (zh) * | 2018-12-29 | 2019-05-14 | 北京奇虎科技有限公司 | 恶意程序检测方法及装置 |
CN109726601A (zh) * | 2018-12-29 | 2019-05-07 | 360企业安全技术(珠海)有限公司 | 违规行为的识别方法及装置、存储介质、计算机设备 |
CN110011997A (zh) * | 2019-03-28 | 2019-07-12 | 杭州数梦工场科技有限公司 | 入侵检测方法及装置和计算机可读存储介质 |
CN110737887A (zh) * | 2019-10-22 | 2020-01-31 | 厦门美图之家科技有限公司 | 恶意代码检测方法、装置、电子设备及存储介质 |
CN111898127A (zh) * | 2020-07-02 | 2020-11-06 | 中国科学院信息工程研究所 | 一种可抵抗基于flush操作的Spectre攻击的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109743315B (zh) | 针对网站的行为识别方法、装置、设备及可读存储介质 | |
CN107943949B (zh) | 一种确定网络爬虫的方法及服务器 | |
CN110888783B (zh) | 微服务系统的监测方法、装置以及电子设备 | |
CN111274583A (zh) | 一种大数据计算机网络安全防护装置及其控制方法 | |
CN109831504B (zh) | 微服务请求处理方法、装置及设备 | |
CN111178760B (zh) | 风险监测方法、装置、终端设备及计算机可读存储介质 | |
CN113489713B (zh) | 网络攻击的检测方法、装置、设备及存储介质 | |
CN109450955B (zh) | 一种基于网络攻击的流量处理方法及装置 | |
CN109885037B (zh) | 一种车辆诊断的方法及相关设备 | |
CN106874135B (zh) | 用于检测机房故障的方法、装置及设备 | |
CN109727027B (zh) | 账户识别方法、装置、设备及存储介质 | |
CN110457223B (zh) | 灰度测试引流方法、装置、代理服务器及可读存储介质 | |
CN110049028B (zh) | 监控域控管理员的方法、装置、计算机设备及存储介质 | |
CN110677384A (zh) | 钓鱼网站的检测方法及装置、存储介质、电子装置 | |
CN110619022B (zh) | 基于区块链网络的节点检测方法、装置、设备及存储介质 | |
CN113535823B (zh) | 异常访问行为检测方法、装置及电子设备 | |
CN108650123B (zh) | 故障信息记录方法、装置、设备和存储介质 | |
CN113386609A (zh) | 一种充电桩维护方法和相关设备 | |
CN109547427A (zh) | 黑名单用户识别方法、装置、计算机设备及存储介质 | |
CN113765850A (zh) | 物联网异常检测方法、装置、计算设备及计算机存储介质 | |
CN115348117B (zh) | 用户水平越权行为判定方法和装置 | |
CN111949363A (zh) | 业务访问的管理方法、计算机设备、存储介质及系统 | |
CN107633173B (zh) | 文件处理方法和装置 | |
CN109711166B (zh) | 漏洞检测方法及装置 | |
CN113923039B (zh) | 攻击设备识别方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |