CN117851988A - 应用安全加固方法、装置、设备及介质 - Google Patents
应用安全加固方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117851988A CN117851988A CN202211209317.7A CN202211209317A CN117851988A CN 117851988 A CN117851988 A CN 117851988A CN 202211209317 A CN202211209317 A CN 202211209317A CN 117851988 A CN117851988 A CN 117851988A
- Authority
- CN
- China
- Prior art keywords
- target
- debugging
- debug
- information
- preset
- 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
- 238000000034 method Methods 0.000 title claims abstract description 221
- 230000002787 reinforcement Effects 0.000 title claims abstract description 46
- 230000008569 process Effects 0.000 claims abstract description 158
- 230000006870 function Effects 0.000 claims description 123
- 230000026676 system process Effects 0.000 claims description 41
- 230000002159 abnormal effect Effects 0.000 claims description 28
- 230000000903 blocking effect Effects 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 15
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000012098 association analyses Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- 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/55—Detecting local intrusion or implementing counter-measures
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种应用安全加固方法、装置、设备及介质,可以应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。该方法包括在运行于终端上的应用程序中创建扩展信息类,扩展信息类是终端所搭载的操作系统提供的进程信息类的分类;在基于扩展信息类的对象确定对应用程序执行目标调试操作的情况下,捕获目标调试操作对应的调试参数信息;基于目标调试操作的目标进程的调试请求操作信息与应用程序对应的预设调试功能表,对目标调试操作执行安全控制,从而提高了针对应用程序的安全加固的可靠性,解决了现有加固方法对第三方应用的应用局限性。
Description
技术领域
本公开涉及计算机领域,尤其涉及一种应用安全加固方法、装置、设备及介质。
背景技术
苹果操作系统在进行了越狱之后,其自身所提供的安全防护机制无法发挥作用,第三方应用跑在越狱设备上存在被动态调试的风险,例如,攻击者会采用ptrace(一种调试追溯机制)来调试该操作系统上运行的第三方应用。
相关技术中,通过将ptrace对应的C函数进行挂钩,当攻击者调用自己的ptrace函数时会执行挂钩后的函数,从而导致攻击者自己的ptrace功能失效。然而,当第三方应用自身使用了ptrace功能来监测新增功能的调用次数时,通过该挂钩方法也会导致第三方应用的该ptrace功能失效,从而影响第三方应用的正常使用,进而存在一定的应用局限性。
发明内容
本公开提供了一种应用安全加固方法、装置、设备及介质,以解决现有技术中至少一种技术问题。
一方面,本公开提供了一种应用安全加固方法,包括:
在运行于终端上的应用程序中,创建扩展信息类的对象,所述扩展信息类是所述终端所搭载的操作系统提供的进程信息类的分类;
在基于所述扩展信息类的对象确定所述应用程序被执行目标调试操作的情况下,获得所述目标调试操作对应的调试参数信息;所述目标调试操作用于触发调用所述操作系统的目标调试函数,所述调试参数信息是基于所述目标调试函数对应的参数信息确定;
基于所述调试参数信息,在所述扩展信息类中创建系统进程信息对象;
调用所述系统进程信息对象,获取所述目标调试操作对应的目标进程的调试请求操作信息;
基于所述调试请求操作信息与所述应用程序对应的预设调试功能表,对所述目标调试操作执行安全控制。
另一方面还提供了一种应用安全加固装置,所述装置包括:
第一创建模块,用于在运行于终端上的应用程序中,创建扩展信息类的对象,所述扩展信息类是所述终端所搭载的操作系统提供的进程信息类的分类;
第一获取模块,用于在基于所述扩展信息类的对象确定所述应用程序被执行目标调试操作的情况下,获得所述目标调试操作对应的调试参数信息;所述目标调试操作用于触发调用所述操作系统的目标调试函数,所述调试参数信息是基于所述目标调试函数对应的参数信息确定;
第二创建模块,用于基于所述调试参数信息,在所述扩展信息类中创建系统进程信息对象;
第二获取模块,用于调用所述系统进程信息对象,获取所述目标调试操作对应的目标进程的调试请求操作信息;
安全控制模块,用于基于所述调试请求操作信息与所述应用程序对应的预设调试功能表,对所述目标调试操作执行安全控制。
另一方面还提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现上述任一所述的方法。
另一方面还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现上述任一所述的方法。
另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一所述的方法。
本公开提供的一种应用安全加固方法、装置、设备及介质,具有如下技术效果:
本公开实施例通过在运行于终端上的应用程序中,创建扩展信息类的对象,所述扩展信息类是所述终端所搭载的操作系统提供的进程信息类的分类;在基于所述扩展信息类的对象确定所述应用程序被执行目标调试操作的情况下,获得所述目标调试操作对应的调试参数信息;所述目标调试操作用于触发调用所述操作系统的目标调试函数,所述调试参数信息是基于所述目标调试函数对应的参数信息确定;基于所述调试参数信息,在所述扩展信息类中创建系统进程信息对象;调用所述系统进程信息对象,获取所述目标调试操作对应的目标进程的调试请求操作信息;基于所述调试请求操作信息与所述应用程序对应的预设调试功能表,对所述目标调试操作执行安全控制。从而对操作系统的进程信息类扩展分类,通过创建的扩展信息类能够有效监测到目标进程的状态变化,且通过预设调试功能表来辅助判断目标调试操作的合法性,提高了针对应用程序的安全加固的可靠性和应用安全性,解决了现有加固方法对第三方应用的应用局限性。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本公开实施例提供的一种应用安全加固方法的应用环境示意图;
图2是本公开实施例提供的一种应用安全加固方法的流程示意图;
图3是本公开实施例提供的一种应用安全加固方法的部分流程示意图;
图4是本公开实施例提供的一种应用安全加固方法的部分流程示意图;
图5是本公开实施例提供的一种应用安全加固方法的流程示意图;
图6是本公开实施例提供的一种应用安全加固方法的整体处理过程示意图;
图7是本公开实施例提供的一种应用安全加固方法的流程示意图;
图8是本公开实施例提供的一种针对request读取操作的安全控制流程图;
图9是本公开实施例提供的一种应用安全加固装置的结构框图;
图10是本公开提供的一种用于实现本公开实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
为了便于理解本公开实施例上述的技术方案及其产生的技术效果,针对本公开实施例中涉及的名词进行简单介绍:
动态调试:是指攻击者利用调试器监测目标程序运行,查看、修改内存代码和数据,分析业务逻辑,进行攻击和破解行为,导致敏感数据泄露,加密算法被破解,通讯协议被破解等风险。
ptrace:是Linux/Unix上的一种系统调用,可以用于调试追溯进程,读写指定进程的内存。ptrace提供一种机制使得父进程可以观察和控制其子进程执行过程,并允许父进程改变子进程中的寄存器和的内核镜像的值,用于实现断点调试和系统调用的追溯。ptrace函数的原型为:
int ptrace(int_request,pid_tpid,void*addr,void*data);
其中,参数request表示请求ptrace执行的操作;参数pid表示ptrace要控制的进程id;参数addr表示进程的某个地址空间,可以通过这个参数对进程的某个地址进行读或写操作;参数data表示根据不同的request,有不同的用途;参数addr和参数data都由参数request决定request要传递的地址和数据。
NSProcessInfo类:是由苹果公司开发的操作系统下的进程信息类,且用于获取当前进程的信息。其中,该由苹果公司开发的操作系统可以包括但不限于应用于移动终端的iOS系统、应用于Macintosh系列电脑上的macOS系统、应用于基于iOS的电视的tvOS系统、应用于Apple Watch的手表的watchOS系统等。
寄存器:是指CPU(中央处理器)内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。
云技术(Cloud technology):基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,能通过云计算来实现。
云安全(Cloud Security):是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
云安全主要研究方向包括:1、云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2、安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3、云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
本公开实施例提供的方案涉及云技术等技术,具体通过如下实施例进行说明。
本公开提供的应用安全加固方法可以应用于如图1所示的应用环境中。如图1所示,该硬件环境可以至少包括终端10和服务器20。
其中,终端10上安装了由苹果公司开发的操作系统,该操作系统包括但不限于iOS系统、macOS系统、tvOS系统、watchOS系统等。终端10上安装第三方应用程序,该第三方应用程序可以是各种客户端,例如用于实现视频、游戏、购物、教育、金融等功能的客户端。服务器20可以为该第三方应用程序的运行提供相应的后台服务。
上述终端10包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。
上述服务器20可以可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本公开在此不做限制。需要说明的是,上述服务器20可以实现为云端的云服务器。
在一些实施例中,上述服务器20还可以实现为区块链系统中的节点。区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
需要说明的是,在实际应用中,上述应用安全加固方法也可以在终端中实现,也可以在服务器中实现,或者由终端和服务器共同实现。
本公开实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
当然,本公开实施例提供的方法并不限用于图1所示的硬件环境中,还可以用于其它可能的硬件环境,本公开实施例并不进行限制。对于图1所示的硬件环境的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
图2是本公开实施例提供的一种应用安全加固方法的流程示意图。图6是本公开实施例提供的一种应用安全加固方法的整体处理过程示意图。本公开提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。该应用安全加固方法的执行主体可以是本公开实施例提供的应用安全加固装置,或者集成了该应用安全加固装置的电子设备,其中,该应用安全加固装置可以采用硬件或者软件的方式实现。以执行主体为上述图1中的终端为例进行说明,如图2和图6所示,该方法可以包括:
S201:在运行于终端上的应用程序中,创建扩展信息类的对象,扩展信息类是终端所搭载的操作系统提供的进程信息类的分类。
其中,这里的终端所搭载的操作系统是指苹果操作系统,应用程序是指运行在安装有该操作系统的终端上的第三方应用程序。该进程信息类(NSProcessInfo类)是由苹果操作系统提供的,且用于获取当前进程的信息。
可选地,可以通过在应用程序的运行阶段,通过实例化对象的方式创建扩展信息类(extended information类,简称extInfo类)的对象,并可以在创建的扩展信息类中增加获取命令行参数argc属性和参数的类型arType,其中,arType是数组类型。由于NSProcessInfo类的对象是一个单例对象,每个NSProcessInfo类只能构建一个对象,其仅能获取当前进程的数据信息。通过在应用程序中创建扩展信息类,该扩展信息类是NSProcessInfo类的分类,也即相当于给NSProcessInfo类增加一些函数或方法,来执行需求的业务逻辑。
S203:在基于所述扩展信息类的对象确定应用程序被执行目标调试操作的情况下,获得目标调试操作对应的调试参数信息。
其中,调试操作可以是通过调试工具来实现的,不同的调试工具所执行的调试操作不同。目标调试操作用于触发调用操作系统的目标调试函数,这里的目标调试操作是指采用ptrace来实现的调试操作。调试参数信息是基于目标调试函数对应的参数信息确定。
可选地,在确定对应用程序执行目标调试操作的情况下,也即确定触发调用了该操作系统的目标调试函数,这里的目标调试函数是指ptrace函数,即将开启一个新的进程。接着,根据该目标调试函数,获得目标调试操作对应的调试参数信息。示例性的,调试参数信息可以包括但不限于进程标识(进程ID)、进程地址(addr)、进程写入的数据(data)等。其中,data是一个void*类型的指针,可以作为进程运行后的返回值。
在一可选实施方式中,如图3所示,上述在基于所述扩展信息类的对象确定应用程序被执行目标调试操作的情况下,捕获目标调试操作对应的调试参数信息,包括:
S301:获取扩展信息类的对象中第一属性的属性值;第一属性用于指示获取对应用程序执行操作的命令行参数。
其中,该第一属性可以是扩展信息类中argc属性,通过该argc属性获取调试程序执行操作的命令行参数。
可选地,可以先获取操作系统提供的进程信息类的第二属性的属性值,该第二属性是用于操作系统获取调试程序执行操作的命令行参数,该第二属性与第一属性之间为继承关系,并将第二属性的属性值赋值给扩展信息类的对象的第一属性,即获得扩展信息类的对象中第一属性的属性值。示例性的,该第一属性的属性值可以为ptrace、peektext、getregs、singlestep等取值,其中,“ptrace”取值表示调用了系统的ptrace函数,“peektext”取值表示从内存中读取一个字节的数据,“getregs”取值表示读取寄存器中的取值,“singlestep”取值表示单步调试命令。
S303:若第一属性的属性值为预设值,确定应用程序被执行所述目标调试操作。
可选地,通过检测第一属性的属性值是否为预设值,来判断调试程序是否对应用程序执行目标调试操作。以预设值为ptrace为例,若该第一属性的属性值为ptrace,确定对应用程序执行目标调试操作,也表示调用了系统的ptrace函数,则即将开启一个新的进程,例如可以采用ptrace函数将应用程序运行的被调试进程fork出一个新的进程,为了区分,将这个新的进程称为目标进程。待运行应用程序后,该目标进程会优先获取应用程序的被调试进程所收到的信号。若该第一属性的属性值为peektext、getregs或singlestep等其他取值,而不是该预设值(ptrace),确定没有对应用程序执行目标调试操作,也即该调试操作不是针对ptrace系统调用功能的调试操作,无需执行后面的应用安全加固步骤。
S305:捕获目标调试操作对应的目标调试函数的函数参数,并基于函数参数确定调试参数信息。
可选地,在确定对应用程序执行目标调试操作的情况下,即确定触发调用了该操作系统的目标调试函数,这里的目标调试函数是指ptrace函数,即将开启一个新的进程。可以对所调用的目标调试函数的函数参数进行捕获,通过该目标调试函数的函数参数中的第二个参数,确定当前需要安全防护的是哪个被调试进程;然后,可以采用ptrace函数将应用程序运行的被调试进程fork(复刻)出一个新的进程,为了区分,将这个新的进程称为目标进程,并通过fork标记获得该目标进程对应的调试参数信息。示例性的,调试参数信息可以包括但不限于进程标识(进程ID)、进程地址(addr)、进程写入的数据(data)等。
上述实施例,通过在扩展信息类增加用于获取命令行参数的第一属性,并根据操作系统提供的进程信息类的第二属性来确定第一属性的属性值,且在该第一属性的属性值为预设值时,确定应用程序被执行目标调试操作,简化了属性值和目标调试操作的获取过程。同时,通过捕获目标调试操作对应的目标调试函数的函数参数,并基于该函数参数能够快速获取对应的调试参数信息,提高对应用程序的安全加固效率。
在一可选实施方式中,在判断是否对应用程序执行目标调试操作步骤之前,还可以检测应用程序自身是否开启ptrace功能,若检测到应用程序开启ptrace功能,则执行判断是否对应用程序执行目标调试操作的步骤以及后续步骤,否则,除了可以执行该后续步骤之外,还可以调用其他反调试方法来阻断非法调试。本公开实施例在应用程序自身开启ptrace功能时,不仅能够有效阻断攻击者的非法ptrace功能,仍能保障应用程序自身的ptrace功能不失效,适用范围更大。
S205:基于调试参数信息,在扩展信息类中创建系统进程信息对象。
其中,系统进程信息对象是扩展信息类的实例化对象。
可选地,在调试参数信息包括目标进程的进程标识的情况下,基于调试参数信息,在扩展信息类中创建系统进程信息对象,包括:基于目标进程的进程标识,在扩展信息类中创建系统进程信息对象。
具体地,基于目标进程的进程标识,通过实例化的方式在扩展信息类中创建系统进程信息对象(ProcessInfo对象)。此时,目标进程的进程状态为新建状态,该新建状态表示系统为创建的目标进程分配资源。通过创建的系统进程信息对象可以获取目标进程的进程信息,以对该目标进程进程监测。
S207:调用系统进程信息对象,获取目标调试操作对应的目标进程的调试请求操作信息。
其中,目标调试操作的目标进程是指采用ptrace函数将应用程序运行的被调试进程fork出的虚拟进程。调试请求操作信息是指调试过程中的针对request进程的request操作信息。
可选地,调用系统进程信息对象监测执行目标调试操作的调试进程,在监测到调试进程满足预设条件的情况下,获取调试进程的调试请求操作信息。
在一可选实施方式中,上述调用系统进程信息对象,获取目标调试操作对应的目标进程的调试请求操作信息,包括:获取执行目标调试操作对应的目标进程的进程对象;调用系统进程信息对象,监测进程对象的进程状态;若监测到进程状态指示为就绪状态,获取目标进程的调试请求操作信息。
可选地,通过基于目标进程的地址参数,确定执行目标调试操作对应的目标进程的进程对象;并调用系统进程信息对象,监测该进程对象的进程状态,该进程对象的进程状态至少可以包括新建状态和就绪状态等,若进程状态仍为新建状态表示目标进程还未创建完成,若进程状态调整为就绪状态表示目标进程创建完成,等待CPU调度。若监测到进程状态指示为就绪状态,获取目标进程的request操作信息。
上述实施例,通过调用系统进程信息对象,监测目标进程的进程对象的进程状态,并在该进程状态指示为就绪状态,获取目标进程的调试请求操作信息,能够及时响应目标进程的操作情况,提高应用安全加固的及时性和可控性。
此外,在对象创建过程中,可以约束系统进程信息对象与目标进程标识之间、以及系统进程信息对象与目标进程对应的进程对象之间的关系,以建立系统进程信息对象与目标进程标识之间的关系为强引用关系,系统进程信息对象与目标进程对应的进程对象之间的关系为弱引用关系,通过该弱引用关系并结合强引用关系,进一步增强对系统进程信息对象的检测,提高应用加固的及时性和可控性。
S209:基于调试请求操作信息与应用程序对应的预设调试功能表,对目标调试操作执行安全控制。
其中,预设调试功能表中记录可允许的request操作行为,示例性的,request操作行为可以包括从内存地址中读写字节、读取寄存器、设置寄存器、检测pid进程等。
在一可选实施方式中,如图4所示,在基于调试请求操作信息与应用程序对应的预设调试功能表,对目标调试操作执行安全控制之前,方法还包括:
S401:获取应用程序对应的预设调试功能表;预设调试功能表存储至少一个预设请求值与对应的预设执行操作的对应关系。
可选地,可以事先配置一个预设调试功能表,该预设调试功能表存储至少一个预设请求值(预设request值)与对应的预设执行操作(预设request操作行为)的对应关系。该预设调试功能表可以是表格、代码等格式。每个应用程序可以有自定义的预设调试功能表,且同一应用程序在不同的运行阶段也可以有不同的预设调试功能表。接着,将配置后的预设调试功能表存储在应用程序中,以便在需要时从应用程序中的目标位置获取该预设调试功能表。
在一可选实施方式中,继续如图4所示,上述基于调试请求操作信息与应用程序对应的预设调试功能表,对目标调试操作执行安全控制,包括:
S403:基于调试请求操作信息对应的请求代码段,生成调试请求操作信息对应的调试请求值。
可选地,获取调试请求操作信息对应的请求代码段,该请求代码段可以是非法调试或调用的第三方应用对应的。通过解析该请求代码段,生成调试请求操作信息对应的调试请求值(即request值)。
S405:比较调试请求值与预设调试功能表中各预设请求值。
可选地,通过查询预设调试功能表,比较调试请求值与预设调试功能表中各预设请求值是否相同,得到对应的比较结果。
S407:基于比较结果,对目标调试操作执行安全控制。
可选地,不同的比较结果对应不同的安全控制策略。该安全控制策略可以包括但不限于阻断、中止、执行其他操作等。例如,若调试请求值与预设调试功能表中各预设请求值均不相同,确定比较结果指示调试请求操作信息与应用程序对应的预设调试功能表不匹配,对该目标调试操作执行阻断控制。若调试请求值与预设调试功能表中任一预设请求值相同,确定比较结果指示调试请求操作信息与应用程序对应的预设调试功能表匹配,对该目标调试操作执行寄存器控制操作。
上述实施例,通过预先获取预设调试功能表并存储在应用程序中,减少预设调试功能表对外暴露的机会;同时,通过比较预设调试功能表与调试请求操作信息对应的调试请求值,并基于比较结果来对目标调试操作执行安全控制,提高了针对应用程序的安全控制的灵活性和可靠性。
在一可选实施方式中,如图5所示,基于调试请求操作信息与应用程序对应的预设调试功能表,对目标调试操作执行安全控制,包括:
S501:若确定调试请求操作信息与应用程序对应的预设调试功能表不匹配,确定目标调试操作为异常调试操作。
可选地,在比较调试请求值与预设调试功能表中各预设请求值之后,若比较结果指示预设调试功能表中不存在一个预设请求值与该调试请求值相同,则确定调试请求操作信息与应用程序对应的预设调试功能表不匹配,确定目标调试操作为异常调试操作。
示例性的,若预设调试功能表中配置了内存流事件回调完成、内存流读取从服务器接收到字节时发送、内存流事件发生错误这三个功能,当调试请求操作信息的request取值与这三个取值均不同时,则确定目标调试操作为异常调试操作,也即表示当前调试为异常调试。
S503:对异常调试操作对应的目标进程进行阻断控制。
可选地,在确定目标调试操作为异常调试操作时,在ProcessInfo对象中将该异常调试操作对应的request操作进行舍弃,即对该异常调试操作对应的目标进程进行阻断控制,从而快速阻断异常调试操作的后续调试行为。
在一可选实施方式中,继续如图5所示,基于调试请求操作信息与应用程序对应的预设调试功能表,对目标调试操作执行安全控制,包括:
S501’:若确定调试请求操作信息对应的调试请求值与预设调试功能表中目标请求值相匹配,将获取的目标请求值对应的预设执行操作,作为调试请求操作信息对应的目标请求操作。
可选地,在比较调试请求值与预设调试功能表中各预设请求值之后,若比较结果指示预设调试功能表中目标预设请求值与该调试请求值相同,则确定调试请求操作信息与应用程序对应的预设调试功能表不匹配,获取目标请求值对应的预设执行操作。
示例性的,若预设调试功能表中配置了内存流事件回调完成、内存流读取从服务器接收到字节时发送、内存流事件发生错误这三个功能,当调试请求操作信息的request取值与这三个取值中任一取值相同时,则确定调试请求操作信息与应用程序对应的预设调试功能表不匹配。在确定相匹配的情况下,基于预设请求值与对应的预设执行操作的对应关系,获得与目标请求值对应的预设执行操作,并将获取的预设执行操作,作为调试请求操作信息对应的目标请求操作。
S503’:对目标请求操作执行安全控制。
可选地,对该目标请求操作执行安全控制,也即在确定调试请求操作信息与应用程序对应的预设调试功能表相匹配,确定调试请求操作信息对应的目标请求操作之后,进一步判断该目标请求操作的调试合法性。示例性的,在确定目标请求操作为攻击方的异常请求操作,对该目标请求操作进行异常阻断操作,以实现应用安全加固;在确定目标请求操作为非异常请求操作,可以继续执行该目标请求操作。
上述实施例,若确定所述调试请求操作信息与所述预设调试功能表不匹配,确定所述目标调试操作为异常调试操作,并对其执行阻断控制;若确定为匹配,对获取调试请求操作信息对应的目标请求操作执行下一级安全控制,以进一步判断该目标请求操作的调试合法性。如此,通过设置二级安全控制,提高对针对应用程序的安全控制的可靠性和应用安全性。
上述实施例,通过对操作系统的进程信息类扩展分类,并根据创建的扩展信息类能够有效监测到目标进程的状态变化,且通过预设调试功能表来辅助判断目标调试操作的合法性,过滤非法的request访问操作,提高了应用安全加固的可靠性和应用安全性,解决了现有加固方法对第三方应用的应用局限性。
在一可选实施方式中,如图7所示,在目标请求操作用于指示针对应用程序的内存数据的变化的情况下,对目标请求操作执行安全控制包括:
S701:将目标请求操作转换为汇编指令。
在目标请求操作指示request操作时,通常request操作包括针对字节、寄存器的读取操作,以及写入字节和设置寄存器等写操作,且仅在读写操作时才会产生内存数据的变化。由于CPU的寄存器的存取速度比存储器要快,因此产生内存数据时一般都由寄存器进行运算。request操作时,将操作数据进行汇编指令操作(例如包括ADD、ADC、SUB、SBB、MUL、IMUL、DIV、IDIV以及MOV等)时会产生对寄存器存储的影响。
S703:根据汇编指令所指向的寄存器的类型,对对应的寄存器进行寄存器控制操作,并基于操作后的寄存器执行汇编指令对应的汇编操作。
可选地,在将目标请求操作转换为汇编指令之后,可以根据该汇编指令所指向的寄存器的类型,对对应的寄存器进行寄存器控制操作,并基于操作后的寄存器执行汇编指令对应的汇编操作。该寄存器控制操作用于阻断异常调试操作,也即对寄存器的运算过程执行特殊处理,以增加异常调试操作的调试难度,从而实现对目标请求操作执行安全控制。
通过对寄存器控制操作可以将攻击者和研发人员本身的调试进行区分,基于汇编操作结果,确定目标请求操作对应的目标调试操作是否为异常调试操作。例如,若汇编操作结果指示应用崩溃,则确定目标请求操作对应的目标调试操作为异常调试操作,也即该异常调试操作是针对攻击者的调试操作,则通过该寄存器控制操作可以阻断该攻击者的调试对应的汇编操作,实现应用安全加固。若汇编操作结果指示正常,则确定目标请求操作对应的目标调试操作为正常调试操作,也即该正常调试操作是针对开发人员的调试操作。
针对研发人员调试对应的目标请求操作,则研发人员可以将寄存器控制操作进行复原,通过复原后的寄存器对执行相应的调试,不会阻断研发人员的调试。
可选地,在确定目标请求操作用于指示针对应用程序的内存数据的变化的情况下,可以目标请求操作执行异常阻断操作。而在确定目标请求操作不是用于指示针对应用程序的内存数据的变化的情况下,可以继续执行该目标请求操作对应的进程。
示例性的,寄存器的类型可以包括通用寄存器和段寄存器。
在一可选实施方式中,如图8所示,根据汇编指令所指向的寄存器的类型,对对应的寄存器进行寄存器控制操作,并基于操作后的寄存器执行汇编指令对应的汇编操作,包括:
若汇编指令指向通用寄存器,调用堆栈指针寄存器,基于预设调试偏移策略将汇编指令对应的堆栈地址进行数据偏移调整,得到偏移堆栈地址;
基于偏移堆栈地址,执行汇编指令对应的汇编操作。
可选地,若汇编指令指向通用寄存器,在通用寄存器接收到操作指令时,调用SP(堆栈指针寄存器),按照预设调试偏移策略将将汇编指令对应的堆栈地址进行数据偏移调整,例如将当前堆栈地址进行数据偏移n位,得到偏移堆栈地址;然后,再基于偏移堆栈地址进行正常的汇编操作。该预设调试偏移策略至少用于指示堆栈地址的偏移量。
在汇编操作的执行过程中,若目标进程对应的调试操作为正常调试时,该汇编操作包括根据预设调试偏移策略对偏移堆栈地址进行复原,并基于复原后的偏移堆栈地址,执行汇编指令对应的汇编操作。例如,对于开发人员的调试,先基于预设调试偏移策略将SP的偏移复原之后,再基于复原后的偏移堆栈地址,执行汇编指令对应的汇编操作,从而不影响正常运行。而对于攻击方的调试,由于攻击者无法知道或无法获得该预设调试偏移策略,无法进行地址偏移复原,而是在其request操作对寄存器中内存数据进行相关操作时,通用寄存器收到指令,由于SP将内存数据偏移了n位,在数据进行读取时,组装时会发生坏内存的访问,而产生EXC_BAD_ACCESS的崩溃错误,从而阻止攻击者的异常调试。
在另一可选实施方式中,继续如图8所示,根据汇编指令所指向的寄存器的类型,对对应的寄存器进行寄存器控制操作,并基于操作后的寄存器执行汇编指令对应的汇编操作,包括:
若汇编指令指向代码段寄存器,将汇编指令对应的逻辑地址转换为第一基地址;
基于第一基地址和预设段内偏移量,构建线性地址,线性地址用于指向指针;
基于线性地址,执行汇编指令对应的汇编操作。
可选地,若汇编指令指向代码段寄存器,在段寄存器接收指令时,确定操作的数据是代码段还是数据段,如果是代码段,则通过代码段(CS)寄存器将逻辑地址先转换为第一基地址,并获取预设段内偏移量,基于第一基地址和预设段内偏移量构成最终的线性地址,在基地址前用IP指针记录该预设段内偏移量。
在汇编操作的执行过程中,若调试进程对应的调试操作为正常调试时,汇编操作包括基于预设存储位置从指针中获取预设段内偏移量,并基于预设段内偏移量对线性地址进行转换,以及基于转换后的线性地址,执行汇编指令对应的汇编操作。例如,对于开发人员的调试,先基于预设存储位置从指针中获取预设段内偏移量,利用该预设段内偏移量对CS寄存器的线性地址进行转换之后,再基于转换后的线性地址,执行汇编指令对应的汇编操作,从而不影响正常运行。而对于攻击方的调试,其CS寄存器的线性地址仅被保存在IP指针,因此产生代码调试时,攻击者访问不到实际的物理地址,进而产生调试错误,从而阻止攻击者的异常调试。
在另一可选实施方式中,继续如图8所示,根据汇编指令所指向的寄存器的类型,对对应的寄存器进行寄存器控制操作,并基于操作后的寄存器执行汇编指令对应的汇编操作,包括:
若汇编指令指向数据段寄存器,基于预设调试分段策略将数据段寄存器进行分段,获得多个数据段地址;
基于多个数据段地址生成第二基地址,将数据段寄存器指向第二基地址;
基于第二基地址,执行汇编指令对应的汇编操作。
可选地,当段寄存器接收指令后,确定操作的数据是代码段还是数据段,如果是数据段,不管数据段是否超过了64kb,先定义多个数据段地址,用数据段(DS)寄存器指向第二基地址,以基于第二基地址,执行汇编指令对应的汇编操作。
在汇编操作的执行过程中,若调试进程对应的调试操作为正常调试时,汇编操作包括根据预设调试分段策略,从第二基地址确定汇编指令对应的目标堆栈地址,并基于目标堆栈地址,执行汇编指令对应的汇编操作。例如,对于开发人员的调试,先基于预设调试分段策略,从第二基地址确定汇编指令对应的目标堆栈地址,并基于目标堆栈地址,执行汇编指令对应的汇编操作,从而不影响正常运行。而对于攻击方的调试,由于攻击者无法获得该预设调试分段策略,无法确定对应的内存地址,进而产生调试错误,从而阻止攻击者的异常调试。
上述实施例,通过对于request操作采用寄存器控制操作的方式,通过对通用寄存器所指向的内存偏移操作和段寄存器进行的分段操作,能够有效防止攻击者对内存的非法访问操作,提高应用程序安全,进一步提高应用安全加固的可靠性和应用安全性。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
请参考图9,其示出了本公开实施例提供的一种应用安全加固装置的结构框图。该装置具有实现上述方法示例中的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。所述应用安全加固装置可以包括:
第一创建模块910,用于在运行于终端上的应用程序中,创建扩展信息类的对象,所述扩展信息类是所述终端所搭载的操作系统提供的进程信息类的分类;
第一获取模块920,用于在基于所述扩展信息类的对象确定所述应用程序被执行目标调试操作的情况下,获得所述目标调试操作对应的调试参数信息;所述目标调试操作用于触发调用所述操作系统的目标调试函数,所述调试参数信息是基于所述目标调试函数对应的参数信息确定;
第二创建模块930,用于基于所述调试参数信息,在所述扩展信息类中创建系统进程信息对象;
第二获取模块940,用于调用所述系统进程信息对象,获取所述目标调试操作对应的目标进程的调试请求操作信息;
安全控制模块950,用于基于所述调试请求操作信息与所述应用程序对应的预设调试功能表,对所述目标调试操作执行安全控制。
在一可选实施方式中,第一获取模块920具体用于:
获取所述扩展信息类的对象中第一属性的属性值;所述第一属性用于指示获取对所述应用程序执行操作的命令行参数;
若所述第一属性的属性值为预设值,确定所述应用程序被执行所述目标调试操作;
捕获所述目标调试操作对应的所述目标调试函数的函数参数,并基于所述函数参数确定所述调试参数信息。
在一可选实施方式中,所述调试参数信息包括所述目标进程的进程标识。
第二创建模块930具体用于:
基于所述目标进程的进程标识,在所述扩展信息类中创建所述系统进程信息对象,所述系统进程信息对象用于监测所述目标进程。
在一可选实施方式中,第二获取模块940具体用于:
获取执行所述目标调试操作对应的所述目标进程的进程对象;
调用所述系统进程信息对象,监测所述进程对象的进程状态;
若监测到所述进程状态指示为就绪状态,获取所述目标进程的调试请求操作信息;
其中,所述系统进程信息对象与所述目标进程标识之间的关系为强引用关系,所述系统进程信息对象与所述进程对象之间的关系为弱引用关系。
在一可选实施方式中,装置还包括:
第三获取模块,用于获取所述应用程序对应的预设调试功能表;所述预设调试功能表存储至少一个预设请求值与对应的预设执行操作的对应关系。
在一可选实施方式中,安全控制模块950具体用于:
基于所述调试请求操作信息对应的请求代码段,生成所述调试请求操作信息对应的调试请求值;
比较所述调试请求值与所述预设调试功能表中各所述预设请求值;
基于所述比较结果,对所述目标调试操作执行安全控制。
在一可选实施方式中,安全控制模块950包括:
第一确定子模块,用于若确定所述调试请求操作信息与所述预设调试功能表不匹配,确定所述目标调试操作为异常调试操作;
第一安全控制子模块,用于对所述异常调试操作对应的目标进程进行阻断控制。
在一可选实施方式中,安全控制模块950包括:
第二确定子模块,用于若确定所述调试请求操作信息对应的调试请求值与所述预设调试功能表中目标请求值相匹配,将获取的所述目标请求值对应的预设执行操作,作为所述调试请求操作信息对应的目标请求操作;
第二安全控制子模块,用于对所述目标请求操作执行安全控制。
在一可选实施方式中,在所述目标请求操作用于指示针对所述应用程序的内存数据的变化的情况下,第二安全控制子模块包括:
指令转换单元,用于将所述目标请求操作转换为汇编指令;
安全控制单元,用于根据所述汇编指令所指向的寄存器的类型,对对应的所述寄存器进行寄存器控制操作,并基于操作后的寄存器执行所述汇编指令对应的汇编操作;所述寄存器控制操作用于阻断异常调试操作。
在一可选实施方式中,所述安全控制单元具体用于:
若所述汇编指令指向通用寄存器,调用堆栈指针寄存器,基于预设调试偏移策略将所述汇编指令对应的堆栈地址进行数据偏移调整,得到偏移堆栈地址;
基于所述偏移堆栈地址,执行所述汇编指令对应的汇编操作;
或者,
若所述汇编指令指向代码段寄存器,将所述汇编指令对应的逻辑地址转换为第一基地址;
基于所述第一基地址和预设段内偏移量,构建线性地址,所述线性地址用于指向指针;
基于所述线性地址,执行所述汇编指令对应的汇编操作;
或者,
若所述汇编指令指向数据段寄存器,基于预设调试分段策略将所述数据段寄存器进行分段,获得多个数据段地址;
基于多个所述数据段地址生成第二基地址,将所述数据段寄存器指向所述第二基地址;
基于所述第二基地址,执行所述汇编指令对应的汇编操作。
上述实施例中提供的装置可执行本公开实施例中的对应方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的方法。
本公开实施例提供了一种计算机设备,该设备可以包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例任一所述的方法。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行上述方法实施例任一所述的方法。
本公开实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本实施例上述任一方法。
进一步地,图10示出了一种用于实现本公开实施例所提供的方法的设备的硬件结构示意图,所述设备可以为计算机终端、移动终端或其它设备,所述设备还可以参与构成或包含本公开实施例所提供的装置。如图10所示,计算机终端11可以包括一个或多个(图中采用112a、112b,……,112n来示出)处理器112(处理器112可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器114、以及用于通信功能的传输装置116。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端11还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。
应当注意到的是上述一个或多个处理器112和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端11(或移动设备)中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器114可用于存储应用软件的软件程序以及模块,如本公开实施例中所述的方法对应的程序指令/数据存储装置,处理器112通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种神经网络处理方法。存储器114可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器114可进一步包括相对于处理器112远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端11。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置116用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端11的通信供应商提供的无线网络。在一个实例中,传输装置116包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置116可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端11(或移动设备)的用户界面进行交互。
需要说明的是:上述本公开实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (12)
1.一种应用安全加固方法,其特征在于,包括:
在运行于终端上的应用程序中,创建扩展信息类的对象,所述扩展信息类是所述终端所搭载的操作系统提供的进程信息类的分类;
在基于所述扩展信息类的对象确定所述应用程序被执行目标调试操作的情况下,获得所述目标调试操作对应的调试参数信息;所述目标调试操作用于触发调用所述操作系统的目标调试函数,所述调试参数信息是基于所述目标调试函数对应的参数信息确定;
基于所述调试参数信息,在所述扩展信息类中创建系统进程信息对象;
调用所述系统进程信息对象,获取所述目标调试操作对应的目标进程的调试请求操作信息;
基于所述调试请求操作信息与所述应用程序对应的预设调试功能表,对所述目标调试操作执行安全控制。
2.根据权利要求1所述的方法,其特征在于,所述在基于所述扩展信息类的对象确定所述应用程序被执行目标调试操作的情况下,获得所述目标调试操作对应的调试参数信息,包括:
获取所述扩展信息类的对象中第一属性的属性值;所述第一属性用于指示获取对所述应用程序执行操作的命令行参数;
若所述第一属性的属性值为预设值,确定所述应用程序被执行所述目标调试操作;
捕获所述目标调试操作对应的所述目标调试函数的函数参数,并基于所述函数参数确定所述调试参数信息。
3.根据权利要求1所述的方法,其特征在于,所述调试参数信息包括所述目标进程的进程标识;所述基于所述调试参数信息,在所述扩展信息类中创建系统进程信息对象,包括:
基于所述目标进程的进程标识,在所述扩展信息类中创建所述系统进程信息对象,所述系统进程信息对象用于监测所述目标进程。
4.根据权利要求3所述的方法,其特征在于,所述调用所述系统进程信息对象,获取执行所述目标调试操作对应的目标进程的调试请求操作信息,包括:
获取执行所述目标调试操作对应的所述目标进程的进程对象;
调用所述系统进程信息对象,监测所述进程对象的进程状态;
若监测到所述进程状态指示为就绪状态,获取所述目标进程的调试请求操作信息;
其中,所述系统进程信息对象与所述目标进程标识之间的关系为强引用关系,所述系统进程信息对象与所述进程对象之间的关系为弱引用关系。
5.根据权利要求1所述的方法,其特征在于,在所述基于所述调试请求操作信息与所述应用程序对应的预设调试功能表,对所述目标调试操作执行安全控制之前,所述方法还包括:
获取所述应用程序对应的预设调试功能表;所述预设调试功能表存储至少一个预设请求值与对应的预设执行操作的对应关系;
所述基于所述调试请求操作信息与所述应用程序对应的预设调试功能表,对所述目标调试操作执行安全控制,包括:
基于所述调试请求操作信息对应的请求代码段,生成所述调试请求操作信息对应的调试请求值;
比较所述调试请求值与所述预设调试功能表中各所述预设请求值;
基于所述比较结果,对所述目标调试操作执行安全控制。
6.根据权利要求1-5任一所述的方法,其特征在于,所述基于所述调试请求操作信息与所述应用程序对应的预设调试功能表,对所述目标调试操作执行安全控制,包括:
若确定所述调试请求操作信息与所述预设调试功能表不匹配,确定所述目标调试操作为异常调试操作;
对所述异常调试操作对应的目标进程进行阻断控制。
7.根据权利要求1-5任一所述的方法,其特征在于,所述基于所述调试请求操作信息与所述应用程序对应的预设调试功能表,对所述目标调试操作执行安全控制,包括:
若确定所述调试请求操作信息对应的调试请求值与所述预设调试功能表中目标请求值相匹配,将获取的所述目标请求值对应的预设执行操作,作为所述调试请求操作信息对应的目标请求操作;
对所述目标请求操作执行安全控制。
8.根据权利要求7所述的方法,其特征在于,在所述目标请求操作用于指示针对所述应用程序的内存数据的变化的情况下,所述对所述目标请求操作执行安全控制,包括:
将所述目标请求操作转换为汇编指令;
根据所述汇编指令所指向的寄存器的类型,对对应的所述寄存器进行寄存器控制操作,并基于操作后的寄存器执行所述汇编指令对应的汇编操作;所述寄存器控制操作用于阻断异常调试操作。
9.根据权利要求8所述的方法,其特征在于,所述根据所述汇编指令所指向的寄存器的类型,对对应的所述寄存器进行寄存器控制操作,并基于操作后的寄存器执行所述汇编指令对应的汇编操作,包括:
若所述汇编指令指向通用寄存器,调用堆栈指针寄存器,基于预设调试偏移策略将所述汇编指令对应的堆栈地址进行数据偏移调整,得到偏移堆栈地址;
基于所述偏移堆栈地址,执行所述汇编指令对应的汇编操作;
或者,
若所述汇编指令指向代码段寄存器,将所述汇编指令对应的逻辑地址转换为第一基地址;
基于所述第一基地址和预设段内偏移量,构建线性地址,所述线性地址用于指向指针;
基于所述线性地址,执行所述汇编指令对应的汇编操作;
或者,
若所述汇编指令指向数据段寄存器,基于预设调试分段策略将所述数据段寄存器进行分段,获得多个数据段地址;
基于多个所述数据段地址生成第二基地址,将所述数据段寄存器指向所述第二基地址;
基于所述第二基地址,执行所述汇编指令对应的汇编操作。
10.一种应用安全加固装置,其特征在于,所述装置包括:
第一创建模块,用于在运行于终端上的应用程序中,创建扩展信息类的对象,所述扩展信息类是所述终端所搭载的操作系统提供的进程信息类的分类;
第一获取模块,用于在基于所述扩展信息类的对象确定所述应用程序被执行目标调试操作的情况下,获得所述目标调试操作对应的调试参数信息;所述目标调试操作用于触发调用所述操作系统的目标调试函数,所述调试参数信息是基于所述目标调试函数对应的参数信息确定;
第二创建模块,用于基于所述调试参数信息,在所述扩展信息类中创建系统进程信息对象;
第二获取模块,用于调用所述系统进程信息对象,获取所述目标调试操作对应的目标进程的调试请求操作信息;
安全控制模块,用于基于所述调试请求操作信息与所述应用程序对应的预设调试功能表,对所述目标调试操作执行安全控制。
11.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-9任一项所述的应用安全加固方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如如权利要求1-9任一项所述的应用安全加固方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211209317.7A CN117851988A (zh) | 2022-09-30 | 2022-09-30 | 应用安全加固方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211209317.7A CN117851988A (zh) | 2022-09-30 | 2022-09-30 | 应用安全加固方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117851988A true CN117851988A (zh) | 2024-04-09 |
Family
ID=90542535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211209317.7A Pending CN117851988A (zh) | 2022-09-30 | 2022-09-30 | 应用安全加固方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117851988A (zh) |
-
2022
- 2022-09-30 CN CN202211209317.7A patent/CN117851988A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102419574B1 (ko) | 컴퓨터 애플리케이션에서 메모리 손상을 교정하기 위한 시스템 및 방법 | |
Wang et al. | Malicious firmware detection with hardware performance counters | |
CN111008379A (zh) | 电子设备的固件安全检测方法及相关设备 | |
US11184373B2 (en) | Cryptojacking detection | |
CN100492300C (zh) | 在微处理器实现的设备上执行进程的系统和方法 | |
EP3270317B1 (en) | Dynamic security module server device and operating method thereof | |
US11055416B2 (en) | Detecting vulnerabilities in applications during execution | |
US10049029B1 (en) | Networked multi-interface host debugger | |
CN114327803A (zh) | 区块链访问机器学习模型的方法、装置、设备和介质 | |
CN112685745B (zh) | 一种固件检测方法、装置、设备及存储介质 | |
CN110309659A (zh) | 一种基于双体系结构的可信计算平台的动态度量方法 | |
CN111988302A (zh) | 一种检测反弹程序的方法、系统、终端及存储介质 | |
CN105718171A (zh) | 一种数据处理方法及终端 | |
CN101303716B (zh) | 基于可信平台模块的嵌入式系统恢复方法 | |
US20230074455A1 (en) | System and method for monitoring delivery of messages passed between processes from different operating systems | |
CN106570402A (zh) | 加密模块及进程可信度量方法 | |
CN112883369A (zh) | 一种可信虚拟化系统 | |
US10733285B1 (en) | Methods and devices for executing trusted applications on processor with support for protected execution environments | |
CN112463266A (zh) | 执行策略生成方法、装置、电子设备以及存储介质 | |
CN117851988A (zh) | 应用安全加固方法、装置、设备及介质 | |
CN114328065A (zh) | 中断验证方法、装置及电子设备 | |
US9240988B1 (en) | Computer system employing dual-band authentication | |
CN111177726A (zh) | 一种系统漏洞检测方法、装置、设备及介质 | |
WO2019235664A1 (ko) | 프로그램 보호를 위한 디버거 차단 방법 및 시스템 | |
CN110764827A (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 |