CN116226850A - 应用程序的病毒检测方法、装置、设备、介质及程序产品 - Google Patents
应用程序的病毒检测方法、装置、设备、介质及程序产品 Download PDFInfo
- Publication number
- CN116226850A CN116226850A CN202310084651.2A CN202310084651A CN116226850A CN 116226850 A CN116226850 A CN 116226850A CN 202310084651 A CN202310084651 A CN 202310084651A CN 116226850 A CN116226850 A CN 116226850A
- Authority
- CN
- China
- Prior art keywords
- content
- picture
- application
- detected
- sub
- 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
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
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本申请提供了一种应用程序的病毒检测方法、装置、设备、介质及程序产品;方法包括:在模拟器上运行待检测应用,并在待检测应用运行的过程中,获取待检测应用输出的目标内容,目标内容包括多个子内容,子内容包括图片内容和文本内容中至少之一;基于各子内容,分别对待检测应用进行病毒检测,得到各子内容对应的病毒检测结果;结合各子内容对应的病毒检测结果,生成待检测应用的目标病毒检测结果,目标病毒检测结果,用于指示待检测应用是否感染病毒。通过本申请,能够有效提高检测病毒的准确度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用程序的病毒检测方法、装置、设备、介质及程序产品。
背景技术
随着互联网技术的不断发展,应用的类型越来越丰富,对于应用运行的安全性也越来越受到关注。病毒的检测对终端的安全性和便捷性具有重要意义。
在相关技术中,可以对已知的病毒的源码进行分析,确定该病毒的特征码,该特征码可以是源码中一个连续的二进制片段。然后,在检测任意应用是否感染病毒时,可以获取该应用的源码,判断该应用的源码中是否包含有上述病毒的特征码,如果包含,则该应用即被感染病毒。但是,为了躲避检测,病毒的源码可能会被修改,得到变形的病毒,从而规避检测,使得相关技术对病毒进行检测的准确度较低。
发明内容
本申请实施例提供一种应用程序的病毒检测方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够有效提高检测病毒的准确度。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种应用程序的病毒检测方法,包括:
在模拟器上运行待检测应用,并在所述待检测应用运行的过程中,获取所述待检测应用输出的目标内容,所述目标内容包括多个子内容,所述子内容包括图片内容和文本内容中至少之一;
基于各所述子内容,分别对所述待检测应用进行病毒检测,得到各所述子内容对应的病毒检测结果;
结合各所述子内容对应的病毒检测结果,生成所述待检测应用的目标病毒检测结果,所述目标病毒检测结果,用于指示所述待检测应用是否感染病毒。
本申请实施例提供一种应用程序的病毒检测装置,包括:
获取模块,用于在模拟器上运行待检测应用,并在所述待检测应用运行的过程中,获取所述待检测应用输出的目标内容,所述目标内容包括多个子内容,所述子内容包括图片内容和文本内容中至少之一;
病毒检测模块,用于基于各所述子内容,分别对所述待检测应用进行病毒检测,得到各所述子内容对应的病毒检测结果;
生成模块,用于结合各所述子内容对应的病毒检测结果,生成所述待检测应用的目标病毒检测结果,所述目标病毒检测结果,用于指示所述待检测应用是否感染病毒。
在一些实施例中,上述病毒检测模块,还用于针对各所述子内容分别执行以下处理:获取所述子内容中图片内容的图片特征,并基于所述图片特征,对所述图片内容进行内容检测,得到所述图片内容的内容检测结果,所述内容检测结果,用于指示所述图片内容是否包含检测内容,所述检测内容,用于指示所述待检测应用在运行过程中已感染病毒;对所述图片内容和多个参考图片内容分别进行内容匹配,得到各所述图片内容对应的内容匹配结果,,所述参考图片内容包括所述检测内容;结合所述内容检测结果和所述内容匹配结果,确定所述图片内容对应的病毒检测结果。
在一些实施例中,上述病毒检测模块,还用于获取多个图片内容检测网络,不同的所述图片内容检测网络所检测的所述检测内容不同;基于所述图片特征,调用各所述图片内容检测网络,分别对所述图片内容进行内容检测,得到各所述图片内容检测网络分别对应的内容检测结果,所述图片内容检测网络对应的内容检测结果,用于指示所述图片内容是否包含所述图片内容检测网络对应的所述检测内容;结合各所述图片内容检测网络分别对应的内容检测结果,确定所述图片内容的内容检测结果。
在一些实施例中,上述病毒检测模块,还用于基于所述图片特征,对所述多个参考图片内容进行相似度筛选,得到至少一个目标参考图片内容,目标参考图片内容的图片特征与所述图片内容的图片特征之间的相似度大于相似度阈值;获取所述图片内容的关键点特征,并基于所述关键点特征进行图片内容间的相似度匹配,得到各所述目标参考图片内容与所述图片内容的匹配度;基于各所述目标参考图片内容与所述图片内容的匹配度,确定所述图片内容的内容匹配结果。
在一些实施例中,上述病毒检测模块,还用于针对各所述目标参考图片内容分别执行以下处理:获取所述目标参考图片内容的关键点特征,所述目标参考图片内容的关键点特征包括:所述目标参考图片内容中各关键像素点的第一关键点特征,所述图片内容的关键点特征包括:所述图片内容中各关键像素点的第二关键点特征,所述目标参考图片内容的关键像素点与所述图片内容的关键像素点一一对应;获取各所述第一关键点特征与相应所述第二关键点特征之间的特征相似度,并基于所述特征相似度,确定所述目标参考图片内容与所述图片内容的匹配度。
在一些实施例中,上述病毒检测模块,还用于将所述特征相似度大于或等于特征相似度阈值的所述目标参考图片内容中的关键像素点,确定为目标像素点;获取所述目标像素点的第一数量,以及所述目标参考图片内容的关键像素点的第二数量;将所述第一数量和所述第二数量的比值,确定为所述目标参考图片内容与所述图片内容的匹配度。
在一些实施例中,上述病毒检测模块,还用于将最大的所述匹配度的值与匹配度阈值进行数值比较,得到比较结果;当所述比较结果指示最大的所述匹配度的值大于匹配度阈值时,确定所述内容匹配结果为第一匹配结果,所述第一匹配结果,用于指示所述图片内容与所述参考图片内容匹配成功;当所述比较结果指示最大的所述匹配度的值小于或等于所述匹配度阈值时,确定所述内容匹配结果为第二匹配结果,所述第二匹配结果,用于指示所述图片内容与所述参考图片内容匹配不成功。
在一些实施例中,上述病毒检测模块,还用于当所述内容匹配结果表征所述图片内容与所述参考图片内容匹配成功时,获取最大的所述匹配度对应的参考图片内容的病毒标签,并将所述病毒标签的内容,确定为所述图片内容对应的病毒检测结果;当所述内容匹配结果表征所述图片内容与参考图片内容匹配不成功时,将所述内容检测结果,确定为所述图片内容对应的病毒检测结果。
在一些实施例中,上述病毒检测模块,还用于针对各所述子内容分别执行以下处理:对所述文本内容中的无用词进行内容过滤,得到待检测文本内容,并对所述待检测文本内容进行特征提取,得到所述待检测文本内容的文本特征;获取多个文本内容检测网络,不同的所述文本内容检测网络所检测的检测内容不同;基于所述文本特征,调用各所述文本内容检测网络,分别对所述待检测文本内容进行内容检测,得到各所述文本内容检测网络分别对应的内容检测结果,所述文本内容检测网络对应的内容检测结果,用于指示所述文本内容是否包含所述文本内容检测网络对应的所述检测内容;结合各所述文本内容检测网络分别对应的内容检测结果,确定所述文本内容对应的病毒检测结果。
在一些实施例中,上述生成模块,还用于对相同类型的所述子内容进行内容聚合,得到各所述类型的子内容集合,所述类型包括图片类型和文本类型中至少之一;针对各所述子内容集合分别执行以下处理:结合所述子内容集合中的各所述子内容分别对应的病毒检测结果,生成所述子内容集合对应的病毒检测结果;结合各所述子内容集合对应的病毒检测结果,生成所述待检测应用的目标病毒检测结果。
在一些实施例中,上述生成模块,还用于获取所述子内容集合中包含的目标子内容的数量,其中,所述目标子内容对应的病毒检测结果,用于指示所述待检测应用在运行过程中已感染病毒;当所述子内容集合中包含的目标子内容的数量大于第一数量阈值时,将所述子内容集合对应的病毒检测结果,确定为第一检测结果,所述第一检测结果,用于指示所述待检测应用在运行过程中已感染病毒。
在一些实施例中,上述生成模块,还用于从所述子内容集合中,获取目标子内容集合,并确定所述目标子内容集合的数量,其中,所述目标子内容集合对应的病毒检测结果,指示所述待检测应用在运行过程中已感染病毒;当所述目标子内容集合的数量大于第二数量阈值时,将所述待检测应用的目标病毒检测结果,确定为第二检测结果,所述第二检测结果,用于指示所述待检测应用在运行过程中已感染病毒。
在一些实施例中,上述生成模块,还用于获取所述待检测应用在运行过程中的代码,并当所述代码中包含图片格式的目标代码内容时,从所述代码中提取所述图片格式的目标代码内容;在所述待检测应用运行的过程中,获取所述待检测应用输出的多个候选输出内容;对多个所述候选输出内容进行信息过滤,得到目标输出内容,所述目标输出内容的信息量大于信息量阈值;将所述目标输出内容和所述目标代码内容进行内容融合,得到所述待检测应用输出的目标内容。
在一些实施例中,上述应用程序的病毒检测装置,还包括:创建模块,用于创建所述待检测应用的所述模拟器,所述模拟器,用于提供模拟运行所述待检测应用的环境。
本申请实施例提供一种电子设备,包括:
存储器,用于存储计算机可执行指令或者计算机程序;
处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现本申请实施例提供的应用程序的病毒检测方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,用于引起处理器执行时,实现本申请实施例提供的应用程序的病毒检测方法。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的应用程序的病毒检测方法。
本申请实施例具有以下有益效果:
通过在待检测应用运行的过程中,获取待检测应用输出的目标内容,基于目标内容中的各子内容对待检测应用进行病毒检测,得到各子内容对应的病毒检测结果,结合各子内容对应的病毒检测结果,生成待检测应用的目标病毒检测结果,如此,通过基于各子内容对待检测应用分别进行病毒检测,得到各子内容对应的病毒检测结果,在确定待检测应用的目标病毒检测结果时,综合各子内容对应的病毒检测结果,从而综合多个不同维度判定待检测应用是否感染病毒,有效提高了检测病毒的准确度。
附图说明
图1是本申请实施例提供的应用程序的病毒检测系统的架构示意图;
图2是本申请实施例提供的用于应用程序的病毒检测的电子设备的结构示意图;
图3至图8是本申请实施例提供的应用程序的病毒检测方法的流程示意图;
图9是本申请实施例提供的应用程序的病毒检测方法的原理示意图;
图10是本申请实施例提供的应用程序的病毒检测方法的流程示意图;
图11至图12是本申请实施例提供的应用程序的病毒检测方法的原理示意图;
图13是本申请实施例提供的应用程序的病毒检测方法的流程示意图;
图14至图16是本申请实施例提供的应用程序的病毒检测方法的原理示意图;
图17是本申请实施例提供的应用程序的病毒检测方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)应用程序:指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。应用程序通常又被分为两部分:图形用户接口(GUI)和引擎(Engine),与应用软件的概念不同。应用软件指使用的目的分类,可以是单一程序或其他从属组件的集合。应用程序(Application)运行在用户模式,它可以和用户进行交互,一般具有可视的用户界面。对于应用程序需要了解的是:每一个应用程序运行于独立的进程、他们拥有自己独立的地址空间。不同应用程序的分界线称为进程边界。
2)病毒:又称计算机病毒(Computer Virus)指编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机正常使用并且能够自我复制的一组计算机指令或程序代码。计算机病毒具有传染性、隐蔽性、感染性、潜伏性、可激发性、表现性或破坏性。计算机病毒的生命周期:开发期、传染期、潜伏期、发作期、发现期、消化期和消亡期。
3)人工智能(Artificial Intelligence,AI):是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。
4)卷积神经网络(CNN,Convolutional Neural Networks):是一类包含卷积计算且具有深度结构的前馈神经网络(FNN,Feed forward Neural Networks),是深度学习(Deep Learning)的代表算法之一。卷积神经网络具有表征学习(RepresentationLearning)能力,能够按其阶层结构对输入图像进行平移不变分类(Shift-InvariantClassification)。
5)卷积层:卷积神经网络中每层卷积层(Convolutional Layer)由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法最佳化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。
6)池化层:在卷积层进行特征提取后,输出的特征图会被传递至池化层进行特征选择和信息过滤。池化层包含预设定的池化函数,其功能是将特征图中单个点的结果替换为其相邻区域的特征图统计量。池化层选取池化区域与卷积核扫描特征图步骤相同,由池化大小、步长和填充控制。
7)全连接层(Fully-Connected Layer):卷积神经网络中的全连接层等价于传统前馈神经网络中的隐含层。全连接层位于卷积神经网络隐含层的最后部分,并只向其它全连接层传递信号。特征图在全连接层中会失去空间拓扑结构,被展开为向量并通过激励函数。
在本申请实施例的实施过程中,申请人发现相关技术存在以下问题:
在相关技术中,通常是通过分析已经收集到病毒样本,从中提取出某些特征,加入到病毒特征库。对于待检测应用,若能匹配到特征库中的特征,则判定待检测应用感染病毒。由于病毒样本的收集全面性与检测的准确度成正比,由于收集病毒样本无法做法准确全面,从而导致病毒检测的准确度较低。
在相关技术中,可以对已知的病毒的源码进行分析,确定该病毒的特征码,该特征码可以是源码中一个连续的二进制片段。然后,在检测任意应用是否感染病毒时,可以获取该应用的源码,判断该应用的源码中是否包含有上述病毒的特征码,如果包含,则该应用即被感染病毒。但是,为了躲避检测,病毒的源码可能会被修改,得到变形的病毒,从而规避检测,使得相关技术对病毒进行检测的准确度较低。
本申请实施例提供一种应用程序的病毒检测方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够有效提高检测病毒的准确度,下面说明本申请实施例提供的应用程序的病毒检测系统的示例性应用。
参见图1,图1是本申请实施例提供的应用程序的病毒检测系统100的架构示意图,终端(示例性示出了终端400)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
终端400用于供用户使用客户端410,在图形界面410-1(示例性示出了图形界面410-1)显示目标病毒检测结果。终端400和服务器200通过有线或者无线网络相互连接。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表、车载终端等,但并不局限于此。本申请实施例提供的电子设备可以实施为终端,也可以实施为服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
在一些实施例中,服务器200在待检测应用运行的过程中,获取待检测应用输出的包括多个子内容的目标内容,对各子内容进行病毒检测,得到各子内容对应的病毒检测结果,结合各子内容对应的病毒检测结果,生成待检测应用的目标病毒检测结果,并将目标病毒检测结果发送至终端400。
在另一些实施例中,终端400在在待检测应用运行的过程中,获取待检测应用输出的包括多个子内容的目标内容,对各子内容进行病毒检测,得到各子内容对应的病毒检测结果,结合各子内容对应的病毒检测结果,生成待检测应用的目标病毒检测结果,并将目标病毒检测结果发送至服务器200。
在另一些实施例中,本申请实施例可以借助于云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
参见图2,图2是本申请实施例提供的用于应用程序的病毒检测的电子设备500的结构示意图,其中,图2所示出的电子设备500可以是图1中的服务器200或者终端400,图2所示的电子设备500包括:至少一个处理器410、存储器450、至少一个网络接口420。电子设备500中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi,Wireless Fidelity)、和通用串行总线(USB,Universal Serial Bus)等。
在一些实施例中,本申请实施例提供的应用程序的病毒检测装置可以采用软件方式实现,图2示出了存储在存储器450中的应用程序的病毒检测装置455,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块4551、病毒检测模块4552、生成模块4553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的应用程序的病毒检测装置可以采用硬件方式实现,作为示例,本申请实施例提供的应用程序的病毒检测装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的应用程序的病毒检测方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
在一些实施例中,终端或服务器可以通过运行计算机程序或计算机可执行指令来实现本申请实施例提供的应用程序的病毒检测方法。举例来说,计算机程序可以是操作系统中的原生程序(例如,专用的病毒检测程序)或软件模块,例如,可以嵌入到任意程序(如即时通信客户端、相册程序、电子地图客户端、导航客户端)中的病毒检测模块;例如可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
将结合本申请实施例提供的服务器或终端的示例性应用和实施,说明本申请实施例提供的应用程序的病毒检测方法。
参见图3,图3是本申请实施例提供的应用程序的病毒检测方法的流程示意图,将结合图3示出的步骤101至步骤103进行说明,本申请实施例提供的应用程序的病毒检测方法可以由服务器或终端单独实施,或者由服务器及终端协同实施,下面将以服务器单独实施为例进行说明。
在步骤101中,在模拟器上运行待检测应用,并在待检测应用运行的过程中,获取待检测应用输出的目标内容。
在一些实施例中,目标内容包括多个子内容,子内容包括图片内容和文本内容中至少之一。
在一些实施例中,待检测应用,为待进行病毒检测的应用,通过本申请实施例提供的应用程序的病毒检测方法,可以对待检测应用进行病毒检测,以确定待检测应用是否感染病毒。
在一些实施例中,在待检测应用运行的过程中,待检测应用输出的目标内容可以是图片内容、文本内容、视频内容和语音内容等,目标内容的具体形式不构成对本申请的限定,目标内容可以是待检测应用输出的,且能够直观被感知的任何内容形式。
作为示例,待检测应用可以是影音视频应用,在影音视频应用运行的过程中,影音视频应用的显示界面中播放影音视频,影音视频应用输出的目标内容可以是图片内容(例如,视频帧),文本内容(例如,影音视频的字幕),语音内容(例如,字幕对应的音频)。
作为示例,待检测应用可以是网络游戏应用,在网络游戏应用运行的过程中,网络游戏应用的显示界面中播放游戏,网络游戏应用输出的目标内容可以是图片内容(例如,游戏帧),文本内容(例如,游戏提示文本),语音内容(例如,游戏提示音)。
在一些实施例中,在上述步骤101之前,可以通过如下方式运行待检测应用:创建待检测应用的模拟器,模拟器,用于提供模拟运行待检测应用的环境。
在一些实施例中,模拟器,又称计算机模拟器,计算机模拟器是利用计算机进行模拟的方法,利用计算机软件开发出的模拟器,可以进行故障树分析、测试逻辑设计等复杂的模拟任务。在优化领域,物理过程的模拟经常与演化计算一同用于优化控制策略。计算机模拟器中有一种特殊类型:计算机架构模拟器,用以在一台计算机上模拟另一台指令不兼容或者体系不同的计算机。
在一些实施例中,待检测应用的模拟器,用于提供模拟运行待检测应用的环境,通过在模拟器提供的运行环境中,运行待检测应用,并在待检测应用在模拟器中模拟运行的过程中,对待检测应用进行病毒检测,从而实现了对待检测应用程序的病毒检测。
如此,通过创建待检测应用的模拟器,并在模拟器中,运行待检测应用,从而通过模拟器,实现了待检测应用的模拟运行,能够在待检测应用正式运行之前,及时发现待检测应用可能存在的病毒,有效保证了待检测应用的运行安全。
在一些实施例中,参见图4,图4是本申请实施例提供的应用程序的病毒检测方法的流程示意图,上图3所示出的步骤101可以通过执行图4所示出的步骤1011至步骤1014实现。
在步骤1011中,获取待检测应用在运行过程中的代码,并当代码中包含图片格式的目标代码内容时,从代码中提取图片格式的目标代码内容。
在一些实施例中,待检测应用在运行过程中的代码包括各类应标图标,以及待显示的图片格式的目标代码内容,以及文本格式的代码文本内容。当代码中包含图片格式的目标代码内容时,通过从代码中提取图片格式的目标代码内容,从而便于后续对目标代码内容进行病毒检测,以提高待检测应用程序的病毒检测的准确性。
在步骤1012中,在待检测应用运行的过程中,获取待检测应用输出的多个候选输出内容。
在一些实施例中,在待检测应用运行的过程中,待检测应用输出的候选输出内容可以是图片内容、文本内容、视频内容和语音内容等,候选输出内容的具体形式不构成对本申请的限定,候选输出内容可以是待检测应用输出的,且能够直观被感知的任何内容形式。
在一些实施例中,上述多个候选输出内容是待检测应用运行过程中所有的输出内容。
在一些实施例中,上述步骤1012可以通过如下方式实现:在待检测应用运行的过程中,当待检测应用在多个运行时刻输出相应的运行输出内容时,将各运行输出内容确定为候选输出内容。
在步骤1013中,对多个候选输出内容进行信息过滤,得到目标输出内容,目标输出内容的信息量大于信息量阈值。
在一些实施例中,上述信息量可以是指内容的信息熵,通过计算各候选输出内容的信息熵,并将各候选输出内容的信息熵,确定为候选输出内容的信息量。
在一些实施例中,上述步骤1013可以通过如下方式实现:对多个候选输出内容进行无效过滤,得到第一候选输出内容;对第一候选输出内容进行去重处理,得到第二候选输出内容;确定各第二候选输出内容的信息熵,将信息熵大于信息熵阈值的第二候选输出内容,确定为目标输出内容。
在一些实施例中,上述对多个候选输出内容进行无效过滤,得到第一候选输出内容可以通过如下方式实现:从多个候选输出内容中获取无效内容,其中,无效内容包括应用图标内容、通用内容,应用图标内容,用于指示待检测应用,通用内容是在各种应用均会输出的内容;将多个候选输出内容中的无效内容删除,得到第一候选输出内容。
在一些实施例中,上述对第一候选输出内容进行去重处理,得到第二候选输出内容,可以通过如下方式实现:针对各第一候选输出内容分别执行以下处理:将第一候选输出内容与各其他候选输出内容进行比较,得到各其他候选输出内容对应的比较结果,比较结果表征第一候选输出内容与其他候选输出内容之间的相似度,当第一候选输出内容对应的各相似度中,不存在相似度大于相似度阈值的目标相似度时,将第一候选输出内容确定为第二候选输出内容;其中,其他候选输出内容是多个第一候选输出内容中除当前处理的第一候选输出内容以外的第一候选输出内容。
如此,通过对多个候选输出内容进行信息过滤,得到目标输出内容,从而有效减少了后续内容检测的检测数据量,有效提高了病毒检测的效率。
在步骤1014中,将目标输出内容和目标代码内容进行内容融合,得到待检测应用输出的目标内容。
在一些实施例中,上述内容融合是指将至少两个待融合的内容取并集,得到融合结果的过程,融合结果包括上述至少两个待融合的内容。
在一些实施例中,上述待检测应用输出的目标内容包括目标输出内容和目标代码内容。
如此,通过在待检测应用运行的过程中,获取待检测应用输出的多个候选输出内容,并从代码中提取图片格式的目标代码内容,并对多个候选输出内容进行信息过滤,得到目标输出内容,将目标输出内容和目标代码内容进行内容融合,得到待检测应用输出的目标内容,一方面,保证了所确定的目标内容的全面性,能够便于后续对待检测应用的全面检测,另一方面,通过对多个候选输出内容进行信息过滤,从而有效减少了所确定的目标内容的数据量,进而有效减少了后续病毒检测的工作量,有效提高了后续病毒检测的效率。如此,既保证了后续对待检测应用的全面检测,又有效提高了后续病毒检测的效率。
在步骤102中,基于各子内容,分别对待检测应用进行病毒检测,得到各子内容对应的病毒检测结果。
在一些实施例中,上述子内容对应的病毒检测结果,用于指示子内容反映出的待检测应用是否感染病毒。
在一些实施例中,当子内容包括图片内容时,参见图5,图5是本申请实施例提供的应用程序的病毒检测方法的流程示意图,上图3所示出的步骤102可以针对各子内容分别执行图5所示出的步骤1021A至步骤1023A实现。
在步骤1021A中,获取子内容中图片内容的图片特征,并基于图片特征,对图片内容进行内容检测,得到图片内容的内容检测结果。
在一些实施例中,上述获取子内容中图片内容的图片特征,可以通过如下方式实现:获取图片内容编码网络,调用图片内容编码网络,对图片内容进行特征提取,得到图片内容的图片特征。
作为示例,参见图11,图11是本申请实施例提供的应用程序的病毒检测方法的原理示意图。获取输入图片(子内容中图片内容)的图片特征,并基于图片特征,对图片内容进行内容检测,得到图片内容的内容检测结果。
在一些实施例中,上述内容检测结果,用于指示图片内容是否包含检测内容,检测内容,用于指示待检测应用在运行过程中已感染病毒。当图片内容对应的内容检测结果,指示图片内容包含检测内容时,则图片内容指示待检测应用感染病毒。
在一些实施例中,上述步骤1021中基于图片特征,对图片内容进行内容检测,得到图片内容的内容检测结果,可以通过如下方式实现:获取多个图片内容检测网络,不同的图片内容检测网络所检测的检测内容不同;基于图片特征,调用各图片内容检测网络,分别对图片内容进行内容检测,得到各图片内容检测网络分别对应的内容检测结果;其中,图片内容检测网络对应的内容检测结果,用于指示图片内容是否包含图片内容检测网络对应的检测内容;结合各图片内容检测网络分别对应的内容检测结果,确定图片内容的内容检测结果。
在一些实施例中,图片内容检测网络,用于检测图片内容是否包含图片内容检测网络对应的检测内容,检测内容,用于指示待检测应用在运行过程中已感染病毒。
作为示例,参见图11,获取多个图片内容检测网络(图11所示出的检测网络1、检测网络2…检测网络n),基于图片特征,调用各图片内容检测网络(例如,图11所示出的检测网络1、检测网络2…检测网络n),分别对图片内容进行内容检测,得到各图片内容检测网络分别对应的内容检测结果(例如,图11所示出的检测网络1对应的检测结果1、检测网络2对应的检测结果2、检测网络n对应的检测结果n)。
在一些实施例中,上述结合各图片内容检测网络分别对应的内容检测结果,确定图片内容的内容检测结果,可以通过如下方式实现:将各图片内容检测网络分别对应的内容检测结果进行融合,得到图片内容的内容检测结果,其中,图片内容的内容检测结果包括各图片内容检测网络分别对应的内容检测结果。
在一些实施例中,图片内容检测网络,可以通过利用包含检测内容的图片内容样本,对神经网络模型进行训练所得到。
在步骤1022A中,对图片内容和多个参考图片内容分别进行内容匹配,得到图片内容对应的内容匹配结果。
在一些实施例中,上述参考图片内容包括检测内容。
在一些实施例中,上述步骤1022A可以通过如下方式实现:针对各参考图片内容分别执行以下处理:对参考图片内容和图片内容进行内容匹配,得到图片内容对应的内容匹配结果。
在一些实施例中,参考图片内容可以是在参考图片内容库中存储的,参考图片内容包括检测内容,参考图片内容可以是待检测应用或者其他应用在历史运行的过程中,输出的包含检测内容的图片内容。
作为示例,参见图11,上述参考图片内容库可以是图11所示出的种子图片库,通过对图片内容(输入图片)和种子图片库中的多个参考图片内容进行内容匹配,得到输入图片(图片内容)对应的内容匹配结果。
如此,通过将待检测应用或者其他应用在历史运行的过程中,输出的包含检测内容的图片内容收集到参考图片内容库中进行存储,在对待检测应用进行病毒检测时,将图片内容和参考图片内容库中的多个参考图片内容分别进行内容匹配,得到各图片内容对应的内容匹配结果,内容匹配结果指示参考图片内容是否与图片内容匹配成功,当匹配成功时,则表征图片内容包含参考图片内容对应的检测内容,则图片内容指示待检测应用感染病毒,从而有效提高了病毒检测的准确性。
在一些实施例中,上述步骤1022A可以通过如下方式实现:基于图片特征,对多个参考图片内容进行相似度筛选,得到至少一个目标参考图片内容,目标参考图片内容的图片特征与图片内容的图片特征之间的相似度大于相似度阈值;获取图片内容的关键点特征,并基于关键点特征进行图片内容间的相似度匹配,得到各目标参考图片内容与图片内容的匹配度;基于各目标参考图片内容与图片内容的匹配度,确定图片内容的内容匹配结果。
作为示例,参见图11,基于图片特征,对种子图片库中的多个参考图片内容进行相似度筛选,得到至少一个目标参考图片内容,并基于关键点特征进行图片内容间的相似度匹配,得到目标参考图片内容与图片内容的匹配度,并基于各目标参考图片内容与图片内容的匹配度,确定图片内容(输入图片)对应的内容匹配结果。
在一些实施例中,上述基于图片特征,对多个参考图片内容进行相似度筛选,得到至少一个目标参考图片内容,可以通过如下方式实现:针对各参考图片内容分别执行以下处理:获取参考图片内容的图片特征,并确定参考图片内容的图片特征与图片内容的图片特征之间的相似度,当相似度大于相似度阈值时,将参考图片内容确定为目标参考图片内容。
在一些实施例中,相似度用于指示图片内容和参考图片内容之间的相似程度,图片内容和参考图片内容之间的相似度,与参考图片内容的图片特征和图片内容的图片特征之间的特征距离成反比。
在一些实施例中,上述基于关键点特征进行图片内容间的相似度匹配,得到各目标参考图片内容与图片内容的匹配度,可以通过如下方式实现:针对各目标参考图片内容分别执行以下处理:获取目标参考图片内容的关键点特征;其中,目标参考图片内容的关键点特征包括:目标参考图片内容中各关键像素点的第一关键点特征,图片内容的关键点特征包括:图片内容中各关键像素点的第二关键点特征,目标参考图片内容的关键像素点与图片内容的关键像素点一一对应;获取各第一关键点特征与相应第二关键点特征之间的特征相似度,并基于特征相似度,确定目标参考图片内容与图片内容的匹配度。
在一些实施例中,上述目标参考图片内容和图片内容分别对应的关键像素点,可以是随机选取的,或者按照等间隔采样的方式选取的。
在一些实施例中,上述获取目标参考图片内容的关键点特征,可以通过如下方式实现:获取目标参考图片内容中各关键像素点,调用图片内容编码网络,对各关键像素点进行特征提取,得到目标参考图片内容中各关键像素点的第一关键点特征,对各关键像素点的第一关键点特征进行融合,得到目标参考图片内容的关键点特征。
在一些实施例中,各第一关键点特征与相应第二关键点特征之间的特征相似度,用于指示第一关键点特征和相应第二关键点特征之间的相似程度,第一关键点特征与相应第二关键点特征之间的特征相似度,与第一关键点特征和相应第二关键点特征之间的特征距离呈反比,即,特征距离越大,特征相似度越小。
在一些实施例中,特征距离可以是第一关键点特征和第二关键点特征之间的欧式距离、曼哈顿距离(Manhattan Distance)等。
在一些实施例中,上述基于特征相似度,确定目标参考图片内容与图片内容的匹配度,可以通过如下方式实现:将特征相似度大于或等于特征相似度阈值的目标参考图片内容中的关键像素点,确定为目标像素点;获取目标像素点的第一数量,以及目标参考图片内容的关键像素点的第二数量;将第一数量和第二数量的比值,确定为目标参考图片内容与图片内容的匹配度。
在一些实施例中,上述将特征相似度大于或等于特征相似度阈值的目标参考图片内容中的关键像素点,确定为目标像素点,可以通过如下方式实现:针对目标参考图片内容中的各关键像素点分别执行以下处理:获取关键像素点对应的特征相似度,当特征相似度大于或等于特征相似度阈值时,将关键像素点确定为目标像素点。
在一些实施例中,目标参考图片内容与图片内容的匹配度,是指目标参考图片内容中,特征相似度大于或等于特征相似度阈值的目标像素点的数量,占目标参考图片内容的关键像素点的数量的比例。目标参考图片内容与图片内容的匹配度,用于指示目标参考图片内容与图片内容的整体相似程度。
作为示例,目标参考图片内容与图片内容的匹配度的表达式可以为:
其中,P表征目标参考图片内容与图片内容的匹配度,S1表征目标像素点的第一数量,S2表征目标参考图片内容的关键像素点的第二数量。
在一些实施例中,上述基于各目标参考图片内容与图片内容的匹配度,确定图片内容的内容匹配结果,可以通过如下方式实现:将最大的匹配度的值与匹配度阈值进行数值比较,得到比较结果;当比较结果指示最大的匹配度的值大于匹配度阈值时,确定内容匹配结果为第一匹配结果,第一匹配结果,用于指示图片内容与参考图片内容匹配成功;当比较结果指示最大的匹配度的值小于或等于匹配度阈值时,确定内容匹配结果为第二匹配结果,第二匹配结果,用于指示图片内容与参考图片内容匹配不成功。
在一些实施例中,比较结果,用于指示最大匹配度是否大于匹配度阈值,在比较结果指示最大的匹配度的值大于匹配度阈值时,指示图片内容与参考图片内容匹配成功,在比较结果指示最大的匹配度的值不大于匹配度阈值时,指示图片内容与参考图片内容匹配不成功。
在一些实施例中,在上述比较结果指示最大匹配度大于匹配度阈值时,指示图片内容与参考图片内容匹配成功,基于最大匹配度对应的参考图片内容,确定图片内容的病毒检测结果;在上述比较结果指示最大匹配度小于或等于匹配度阈值时,指示图片内容与参考图片内容匹配不成功,基于内容检测结果,确定图片内容对应的病毒检测结果。
可以理解的是,可以基于图片内容和参考图片内容是否匹配成功,确定图片内容对应的病毒检测结果的确定方式,也即,比较结果所指示的内容不同,图片内容对应的病毒检测结果的确定方式不同,在上述比较结果指示最大匹配度小于或等于匹配度阈值时,指示图片内容与参考图片内容匹配不成功,则图片内容对应的病毒检测结果的确定方式是基于内容检测结果而确定的,在上述比较结果指示最大匹配度大于匹配度阈值时,指示图片内容与参考图片内容匹配成功,则图片内容对应的病毒检测结果的确定方式是基于最大匹配度对应的参考图片内容而确定的。
在步骤1023A中,结合内容检测结果和内容匹配结果,确定图片内容对应的病毒检测结果。
在一些实施例中,内容匹配结果所指示的结果不同,图片内容对应的病毒检测结果的确定方式不同。
在一些实施例中,上述结合内容检测结果和内容匹配结果,确定图片内容对应的病毒检测结果,可以通过如下方式实现:当内容匹配结果表征图片内容与参考图片内容匹配成功时,获取最大的匹配度对应的参考图片内容的病毒标签,并将病毒标签的内容,确定为图片内容对应的病毒检测结果;当内容匹配结果表征图片内容与参考图片内容匹配不成功时,将内容检测结果,确定为图片内容对应的病毒检测结果。
可以理解的是,当内容匹配结果表征图片内容与参考图片内容匹配不成功时,则表示历史运行的应用中,没有与图片内容匹配的输出内容,则历史运行的应用所输出的内容,对确定图片内容对应的病毒检测结果没有参考意义,则可以将内容检测结果,确定为图片内容对应的病毒检测结果。
可以理解的是,当内容匹配结果表征图片内容与参考图片内容匹配成功时,则表示历史运行的应用中,存在与图片内容匹配的输出内容,则历史运行的应用所输出的内容,对确定图片内容对应的病毒检测结果有重大参考意义,则可以将最大匹配度对应的参考图片内容的病毒标签的内容,确定为图片内容对应的病毒检测结果。
如此,在子内容包括图片内容时,通过确定图片内容对应的内容检测结果和内容匹配结果,通过内容匹配结果所指示的不同含义,以不同的方式确定图片内容对应的病毒检测结果,从而通过内容检测结果和内容匹配结果,为图片内容对应的病毒检测结果提供了双重保障,有效提高了所确定的病毒检测结果的准确性。
在一些实施例中,当子内容包括文本内容时,参见图6,图6是本申请实施例提供的应用程序的病毒检测方法的流程示意图,上图3所示出的步骤102可以针对各子内容分别执行图6所示出的步骤1021B至步骤1024B实现。
在步骤1021B中,对文本内容中的无用词进行内容过滤,得到待检测文本内容,并对待检测文本内容进行特征提取,得到待检测文本内容的文本特征。
在一些实施例中,文本内容中的无用词包括没有含义的连词、标点符号等,文本内容对应的无用词是指文本内容中对文本内容的含义无实质影响的词语,即,若将文本内容对应的无用词,从文本内容中删除,对文本内容的整体含义没有影响。
作为示例,文本内容中的无用词可以是“的”、“地”、“和”等对文本内容的含义无实质影响的词语。
在一些实施例中,上述对待检测文本内容进行特征提取,得到待检测文本内容的文本特征,可以通过如下方式实现:调用文本内容编码网络,对待检测文本内容进行特征提取,得到待检测文本内容的文本特征。
在步骤1022B中,获取多个文本内容检测网络,不同的文本内容检测网络所检测的检测内容不同。
在一些实施例中,用于检测文本内容是否包含文本内容检测网络对应的检测内容,检测内容,用于指示待检测应用在运行过程中已感染病毒。
在一些实施例中,文本内容检测网络,可以通过利用包含检测内容的文本内容样本,对神经网络模型进行训练所得到。
作为示例,参见图14,图14是本申请实施例提供的应用程序的病毒检测方法的原理示意图,上述多个文本内容检测网络可以是图14所示出的文本检测网络1、文本检测网络2、文本检测网络n,不同的文本内容检测网络所检测的检测内容不同,不同的检测内容均用于指示待检测应用在运行过程中感染病毒。
在步骤1023B中,基于文本特征,调用各文本内容检测网络,分别对待检测文本内容进行内容检测,得到各文本内容检测网络分别对应的内容检测结果。
在一些实施例中,上述文本内容检测网络对应的内容检测结果,用于指示文本内容是否包含文本内容检测网络对应的检测内容。
作为示例,文本内容检测网络包括文本内容检测网络A和文本内容检测网络B。基于文本特征,调用文本内容检测网络A,分别对待检测文本内容进行内容检测,得到文本内容检测网络A对应的内容检测结果,文本内容检测网络A对应的内容检测结果,用于指示文本内容是否包含文本内容检测网络A对应的检测内容。
在步骤1024B中,结合各文本内容检测网络分别对应的内容检测结果,确定文本内容对应的病毒检测结果。
在一些实施例中,上述步骤1024B可以通过如下方式实现:将各文本内容检测网络分别对应的内容检测结果进行融合,得到文本内容的病毒检测结果,其中,文本内容的病毒检测结果包括各文本内容检测网络分别对应的内容检测结果。
如此,当子内容包括文本内容时,通过对文本内容进行内容检测,确定文本内容对应的病毒检测结果,从而为后续待检测应用的目标病毒检测结果的确定,提供了准确的数据支撑,有效提高了待检测应用程序的病毒检测的准确性。
在步骤103中,结合各子内容对应的病毒检测结果,生成待检测应用的目标病毒检测结果。
在一些实施例中,待检测应用的目标病毒检测结果,用于指示待检测应用是否感染病毒。
在一些实施例中,参见图7,图7是本申请实施例提供的应用程序的病毒检测方法的流程示意图,上图3所示出的步骤103可以通过执行图7所示出的步骤1031至步骤1033实现。
在步骤1031中,对相同类型的子内容进行内容聚合,得到各类型的子内容集合,类型包括图片类型和文本类型中至少之一。
作为示例,针对图片类型,对各图片类型的子内容进行内容聚合,得到图片类型的子内容集合;针对文本类型,对各文本类型的子内容进行内容聚合,得到文本类型的子内容集合。
在步骤1032中,针对各子内容集合分别执行以下处理:结合子内容集合中的各子内容分别对应的病毒检测结果,生成子内容集合对应的病毒检测结果。
在一些实施例中,上述步骤1032可以通过如下方式实现:获取子内容集合中包含的目标子内容的数量,其中,目标子内容对应的病毒检测结果,用于指示待检测应用在运行过程中已感染病毒;当子内容集合中包含的目标子内容的数量大于第一数量阈值时,将子内容集合对应的病毒检测结果,确定为第一检测结果,第一检测结果,用于指示待检测应用在运行过程中已感染病毒。
在一些实施例中,当子内容集合中包含的目标子内容的数量小于或等于第一数量阈值时,将子内容集合对应的病毒检测结果,确定为第三检测结果,第一检测结果,用于指示待检测应用在运行过程中没有感染病毒。
作为示例,当文本内容对应的子内容集合中包含的目标子内容的数量大于第一数量阈值时,将文本内容对应的子内容集合对应的病毒检测结果,确定为指示待检测应用在运行过程中已感染病毒的第一检测结果。
在步骤1033中,结合各子内容集合对应的病毒检测结果,生成待检测应用的目标病毒检测结果。
在一些实施例中,上述步骤1033可以通过如下方式实现:从子内容集合中,获取目标子内容集合,并确定目标子内容集合的数量,其中,目标子内容集合对应的病毒检测结果,指示待检测应用在运行过程中已感染病毒;当目标子内容集合的数量大于第二数量阈值时,将待检测应用的目标病毒检测结果,确定为第二检测结果,第二检测结果,用于指示待检测应用在运行过程中已感染病毒。
在一些实施例中,当目标子内容集合的数量小于或等于第二数量阈值时,将待检测应用的目标病毒检测结果,确定为第四检测结果,第四检测结果,用于指示待检测应用在运行过程中没有感染病毒。
作为示例,当目标子内容集合的数量大于第二数量阈值时,将待检测应用的目标病毒检测结果,确定为指示待检测应用在运行过程中已感染病毒的第二检测结果。
如此,通过在待检测应用运行的过程中,获取待检测应用输出的目标内容,基于目标内容中的各子内容对待检测应用进行病毒检测,得到各子内容对应的病毒检测结果,结合各子内容对应的病毒检测结果,生成待检测应用的目标病毒检测结果,如此,通过基于各子内容对待检测应用分别进行病毒检测,得到各子内容对应的病毒检测结果,在确定待检测应用的目标病毒检测结果时,综合各子内容对应的病毒检测结果,从而综合判定待检测应用是否感染病毒,有效提高了检测病毒的准确度。
下面,将说明本申请实施例在一个实际的应用程序的病毒检测的应用场景中的示例性应用。
本申请实施例提供的应用程序的病毒检测方法,通过动静态方式从应用中获取内容(图片内容/文本内容),然后使用模型自动为图片内容和文本内容生成具有明显语义的标签,最后运营人员在标签之上构建判定规则。本申请实施例能够以低成本实现对内容型作恶软件的检测,对于各种类型的病毒有很好的检测效果。通过在模拟器上运行应用,获取用户真实可感知的内容;使用机器学习模型自动理解内容,生成具有语义的标签。一方面将模型开发和规则运营工作解耦,另一方面缓解了机器学习模型缺乏解释性的问题。
在一些实施例中,参见图8,图8是本申请实施例提供的应用程序的病毒检测方法的流程示意图。本申请实施例提供的应用程序的病毒检测方法,可以通过图8所示出的步骤201至步骤204实现。
在步骤201中,在应用运行的过程中,进行内容解析得到内容语料。
在一些实施例中,内容语料包括图片内容和文本内容。
作为示例,参见图9,图9是本申请实施例提供的应用程序的病毒检测方法的原理示意图。通过动态在模拟器中运行应用,在应用运行的过程中,进行内容解析,得到图片内容和文本内容。并静态提取应用的脚本,得到图片内容。
在一些实施例中,本申请实施例通过综合动静态方式进行内容提取,如图9所示,动态方式指的是把应用安装到模拟器中运行,把运行过程中展示的文字和截图进行保存,静态方式指的是扫描应用中的图片文件,在扫描的时候会按照一定的规则进行扫描,规则示例:图片文件大小大于1M,文件后缀为是“.PNG”,文件名中包含splash。
在步骤202中,调用检测模型,对内容语料进行检测,得到各内容语料对应的检测结果。
在一些实施例中,在解析得到内容语料之后,通过调用检测模型,对内容语料进行检测,检测体系是根据具体场景预定义的,不同场景对应不同的检测内容,不同的检测模型所检测的检测内容不同,检测结果,用于指示内容语料中是否包含检测内容。因为本申请实施例主要是提取了图片内容和文本内容,因此这里详细介绍图片内容的检测过程和文本内容的检测过程。
在一些实施例中,首先对图片内容的检测过程进行说明,首先对解析得到的图片内容进行过滤,得到待检测图片内容,然后调用检测模型,对待检测图片内容进行检测,得到各待检测内容对应的检测结果。
作为示例,参见图10,图10是本申请实施例提供的应用程序的病毒检测方法的流程示意图,为了减少后续检测模型的计算量,当解析得到的图片内容的数量大于120张时,通过过滤掉无效的图片内容,得到有效图片内容,有效图片内容的数量大于100张,然后通过感知哈希算法,对有效图片内容进行去除重复(计算哈希值,在哈希控件进行去重),得到去重后的图片内容,去重后的图片内容的数量大于20张。对去重后的图片内容进行二维熵计算,根据二维熵对去重后的图片内容进行排序,选取二维熵最大的10张图片内容,作为待检测内容。
作为示例,参见图10,其中感知哈希算法是把图片映射成二值向量的一种算法,若两个图片的哈希值的差异不大于3,则认为这两张图片是一样的,需要注意的是截图可能会有大面积空白,这是因为运行时卡顿导致在截图的时刻内容还没有加载完,因为会首先过滤掉大面积空白之类的图片。
在一些实施例中,参见图11,图11是本申请实施例提供的应用程序的病毒检测方法的原理示意图。图11所示出的是对于单张的输入图片内容进行病毒检测的过程,在实际应用中,产生检测结果主要是通过检测网络进行检测,匹配主要是为了处理在运营过程中发现的一些误报图片。比如说运营连续发现某张图片有错误的标签,那么我们就可以把这张图片添加到图片种子库里面。对于给定图片,如果匹配到了种子库里面的图片,则覆盖掉模型检测的标签。
在一些实施例中,参见图11,对输入图片分别进行关键点特征提取和图片内容特征提取,得到输入图片对应的关键点特征和图片内容特征。基于图片内容特征,调用多个检测网络(检测网络1、检测网络2…检测网络n)进行内容检测,得到各检测网络对应的检测结果(检测网络1对应的检测结果1、检测网络2对应的检测结果2…检测网络n对应的检测结果n)。在这条检测结果生成链路上,首先使用特征提取网络来将原始图片映射到向量空间,然后在向量空间独立地设置多个检测网络。每个检测网络负责生成某一个场景的检测结果,比如说色情检测头会生成与色情有关的标签,欺诈检测头则会生成与欺诈有关的标签。特征提取模型是通过层次化抽象的方式从整体来描述图片的一种特征表示方法。特征提取模型的输入是RGB格式的图片,输出是一个二维的向量,图片是像素粒度的,语义级别很低,而这个输出的向量语义抽象级别很高,所以可以在向量空间比较容易地训练后续的检测头。在实现上,使用的ResNet50作为图片编码器(ResNet50是一个经典的CNN模型)。原始模型是在512*512尺寸上的图片训练的,而获取的图片尺寸为720*360(手机多数是长方形,因此我们将图片尺寸统一缩放为720*360)。为了让模型适应新的图片尺寸,使用收集的图片对预训练模型进行了微调,微调的时候我们使用一个分类器来为模型提供参数优化指导。每个检测网络是一个参数比较小的神经网络模型,输入是一张图片的向量,输出则是预定义的检测结果。不同检测网络共享同一个输入,但是检测网络之间的运行是相互独立的,每个检测网络输出各自预定义的检测结果,这样的好处是当新增加一些检测内容时,可以增加一个检测网络而不影响现有的检测网络。下面以检测网络1为例进行说明。检测网络1是一个二层的多层感知机神经网络模型,模型的输入是特征提取网络的输出向量,输出也是一个向量,其中每一个维度代表一个标签。
在一些实施例中,参见图11,基于图片内容特征和关键点特征,将输入图片和种子图片库中的各图片进行匹配,得到匹配结果。
在一些实施例中,参见图12,图12是本申请实施例提供的应用程序的病毒检测方法的原理示意图。基于输入图片对应的关键点特征,通过最近邻检索的方式对种子库中的种子图片进行相似度筛选,得到相似图片候选集。基于图片内容特征,确定输入图片分别与相似图片候选集中的各候选图片的匹配分数,并选择匹配分数最高的种子库中的图片内容,当匹配分数大于阈值时,则确定匹配成功;当匹配分数小于或等于阈值时,则确定匹配失败。
在一些实施例中,参见图12,对于匹配的过程,可以通过分级匹配的方式实现,下面对分级匹配的方式进行说明。首先通过轻量级方式从种子库中召回少量的候选图片,然后使用计算成本更高的方式在后续图片里面计算匹配分数,最后从种子中挑选出匹配分数最高的种子图片,来判定目标图片是否匹配到种子库中的某个图片。在第一阶段,通过图片内容特征从种子库中检索出余弦距离最小的一些图片。最近邻检索算法可以快速地从庞大的种子库中筛选出余弦距离最小的候选集,两张图片的图片内容特征之间的余弦距离越小,则这两张图片越相似。在第二阶段,计算这些候选种子与当前图片的关键点特征的匹配分数。关键点特征是通过局部关键点来描述图片的一种特征表示方法,首先从图片中选择一些关键点,然后根据每个关键点的周围像素点的分布生成一个向量来描述该点。例如,通过为每个图片计算5000个关键点,每个关键点的描述向量的维度是n,那么可以给该图片生成的一个5000*n的二维表示。对关键点特征进行图片匹配的做法如下:逐个扫描特征点,判定特征点是否匹配(若两个特征点的描述向量的距离小于某个阈值就算这两个特征点匹配上了)。匹配分数指的是关键点特征匹配的比例。通过为每个图片计算5000个特征点,如图片A和图片B有4000个特征点匹配到,那么图片A和图片B的匹配分数是0.8(0.8=4000/5000)。若匹配成功,则会给目标图片打上一个匹配成功的标签,并且说明匹配到的是那一个类型的种子。
在一些实施例中,参见图13,图13是本申请实施例提供的应用程序的病毒检测方法的流程示意图,针对文本内容,可以通过图13所示出的步骤301至步骤304实现文本内容的过滤。
在步骤301中,对从模拟器中获取到的文本内容进行过滤,以过滤掉无效的句子,得到候选文本内容。
作为示例,过滤无效句子指的是删除一些对检测没有帮助的句子类型。比如说每个应用中通常都有大段的隐私说明文本,这些文本大同小异,并不能提供判断软件好坏的有用信息。通过扫描“隐私政策”“用户协议”等关键字来过滤掉隐私相关的句子。
在步骤302中,对候选文本内容进行停用词过滤,得到待去重文本内容。
作为示例,停用词包括以下类型至少之一:运行状态提示语,如“关闭应用”,“启动中”,“正在初始化”等;登录/注册/用户管理,如“登录”,“请输入密码”,“账户名”等;通用动作指示语,如“跳过”,“返回”,“同意”等;其他自定义词语,主要包括网址,邮箱,超长乱码字符串等。
在步骤303中,对待去重文本内容进行去重,得到多个待拼接内容。
在一些实施例中,上述去重,是指将待去重文本内容中重复出现的内容,进行删除,以使待拼接内容中没有重复出现的相同内容。
在步骤304中,对多个待拼接内容进行拼接,得到文本序列。
在一些实施例中,按照待拼接内容在文本内容中的位置,对多个待拼接内容进行拼接,得到文本序列。
在一些实施例中,参见图14,图14是本申请实施例提供的应用程序的病毒检测方法的原理示意图。对于文本序列,通过文本特征提取网络,对输入文本特征提取网络的文本序列进行特征提取,得到文本特征;调用多个文本检测网络(文本检测网络1、文本检测网络2、文本检测网络n),对文本序列进行文本检测,得到各文本检测网络对应的文本检测结果(文本检测结果1、文本检测结果2…文本检测结果n)。
在一些实施例中,参见图14,在得到文本序列之后,每个文本内容就对应这一个文本序列,将其输入到文本特征提取模型(例如,Bert网络)中,文本特征提取模型将任意长度的序列转换成固定长度的向量,具有类似语义的句子会具有相似的向量。文本特征提取模型内部使用堆叠的自注意力层,具有很好的语义提取能力。由文本特征提取模型产生的文本特征作为不同检测头模型的输入,和图片内容检测网络类似,每个文本检测网络独立地负责为某个场景产生标签检测结果。
在步骤203中,通过运营规则,结合各内容语料对应的检测结果,生成应用的判定结果,其中,判定结果,用于指示应用是否感染病毒。
在一些实施例中,参见图15,图15是本申请实施例提供的应用程序的病毒检测方法的原理示意图。上述运营规则包括图片层级的判定规则、应用层级的判定规则等。对于图片层级的判定规则,结合各图片内容的多个检测结果(例如,检测结果1、检测结果2、检测结果n),生成图片内容的判定结果(例如,图片1判定结果、图片2判定结果、图片3判定结果),例如,图片内容的多个检测结果中,目标检测结果的数量大于数量阈值,则将图片内容的判定结果确定为应用感染病毒,目标检测结果用于指示应用感染病毒。通过各图片内容的判定结果,生成图片侧判定结果。
图片层级的判定规则仅仅使用到了图片内容的信息,为了更加充分地利用不同信息,我们可以综合多个信息源的判定结果来得到更加准确的判定
在一些实施例中,参见图15,对于文本侧样本判定和其他侧样本判定(例如,视频侧样本判定)与上述图片侧样本判定的方式类似。不同侧的层级规则使用不同的内容信息进行判定,为了更加充分地利用不同信息,可以综合多个信息源的判定结果(例如,文本侧、视频侧等),从而有效提高了判定的准确性。
在一些实施例中,参见图15,通过利用综合判定规则,对多个不同侧的样本判定结果进行综合,得到判定结果。例如,当图片侧样本判定和文本侧样本判定和其他侧样本判定均指示应用感染病毒时,将判定结果确定为应用感染病毒。
在一些实施例中,参见图15,对于后置过滤规则,生成的判定结果不能保证百分之百正确,因此层级判定规则也可能会得到错误的判定。当发现了误判,而又不能及时更新模型时候,可以通过这里让检测引擎不要对这些判定对外输出结果。控制误报的影响范围。
在一些实施例中,参见图16,图16是本申请实施例提供的应用程序的病毒检测方法的原理示意图。通过采用分布式的方式来部署整个检测引擎,整体架构如图16所示。检测节点负责业务逻辑操作,包括接收样本,调度各类服务,返回结果;而模拟器,模型和判定这些能力是通过独立的服务来提供,这样的好处是模型升级优化可以对检测节点无感知。经过测试,检测引擎处理一个样本的时间在6分钟以内(包括模拟器运行样本的5分钟)。通过部署大量的检测节点,每个检测节点独立地获取待检测样本并反馈检测结果。检测节点获取到待检测样本后,首先会执行内容解析,其中静态提取直接在本地脚本处理,而动态提取的话则是将样本传输到模拟器服务,模拟器服务会回传截图和文本。之后调用图片标签模块和文本标签模块,这两个模块都是在本地进行预处理操作,然后调用模型服务,模型服务回传对应的标签。最后规则判定模块会将标签发送到判定服务获取判定结果,对判定结果进行简单解析之后输出结果。
在一些实施例中,参见图16,模拟器服务是部署在专门的ARM集群上的,模拟器在接受到样本之后,会安装并运行5分钟。在运行期间按照一些预定义的策略点击屏幕上的控件,在此过程中得到截图和文本。运行结束后将截图和文本传到检测节点。
在一些实施例中,图片模型和文本模型是通过triton模型推理框架来部署的。首先使用pytorch框架来训练模型,训练完成之后转换成onnx格式的模型文件,最后将onnx模型文件部署在triton框架上,triton可以提供自动批处理加速。判定服务的实现比较简单。主要是负责加载数据库里面的规则,根据接收到的标签得到判定结果。
如此,通过本申请实施例提供的应用程序的病毒检测方法,能够有效提升病毒检测系统对内容型作恶应用的检测能力,通过将模型开发和规则运营工作解耦,实现了人工智能模型在安全领域的成功落地。
在一些实施例中,所指的内容包括但不限于图片和文本,任何普通用户能够直观理解的都属于内容,比如说视频,语音等等。通过抽象出语义,本申请实施例将开发人工智能模型和人工运营规则两者解耦合,在实际应用中,从任何角度对样本的客观性性描述都可以认为是语义。
如此,通过在待检测应用运行的过程中,获取待检测应用输出的目标内容,基于目标内容中的各子内容对待检测应用进行病毒检测,得到各子内容对应的病毒检测结果,结合各子内容对应的病毒检测结果,生成待检测应用的目标病毒检测结果,如此,通过基于各子内容对待检测应用分别进行病毒检测,得到各子内容对应的病毒检测结果,在确定待检测应用的目标病毒检测结果时,综合各子内容对应的病毒检测结果,从而综合多个不同维度判定待检测应用是否感染病毒,有效提高了检测病毒的准确度。
可以理解的是,在本申请实施例中,涉及到目标内容等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
在一些实施例中,参见图17,图17是本申请实施例提供的应用程序的病毒检测方法的流程示意图,将结合图17示出的步骤301至步骤324进行说明。
在步骤301中,创建待检测应用的模拟器。
在步骤302中,在模拟器中运行待检测应用。
在步骤303中,获取待检测应用在运行过程中的代码,并当代码中包含图片格式的目标代码内容时,从代码中提取图片格式的目标代码内容。
在步骤304中,在待检测应用运行的过程中,获取待检测应用输出的多个候选输出内容。
在步骤305中,对多个候选输出内容进行信息过滤,得到目标输出内容,目标输出内容的信息量大于信息量阈值。
在步骤306中,将目标输出内容和目标代码内容进行内容融合,得到待检测应用输出的目标内容。
在步骤307中,当子内容包括图片内容时,获取子内容中图片内容的图片特征。
在步骤308中,获取多个图片内容检测网络,不同的图片内容检测网络所检测的检测内容不同。
在步骤309中,基于图片特征,调用各图片内容检测网络,分别对图片内容进行内容检测,得到各图片内容检测网络分别对应的内容检测结果。
在步骤310中,结合各图片内容检测网络分别对应的内容检测结果,确定图片内容的内容检测结果。
在步骤311中,针对各参考图片内容分别执行以下处理:获取参考图片内容的图片特征,并确定参考图片内容的图片特征与图片内容的图片特征之间的相似度,当相似度大于相似度阈值时,将参考图片内容确定为目标参考图片内容。
在步骤312中,获取图片内容的关键点特征,并基于关键点特征,确定各目标参考图片内容与图片内容的匹配度。
在步骤313中,将最大匹配度与匹配度阈值进行数值比较,得到比较结果。
在步骤314中,当比较结果指示最大匹配度大于匹配度阈值时,确定内容匹配结果为第一匹配结果,第一匹配结果,用于指示图片内容与参考图片内容匹配成功;当比较结果指示最大匹配度小于或等于匹配度阈值时,确定内容匹配结果为第二匹配结果,第二匹配结果,用于指示图片内容与参考图片内容匹配不成功。
在步骤315中,当内容匹配结果表征图片内容与参考图片内容匹配成功时,获取最大匹配度对应的参考图片内容的病毒标签,并将病毒标签的内容,确定为图片内容对应的病毒检测结果。
在步骤316中,当内容匹配结果表征图片内容与参考图片内容匹配不成功时,将内容检测结果,确定为图片内容对应的病毒检测结果。
在步骤317中,当子内容包括文本内容时,对文本内容中的无用词进行内容过滤,得到待检测文本内容,并对待检测文本内容进行特征提取,得到待检测文本内容的文本特征。
在步骤318中,获取多个文本内容检测网络,不同的文本内容检测网络所检测的检测内容不同。
在步骤319中,基于文本特征,调用各文本内容检测网络,分别对待检测文本内容进行内容检测,得到各文本内容检测网络分别对应的内容检测结果。
在步骤320中,结合各文本内容检测网络分别对应的内容检测结果,确定文本内容对应的病毒检测结果。
在步骤321中,对相同类型的子内容进行内容聚合,得到各类型的子内容集合。
在步骤322中,针对各子内容集合分别执行以下处理:结合子内容集合中的各子内容分别对应的病毒检测结果,生成子内容集合对应的病毒检测结果。
在步骤323中,从子内容集合中,获取目标子内容集合,并确定目标子内容集合的数量。
在步骤324中,当目标子内容集合的数量大于第二数量阈值时,将待检测应用的目标病毒检测结果,确定为第二检测结果。
下面继续说明本申请实施例提供的应用程序的病毒检测装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的应用程序的病毒检测装置455中的软件模块可以包括:获取模块4551,用于在模拟器上运行待检测应用,并在待检测应用运行的过程中,获取待检测应用输出的目标内容,目标内容包括多个子内容,子内容包括图片内容和文本内容中至少之一;病毒检测模块4552,用于基于各子内容,分别对待检测应用进行病毒检测,得到各子内容对应的病毒检测结果;生成模块4553,用于结合各子内容对应的病毒检测结果,生成待检测应用的目标病毒检测结果,目标病毒检测结果,用于指示待检测应用是否感染病毒。
在一些实施例中,上述病毒检测模块4552,还用于针对各子内容分别执行以下处理:获取子内容中图片内容的图片特征,并基于图片特征,对图片内容进行内容检测,得到图片内容的内容检测结果,内容检测结果,用于指示图片内容是否包含检测内容,检测内容,用于指示待检测应用在运行过程中已感染病毒;对图片内容和多个参考图片内容分别进行内容匹配,得到各图片内容对应的内容匹配结果,参考图片内容包括检测内容;结合内容检测结果和内容匹配结果,确定图片内容对应的病毒检测结果。
在一些实施例中,上述病毒检测模块4552,还用于获取多个图片内容检测网络,不同的图片内容检测网络所检测的检测内容不同;基于图片特征,调用各图片内容检测网络,分别对图片内容进行内容检测,得到各图片内容检测网络分别对应的内容检测结果,图片内容检测网络对应的内容检测结果,用于指示图片内容是否包含图片内容检测网络对应的检测内容;结合各图片内容检测网络分别对应的内容检测结果,确定图片内容的内容检测结果。
在一些实施例中,上述病毒检测模块4552,还用于基于图片特征,对多个参考图片内容进行相似度筛选,得到至少一个目标参考图片内容,目标参考图片内容的图片特征与图片内容的图片特征之间的相似度大于相似度阈值;获取图片内容的关键点特征,并基于关键点特征进行图片内容间的相似度匹配,得到各目标参考图片内容与图片内容的匹配度;基于各目标参考图片内容与图片内容的匹配度,确定图片内容的内容匹配结果。
在一些实施例中,上述病毒检测模块4552,还用于针对各目标参考图片内容分别执行以下处理:获取目标参考图片内容的关键点特征,目标参考图片内容的关键点特征包括:目标参考图片内容中各关键像素点的第一关键点特征,图片内容的关键点特征包括:图片内容中各关键像素点的第二关键点特征,目标参考图片内容的关键像素点与图片内容的关键像素点一一对应;获取各第一关键点特征与相应第二关键点特征之间的特征相似度,并基于特征相似度,确定目标参考图片内容与图片内容的匹配度。
在一些实施例中,上述病毒检测模块4552,还用于将特征相似度大于或等于特征相似度阈值的目标参考图片内容中的关键像素点,确定为目标像素点;获取目标像素点的第一数量,以及目标参考图片内容的关键像素点的第二数量;将第一数量和第二数量的比值,确定为目标参考图片内容与图片内容的匹配度。
在一些实施例中,上述病毒检测模块4552,还用于将最大的匹配度的值与匹配度阈值进行数值比较,得到比较结果;当比较结果指示最大的匹配度的值大于匹配度阈值时,确定内容匹配结果为第一匹配结果,第一匹配结果,用于指示图片内容与参考图片内容匹配成功;当比较结果指示最大的匹配度的值小于或等于匹配度阈值时,确定内容匹配结果为第二匹配结果,第二匹配结果,用于指示图片内容与参考图片内容匹配不成功。
在一些实施例中,上述病毒检测模块4552,还用于当内容匹配结果表征图片内容与参考图片内容匹配成功时,获取最大的匹配度对应的参考图片内容的病毒标签,并将病毒标签的内容,确定为图片内容对应的病毒检测结果;当内容匹配结果表征图片内容与参考图片内容匹配不成功时,将内容检测结果,确定为图片内容对应的病毒检测结果。
在一些实施例中,上述病毒检测模块4552,还用于针对各子内容分别执行以下处理:对文本内容中的无用词进行内容过滤,得到待检测文本内容,并对待检测文本内容进行特征提取,得到待检测文本内容的文本特征;获取多个文本内容检测网络,不同的文本内容检测网络所检测的检测内容不同;基于文本特征,调用各文本内容检测网络,分别对待检测文本内容进行内容检测,得到各文本内容检测网络分别对应的内容检测结果;其中,文本内容检测网络对应的内容检测结果,用于指示文本内容是否包含文本内容检测网络对应的检测内容;结合各文本内容检测网络分别对应的内容检测结果,确定文本内容对应的病毒检测结果。
在一些实施例中,上述生成模块4553,还用于对相同类型的子内容进行内容聚合,得到各类型的子内容集合,类型包括图片类型和文本类型中至少之一;针对各子内容集合分别执行以下处理:结合子内容集合中的各子内容分别对应的病毒检测结果,生成子内容集合对应的病毒检测结果;结合各子内容集合对应的病毒检测结果,生成待检测应用的目标病毒检测结果。
在一些实施例中,上述生成模块4553,还用于获取子内容集合中包含的目标子内容的数量,其中,目标子内容对应的病毒检测结果,用于指示待检测应用在运行过程中已感染病毒;当子内容集合中包含的目标子内容的数量大于第一数量阈值时,将子内容集合对应的病毒检测结果,确定为第一检测结果,第一检测结果,用于指示待检测应用在运行过程中已感染病毒。
在一些实施例中,上述生成模块4553,还用于从子内容集合中,获取目标子内容集合,并确定目标子内容集合的数量,目标子内容集合对应的病毒检测结果,指示待检测应用在运行过程中已感染病毒;当目标子内容集合的数量大于第二数量阈值时,将待检测应用的目标病毒检测结果,确定为第二检测结果,第二检测结果,用于指示待检测应用在运行过程中已感染病毒。
在一些实施例中,上述生成模块4553,还用于获取待检测应用在运行过程中的代码,并当代码中包含图片格式的目标代码内容时,从代码中提取图片格式的目标代码内容;在待检测应用运行的过程中,获取待检测应用输出的多个候选输出内容;对多个候选输出内容进行信息过滤,得到目标输出内容,目标输出内容的信息量大于信息量阈值;将目标输出内容和目标代码内容进行内容融合,得到待检测应用输出的目标内容。
在一些实施例中,上述应用程序的病毒检测装置455,还包括:创建模块,用于创建待检测应用的模拟器,模拟器,用于提供模拟运行待检测应用的环境。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的应用程序的病毒检测方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的应用程序的病毒检测方法,例如,如图3示出的应用程序的病毒检测方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
综上,本申请实施例具有如下有益效果:
(1)通过在待检测应用运行的过程中,获取待检测应用输出的目标内容,基于目标内容中的各子内容对待检测应用进行病毒检测,得到各子内容对应的病毒检测结果,结合各子内容对应的病毒检测结果,生成待检测应用的目标病毒检测结果,如此,通过基于各子内容对待检测应用分别进行病毒检测,得到各子内容对应的病毒检测结果,在确定待检测应用的目标病毒检测结果时,综合各子内容对应的病毒检测结果,从而综合判定待检测应用是否感染病毒,有效提高了检测病毒的准确度。
(2)通过在待检测应用运行的过程中,获取待检测应用输出的多个候选输出内容,并从代码中提取图片格式的目标代码内容,并对多个候选输出内容进行信息过滤,得到目标输出内容,将目标输出内容和目标代码内容进行内容融合,得到待检测应用输出的目标内容,一方面,保证了所确定的目标内容的全面性,能够便于后续对待检测应用的全面检测,另一方面,通过对多个候选输出内容进行信息过滤,从而有效减少了所确定的目标内容的数据量,进而有效减少了后续病毒检测的工作量,有效提高了后续病毒检测的效率。如此,既保证了后续对待检测应用的全面检测,又有效提高了后续病毒检测的效率。
(3)待检测应用在运行过程中的代码包括各类应标图标,以及待显示的图片格式的目标代码内容,以及文本格式的代码文本内容。当代码中包含图片格式的目标代码内容时,通过从代码中提取图片格式的目标代码内容,从而便于后续对目标代码内容进行病毒检测,以提高待检测应用程序的病毒检测的准确性。
(4)通过创建待检测应用的模拟器,并在模拟器中,运行待检测应用,从而通过模拟器,实现了待检测应用的模拟运行,能够在待检测应用正式运行之前,及时发现待检测应用可能存在的病毒,有效保证了待检测应用的运行安全。
(5)通过将待检测应用或者其他应用在历史运行的过程中,输出的包含检测内容的图片内容收集到参考图片内容库中进行存储,在对待检测应用进行病毒检测时,将图片内容和参考图片内容库中的多个参考图片内容分别进行内容匹配,得到各图片内容对应的内容匹配结果,内容匹配结果指示参考图片内容是否与图片内容匹配成功,当匹配成功时,则表征图片内容包含参考图片内容对应的检测内容,则图片内容指示待检测应用感染病毒,从而有效提高了病毒检测的准确性。
(6)在子内容包括图片内容时,通过确定图片内容对应的内容检测结果和内容匹配结果,通过内容匹配结果所指示的不同含义,以不同的方式确定图片内容对应的病毒检测结果,从而通过内容检测结果和内容匹配结果,为图片内容对应的病毒检测结果提供了双重保障,有效提高了所确定的病毒检测结果的准确性。
(7)当子内容包括文本内容时,通过对文本内容进行内容检测,确定文本内容对应的病毒检测结果,从而为后续待检测应用的目标病毒检测结果的确定,提供了准确的数据支撑,有效提高了待检测应用程序的病毒检测的准确性。
(8)通过对多个候选输出内容进行信息过滤,得到目标输出内容,从而有效减少了后续内容检测的检测数据量,有效提高了病毒检测的效率。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (18)
1.一种应用程序的病毒检测方法,其特征在于,所述方法包括:
在模拟器上运行待检测应用,并在所述待检测应用运行的过程中,获取所述待检测应用输出的目标内容,所述目标内容包括多个子内容,所述子内容包括图片内容和文本内容中至少之一;
基于各所述子内容,分别对所述待检测应用进行病毒检测,得到各所述子内容对应的病毒检测结果;
结合各所述子内容对应的病毒检测结果,生成所述待检测应用的目标病毒检测结果,所述目标病毒检测结果,用于指示所述待检测应用是否感染病毒。
2.根据权利要求1所述的方法,其特征在于,当所述子内容包括所述图片内容时,所述基于各所述子内容,分别对所述待检测应用进行病毒检测,得到各所述子内容对应的病毒检测结果,包括:
针对各所述子内容分别执行以下处理:
获取所述子内容中图片内容的图片特征,并基于所述图片特征,对所述图片内容进行内容检测,得到所述图片内容的内容检测结果,所述内容检测结果,用于指示所述图片内容是否包含检测内容,所述检测内容,用于指示所述待检测应用在运行过程中已感染病毒;
对所述图片内容和多个参考图片内容分别进行内容匹配,得到所述图片内容对应的内容匹配结果,所述参考图片内容包括所述检测内容;
结合所述内容检测结果和所述内容匹配结果,确定所述图片内容对应的病毒检测结果。
3.根据权利要求2所述的方法,其特征在于,所述基于所述图片特征,对所述图片内容进行内容检测,得到所述图片内容的内容检测结果,包括:
获取多个图片内容检测网络,不同的所述图片内容检测网络所检测的所述检测内容不同;
基于所述图片特征,调用各所述图片内容检测网络,分别对所述图片内容进行内容检测,得到各所述图片内容检测网络分别对应的内容检测结果,所述图片内容检测网络对应的内容检测结果,用于指示所述图片内容是否包含所述图片内容检测网络对应的所述检测内容;
结合各所述图片内容检测网络分别对应的内容检测结果,确定所述图片内容的内容检测结果。
4.根据权利要求2所述的方法,其特征在于,所述对所述图片内容和多个参考图片内容分别进行内容匹配,得到所述图片内容对应的内容匹配结果,包括:
基于所述图片特征,对所述多个参考图片内容进行相似度筛选,得到至少一个目标参考图片内容,目标参考图片内容的图片特征与所述图片内容的图片特征之间的相似度大于相似度阈值;
获取所述图片内容的关键点特征,并基于所述关键点特征进行图片内容间的相似度匹配,得到各所述目标参考图片内容与所述图片内容的匹配度;
基于各所述目标参考图片内容与所述图片内容的匹配度,确定所述图片内容的内容匹配结果。
5.根据权利要求4所述的方法,其特征在于,所述基于所述关键点特征进行图片内容间的相似度匹配,得到各所述目标参考图片内容与所述图片内容的匹配度,包括:
针对各所述目标参考图片内容分别执行以下处理:
获取所述目标参考图片内容的关键点特征,所述目标参考图片内容的关键点特征包括:所述目标参考图片内容中各关键像素点的第一关键点特征,所述图片内容的关键点特征包括:所述图片内容中各关键像素点的第二关键点特征,所述目标参考图片内容的关键像素点与所述图片内容的关键像素点一一对应;
获取各所述第一关键点特征与相应所述第二关键点特征之间的特征相似度,并基于所述特征相似度,确定所述目标参考图片内容与所述图片内容的匹配度。
6.根据权利要求5所述的方法,其特征在于,所述基于所述特征相似度,确定所述目标参考图片内容与所述图片内容的匹配度,包括:
将所述特征相似度大于或等于特征相似度阈值的所述目标参考图片内容中的关键像素点,确定为目标像素点;
获取所述目标像素点的第一数量,以及所述目标参考图片内容的关键像素点的第二数量;
将所述第一数量和所述第二数量的比值,确定为所述目标参考图片内容与所述图片内容的匹配度。
7.根据权利要求4所述的方法,其特征在于,所述各所述目标参考图片内容与所述图片内容的匹配度,确定所述图片内容的内容匹配结果,包括:
将最大的所述匹配度的值与匹配度阈值进行数值比较,得到比较结果;
当所述比较结果指示最大的所述匹配度的值大于匹配度阈值时,确定所述内容匹配结果为第一匹配结果,所述第一匹配结果,用于指示所述图片内容与所述参考图片内容匹配成功;
当所述比较结果指示最大的所述匹配度的值小于或等于所述匹配度阈值时,确定所述内容匹配结果为第二匹配结果,所述第二匹配结果,用于指示所述图片内容与所述参考图片内容匹配不成功。
8.根据权利要求4所述的方法,其特征在于,所述结合所述内容检测结果和所述内容匹配结果,确定所述图片内容对应的病毒检测结果,包括:
当所述内容匹配结果表征所述图片内容与所述参考图片内容匹配成功时,获取最大的所述匹配度对应的参考图片内容的病毒标签,并将所述病毒标签的内容,确定为所述图片内容对应的病毒检测结果;
当所述内容匹配结果表征所述图片内容与参考图片内容匹配不成功时,将所述内容检测结果,确定为所述图片内容对应的病毒检测结果。
9.根据权利要求1所述的方法,其特征在于,当所述子内容包括所述文本内容时,所述基于各所述子内容,分别对所述待检测应用进行病毒检测,得到各所述子内容对应的病毒检测结果,包括:
针对各所述子内容分别执行以下处理:
对所述文本内容中的无用词进行内容过滤,得到待检测文本内容,并对所述待检测文本内容进行特征提取,得到所述待检测文本内容的文本特征;
获取多个文本内容检测网络,不同的所述文本内容检测网络所检测的检测内容不同;
基于所述文本特征,调用各所述文本内容检测网络,分别对所述待检测文本内容进行内容检测,得到各所述文本内容检测网络分别对应的内容检测结果,所述文本内容检测网络对应的内容检测结果,用于指示所述文本内容是否包含所述文本内容检测网络对应的所述检测内容;
结合各所述文本内容检测网络分别对应的内容检测结果,确定所述文本内容对应的病毒检测结果。
10.根据权利要求1所述的方法,其特征在于,所述结合各所述子内容对应的病毒检测结果,生成所述待检测应用的目标病毒检测结果,包括:
对相同类型的所述子内容进行内容聚合,得到各所述类型的子内容集合,所述类型包括图片类型和文本类型中至少之一;
针对各所述子内容集合分别执行以下处理:结合所述子内容集合中的各所述子内容分别对应的病毒检测结果,生成所述子内容集合对应的病毒检测结果;
结合各所述子内容集合对应的病毒检测结果,生成所述待检测应用的目标病毒检测结果。
11.根据权利要求10所述的方法,其特征在于,所述结合所述子内容集合中的各所述子内容分别对应的病毒检测结果,生成所述子内容集合对应的病毒检测结果,包括:
获取所述子内容集合中包含的目标子内容的数量,所述目标子内容对应的病毒检测结果,用于指示所述待检测应用在运行过程中已感染病毒;
当所述子内容集合中包含的目标子内容的数量大于第一数量阈值时,将所述子内容集合对应的病毒检测结果,确定为第一检测结果,所述第一检测结果,用于指示所述待检测应用在运行过程中已感染病毒。
12.根据权利要求10所述的方法,其特征在于,所述结合各所述子内容集合对应的病毒检测结果,生成所述待检测应用的目标病毒检测结果,包括:
从所述子内容集合中,获取目标子内容集合,并确定所述目标子内容集合的数量,所述目标子内容集合对应的病毒检测结果,指示所述待检测应用在运行过程中已感染病毒;
当所述目标子内容集合的数量大于第二数量阈值时,将所述待检测应用的目标病毒检测结果,确定为第二检测结果,所述第二检测结果,用于指示所述待检测应用在运行过程中已感染病毒。
13.根据权利要求1所述的方法,其特征在于,所述在所述待检测应用运行的过程中,获取所述待检测应用输出的目标内容,包括:
获取所述待检测应用在运行过程中的代码,并当所述代码中包含图片格式的目标代码内容时,从所述代码中提取所述图片格式的目标代码内容;
在所述待检测应用运行的过程中,获取所述待检测应用输出的多个候选输出内容;
对多个所述候选输出内容进行信息过滤,得到目标输出内容,所述目标输出内容的信息量大于信息量阈值;
将所述目标输出内容和所述目标代码内容进行内容融合,得到所述待检测应用输出的目标内容。
14.根据权利要求1所述的方法,其特征在于,所述在模拟器上运行待检测应用之前,所述方法还包括:
创建所述待检测应用的所述模拟器,所述模拟器,用于提供模拟运行所述待检测应用的环境。
15.一种应用程序的病毒检测装置,其特征在于,所述装置包括:
获取模块,用于在模拟器上运行待检测应用,并在所述待检测应用运行的过程中,获取所述待检测应用输出的目标内容,所述目标内容包括多个子内容,所述子内容包括图片内容和文本内容中至少之一;
病毒检测模块,用于基于各所述子内容,分别对所述待检测应用进行病毒检测,得到各所述子内容对应的病毒检测结果;
生成模块,用于结合各所述子内容对应的病毒检测结果,生成所述待检测应用的目标病毒检测结果,所述目标病毒检测结果,用于指示所述待检测应用是否感染病毒。
16.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令或者计算机程序;
处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现权利要求1至14任一项所述的应用程序的病毒检测方法。
17.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时实现权利要求1至14任一项所述的应用程序的病毒检测方法。
18.一种计算机程序产品,包括计算机程序或计算机可执行指令,其特征在于,所述计算机程序或计算机可执行指令被处理器执行时实现权利要求1至14任一项所述的应用程序的病毒检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310084651.2A CN116226850A (zh) | 2023-01-13 | 2023-01-13 | 应用程序的病毒检测方法、装置、设备、介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310084651.2A CN116226850A (zh) | 2023-01-13 | 2023-01-13 | 应用程序的病毒检测方法、装置、设备、介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226850A true CN116226850A (zh) | 2023-06-06 |
Family
ID=86586624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310084651.2A Pending CN116226850A (zh) | 2023-01-13 | 2023-01-13 | 应用程序的病毒检测方法、装置、设备、介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226850A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116956295A (zh) * | 2023-09-19 | 2023-10-27 | 杭州海康威视数字技术股份有限公司 | 基于文件图谱拟合的安全检测方法、装置及设备 |
-
2023
- 2023-01-13 CN CN202310084651.2A patent/CN116226850A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116956295A (zh) * | 2023-09-19 | 2023-10-27 | 杭州海康威视数字技术股份有限公司 | 基于文件图谱拟合的安全检测方法、装置及设备 |
CN116956295B (zh) * | 2023-09-19 | 2024-01-05 | 杭州海康威视数字技术股份有限公司 | 基于文件图谱拟合的安全检测方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837550A (zh) | 基于知识图谱的问答方法、装置、电子设备及存储介质 | |
CN111767228B (zh) | 基于人工智能的界面测试方法、装置、设备和介质 | |
KR20200068050A (ko) | 인공지능 수행을 위한 학습 데이터 생성장치 및 방법 | |
US11423232B2 (en) | Systems and methods for deploying computerized conversational agents | |
CN116049397B (zh) | 基于多模态融合的敏感信息发现并自动分类分级方法 | |
US20220139063A1 (en) | Filtering detected objects from an object recognition index according to extracted features | |
CN112688966A (zh) | webshell检测方法、装置、介质和设备 | |
CN113268739A (zh) | 一种Docker镜像安全性检测方法 | |
US10191921B1 (en) | System for expanding image search using attributes and associations | |
CN111435367A (zh) | 知识图谱的构建方法、系统、设备及存储介质 | |
CN116226850A (zh) | 应用程序的病毒检测方法、装置、设备、介质及程序产品 | |
CN114676705B (zh) | 一种对话关系处理方法、计算机及可读存储介质 | |
CN114492366A (zh) | 二进制文件的分类方法、计算设备及存储介质 | |
CN113656797A (zh) | 行为特征提取方法以及行为特征提取装置 | |
CN117435999A (zh) | 一种风险评估方法、装置、设备以及介质 | |
CN117251761A (zh) | 数据对象分类方法、装置、存储介质及电子装置 | |
CN116467459A (zh) | 物联网设备故障报告方法、装置、计算机设备和存储介质 | |
US20230409956A1 (en) | Machine learning prediction of additional steps of a computerized workflow | |
CN115470489A (zh) | 检测模型训练方法、检测方法、设备以及计算机可读介质 | |
US20220414316A1 (en) | Automated language assessment for web applications using natural language processing | |
CN115328786A (zh) | 一种基于区块链的自动化测试方法、装置和存储介质 | |
CN114579876A (zh) | 虚假信息检测方法、装置、设备及介质 | |
CN117809062B (zh) | 地标识别方法、装置、设备、存储介质及计算机程序产品 | |
CN118052998B (zh) | 特征处理方法、装置、设备、存储介质及计算机程序产品 | |
Watanabe et al. | Layout Cross-Browser Failure Classification for Mobile Responsive Design Web Applications: Combining Classification Models Using Feature Selection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40088383 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |