CN116432171A - 攻击检测方法和装置 - Google Patents
攻击检测方法和装置 Download PDFInfo
- Publication number
- CN116432171A CN116432171A CN202310188442.2A CN202310188442A CN116432171A CN 116432171 A CN116432171 A CN 116432171A CN 202310188442 A CN202310188442 A CN 202310188442A CN 116432171 A CN116432171 A CN 116432171A
- Authority
- CN
- China
- Prior art keywords
- software
- memory
- software code
- characteristic value
- code
- 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 24
- 230000015654 memory Effects 0.000 claims abstract description 138
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000010606 normalization Methods 0.000 claims abstract description 45
- 230000009471 action Effects 0.000 claims abstract description 7
- 230000008676 import Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 15
- 238000012795 verification Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000002265 prevention Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- WQZGKKKJIJFFOK-GASJEMHNSA-N Glucose Natural products OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O WQZGKKKJIJFFOK-GASJEMHNSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000008103 glucose Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 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
-
- 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/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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/562—Static detection
- G06F21/564—Static detection by virus signature recognition
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供了一种攻击检测方法和装置。该方法包括:在软件发布前,将该软件的软件代码模拟加载到第一内存中;对第一内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第一特征值;在所述软件发布后,当检测到该软件的软件代码被从电子设备的磁盘中读取到该电子设备的第二内存中之后,对第二内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第二特征值;判断第一特征值与第二特征值是否相同,如果不相同,则确定当前针对所述电子设备中的所述软件发生了攻击行为。本说明书实施例能够在软件的代码被读取到内存中之后,检测出针对该内存中的软件代码是否发生了攻击行为。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术,尤其涉及攻击检测方法和装置。
背景技术
电子设备中加载有各种软件,以便实现各种功能。在当前的网络环境下,各种恶意样本经常对电子设备中加载的软件进行攻击,来达到修改软件正常工作逻辑的目标,比如绕过权限检查,截获密码等等,从而实现各种目的。因此需要对恶意样本的攻击行为进行检测,以便及时采取相应的阻止攻击的处理。
目前,可以对电子设备的磁盘中保存的软件代码进行签名验证,从而检测该软件是否被攻击。然而,很多攻击行为并不是针对磁盘中的软件代码进行的,而是在软件的代码被从磁盘中读取到内存中之后,对该内存中的软件代码进行攻击。目前,针对此种对内存中的软件代码的攻击行为并没有有效的检测方法,从而也无法进行攻击阻止处理。
发明内容
本说明书一个或多个实施例描述了攻击检测方法和装置,能够在软件的代码被读取到内存中之后,检测出针对该内存中的软件代码是否发生了攻击行为。
根据第一方面,提供了一种攻击检测方法,其中,该方法包括:
在软件发布前,将该软件的软件代码模拟加载到第一内存中;
对第一内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第一特征值;
在所述软件发布后,当检测到该软件的软件代码被从电子设备的磁盘中读取到该电子设备的第二内存中之后,对第二内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第二特征值;
判断第一特征值与第二特征值是否相同,如果不相同,则确定当前针对所述电子设备中的所述软件发生了攻击行为。
所述对第一内存中的所述软件代码进行归一化处理,包括:将第一内存的基地址假定为预设的基地址;将模拟加载时使用的导入表按照该预设的基地址进行修正;根据模拟加载时使用的重定位表,将第一内存中的所述软件代码按照所述预设的基地址进行修正;
所述对第二内存中的所述软件代码进行归一化处理,包括:将第二内存的基地址假定为预设的基地址;将所述电子设备的导入表按照预设的基地址进行修正;根据所述电子设备使用的重定位表,将第二内存中的所述软件代码按照所述预设的基地址进行修正。
其中,在所述软件发布前,在计算出所述第一特征值之后,进一步:利用预先设置的公私钥对中的私钥对该第一特征值进行签名;将签名数据携带在所述软件的软件代码中的指定位置处,然后将携带签名数据的软件代码发布给所述电子设备;
在所述软件发布后,在所述判断第一特征值与第二特征值是否相同之前进一步包括:从发布的所述软件的软件代码的所述指定位置处获取签名数据,利用预先设置的所述公私钥对中的公钥验证该签名数据,从而得到所述第一特征值。
其中,所述软件的格式为:Windows系统的PE文件格式;
所述指定位置处包括:Windows的PE结构定义的所述软件代码的数据缝隙中。
其中,当该软件的软件代码被读取到电子设备的第二内存中之后,每当检测到触发事件时执行所述“对第二内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第二特征值以及判断第一特征值与第二特征值是否相同”的步骤。
其中,所述触发事件包括如下中的至少一项:
所述软件的软件代码被读取到电子设备的第二内存中的读取操作结束;
计时到达预设的时间周期长度;
所述软件在所述电子设备上运行的过程中触发预定的关键操作。
其中,所述关键操作包括如下中的至少一项:输入密码、进入支付页面、转账操作。
根据第二方面,提供了攻击检测装置,其中,该装置包括:
在软件发布前,将该软件的软件代码模拟加载到第一内存中;
对第一内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第一特征值;
检测模块,配置为在软件被发布到电子设备之后,检测该软件的软件代码是否被从电子设备的磁盘中读取到该电子设备的第二内存中;
归一化处理模块,配置为对第二内存中的所述软件代码进行归一化处理;
计算模块,配置为计算该归一化处理后的软件代码的第二特征值;
判断模块,配置为判断第一特征值与第二特征值是否相同,如果不相同,则确定当前针对所述电子设备中的所述软件发生了攻击行为;其中,第一特征值的得到方法是:是在软件发布前,将该软件的软件代码模拟加载到第一内存中;对第一内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第一特征值。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机实现本说明书任一实施例所述的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任一实施例所述的方法。
本说明书各实施例提供的攻击检测方法和装置,至少具有如下有益效果:
1、在软件发布前,先模拟一次软件被加载到内存中的处理,并对该模拟加载到内存的软件代码进行归一化处理,即屏蔽内存运行时导致内存中的数据的存储结构发生变化的问题,这样在软件发布后,当需要运行该软件,将该软件的代码读取到电子设备的内存之后,也进行一次归一化处理,即屏蔽在电子设备中内存运行时导致内存中的数据的存储结构发生变化的问题。也就是说,因为进行了归一化处理,就相当于软件在发布前被加载到一个内存中的地址与软件发布后被加载到另一个内存中的地址是相同的,因为基于相同的内存的地址,那么发布前得到的内存中的软件代码的特征值与发布后内存中的未受到攻击的该软件代码的特征值应该相同。本说明书实施例的方法正是利用了上述原理和处理方法,从而保证了能够对内存中的软件代码的攻击行为进行有效的检测。
2、本说明书实施例中可以把签名数据直接保存在软件代码的节数据中,即Windows的PE结构定义的软件代码的数据缝隙中。也就是说,签名数据和作为PE文件的软件代码融合,既提高了签名信息的隐蔽性,也能够在加载到内存的过程中实现一次性读取并验证,高效且安全。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一个实施例所应用的系统结构的示意图。
图2是本说明书一个实施例中攻击检测方法的流程图。
图3是本说明书另一个实施例中攻击检测方法的流程图。
图4是本说明书一个实施例中攻击检测装置的结构示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
首先需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
为了方便对本说明书提供的方法进行理解,首先对本说明书所涉及和适用的系统架构进行描述。如图1中所示,该系统架构中主要包括2种网络节点:发布方和电子设备。其中,发布方是发行软件的一方,以供使用方下载软件使用。电子设备能够从发布方处下载软件,从而使用该软件提供的功能。
电子设备可以是任意一种具有内存及处理能力的设备,可以包括但不限于诸如:智能移动终端、智能家居设备、网络设备、可穿戴式设备、智能医疗设备、PC(个人计算机)等。其中智能移动设备可以包括诸如手机、平板电脑、笔记本电脑、PDA(个人数字助理)、互联网汽车等。智能家居设备可以包括智能家电设备,诸如智能电视、智能空调、智能热水器、智能冰箱、智能空气净化器等等,智能家居设备还可以包括智能门锁、智能插座、智能电灯、智能摄像头等。网络设备可以包括诸如交换机、无线AP、服务器等。可穿戴式设备可以包括诸如智能手表、智能眼镜、智能手环、虚拟现实设备、增强现实设备、混合现实设备(即可以支持虚拟现实和增强现实的设备)等等。智能医疗设备可以包括诸如智能体温计、智能血压仪、智能血糖仪等等。
应该理解,图1中的发布方及电子设备的数目仅仅是示意性的。根据实现需要,可以选择和布设任意数目。
图2是本说明书一个实施例中攻击检测方法的流程图。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图2,该方法包括:
步骤201:在软件发布前,将该软件的软件代码模拟加载到第一内存中。
步骤203:对第一内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第一特征值。
步骤205:在所述软件发布后,检测到该软件的软件代码被从电子设备的磁盘中读取到该电子设备的第二内存中。
步骤207:对第二内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第二特征值。
步骤209:判断第一特征值与第二特征值是否相同,如果不相同,则执行步骤211,如果相同,执行步骤213。
步骤211:确定当前针对所述电子设备中的所述软件发生了攻击行为。
步骤213:确定当前针对所述电子设备中的所述软件未发生攻击行为。
在电子设备中,软件的代码文件在磁盘中的存储结构与在内存中的存储结构不同。当软件的代码文件存储在磁盘中时,文件的存储结构不会动态变化,因此仅需要按字节从磁盘中读取软件代码进行验证即可。而在电子设备的内存中,内存每次运行时内存中的数据的存储结构都会发生变化,而预先也无法预料软件代码被加载到内存中后的动态变化情况,这样就导致在已有技术中无法对内存中的软件代码进行安全性验证。而参见上述图2所示的流程,本说明书实施例的方法采用了在软件发布前,先模拟一次软件被加载到内存中的处理,并对该模拟加载到内存的软件代码进行归一化处理,即屏蔽内存运行时导致内存中的数据的存储结构发生变化的问题,这样在软件发布后,当需要运行该软件,将该软件的代码读取到电子设备的内存之后,也进行一次归一化处理,即屏蔽在电子设备中内存运行时导致内存中的数据的存储结构发生变化的问题。也就是说,因为进行了归一化处理,就相当于软件在发布前被加载到一个内存中的地址与软件发布后被加载到另一个内存中的地址是相同的,因为基于相同的内存的地址,那么发布前得到的内存中的软件代码的特征值与发布后内存中的未受到攻击的该软件代码的特征值应该相同。图2所示的本说明书实施例的方法正是利用了上述原理和处理方法,从而保证了能够对内存中的软件代码的攻击行为进行检测,后续则可以进行相应的攻击阻止处理,比如终止该软件的运行或者修复该软件。
下面结合附图对上述图2所示的每一个步骤分别进行。
首先对于步骤201:在软件发布前,将该软件的软件代码模拟加载到内存中,比如该内存称为第一内存。
如前所述,内存中的数据在内存每次运行时都会发生变化。因此为了能对后续软件发布后,被加载到电子设备内存中的软件代码进行安全性验证,可以执行本步骤201的处理。
接下来对于步骤203:对第一内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第一特征值。
在本说明书实施例中,归一化处理的作用是:屏蔽内存运行时导致内存中的数据的存储结构变化的问题,将各次使用的各个内存基于同一个基地址进行数据修正。此后再对各内存中的软件代码进行对比,比如进行签名和验签,就能验证软件代码是否被修改。
在本说明书一个实施例中,步骤203的具体实现过程可以包括:将第一内存的基地址假定为预设的基地址比如0x1000;将模拟加载时使用的导入表按照预设的基地址比如0x1000进行修正;根据模拟加载时使用的重定位表,将第一内存中的所述软件代码按照所述预设的基地址比如0x1000进行修正。
其中,导入表是用于引入/引用其他功能模块的各个函数,可以理解为多个列表。重定位表(Relocation Table)用于在程序加载到内存中时,进行内存地址的修正。
本步骤203中在进行了归一化处理之后,相当于对软件代码在第一内存中的地址基于预设的基地址进行了修正,针对归一化处理后即修正后的软件代码来计算其特征值,比如称为第一特征值。这里,特征值可以是软件的软件代码的哈希值。
为了进一步提高安全性,在本说明书一个实施例中,在本步骤203之后,可以进行签名处理,比如进行下述步骤204的处理:
步骤204:利用预先设置的公私钥对中的私钥对该第一特征值进行签名;然后将签名数据携带在该软件的软件代码中的指定位置处,然后将携带签名数据的软件代码发布给电子设备。
接下来对于步骤205:在所述软件发布到电子设备中之后,检测到该软件的软件代码被从该电子设备的磁盘中读取到该电子设备的内存(称为第二内存)中。
接下来对于步骤207:对第二内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第二特征值。
在本步骤207中,对第二内存中的所述软件代码进行归一化处理的过程包括:将第二内存的基地址假定为预设的基地址比如0x1000;将所述电子设备的导入表按照预设的基地址比如0x1000进行修正;根据所述电子设备使用的重定位表,将第二内存中的所述软件代码按照所述预设的基地址比如0x1000进行修正。
本步骤207中,在进行了归一化处理之后,相当于对软件代码在第二内存中的地址基于预设的基地址进行了修正,针对归一化处理后即修正后的软件代码来计算其特征值,比如称为第二特征值。这里,特征值可以是软件的软件代码的哈希值。
在现有技术中,在将签名数据携带在软件代码中时,通常都是将签名数据携带在软件代码文件的末尾处。对于windows的软件(包括macos等),整个文件都有统一的结构即PE(全称为Preinstallation Environment)结构,该结构包含的数据会一次性加载入内存,而签名数据不在这个PE结构里,所以需要额外加载一次。这样,后续需要验签时,首先将软件代码本身加载到内存中,然后再将软件代码文件的末尾处的签名数据加载到内存中,也就是说需要加载两次,这样既消耗性能也不安全(不能保证验证和加载的原子操作,给了攻击者更多的攻击机会)。而为了避免这一问题,对于Windows操作系统的PE文件,在上述步骤204中,指定位置处包括:Windows的PE结构定义的软件代码的数据缝隙中。也就是说,本说明书实施例中可以把签名数据直接保存在软件代码的节数据中,和作为PE文件的软件代码融合,既提高了签名信息的隐蔽性,也能够在加载到内存的过程中实现一次性读取并验证,高效且安全。
相应地,步骤205与步骤207之间可以进一步包括:从发布的所述软件的软件代码的所述指定位置处比如该软件代码的数据缝隙中获取签名数据,利用预先设置的上述公私钥对中的公钥验证该签名数据,从而得到第一特征值。
接下来对于步骤209:判断第一特征值与第二特征值是否相同,如果不相同,则执行步骤211,如果相同,执行步骤213。
这里,如果第一特征值与第二特征值不相同,则说明电子设备的内存中的软件代码与发布前的软件代码不相同,也就是说,很可能是攻击者对电子设备的内存中的软件代码进行了修改,即发生了针对内存中软件代码的攻击行为。
步骤211:确定当前针对所述电子设备中的所述软件发生了攻击行为。
步骤213:确定当前针对所述电子设备中的所述软件未发生攻击行为。
在本说明书一个实施例中,在该软件的软件代码被读取到电子设备的第二内存中之后,可以是在每当检测到触发事件时执行上述步骤207直至步骤211或者步骤213的处理。
在本说明书实施例中,触发事件可以包括如下中的至少一项:
事件1:软件的软件代码被读取到电子设备的第二内存中的读取操作结束。
对于该事件1,能够检测在软件代码被读取到第二内存的过程中,是否针对该软件代码发生了攻击行为。
事件2:计时到达预设的时间周期长度。
对于该事件1,能够周期性地检测在内存中的软件代码是否受到了攻击。
事件3:软件在所述电子设备上运行的过程中触发的预定的关键操作。
对于该事件3,关键操作比如可以包括如下中的至少一项:输入密码、进入支付页面、转账操作。
图3是本说明书另一个实施例中攻击检测方法的流程图。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图3,该方法包括:
步骤301:在一个软件被发布前,发布方将该软件的软件代码模拟加载到内存中,称为第一内存。
步骤303:发布方对第一内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的特征值,称为第一特征值。
步骤305:发布方利用预先设置的公私钥对中的私钥对第一特征值进行签名,得到签名数据。
步骤307:发布方将签名数据携带在该软件的软件代码的数据缝隙中,然后向电子设备发布该软件。
步骤309:在该软件发布到电子设备中后,电子设备检测到该软件的软件代码被从磁盘中读取到内存中,称为第二内存。
步骤311:电子设备从软件代码的数据缝隙中获取签名数据,利用预先设置的公私钥对中的公钥对签名数据进行验签,得到第一特征值。
步骤313:电子设备检测到触发事件后,对当前第二内存中的软件代码进行归一化处理,计算该归一化处理后的软件代码的特征值,称为第二特征值。
步骤315:判断第一特征值与第二特征值是否相同,如果不相同,则执行步骤317,如果相同,执行步骤319。
步骤317:确定当前针对所述电子设备中的所述软件发生了攻击行为。
步骤319:确定当前针对所述电子设备中的所述软件未发生攻击行为。
在本说明书的一个实施例中,提供了一种攻击检测装置,参见图4,该装置包括:
检测模块401,配置为在软件被发布到电子设备之后,检测该软件的软件代码是否被从电子设备的磁盘中读取到该电子设备的第二内存中;
归一化处理模块402,配置为对第二内存中的所述软件代码进行归一化处理;
计算模块403,配置为计算该归一化处理后的软件代码的第二特征值;
判断模块404,配置为判断第一特征值与第二特征值是否相同,如果不相同,则确定当前针对所述电子设备中的所述软件发生了攻击行为;其中,第一特征值的得到方法是:是在软件发布前,将该软件的软件代码模拟加载到第一内存中;对第一内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第一特征值。
在本说明书上述装置的一个实施例中,对第一内存中的所述软件代码进行归一化处理,包括:将第一内存的基地址假定为预设的基地址;将模拟加载时使用的导入表按照该预设的基地址进行修正;根据模拟加载时使用的重定位表,将第一内存中的所述软件代码按照所述预设的基地址进行修正;
归一化处理模块402被配置为执行:将第二内存的基地址假定为预设的基地址;将所述电子设备的导入表按照预设的基地址进行修正;根据所述电子设备使用的重定位表,将第二内存中的所述软件代码按照所述预设的基地址进行修正。
在本说明书上述装置的一个实施例中,在所述软件发布前,在计算出所述第一特征值之后,进一步包括:利用预先设置的公私钥对中的私钥对该第一特征值进行签名;将签名数据携带在所述软件的软件代码中的指定位置处,然后将携带签名数据的软件代码发布给所述电子设备;
上述攻击检测装置进一步包括:发布前特征值获取模块(图中未示出),配置为执行:从发布的所述软件的软件代码的所述指定位置处获取签名数据,利用预先设置的所述公私钥对中的公钥验证该签名数据,从而得到所述第一特征值。其中,所述软件的格式为:Windows系统的PE文件格式;所述指定位置处包括:Windows的PE结构定义的所述软件代码的数据缝隙中。
上述攻击检测装置进一步包括:触发事件检测模块(图中未示出),配置为执行:当该软件的软件代码被读取到电子设备的第二内存中之后,检测触发事件,每当检测到触发事件后,触发归一化处理模块402、计算模块403以及判断模块404执行上述的处理。
在本说明书上述装置的一个实施例中,所述触发事件包括如下中的至少一项:
所述软件的软件代码被读取到电子设备的第二内存中的读取操作结束;
计时到达预设的时间周期长度;
所述软件在所述电子设备上运行的过程中触发预定的关键操作。
在本说明书上述装置的一个实施例中,关键操作包括如下中的至少一项:输入密码、进入支付页面、转账操作。
需要说明的是,上述各装置通常实现于服务器端,可以分别设置于独立的服务器,也可以其中部分或全部装置的组合设置于同一服务器。该服务器可以是单个的服务器,也可以是由多个服务器组成的服务器集群,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品。上述各装置还可以实现于具有较强计算能力的计算机终端。
本说明书一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。
本说明书一个实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现执行说明书中任一个实施例中的方法。
可以理解的是,本说明书实施例示意的结构并不构成对本说明书实施例的装置的具体限定。在说明书的另一些实施例中,上述装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (10)
1.攻击检测方法,其中,该方法包括:
在软件发布前,将该软件的软件代码模拟加载到第一内存中;
对第一内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第一特征值;
在所述软件发布后,当检测到该软件的软件代码被从电子设备的磁盘中读取到该电子设备的第二内存中之后,对第二内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第二特征值;
判断第一特征值与第二特征值是否相同,如果不相同,则确定当前针对所述电子设备中的所述软件发生了攻击行为。
2.根据权利要求1所述的方法,其中,
所述对第一内存中的所述软件代码进行归一化处理,包括:将第一内存的基地址假定为预设的基地址;将模拟加载时使用的导入表按照该预设的基地址进行修正;根据模拟加载时使用的重定位表,将第一内存中的所述软件代码按照所述预设的基地址进行修正;
所述对第二内存中的所述软件代码进行归一化处理,包括:将第二内存的基地址假定为预设的基地址;将所述电子设备的导入表按照预设的基地址进行修正;根据所述电子设备使用的重定位表,将第二内存中的所述软件代码按照所述预设的基地址进行修正。
3.根据权利要求1所述的方法,其中,在所述软件发布前,在计算出所述第一特征值之后,进一步:利用预先设置的公私钥对中的私钥对该第一特征值进行签名;将签名数据携带在所述软件的软件代码中的指定位置处,然后将携带签名数据的软件代码发布给所述电子设备;
在所述软件发布后,在所述判断第一特征值与第二特征值是否相同之前进一步包括:从发布的所述软件的软件代码的所述指定位置处获取签名数据,利用预先设置的所述公私钥对中的公钥验证该签名数据,从而得到所述第一特征值。
4.根据权利要求3所述的方法,其中,所述软件的格式为:Windows系统的PE文件格式;
所述指定位置处包括:Windows的PE结构定义的所述软件代码的数据缝隙中。
5.根据权利要求1所述的方法,其中,
当该软件的软件代码被读取到电子设备的第二内存中之后,每当检测到触发事件时执行所述“对第二内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第二特征值以及判断第一特征值与第二特征值是否相同”的步骤。
6.根据权利要求5所述的方法,其中,
所述触发事件包括如下中的至少一项:
所述软件的软件代码被读取到电子设备的第二内存中的读取操作结束;
计时到达预设的时间周期长度;
所述软件在所述电子设备上运行的过程中触发预定的关键操作。
7.根据权利要求6所述的方法,其中,所述关键操作包括如下中的至少一项:输入密码、进入支付页面、转账操作。
8.攻击检测装置,其中,该装置包括:
检测模块,配置为在软件被发布到电子设备之后,检测该软件的软件代码是否被从电子设备的磁盘中读取到该电子设备的第二内存中;
归一化处理模块,配置为对第二内存中的所述软件代码进行归一化处理;
计算模块,配置为计算该归一化处理后的软件代码的第二特征值;
判断模块,配置为判断第一特征值与第二特征值是否相同,如果不相同,则确定当前针对所述电子设备中的所述软件发生了攻击行为;其中,第一特征值的得到方法是:是在软件发布前,将该软件的软件代码模拟加载到第一内存中;对第一内存中的所述软件代码进行归一化处理,计算该归一化处理后的软件代码的第一特征值。
9.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7中任一项所述的方法。
10.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310188442.2A CN116432171A (zh) | 2023-02-24 | 2023-02-24 | 攻击检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310188442.2A CN116432171A (zh) | 2023-02-24 | 2023-02-24 | 攻击检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116432171A true CN116432171A (zh) | 2023-07-14 |
Family
ID=87080436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310188442.2A Pending CN116432171A (zh) | 2023-02-24 | 2023-02-24 | 攻击检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116432171A (zh) |
-
2023
- 2023-02-24 CN CN202310188442.2A patent/CN116432171A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11188645B2 (en) | Identifying whether an application is malicious | |
RU2372653C2 (ru) | Системы и способы для обеспечения идентификатора оборудования с гибкими границами допусков в зависимости от времени и веса | |
CN108960830B (zh) | 智能合约的部署方法、装置、设备及存储介质 | |
US20150350244A1 (en) | Detection of spoofing of remote client system information | |
CN106096418B (zh) | 基于SELinux的开机安全等级选择方法、装置及终端设备 | |
US9659171B2 (en) | Systems and methods for detecting tampering of an information handling system | |
CN112001376B (zh) | 基于开源组件的指纹识别方法、装置、设备及存储介质 | |
WO2022078366A1 (zh) | 应用保护方法、装置、设备及介质 | |
CN108289028A (zh) | 一种签名认证方法、相关设备及计算机可读存储介质 | |
CN111176685A (zh) | 一种升级方法及装置 | |
KR101482700B1 (ko) | 해시를 이용한 프로그램의 무결성 검증 방법 | |
CN109657454A (zh) | 一种基于tf密码模块的安卓应用可信验证方法 | |
CN109522683A (zh) | 软件溯源方法、系统、计算机设备及存储介质 | |
CN116432171A (zh) | 攻击检测方法和装置 | |
CN116089912A (zh) | 软件识别信息获取方法及装置、电子设备和存储介质 | |
CN109002710A (zh) | 一种检测方法、装置及计算机可读存储介质 | |
CN114489698A (zh) | 应用程序安装方法和装置 | |
Aljawarneh et al. | Testing and evaluation of a secure integrity measurement system (SIMS) for remote systems. | |
CN113966510A (zh) | 可信设备和计算系统 | |
CN110597557B (zh) | 一种系统信息获取方法、终端及介质 | |
CN113706131B (zh) | 一种基于加密卡的区块链交易方法、装置和设备 | |
CN115242658B (zh) | 开放系统访问方法、装置、计算机设备及存储介质 | |
CN109933985B (zh) | 一种绕过挂钩的方法、装置、设备和计算机存储介质 | |
CN114282178A (zh) | 一种软件自防护方法、装置、电子设备及存储介质 | |
CN113496036A (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 |