CN110378116B - 一种阻止基于原生代码攻击操作系统的方法及装置 - Google Patents
一种阻止基于原生代码攻击操作系统的方法及装置 Download PDFInfo
- Publication number
- CN110378116B CN110378116B CN201910489983.2A CN201910489983A CN110378116B CN 110378116 B CN110378116 B CN 110378116B CN 201910489983 A CN201910489983 A CN 201910489983A CN 110378116 B CN110378116 B CN 110378116B
- Authority
- CN
- China
- Prior art keywords
- code
- operating system
- target
- source code
- attack
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000001514 detection method Methods 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims abstract description 17
- 230000008439 repair process Effects 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 26
- 230000001360 synchronised effect Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013475 authorization Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000015556 catabolic process 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
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种阻止基于原生代码攻击操作系统的方法及装置,从操作系统的应用程序框架层对应的框架源代码中选取与预设函数有关的目标框架源代码,获取目标框架源代码中调用的系统目录。根据指令源代码中调用系统目录的目标指令构建在操作系统的原生代码下运行的攻击代码,并根据成功攻击操作系统的目标攻击代码修复操作系统。在找到消耗系统资源和设备资源的目标指令后,基于操作系统的原生代码构建攻击代码,运行攻击代码查找操作系统中基于原生代码的易受攻击点。实现了基于原生代码层对操作系统中易受攻击点的检测和修复,消除了操作系统的运行过程的安全隐患。
Description
技术领域
本发明涉及操作系统安全性技术领域,尤其是涉及一种阻止基于原生代码攻击操作系统的方法及装置。
背景技术
操作系统(operating system)是管理机器硬件与软件资源的计算机程序,同时也是机器系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务,同时操作系统也提供一个让用户与系统交互的操作界面。然而,操作系统也常因为漏洞受到攻击,如何检测出操作系统存在的漏洞和如何对漏洞进行修复成为保证操作系统安全运行的两个重要方面。
在实际应用过程中,发明人发现现有的用于检测Android操作系统收到攻击的检测方法都是基于Java代码层面分析的,无法检测出基于原生代码攻击Android操作系统的行为,导致操作系统的运行存在安全隐患。
发明内容
本发明实施例提供阻止基于原生代码攻击操作系统的方法及装置,用以解决现有技术中无法检测出基于原生代码攻击Android操作系统的行为,导致操作系统的运行存在安全隐患的问题。
针对以上技术问题,本发明的实施例提供了一种阻止基于原生代码攻击操作系统的方法,包括:
获取操作系统的应用程序框架层对应的框架源代码和所述操作系统的指令对应的指令源代码,从框架源代码中获取与预设函数有关的目标框架源代码,并获取目标框架源代码中调用的系统目录;
对从所述目标框架源代码中获取的每一系统目录,从指令源代码中获取调用系统目录的目标指令,根据目标指令构建在操作系统的原生代码下运行的攻击代码;
由构建的攻击代码攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码,根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统。
本发明的实施例提供了一种阻止基于原生代码攻击操作系统的装置,包括:
获取模块,用于获取操作系统的应用程序框架层对应的框架源代码和所述操作系统的指令对应的指令源代码,从框架源代码中获取与预设函数有关的目标框架源代码,并获取目标框架源代码中调用的系统目录;
构建模块,用于对从所述目标框架源代码中获取的每一系统目录,从指令源代码中获取调用系统目录的目标指令,根据目标指令构建在操作系统的原生代码下运行的攻击代码;
修复模块,用于由构建的攻击代码攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码,根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统。
本发明的实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上所述的阻止基于原生代码攻击操作系统的方法的步骤。
本发明的实施例提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以上所述的阻止基于原生代码攻击操作系统的方法的步骤。
本发明实施例提供了一种阻止基于原生代码攻击操作系统的方法及装置,从操作系统的应用程序框架层对应的框架源代码中选取与预设函数有关的目标框架源代码,获取目标框架源代码中调用的系统目录。根据指令源代码中调用系统目录的目标指令构建在操作系统的原生代码下运行的攻击代码,并根据成功攻击操作系统的目标攻击代码修复操作系统。在找到消耗系统资源和设备资源的目标指令后,基于操作系统的原生代码构建攻击代码,运行攻击代码查找操作系统中基于原生代码的易受攻击点。实现了基于原生代码层对操作系统中易受攻击点的检测和修复,消除了操作系统的运行过程的安全隐患。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种阻止基于原生代码攻击操作系统的方法的流程示意图;
图2是本发明另一个实施例提供一种阻止基于原生代码攻击操作系统的装置的结构框图;
图3是本发明另一个实施例提供的电子设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本实施例提供的一种阻止基于原生代码攻击操作系统的方法的流程示意图,参见图1,该方法包括:
101:获取操作系统的应用程序框架层对应的框架源代码和所述操作系统的指令对应的指令源代码,从框架源代码中获取与预设函数有关的目标框架源代码,并获取目标框架源代码中调用的系统目录;
102:对从所述目标框架源代码中获取的每一系统目录,从指令源代码中获取调用系统目录的目标指令,根据目标指令构建在操作系统的原生代码下运行的攻击代码;
103:由构建的攻击代码攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码,根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统。
本实施例提供的方法由安装有用于执行上述步骤101-103程序的设备执行,该设备可以是计算机、服务器或者专用于对操作系统的易受攻击点进行检测的检测设备。目标框架源代码为与预设函数有关的框架源代码,包括直接调用或者间接调用预设函数的框架源代码,或者被预设函数调用的框架源代码。攻击代码为构建的对操作系统进行攻击的程序,攻击代码在操作系统的原生代码下运行,即攻击代码的运行环境与上层应用没有关系。操作系统的源代码包括所有用于实现操作系统功能的代码,包括与上层应用有关的代码,而操作系统的源代码指的是与上层应用没有关系,用于实现操作系统底层功能或者用于实现操作系统底层和操作系统上层交互的功能的代码。其中,需要注意的是,本实施例中的系统目录指的是目标框架源代码中调用的系统目录,并不泛指整个操作系统中的任一系统目录。
例如,获取Android操作系统的应用程序框架层(Framework层)的框架源代码,从Framework层获取与预设函数有关的目标框架源代码,并获取目标框架源代码调用的系统目录。再从Android操作系统的指令源代码中获取调用系统目录的目标指令,根据目标指令自动化构建攻击代码,通过攻击代码对操作系统进行攻击来检测操作系统的易受攻击点,进而对易受攻击点进行修复,阻止基于这些易受攻击点对操作系统进行攻击的行为。
本实施例提供了一种阻止基于原生代码攻击操作系统的方法,从操作系统的应用程序框架层对应的框架源代码中选取与预设函数有关的目标框架源代码,获取目标框架源代码中调用的系统目录。根据指令源代码中调用系统目录的目标指令构建在操作系统的原生代码下运行的攻击代码,并根据成功攻击操作系统的目标攻击代码修复操作系统。在找到消耗系统资源和设备资源的目标指令后,基于操作系统的原生代码构建攻击代码,运行攻击代码查找操作系统中基于原生代码的易受攻击点。实现了基于原生代码层对操作系统中易受攻击点的检测和修复,消除了操作系统的运行过程的安全隐患。
进一步地,在上述实施例的基础上,所述从框架源代码中获取与预设函数有关的目标框架源代码,并获取目标框架源代码中调用的系统目录,包括:
从框架源代码中获取被监听的系统服务类对应的第一框架源代码,从第一框架源代码中获取调用同步锁或者被同步锁调用的第二框架源代码;
从第一框架源代码中获取调用第二框架源代码的第三框架源代码;
从除了第一框架源代码之外的框架源代码中获取调用第二框架源代码和/或第三框架源代码,且包含循环逻辑或者读写逻辑的第四框架源代码;
将第二框架源代码、第三框架源代码和第四框架源代码作为目标框架源代码,获取目标框架源代码中调用的系统目录。
进一步地,所述从框架源代码中获取被监听的系统服务类对应的第一框架源代码,包括:从框架源代码中获取被Watchdog机制监听的系统服务类对应的第一框架源代码。
Android操作系统Framework层的系统服务类(Service类)包括ActivityManagerService(Ams)、WindowManagerService(Wms)、内容提供器(ContentProviders)、视图系统(View System)等,其中,Ams负责管理所有应用程序中的Activity,它掌握所有Activity的情况,具有所有调度Activity生命周期的能力,Wms控制窗口的显示、隐藏以及窗口的层序。Watchdog机制为Android操作系统中用于定期检测关键系统服务是否发生死锁事件的机制。同步锁即synchronized函数,用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。即当两个并发线程访问同一个对象object中的这个加锁同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
第一框架源代码为Framework层中被监听(例如,被Watchdog机制监听)的Service类对应的框架源代码。第二框架源代码包括第一框架源代码中被synchronized函数调用的对象,或者调用synchronized函数的方法。第三框架源代码为第一框架源代码中调用第二框架源代码中函数或者方法的框架源代码。第四框架源代码包括Framework层中未被Watchdog机制监听的源代码中与第二框架源代码和/或第三框架源代码有关,且包含循环逻辑或者读写逻辑的框架源代码。
具体来说,查找目标框架源代码中调用的系统目录的过程包括以下步骤:(1)输入Android操作系统Framework层源码,分析得到被Watchdog机制监听的Service类;(2)分析上述的Service类,得到Service类中通过synchronized方法调用的对象和对应的方法;(3)分析上述Service类中的方法,得到直接和间接调用上述对象和对应方法的方法;(4)分析Framework层源码中的方法,找到直接调用上述对象、(2)和(3)中所得方法的方法,并且这些方法中包括了循环和读写操作;(5)分析上述对象和(2)、(3)和(4)中所得方法的源代码,得到其中调用的系统目录信息。
进一步地,在上述步骤(1)-(5)的前提下,通过系统目录信息构建检测操作系统易受攻击点的过程包括:(6)输入Android操作系统指令源代码,得到调用上述系统目录的Android指令;(7)根据(6)所得指令,自动化构建Android应用程序并进行验证。
本实施例提供了一种阻止基于原生代码攻击操作系统的方法,通过Service类和synchronized函数确定目标框架源代码,根据目标框架源代码中调用的系统目录进行后续攻击代码的构建。由Service类和synchronized函数筛选出了对操作系统运行较为重要的源代码,由此构建攻击代码能够检测出操作系统较为重要部分的脆弱点,对这些脆弱点进行修复,能够避免操作系统因遭受脆弱点的攻击造成整个系统的崩溃。
进一步地,在上述实施例的基础上,所述根据目标指令构建在操作系统的原生代码下运行的攻击代码,包括:
对每一目标指令,生成使得目标指令在所述操作系统的原生代码下执行的次数大于第一预设次数的代码,作为攻击代码;
其中,当目标指令在操作系统的原生代码下执行的次数小于或等于所述第一预设次数时,不影响所述操作系统的运行。
第一预设次数为设定值,例如,第一预设次数为10次。
在根据得到的系统目录确定目标指令后,以在操作系统的原生代码下执行某一目标指令的次数超过第一预设次数作为对操作系统的攻击。在这种攻击下,操作系统因长时间执行该目标指令而无法处理操作系统的其它指令,从而导致操作系统无法正常处理业务。例如,在攻击代码时,生成了执行某一目标指令的100个进程,导致操作系统需要在执行完这100个进程后,才能处理其它指令,从而影响了操作系统对正常指令的处理。
本实施例提供了一种阻止基于原生代码攻击操作系统的方法,以使得目标指令在操作系统的原生代码下执行的次数大于第一预设次数的代码为攻击代码,实现对操作系统的攻击。
进一步地,在上述各实施例的基础上,所述由构建的攻击代码攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码,包括:
获取生成的用于检测攻击代码是否成功攻击所述操作系统的检测指令,对每一攻击代码,判断在攻击代码攻击所述操作系统的过程中,所述操作系统是否执行所述检测指令失败或者执行所述检测指令的时长大于预设时长,若是,则攻击代码成功攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码。
检测指令为在操作系统的原生代码下执行的任一指令。若在通过某一攻击代码攻击操作系统时,操作系统能够正常处理检测指令,即成功处理检测指令的时长在预设时长范围内,则该攻击代码无法攻击操作系统,操作系统不存在受到该攻击代码攻击的危险。若在通过某一攻击代码攻击操作系统时,操作系统能够不能处理检测指令或者成功处理检测指令的时长大于预设时长,则操作系统受到了该攻击代码的攻击,该攻击代码反应了操作系统的一个易受攻击点,需要针对该易受攻击点修复该操作系统。
本实施例提供了一种阻止基于原生代码攻击操作系统的方法,通过检测指令的执行情况判断操作系统是否受到攻击代码的攻击,确定出操作系统的易受攻击点,便于针对这些易受攻击点对操作系统进行修复,增强操作系统的安全性。
进一步地,在上述各实施例的基础上,所述根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统,包括:
对每一目标攻击代码,生成用于限制目标攻击代码对应的目标指令执行的次数等于第二预设次数的修复指令,以使所述操作系统在检测到执行目标攻击代码对应的目标指令的次数大于所述第二预设次数后,中止执行目标攻击代码对应的目标指令;
其中,所述第二预设次数小于或等于所述第一预设次数。
本实施例提供了一种对操作系统进行修复的方法,使得操作系统在检测到某一目标攻击代码对应的目标指令执行时,在执行目标攻击代码对应的目标指令的执行次数大于第二预设次数后,中止执行目标攻击代码对应的目标指令。由于第二预设次数小于或等于第一预设次数,因而这种修复方法排除了执行目标攻击代码对应的目标指令对操作系统的影响,避免了操作系统收到该目标攻击代码的攻击。
进一步地,在上述各实施例的基础上,所述根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统,包括:
对每一目标攻击代码,生成在检测到执行目标攻击代码对应的目标指令时,发出授权请求的修复指令,以使所述操作系统在检测到执行目标攻击代码对应的目标指令时,发出允许执行目标攻击代码对应的目标指令的授权请求,并根据接收到的对授权请求的反馈信息对目标攻击代码对应的目标指令进行执行或者中止执行的操作。
本实施例提供了另一种修复操作系统的方法,即在检测到执行目标攻击代码对应的目标指令时,发出授权请求,只有接收到允许执行目标攻击代码对应的目标指令时才继续执行,否则,终端执行目标攻击代码对应的目标指令,保证操作系统能够处理其接收到的正常指令。
综上,本实施例提供的阻止基于原生代码攻击操作系统的方法,通过分析Android操作系统Framework层的源代码和Android操作系统指令的源代码,得到能够消耗系统和设备资源的Android指令,根据得到的指令信息自动化构建原生代码程序并在Android操作系统上自动化进行检测验证,根据验证结果对Android操作系统进行修复,避免Android操作系统受到攻击。
图2示出了本发明的实施例提供的一种阻止基于原生代码攻击操作系统的装置的结构框图,参见图2,本实施例提供的阻止基于原生代码攻击操作系统的装置,包括获取模块201、构建模块202和修复模块203,其中,
获取模块201,用于获取操作系统的应用程序框架层对应的框架源代码和所述操作系统的指令对应的指令源代码,从框架源代码中获取与预设函数有关的目标框架源代码,并获取目标框架源代码中调用的系统目录;
构建模块202,用于对从所述目标框架源代码中获取的每一系统目录,从指令源代码中获取调用系统目录的目标指令,根据目标指令构建在操作系统的原生代码下运行的攻击代码;
修复模块203,用于由构建的攻击代码攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码,根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统。
进一步地,在上述实施例的基础上,所述获取模块还用于从框架源代码中获取被监听的系统服务类对应的第一框架源代码,从第一框架源代码中获取调用同步锁或者被同步锁调用的第二框架源代码;从第一框架源代码中获取调用第二框架源代码的第三框架源代码;从除了第一框架源代码之外的框架源代码中获取调用第二框架源代码和/或第三框架源代码,且包含循环逻辑或者读写逻辑的第四框架源代码;将第二框架源代码、第三框架源代码和第四框架源代码作为目标框架源代码,获取目标框架源代码中调用的系统目录。
本实施例提供的阻止基于原生代码攻击操作系统的装置适用于上述实施例中提供的阻止基于原生代码攻击操作系统的方法,在此不再赘述。
本发明的实施例提供了一种阻止基于原生代码攻击操作系统的装置,从操作系统的应用程序框架层对应的框架源代码中选取与预设函数有关的目标框架源代码,获取目标框架源代码中调用的系统目录。根据指令源代码中调用系统目录的目标指令构建在操作系统的原生代码下运行的攻击代码,并根据成功攻击操作系统的目标攻击代码修复操作系统。在找到消耗系统资源和设备资源的目标指令后,基于操作系统的原生代码构建攻击代码,运行攻击代码查找操作系统中基于原生代码的易受攻击点。实现了基于原生代码层对操作系统中易受攻击点的检测和修复,消除了操作系统的运行过程的安全隐患。
图3是示出本实施例提供的电子设备的结构框图。
参照图3,所述电子设备包括:处理器(processor)310、通信接口(CommunicationsInterface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行如下方法:获取操作系统的应用程序框架层对应的框架源代码和所述操作系统的指令对应的指令源代码,从框架源代码中获取与预设函数有关的目标框架源代码,并获取目标框架源代码中调用的系统目录;对从所述目标框架源代码中获取的每一系统目录,从指令源代码中获取调用系统目录的目标指令,根据目标指令构建在操作系统的原生代码下运行的攻击代码;由构建的攻击代码攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码,根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行如下方法:获取操作系统的应用程序框架层对应的框架源代码和所述操作系统的指令对应的指令源代码,从框架源代码中获取与预设函数有关的目标框架源代码,并获取目标框架源代码中调用的系统目录;对从所述目标框架源代码中获取的每一系统目录,从指令源代码中获取调用系统目录的目标指令,根据目标指令构建在操作系统的原生代码下运行的攻击代码;由构建的攻击代码攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码,根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:获取操作系统的应用程序框架层对应的框架源代码和所述操作系统的指令对应的指令源代码,从框架源代码中获取与预设函数有关的目标框架源代码,并获取目标框架源代码中调用的系统目录;对从所述目标框架源代码中获取的每一系统目录,从指令源代码中获取调用系统目录的目标指令,根据目标指令构建在操作系统的原生代码下运行的攻击代码;由构建的攻击代码攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码,根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。
Claims (10)
1.一种阻止基于原生代码攻击操作系统的方法,其特征在于,包括:
获取操作系统的应用程序框架层对应的框架源代码和所述操作系统的指令对应的指令源代码,从框架源代码中获取与预设函数有关的目标框架源代码,并获取目标框架源代码中调用的系统目录;
对从所述目标框架源代码中获取的每一系统目录,从指令源代码中获取调用系统目录的目标指令,根据目标指令构建在所述操作系统的原生代码下运行的攻击代码;
由构建的攻击代码攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码,根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统。
2.根据权利要求1所述的阻止基于原生代码攻击操作系统的方法,其特征在于,所述从框架源代码中获取与预设函数有关的目标框架源代码,并获取目标框架源代码中调用的系统目录,包括:
从框架源代码中获取被监听的系统服务类对应的第一框架源代码,从第一框架源代码中获取调用同步锁或者被同步锁调用的第二框架源代码;
从第一框架源代码中获取调用第二框架源代码的第三框架源代码;
从除了第一框架源代码之外的框架源代码中获取调用第二框架源代码和/或第三框架源代码,且包含循环逻辑或者读写逻辑的第四框架源代码;
将第二框架源代码、第三框架源代码和第四框架源代码作为目标框架源代码,获取目标框架源代码中调用的系统目录。
3.根据权利要求1所述的阻止基于原生代码攻击操作系统的方法,其特征在于,所述根据目标指令构建在操作系统的原生代码下运行的攻击代码,包括:
对每一目标指令,生成使得目标指令在所述操作系统的原生代码下执行的次数大于第一预设次数的代码,作为攻击代码;
其中,当目标指令在操作系统的原生代码下执行的次数小于或等于所述第一预设次数时,不影响所述操作系统的运行。
4.根据权利要求1所述的阻止基于原生代码攻击操作系统的方法,其特征在于,所述由构建的攻击代码攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码,包括:
获取生成的用于检测攻击代码是否成功攻击所述操作系统的检测指令,对每一攻击代码,判断在攻击代码攻击所述操作系统的过程中,所述操作系统是否执行所述检测指令失败或者执行所述检测指令的时长大于预设时长,若是,则攻击代码成功攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码。
5.根据权利要求3所述的阻止基于原生代码攻击操作系统的方法,其特征在于,所述根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统,包括:
对每一目标攻击代码,生成用于限制目标攻击代码对应的目标指令执行的次数等于第二预设次数的修复指令,以使所述操作系统在检测到执行目标攻击代码对应的目标指令的次数大于所述第二预设次数后,中止执行目标攻击代码对应的目标指令;
其中,所述第二预设次数小于或等于所述第一预设次数。
6.根据权利要求3所述的阻止基于原生代码攻击操作系统的方法,其特征在于,所述根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统,包括:
对每一目标攻击代码,生成在检测到执行目标攻击代码对应的目标指令时,发出授权请求的修复指令,以使所述操作系统在检测到执行目标攻击代码对应的目标指令时,发出允许执行目标攻击代码对应的目标指令的授权请求,并根据接收到的对授权请求的反馈信息对目标攻击代码对应的目标指令进行执行或者中止执行的操作。
7.一种阻止基于原生代码攻击操作系统的装置,其特征在于,包括:
获取模块,用于获取操作系统的应用程序框架层对应的框架源代码和所述操作系统的指令对应的指令源代码,从框架源代码中获取与预设函数有关的目标框架源代码,并获取目标框架源代码中调用的系统目录;
构建模块,用于对从所述目标框架源代码中获取的每一系统目录,从指令源代码中获取调用系统目录的目标指令,根据目标指令构建在所述操作系统的原生代码下运行的攻击代码;
修复模块,用于由构建的攻击代码攻击所述操作系统,获取成功攻击所述操作系统的目标攻击代码,根据目标攻击代码修复所述操作系统,以阻止通过目标攻击代码攻击所述操作系统。
8.根据权利要求7所述的阻止基于原生代码攻击操作系统的装置,其特征在于,所述获取模块还用于从框架源代码中获取被监听的系统服务类对应的第一框架源代码,从第一框架源代码中获取调用同步锁或者被同步锁调用的第二框架源代码;从第一框架源代码中获取调用第二框架源代码的第三框架源代码;从除了第一框架源代码之外的框架源代码中获取调用第二框架源代码和/或第三框架源代码,且包含循环逻辑或者读写逻辑的第四框架源代码;将第二框架源代码、第三框架源代码和第四框架源代码作为目标框架源代码,获取目标框架源代码中调用的系统目录。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的阻止基于原生代码攻击操作系统的方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述的阻止基于原生代码攻击操作系统的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910489983.2A CN110378116B (zh) | 2019-06-06 | 2019-06-06 | 一种阻止基于原生代码攻击操作系统的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910489983.2A CN110378116B (zh) | 2019-06-06 | 2019-06-06 | 一种阻止基于原生代码攻击操作系统的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110378116A CN110378116A (zh) | 2019-10-25 |
CN110378116B true CN110378116B (zh) | 2021-05-25 |
Family
ID=68249888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910489983.2A Active CN110378116B (zh) | 2019-06-06 | 2019-06-06 | 一种阻止基于原生代码攻击操作系统的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110378116B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526984A (zh) * | 2009-03-16 | 2009-09-09 | 腾讯科技(北京)有限公司 | 一种修复漏洞的方法及装置 |
CN106503563A (zh) * | 2016-10-17 | 2017-03-15 | 成都知道创宇信息技术有限公司 | 基于通用框架的批量漏洞检测方法 |
CN107025168A (zh) * | 2015-12-15 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 漏洞检测方法及装置 |
CN109325351A (zh) * | 2018-08-23 | 2019-02-12 | 中通服咨询设计研究院有限公司 | 一种基于众测平台的安全漏洞自动化验证系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662830A (zh) * | 2012-03-20 | 2012-09-12 | 湖南大学 | 一种基于动态二进制翻译框架的代码复用攻击检测系统 |
CN103150181B (zh) * | 2013-02-20 | 2017-02-08 | 大唐移动通信设备有限公司 | 一种进程启动的方法及装置 |
CN105224864B (zh) * | 2015-11-04 | 2018-05-04 | 中国科学院计算技术研究所 | 一种抵御代码重用攻击的工作进程随机化方法及系统 |
CN106506565B (zh) * | 2017-01-04 | 2020-01-07 | 上海上讯信息技术股份有限公司 | 一种远程命令执行方法及设备 |
-
2019
- 2019-06-06 CN CN201910489983.2A patent/CN110378116B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526984A (zh) * | 2009-03-16 | 2009-09-09 | 腾讯科技(北京)有限公司 | 一种修复漏洞的方法及装置 |
CN107025168A (zh) * | 2015-12-15 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 漏洞检测方法及装置 |
CN106503563A (zh) * | 2016-10-17 | 2017-03-15 | 成都知道创宇信息技术有限公司 | 基于通用框架的批量漏洞检测方法 |
CN109325351A (zh) * | 2018-08-23 | 2019-02-12 | 中通服咨询设计研究院有限公司 | 一种基于众测平台的安全漏洞自动化验证系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110378116A (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101498614B1 (ko) | 악성코드 활동 차단 장치 및 방법 | |
CN108681662B (zh) | 一种安装程序的方法及装置 | |
US8443354B1 (en) | Detecting new or modified portions of code | |
CN109241745B (zh) | 一种计算平台的可信启动方法及装置 | |
US20100275252A1 (en) | Software management apparatus and method, and user terminal controlled by the apparatus and management method for the same | |
CN100492300C (zh) | 在微处理器实现的设备上执行进程的系统和方法 | |
US8819155B2 (en) | System and method for performing centralized common tasks for a set of functions | |
KR20110084775A (ko) | 동적 링크 라이브러리 삽입 공격을 방지하는 컴퓨터 시스템 및 방법 | |
CN112738094B (zh) | 可扩展的网络安全漏洞监测方法、系统、终端及存储介质 | |
CN116305155A (zh) | 一种程序安全检测防护方法、装置、介质及电子设备 | |
US10761863B2 (en) | Mobile application management by run-time insertion of a replacement instrumentation object into a mobile application process | |
CN110378116B (zh) | 一种阻止基于原生代码攻击操作系统的方法及装置 | |
CN113922975A (zh) | 一种安全控制方法、服务器、终端、系统和存储介质 | |
CN109785537B (zh) | 一种atm机的安全防护方法及装置 | |
CN115455414A (zh) | 一种安全检测方法和装置 | |
CN107818260B (zh) | 保障系统安全的方法及装置 | |
CN114329444A (zh) | 系统安全提升方法及装置 | |
CN114386047A (zh) | 应用漏洞检测方法、装置、电子设备及存储介质 | |
CN111177726B (zh) | 一种系统漏洞检测方法、装置、设备及介质 | |
CN112464225A (zh) | 一种请求处理方法、请求处理装置及计算机可读存储介质 | |
CN117131515B (zh) | 一种应用请求执行方法、装置、计算机设备和存储介质 | |
US20200167463A1 (en) | Out-of-Band Content Analysis | |
CN111950040A (zh) | 终端设备的环境感知方法、装置、计算机设备及存储介质 | |
CN111523115B (zh) | 信息确定方法、函数调用方法及电子设备 | |
CN112149106B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Patentee after: QAX Technology Group Inc. Address before: 100015 15, 17 floor 1701-26, 3 building, 10 Jiuxianqiao Road, Chaoyang District, Beijing. Patentee before: BEIJING QIANXIN TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |