CN115982673A - 安全检测方法、装置、电子设备及计算机可读取存储介质 - Google Patents
安全检测方法、装置、电子设备及计算机可读取存储介质 Download PDFInfo
- Publication number
- CN115982673A CN115982673A CN202211665551.0A CN202211665551A CN115982673A CN 115982673 A CN115982673 A CN 115982673A CN 202211665551 A CN202211665551 A CN 202211665551A CN 115982673 A CN115982673 A CN 115982673A
- Authority
- CN
- China
- Prior art keywords
- software
- data
- collected data
- detected
- type
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种安全检测方法、装置、电子设备及计算机可读取存储介质,涉及软件安全技术领域。该方法包括:对待测软件进行反汇编信息收集处理,得到收集数据;基于对比库与收集数据进行处理,得到待测软件的安全检测结果。本申请通过对软件进行逆向的反汇编处理,以收集软件中的多种详细的数据,从而根据收集的数据与对比库中的多种数据进行对比或分析,以对待测软件的安全性进行检测,得到相应的安全检测结果。能够根据软件的逆向工程对软件中的劫持、供应链攻击、恶意代码等情况进行检测和定位,有效地提高了对软件进行安全检测时的效率和准确性,从而提高软件安全检测的效果,提高软件的安全性,适用于多种软件应用的实际场景。
Description
技术领域
本申请涉及软件安全技术领域,具体而言,涉及一种安全检测方法、装置、电子设备及计算机可读取存储介质。
背景技术
目前各种网络APT攻击、供应链攻击、勒索攻击层出不穷,现代恶意软件的运行依赖环境条件逐渐复杂化,现场检测查杀的需求越来越大。大型商业软件在运行过程中可能加载的DLL(Dynamic Link Library,动态链接库)数量众多,黑客组织利用DLL模块劫持攻击或隐藏恶意代码的方式增多,而此类攻击活动实际在商业软件的模块中具有明显的恶意行为。
现有技术中,对于软件发布后的安全检测主要依赖终端安全软件基于已知威胁情报的规则进行粗略扫描,不能够准确地发现软件中某一组件不合规行为、不正常的操作以及可疑的代码位置,导致软件的安全检测效果较差,软件的安全性较低。
发明内容
有鉴于此,本申请实施例的目的在于提供一种安全检测方法、装置、电子设备及计算机可读取存储介质,以改善现有技术中存在的软件的安全检测效果较差的问题。
为了解决上述问题,第一方面,本申请实施例提供了一种安全检测方法,所述方法包括:
对待测软件进行反汇编信息收集处理,得到收集数据;
基于对比库与所述收集数据进行处理,得到所述待测软件的安全检测结果。
在上述实现过程中,通过对软件进行逆向的反汇编处理,以收集软件中的多种详细的数据,从而根据收集的数据与对比库中的多种数据进行对比或分析,以对待测软件的安全性进行检测,得到相应的安全检测结果。能够根据软件的逆向工程对软件中的劫持、供应链攻击、恶意代码等情况进行检测和定位,有效地提高了对软件进行安全检测时的效率和准确性,从而提高软件安全检测的效果,提高软件的安全性,适用于多种软件发布前的自测、软件发布后的检查等应用的实际场景。
可选地,其中,所述收集数据包括第一类收集数据;所述对待测软件进行反汇编信息收集处理,得到收集数据,包括:
确定所述待测软件的安装目录下的待测二进制文件;
基于反汇编工具,对所述待测二进制文件进行反汇编信息收集处理,得到所述第一类收集数据;
其中,所述第一类收集数据包括:字符串信息、数字签名信息、加密算法信息、函数信息、特殊代码片段信息中的至少一种。
在上述实现过程中,通过反汇编工具运行反汇编程序对待测软件的安装目录下的所有待测二进制文件进行反汇编信息收集处理,以在反汇编处理的基础上收集待测软件对应的多种类型的第一类收集数据。能够在反汇编处理的过程中进行多种类型的数据收集,以提高第一类收集数据的多样性和准确性。
可选地,所述基于对比库与所述收集数据进行处理,得到所述待测软件的安全检测结果,包括:
根据所述第一类收集数据,在所述对比库中查询目标数据;
对所述第一类收集数据与所述目标数据进行对比,判断所述待测软件中是否存在所述第一类收集数据与所述目标数据不同时对应的异常组件;
若所述待测软件中存在所述异常组件,则判定所述安全检测结果为异常,并将所述异常组件的定位信息添加到所述安全检测结果中;
若所述待测软件中不存在所述异常组件,则判定所述安全检测结果为正常。
在上述实现过程中,在对第一类收集数据进行处理时,可以根据第一类收集数据在对比库中查询得到相应的目标数据,从而将第一类收集数据与目标数据进行信息的逐步对比,以第一类收集数据中与目标数据之间不同的部分数据对应的软件模块或组件为待测软件中发生异常的异常组件。能够根据待测软件中是否存在异常组件来确定待测软件的安全检测结果,在安全检测结果为异常时,还能够对异常组件进行定位,并将定位信息添加到安全检测结果中,以便对文件被恶意修改、模块被劫持、模块被病毒感染等异常情况进行修复。能够在待测软件发布前,根据第一类收集数据与目标数据之间数据是否一致对待测软件的安全性进行自测和有效防御,提高了安全检测的效率与待测软件的安全性。
可选地,其中,所述收集数据包括第二类收集数据;所述对待测软件进行反汇编信息收集处理,得到收集数据,包括:
确定多个所述待测软件的安装目录下的待测二进制文件中的异常高发频段;
基于反汇编工具对每个所述异常高发频段进行反汇编信息收集处理,得到多个所述第二类收集数据;
其中,所述第二类收集数据包括:字符串信息、数字签名信息、加密算法信息、函数信息、特殊代码片段信息中的至少一种。
在上述实现过程中,在进行数据收集时,还可以通过反汇编工具,运行反汇编程序,对待测软件的安装目录下的待测二进制文件中的异常高发频段进行反汇编信息收集处理,以得到多种异常高发频段中对应的不同类型的第二类收集数据。能够在待测软件的使用过程中,基于待测软件的实际情况在反汇编处理的过程中进行针对性地数据收集,提高了第二类收集数据的针对性和有效性。
可选地,所述基于对比库与所述收集数据进行处理,得到所述待测软件的安全检测结果,包括:
基于所述异常高发频段在所述对比库中确定标准数据和所述标准数据对应的标准范围;
基于所述标准数据对多个所述第二类收集数据进行筛选,确定符合所述标准范围的正常数据和不符合所述标准范围的异常数据;
若所述第二类收集数据为所述正常数据,则判定对应的所述待测软件的所述安全检测结果为正常;
若所述第二类收集数据为所述异常数据,则判定对应的所述待测软件的所述安全检测结果为异常。
在上述实现过程中,在对第二类收集数据进行处理时,由于可以采集多个待测软件中的第二类收集数据,因此,可以根据异常高发频段在对比库中确定相应的标准数据以及对应的标准范围,从而以标准数据的标准范围为基准,对多个第二类收集数据进行横向对比,确定符合标准范围的正常数据以及不符合标准范围且与其他第二类收集数据差异较大的异常数据。在第二类收集数据为正常数据时,则表征对应的待测软件的异常高发频段并未产生异常,待测软件的安全检测结果为正常;在第二类收集数据为异常数据时,则表征对应的待测软件的异常高发频段产生异常,待测软件的安全检测结果为异常。能够在软件应用在多个设备中的应用场景中,根据横向对比确定第二类收集数据是否正常,从而判定待测软件的安全检测结果,有效地对软件运行环境以及软件中的风险高发频段进行针对性地检测,提高了安全检测的效率与待测软件的安全性。
可选地,所述方法还包括:
基于反汇编工具对原始操作系统中的链接模块进行反汇编信息收集处理,得到第一类数据;
基于所述反汇编工具对所述待测软件对应的开发库中的原始二进制文件进行反汇编信息收集处理,得到第二类数据;
基于目标格式将所述第一类数据和所述第二类数据存储到所述对比库中。
在上述实现过程中,为了使对比库中能够包含多种类型的数据,在创建对比库时,可以基于相同的反汇编工具,运行反汇编程序对多种不同模块或文件进行反汇编信息收集处理,以收集得到相应的多种不同类型的数据,并基于目标格式将多种类型的数据存储到对比库中,以提高后续对数据进行查找的效率,提高了对比库中数据的全面性和有效性。
可选地,所述对比库中还包括规则条件;所述基于对比库与所述收集数据进行处理,得到所述待测软件的安全检测结果,包括:
根据所述收集数据确定所述待测软件的软件行为;
基于所述软件行为进行规则分析,得到所述待测软件的目标规则;
基于所述对比库中的所述规则条件对所述目标规则进行分析,得到所述待测软件的安全检测结果;
其中,所述软件行为包括:对抗点行为、权限行为、规避行为、反调试行中的任意一种。
在上述实现过程中,在确定待测软件的安全检测结果时,还可以根据收集数据确定待测软件的多种软件行为,从而根据软件行为进行规则分析,得到待测软件中运行时的目标规则,以根据对比库中自定义的规则条件对目标规则进行分析,以评估待测软件的多种功能和安全性,得到相应的安全检测结果。能够根据待测软件运行时的实际规则对待测软件的安全性进行检测,适用于多种安全检测的实际场景。
第二方面,本申请实施例还提供了一种安全检测装置,所述装置包括:收集模块和处理模块;
所述收集模块用于对待测软件进行反汇编信息收集处理,得到收集数据;
所述处理模块用于基于对比库与所述收集数据进行处理,得到所述待测软件的安全检测结果。
在上述实现过程中,通过收集模块对软件进行逆向的反汇编处理,以收集软件中的多种详细的数据,通过处理模块根据收集的数据与对比库中的多种数据进行对比或分析,以对待测软件的安全性进行检测,得到相应的安全检测结果。
第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述安全检测方法中任一实现方式中的步骤。
第四方面,本申请实施例还提供了一种计算机可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述安全检测方法中任一实现方式中的步骤。
综上所述,本申请实施例提供了一种安全检测方法、装置、电子设备及计算机可读取存储介质,通过对软件进行逆向的反汇编处理,以收集软件中的多种详细的数据,从而根据收集的数据与对比库中的多种数据进行对比或分析,以对待测软件的安全性进行检测。有效地提高了对软件进行安全检测时的效率和准确性,从而提高软件安全检测的效果,提高软件的安全性,适用于多种软件发布前的自测、软件发布后的检查等应用的实际场景。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种电子设备的方框示意图;
图2为本申请实施例提供的一种安全检测方法的流程示意图;
图3为本申请实施例提供的一种步骤S200的详细流程示意图;
图4为本申请实施例提供的一种步骤S300的详细流程示意图;
图5为本申请实施例提供的另一种步骤S200的详细流程示意图;
图6为本申请实施例提供的另一种步骤S300的详细流程示意图;
图7为本申请实施例提供的另一种安全检测方法的流程示意图;
图8为本申请实施例提供的又一种步骤S300的详细流程示意图;
图9为本申请实施例提供的一种安全检测装置的结构示意图。
图标:100-电子设备;111-存储器;112-存储控制器;113-处理器;114-外设接口;115-输入输出单元;116-显示单元;600-安全检测装置;610-收集模块;620-处理模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请实施例的一部分实施例,而不是全部的实施例。基于本申请实施例的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
随着网络安全在战略上的不断重视,各种网络APT攻击、供应链攻击、勒索攻击层出不穷,现代恶意软件的运行依赖环境条件逐渐复杂化,现场检测查杀的需求越来越大。大型商业软件在运行过程中可能加载的DLL数量众多,黑客组织利用DLL模块劫持攻击或隐藏恶意代码的方式增多,例如:SolarWinds供应链攻击、海莲花针对国内的APT攻击,此类攻击活动实际在商业软件的模块中具有明显的恶意行为。
现有技术中,对于软件发布后的安全检测主要依赖终端安全软件基于已知威胁情报的规则进行粗略扫描,例如:通过静态分析工具打开目标应用软件的通过动态调试器获取并保存的指令流文件;将指令流文件的指令的动态调试器地址转换为静态分析工具地址;标识静态分析工具地址所对应的指令流,以对软件安全性进行静态分析等。而在一些应用场景中,例如境外黑客APT32海莲花组织的攻击案例中,绝大多数是利用正常商业软件的DLL加载劫持实现攻击,现有杀毒软件对于DLL劫持利用并不能做到很好的防御拦截,且目前针对于供应链攻击的软件安全问题的检测方案策略较少,现有软件发布前的测试方法也主要是针对软件能否正常运行实现功能,是否存在多情况处理下的BUG问题展开测试。因此,目前对软件的安全性进行检测的方法中,都无法准确地发现软件中某一组件不合规行为、不正常的操作以及可疑的代码位置,导致软件的安全检测效果较差,软件的安全性较低。
为了解决上述问题,本申请实施例提供了一种安全检测方法,应用于电子设备,电子设备可以为服务器、个人电脑(Personal Computer,PC)、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)等具有逻辑计算功能的电子设备,能够对待测软件进行逆向的反汇编处理,以根据收集的多种数据对待测软件的安全性进行检测。
可选地,请参阅图1,图1为本申请实施例提供的一种电子设备的方框示意图。电子设备100可以包括存储器111、存储控制器112、处理器113、外设接口114、输入输出单元115、显示单元116。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对电子设备100的结构造成限定。例如,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
上述的存储器111、存储控制器112、处理器113、外设接口114、输入输出单元115及显示单元116各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器113用于执行存储器中存储的可执行模块。
其中,存储器111可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,简称EEPROM)等。其中,存储器111用于存储程序,处理器113在接收到执行指令后,执行程序,本申请实施例任一实施例揭示的过程定义的电子设备100所执行的方法可以应用于处理器113中,或者由处理器113实现。
上述的处理器113可能是一种集成电路芯片,具有信号的处理能力。上述的处理器113可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器,也可以是任何常规的处理器等。
上述的外设接口114将各种输入/输出装置耦合至处理器113以及存储器111。在一些实施例中,外设接口114,处理器113以及存储控制器112可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
上述的输入输出单元115用于提供给用户输入数据。输入输出单元115可以是,但不限于,鼠标和键盘等。
上述的显示单元116在电子设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。在本申请实施例中,显示单元116可以显示收集到的多种收集数据、待测软件的安全检测结果等多种数据。
本实施例中的电子设备可以用于执行本申请实施例提供的各个安全检测方法中的各个步骤。下面通过几个实施例详细描述安全检测方法的实现过程。
请参阅图2,图2为本申请实施例提供的一种安全检测方法的流程示意图,该方法可以包括步骤S200-S300。
步骤S200,对待测软件进行反汇编信息收集处理,得到收集数据。
其中,软件逆向工程(Software Reverse Engineering)又称软件反向工程,是指从可运行的程序系统出发,运用反汇编、解密、编解码、系统分析、程序理解等多种计算机技术,对软件的结构、执行流程、加密算法等进行逆向分析和研判,推导出软件产品的源代码、设计原理、结构、算法、处理过程、运行方法及相关文档等。因此,可以基于软件逆向工程,对待测软件进行反汇编处理,以收集得到其中对应的多种类型的收集数据。
步骤S300,基于对比库与收集数据进行处理,得到待测软件的安全检测结果。
其中,对比库中具有预先存储的多种数据,例如,对比库中可以包括原始操作系统中的链接模块的相关数据、待测软件对应的开发库中的原始二进制文件的相关数据、以及自定义的规则条件等多种数据。可以根据对比库中的相应数据对收集数据进行对比、筛选、分析等多种处理,以对待测软件的安全性进行检测,能够对检测软件中可能存在的敏感字符串泄露、加密代码位置暴露、DLL被劫持等多种安全问题,确定对应的安全检测结果。
在图2所示的实施例中,有效地提高了对软件进行安全检测时的效率和准确性,从而提高软件安全检测的效果,提高软件的安全性,适用于多种软件发布前的自测、软件发布后的检查等应用的实际场景。
可选地,请参阅图3,图3为本申请实施例提供的一种步骤S200的详细流程示意图,步骤S200中还可以包括步骤S210-S220。
步骤S210,确定待测软件的安装目录下的待测二进制文件。
其中,可以在电子设备中部署需要被检测的商业软件等作为待测软件,并使待测软件正常安装与运行。为了确定收集数据时的目标对象,可以先确定待测软件的安装目录,一起中的所有二进制文件作为进行反汇编处理的对象。
步骤S220,基于反汇编工具,对待测二进制文件进行反汇编信息收集处理,得到第一类收集数据。
其中,可以使用多种反汇编工具,例如使用idat反汇编工具运行IDApython等反汇编程序对所有待测二进制文件进行批量反汇编信息收集,并在反汇编处理的过程中运行ida插件脚本等工具,实现字符串信息收集、组件的软件数字签名信息收集、加密算法识别及定位、加密类型的API导入函数收集、特征匹配扫描定位混淆指令集片段、反调试反虚拟机指令集片段等功能,得到相应的第一类收集数据,第一类收集数据可以包括对应的字符串信息、数字签名信息、加密算法信息、函数信息、特殊代码片段信息等多种数据。
示例地,第一类收集数据中的特殊代码片段可以包括:获取时间和语言的API函数调用地址、截取屏幕信息的API函数调用地址、注入代码的关键API函数调用地址、睡眠函数的调用地址及参数、检测虚拟机环境的代码、检测调试器调试状态的代码、常见加解密算法的调用地址、text段内反汇编明显被混淆的代码、从资源段中解密资源的调用地址、权限提升函数的调用及参数等多种数据。
在图3所示的实施例中,能够在反汇编处理的过程中进行多种类型的数据收集,以提高第一类收集数据的多样性和准确性。
可选地,请参阅图4,图4为本申请实施例提供的一种步骤S300的详细流程示意图,步骤S300中还可以包括步骤S310-S340。
步骤S310,根据第一类收集数据,在对比库中查询目标数据。
其中,在软件发布前的应用场景中,可以将收集的第一类收集数据存储在测试用的电子设备中,并向对比库所在的服务器端发送请求进行检测查询,以在对比库中,根据第一类收集数据中每个模块对应的种类或身份信息等,搜索到与第一类收集信息对应的目标数据。
步骤S320,对第一类收集数据与目标数据进行对比,判断待测软件中是否存在第一类收集数据与目标数据不同时对应的异常组件。
其中,可以根据第一类收集数据与目标数据进行逐一对比,通过对比原始操作系统下所有DLL模块的反汇编信息,可以判断待测软件的安装目录下是否存在伪装系统DLL名称的恶意模块,还可以根据收集到的数字签名信息、加密算法信息及函数信息等信息对软件的安全性进行综合性评估,并将此软件的部分特征反馈入对比库中,以减少共同特征引起的干扰因素。
示例地,可以在相同key值的情况下,通过value值的差异性进行信息比对,逐步比对包含DLL模块的名称、哈希值、文件大小、导入、导出表函数信息、数字签名信息、主函数入口处代码特征等信息,第一类收集数据与目标数据不同时对应的模块或组件为异常组件。例如:对比后发现第一类收集数据中某DLL模块导入表与目标数据不同,发生变化,DLL模块数量增多,模块入口点代码明显发生变化,则以相应的模块作为异常组件,可能分别对应文件被恶意HOOK修改、DLL劫持、模块被病毒感染等异常情况。可以对每个模块的信息进行分析研判,并回馈异常组件的分析结果给测试的电子设备。
步骤S330,若待测软件中存在异常组件,则判定安全检测结果为异常,并将异常组件的定位信息添加到安全检测结果中。
其中,在待测软件中存在异常组件时,则待测软件中的文件可能存在被恶意修改、模块被劫持、模块被病毒感染等异常情况,其对应的安全检测结果为异常。
并且,还可以根据异常组件中暴露的字符串和变量等敏感信息,定位到软件中容易被逆向的加密代码点等作为定位信息,将定位信息添加到安全检测结果中,以便对异常情况进行通知和修复,可以作为软件的安全性检查策略进行使用。
示例地,在对某商业软件的发布版本进行分析测试时,能够在异常组件中定位发现某模块使用简单单字节异或加载数据,并通过该模块的名称及描述确定此处很有可能是核心数据解密加载的位置,结合人工分析调试与源码对比发现上述过程中精准地定位到了异或操作的位置,并获取其中异或的字节值,从而确认发现了商业软件中容易被破解利用的代码位置,作为相应的定位信息。还可以由开发人员根据定位信息对源代码进行修改,以增强数据的加密算法,提高密钥复杂度,提高软件的健壮性及安全性。
步骤S340,若待测软件中不存在异常组件,则判定安全检测结果为正常。
其中,在待测软件中不存在异常组件时,则待测软件中不具有异常情况或具有异常情况的可能性较低,其对应的安全检测结果为正常。
在图4所示的实施例中,能够在待测软件发布前,根据第一类收集数据与目标数据之间数据是否一致对待测软件的安全性进行自测和有效防御,提高了安全检测的效率与待测软件的安全性。
可选地,请参阅图5,图5为本申请实施例提供的另一种步骤S200的详细流程示意图,步骤S200中还可以包括步骤S230-S240。
步骤S230,确定多个待测软件的安装目录下的待测二进制文件中的异常高发频段。
其中,在软件发布后的应用场景中,为了对软件在使用环境中是否被劫持、利用、攻击等情况进行检测,且考虑到实际客户端安装量较大的待测软件,可以通过批量反汇编采集的数据具有很大的相似性,因此,可以先根据同类型软件的历史情况、待测软件的历史数据等确定待测软件的安装目录下的待测二进制文件中的异常高发频段,以作为进行反汇编处理的对象。
步骤S240,基于反汇编工具对每个异常高发频段进行反汇编信息收集处理,得到多个第二类收集数据。
其中,可以使用多种反汇编工具,例如使用idat反汇编工具运行IDApython等反汇编程序对每个异常高发频段进行反汇编信息收集,并在反汇编处理的过程中运行ida插件脚本等工具,实现字符串信息收集、组件的软件数字签名信息收集、加密算法识别及定位、加密类型的API导入函数收集、特征匹配扫描定位混淆指令集片段、反调试反虚拟机指令集片段等功能,得到相应的第二类收集数据,第二类收集数据可以包括对应的字符串信息、数字签名信息、加密算法信息、函数信息、特殊代码片段信息等多种数据。
在图5所示的实施例中,能够在待测软件的使用过程中,基于待测软件的实际情况在反汇编处理的过程中进行针对性地数据收集,提高了第二类收集数据的针对性和有效性。
可选地,请参阅图6,图6为本申请实施例提供的另一种步骤S300的详细流程示意图,步骤S300中还可以包括步骤S350-S380。
步骤S350,基于异常高发频段在对比库中确定标准数据和标准数据对应的标准范围。
其中,在对第二类收集数据进行处理时,由于可以采集多个待测软件中的第二类收集数据,因此,可以根据异常高发频段在对比库中确定相应的标准数据以及对应的标准范围,从而以标准数据的标准范围为基准,对多个第二类收集数据进行横向对比。
步骤S360,基于标准数据对多个第二类收集数据进行筛选,确定符合标准范围的正常数据和不符合标准范围的异常数据。
其中,可以根据标准数据对多个第二类收集数据进行筛选,以对多个第二类收集数据进行横向对比时,由于多台客户端中的其中一台客户端中的5待测软件被恶意软件感染或者劫持时,其采集的二进制信息会明显特殊化,
例如,同一版本软件在某企业有3000多台安装量,软件在这3000多台机器上的使用情况理论上并不会有太大差异,收集到的多个符合标准范围的第二类收集数据,一般并不会有较大差异。如果某个待测软件中收集的二类
收集数据与其他第二类收集数据的软件信息差异较大,且不符合标准范围0时,则该待测软件上可能存在异常环境,可以确定符合标准范围的正常数据和不符合标准范围的异常数据。可以通过横向对比系统中DLL模块的信息,重点解决软件安装目录下的DLL被劫持利用的问题,能有效保证软件组件的原始性和安全性。可以在一定程序上识别出软件组件中隐藏的恶意敏感代码,从而发现软件中可能存在的供应链攻击。
5可选地,在判定正常数据和异常数据之前,还可以对手机的多个第二类
收集数据进行过滤处理,以减少横向对比时的数据干扰。
步骤S370,若第二类收集数据为正常数据,则判定对应的待测软件的安全检测结果为正常。
其中,在第二类收集数据为正常数据时,则表征对应的待测软件的异常0高发频段并未产生异常,待测软件的安全检测结果为正常。
步骤S380,若第二类收集数据为异常数据,则判定对应的待测软件的安全检测结果为异常。
其中,在第二类收集数据为异常数据时,则表征对应的待测软件的异常高发频段产生异常,待测软件的安全检测结果为异常。
5可选地,在安全检测结果为异常时,还可以分析异常数据中的功能特征行为,以判断出有较低置信度,并结合人工逆向分析调试定位到待测软件中一个模块被DLL替换劫持,具有明显恶意代码行为的位置。
在图6所示的实施例中,能够在软件应用在多个设备中的应用场景中,根据横向对比确定第二类收集数据是否正常,从而判定待测软件的安全检
测结果,有效地对软件运行环境以及软件中的风险高发频段进行针对性地5检测,提高了安全检测的效率与待测软件的安全性。
可选地,请参阅图7,图7为本申请实施例提供的另一种安全检测方法的流程示意图,该方法还可以包括步骤S510-S530。
步骤S510,基于反汇编工具对原始操作系统中的链接模块进行反汇编信息收集处理,得到第一类数据。
0其中,可以使用多种反汇编工具,例如使用idat反汇编工具运行IDApython等反汇编程序对原始操作系统下所有的链接模块,即DLL模块进行反汇编信息收集,得到相应的第一类数据。
可选地,收集方式可以为:遍历操作系统所有DLL模块,使用idat.exe
对每个DLL模块进行反汇编分析并生成.idb或.i64文件,在idat.exe中运行5IDApython采集DLL模块的基本信息并形成第一类数据。
步骤S520,基于反汇编工具对待测软件对应的开发库中的原始二进制文件进行反汇编信息收集处理,得到第二类数据。
其中,可以使用多种反汇编工具,例如使用idat反汇编工具运行IDApython等反汇编程序对待测软件开发中常用的第三方库的发布版本中0所有原始二进制文件进行反汇编信息收集,得到相应的第二类数据。
步骤S530,基于目标格式将第一类数据和第二类数据存储到对比库中。
其中,收集的第一类数据和第二类数据可以以目标格式,例如以json格式存储在对比库中,可以包含DLL模块的名称、文件大小、导入表函数导
出表函数信息、数字签名信息、主函数入口处代码特征等信息,为提高后续5查找效率,还可以对单个DLL模块以单个json文件的形式存储。其中对于不具有数字签名的原始系统中的DLL,应当详细记录其模块信息。最终构建的静态对比库可以存储在服务器中,以提供接口给测试用的电子设备进行查询。
在图7所示的实施例中,可以对各种类型的数据进行收集和存储,以提高对比库中数据的全面性和有效性。
可选地,请参阅图8,图8为本申请实施例提供的又一种步骤S300的详细流程示意图,步骤S300中还可以包括步骤S391-S393。
步骤S391,根据收集数据确定待测软件的软件行为。
其中,可以根据收集数据分析得到待测软件的软件行为,软件行为可以包括:对抗点行为、权限行为、规避行为、反调试行等多种行为,例如软件技术对抗点、权限提升绕过、规避查杀、反虚拟机反调试等多种行为。
可选地,确定待测软件的软件行为的收集数据可以为上述的第一类收集数据,也可以为第二类收集数据。
步骤S392,基于软件行为进行规则分析,得到待测软件的目标规则。
其中,可以根据多种软件行为进新规则分析,以分析得到或定义待测软件中的行为规则链,作为相应的目标规则。
步骤S393,基于对比库中的规则条件对目标规则进行分析,得到待测软件的安全检测结果。
其中,对比库中还可以包含自定义的规则条件,能够基于规则条件对目标规则进行识别、评估等分析处理,以评估待测软件的多种功能和安全性,得到相应的安全检测结果。
示例地,可以根据模块文件的反汇编信息中是否包含如下字符串判断评估组件是否被植入恶意代码或包含恶意软件的可能性:杀毒软件进程名称、PDB信息、敏感钱包地址、矿池地址、敏感浏览器cookie路径、远程管理工具密码存储路径、勒索常见提示信息文本、异或key、或者注释中算法key、“password”的字符串、“svchost”、“explorer”、“csrss.exe”、“ppt”,“doc”,“xlsx”,“rtf”等。当软件某模块中包含杀毒软件进程名称时,模块很有可能具有检测杀毒软件的功能,绝大多数正常商业软件不会同时包含以上两个杀毒软件的名称,可以根据此行为对软件进行危险系数评估。或者,软件的模块在并不属于系统模块库和第三方库的情况下,多数是软件本身自身设计的自主模块程序,此类模块程序一般很少包含“svshost”,“explorer”系统进程,当使用匹配规则发现在注入代码的上下文中发现引用了这两个字符串的指针,可以判定软件具有注入系统进程的行为。可以通过软件中识别出的目标规则判断软件中存在恶意代码的可能性,以对待测软件进行安全检测。
在图8所示的实施例中,能够根据待测软件运行时的实际规则对待测软件的安全性进行检测,适用于多种安全检测的实际场景。
请参阅图9,图9为本申请实施例提供的一种安全检测装置的结构示意图,安全检测装置600中可以包括:收集模块610和处理模块620;
收集模块610用于对待测软件进行反汇编信息收集处理,得到收集数据;
处理模块620用于基于对比库与收集数据进行处理,得到待测软件的安全检测结果。
在一可选的实施方式中,其中,收集数据包括第一类收集数据;收集模块610中还可以包括第一收集子模块,用于确定待测软件的安装目录下的待测二进制文件;基于反汇编工具,对待测二进制文件进行反汇编信息收集处理,得到第一类收集数据;其中,第一类收集数据包括:字符串信息、数字签名信息、加密算法信息、函数信息、特殊代码片段信息中的至少一种。
在一可选的实施方式中,处理模块620中可以包括第一处理子模块,用于根据第一类收集数据,在对比库中查询目标数据;对第一类收集数据与目标数据进行对比,判断待测软件中是否存在第一类收集数据与目标数据不同时对应的异常组件;若待测软件中存在异常组件,则判定安全检测结果为异常,并将异常组件的定位信息添加到安全检测结果中;若待测软件中不存在异常组件,则判定安全检测结果为正常。
在一可选的实施方式中,其中,收集数据包括第二类收集数据;收集模块610中还可以包括第二收集子模块,用于确定多个待测软件的安装目录
下的待测二进制文件中的异常高发频段;基于反汇编工具对每个异常高发5频段进行反汇编信息收集处理,得到多个第二类收集数据;其中,第二类收集数据包括:字符串信息、数字签名信息、加密算法信息、函数信息、特殊代码片段信息中的至少一种。
在一可选的实施方式中,处理模块620中可以包括第二处理子模块,
用于基于异常高发频段在对比库中确定标准数据和标准数据对应的标准范0围;基于标准数据对多个第二类收集数据进行筛选,确定符合标准范围的正
常数据和不符合标准范围的异常数据;若第二类收集数据为正常数据,则判定对应的待测软件的安全检测结果为正常;若第二类收集数据为异常数据,则判定对应的待测软件的安全检测结果为异常。
在一可选的实施方式中,安全检测装置600中还可以包括构建模块,5用于基于反汇编工具对原始操作系统中的链接模块进行反汇编信息收集处理,得到第一类数据;基于反汇编工具对待测软件对应的开发库中的原始二进制文件进行反汇编信息收集处理,得到第二类数据;基于目标格式将第一类数据和第二类数据存储到对比库中。
在一可选的实施方式中,处理模块620中可以包括第三处理子模块,0用于根据收集数据确定待测软件的软件行为;基于软件行为进行规则分析,
得到待测软件的目标规则;基于对比库中的规则条件对目标规则进行分析,得到待测软件的安全检测结果;其中,软件行为包括:对抗点行为、权限行为、规避行为、反调试行中的任意一种。
由于本申请实施例中的安全检测装置600解决问题的原理与前述的安5全检测方法的实施例相似,因此本实施例中的安全检测装置600的实施可
以参见上述安全检测方法的实施例中的描述,重复之处不再赘述。
本申请实施例还提供了一种计算机可读取存储介质,可读取存储介质中存储有计算机程序指令,计算机程序指令被一处理器读取并运行时,执行本实施例提供的安全检测方法中任一项方法中的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种安全检测方法,其特征在于,所述方法包括:
对待测软件进行反汇编信息收集处理,得到收集数据;
基于对比库与所述收集数据进行处理,得到所述待测软件的安全检测结果。
2.根据权利要求1所述的方法,其特征在于,其中,所述收集数据包括第一类收集数据;所述对待测软件进行反汇编信息收集处理,得到收集数据,包括:
确定所述待测软件的安装目录下的待测二进制文件;
基于反汇编工具,对所述待测二进制文件进行反汇编信息收集处理,得到所述第一类收集数据;
其中,所述第一类收集数据包括:字符串信息、数字签名信息、加密算法信息、函数信息、特殊代码片段信息中的至少一种。
3.根据权利要求2所述的方法,其特征在于,所述基于对比库与所述收集数据进行处理,得到所述待测软件的安全检测结果,包括:
根据所述第一类收集数据,在所述对比库中查询目标数据;
对所述第一类收集数据与所述目标数据进行对比,判断所述待测软件中是否存在所述第一类收集数据与所述目标数据不同时对应的异常组件;
若所述待测软件中存在所述异常组件,则判定所述安全检测结果为异常,并将所述异常组件的定位信息添加到所述安全检测结果中;
若所述待测软件中不存在所述异常组件,则判定所述安全检测结果为正常。
4.根据权利要求1所述的方法,其特征在于,其中,所述收集数据包括第二类收集数据;所述对待测软件进行反汇编信息收集处理,得到收集数据,包括:
确定多个所述待测软件的安装目录下的待测二进制文件中的异常高发频段;
基于反汇编工具对每个所述异常高发频段进行反汇编信息收集处理,得到多个所述第二类收集数据;
其中,所述第二类收集数据包括:字符串信息、数字签名信息、加密算法信息、函数信息、特殊代码片段信息中的至少一种。
5.根据权利要求4所述的方法,其特征在于,所述基于对比库与所述收集数据进行处理,得到所述待测软件的安全检测结果,包括:
基于所述异常高发频段在所述对比库中确定标准数据和所述标准数据对应的标准范围;
基于所述标准数据对多个所述第二类收集数据进行筛选,确定符合所述标准范围的正常数据和不符合所述标准范围的异常数据;
若所述第二类收集数据为所述正常数据,则判定对应的所述待测软件的所述安全检测结果为正常;
若所述第二类收集数据为所述异常数据,则判定对应的所述待测软件的所述安全检测结果为异常。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
基于反汇编工具对原始操作系统中的链接模块进行反汇编信息收集处理,得到第一类数据;
基于所述反汇编工具对所述待测软件对应的开发库中的原始二进制文件进行反汇编信息收集处理,得到第二类数据;
基于目标格式将所述第一类数据和所述第二类数据存储到所述对比库中。
7.根据权利要求1所述的方法,其特征在于,所述对比库中还包括规则条件;所述基于对比库与所述收集数据进行处理,得到所述待测软件的安全检测结果,包括:
根据所述收集数据确定所述待测软件的软件行为;
基于所述软件行为进行规则分析,得到所述待测软件的目标规则;
基于所述对比库中的所述规则条件对所述目标规则进行分析,得到所述待测软件的安全检测结果;
其中,所述软件行为包括:对抗点行为、权限行为、规避行为、反调试行中的任意一种。
8.一种安全检测装置,其特征在于,所述装置包括:收集模块和处理模块;
所述收集模块用于对待测软件进行反汇编信息收集处理,得到收集数据;
所述处理模块用于基于对比库与所述收集数据进行处理,得到所述待测软件的安全检测结果。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器运行所述程序指令时,执行权利要求1-7中任一项所述方法中的步骤。
10.一种计算机可读取存储介质,其特征在于,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行权利要求1-7任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211665551.0A CN115982673A (zh) | 2022-12-23 | 2022-12-23 | 安全检测方法、装置、电子设备及计算机可读取存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211665551.0A CN115982673A (zh) | 2022-12-23 | 2022-12-23 | 安全检测方法、装置、电子设备及计算机可读取存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115982673A true CN115982673A (zh) | 2023-04-18 |
Family
ID=85975357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211665551.0A Pending CN115982673A (zh) | 2022-12-23 | 2022-12-23 | 安全检测方法、装置、电子设备及计算机可读取存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115982673A (zh) |
-
2022
- 2022-12-23 CN CN202211665551.0A patent/CN115982673A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Feng et al. | Apposcopy: Semantics-based detection of android malware through static analysis | |
US10055585B2 (en) | Hardware and software execution profiling | |
US9424426B2 (en) | Detection of malicious code insertion in trusted environments | |
Crussell et al. | Andarwin: Scalable detection of android application clones based on semantics | |
US20170372068A1 (en) | Method to identify known compilers functions, libraries and objects inside files and data items containing an executable code | |
Allix et al. | A Forensic Analysis of Android Malware--How is Malware Written and How it Could Be Detected? | |
KR101212553B1 (ko) | 악성 파일 검사 장치 및 방법 | |
Senanayake et al. | Android source code vulnerability detection: a systematic literature review | |
Zakeri et al. | A static heuristic approach to detecting malware targets | |
Mirzaei et al. | Andrensemble: Leveraging api ensembles to characterize android malware families | |
Muralidharan et al. | File packing from the malware perspective: Techniques, analysis approaches, and directions for enhancements | |
Yücel et al. | Imaging and evaluating the memory access for malware | |
US20190370106A1 (en) | Unexpected event detection during execution of an application | |
JP6000465B2 (ja) | プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法 | |
Samhi et al. | Difuzer: Uncovering suspicious hidden sensitive operations in android apps | |
Huang et al. | Android malware development on public malware scanning platforms: A large-scale data-driven study | |
Aslan | Performance comparison of static malware analysis tools versus antivirus scanners to detect malware | |
Najari et al. | Malware detection using data mining techniques | |
JP2014056563A (ja) | デバッグイベントを用いた悪意のあるシェルコードの検知装置及び方法 | |
KR20110087826A (ko) | 가상머신을 이용한 악성소프트웨어 탐지 방법 | |
Jang et al. | Function‐Oriented Mobile Malware Analysis as First Aid | |
US10880316B2 (en) | Method and system for determining initial execution of an attack | |
Ravula et al. | Learning attack features from static and dynamic analysis of malware | |
A. Mawgoud et al. | A malware obfuscation AI technique to evade antivirus detection in counter forensic domain | |
CN115982673A (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 |