CN116932381A - 小程序安全风险自动化评估方法及相关设备 - Google Patents
小程序安全风险自动化评估方法及相关设备 Download PDFInfo
- Publication number
- CN116932381A CN116932381A CN202310755129.2A CN202310755129A CN116932381A CN 116932381 A CN116932381 A CN 116932381A CN 202310755129 A CN202310755129 A CN 202310755129A CN 116932381 A CN116932381 A CN 116932381A
- Authority
- CN
- China
- Prior art keywords
- applet
- security
- features
- detection
- data
- 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
- 238000011156 evaluation Methods 0.000 title abstract description 15
- 238000001514 detection method Methods 0.000 claims abstract description 104
- 238000000034 method Methods 0.000 claims abstract description 76
- 238000012360 testing method Methods 0.000 claims description 37
- 239000013598 vector Substances 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 14
- 230000035515 penetration Effects 0.000 claims description 12
- 238000013145 classification model Methods 0.000 claims description 9
- 238000011511 automated evaluation Methods 0.000 claims description 8
- 238000012549 training Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000012502 risk assessment Methods 0.000 claims description 3
- 238000004088 simulation Methods 0.000 claims description 2
- 230000006399 behavior Effects 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 83
- 238000004891 communication Methods 0.000 description 13
- 230000003068 static effect Effects 0.000 description 13
- 230000007547 defect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000012546 transfer Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000010276 construction Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000000605 extraction Methods 0.000 description 6
- 239000000243 solution Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 230000001788 irregular Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012706 support-vector machine Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000010408 sweeping Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种小程序安全风险自动化评估方法及相关设备。所述方法包括:对小程序进行特征检测,得到若干备选特征;将所述备选特征与预先构建的安全检测特征库进行匹配,响应于确定所述安全检测特征库中存在与所述备选特征相匹配的第一特征,根据所述第一特征确定所述小程序的第一漏洞信息;其中,所述安全检测特征库包括若干第一特征;根据所述第一漏洞信息生成安全评估报告。本申请的方案,利用预先构建的安全检测特征库检测小程序中的漏洞,并从小程序中匹配与特征库相同行为的特征,从而实现针对小程序中漏洞的快速查找并获得安全评估报告,进而能够防范小程序安全,有效保护信息安全。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种小程序安全风险自动化评估方法及相关设备。
背景技术
小程序(Mini Program)是一种不需要下载安装即可使用的应用,用户扫一扫或者搜一下即可打开应用。近年来,小程序应用领域更广种类更多,给人们的生活带来更多的便利,但同时小程序的应用也带来了众多安全风险。
然而,相关技术中的安全解决方案并非针对小程序所设计,因此往往会出现适配性的问题,小程序的开发商往往需要将大量精力耗费在与安全服务的兼容、调优方面,而且还有可能会影响小程序的持续运营。
发明内容
有鉴于此,本申请的目的在于提出一种小程序安全风险自动化评估方法及相关设备,以解决或部分解决上述问题。
本申请第一方面,提供了一种小程序安全风险自动化评估方法,包括:
对小程序进行特征检测,得到若干备选特征;
将所述备选特征与预先构建的安全检测特征库进行匹配,响应于确定所述安全检测特征库中存在与所述备选特征相匹配的第一特征,根据所述第一特征确定所述小程序的第一漏洞信息;其中,所述安全检测特征库包括若干第一特征;
根据所述第一漏洞信息生成安全评估报告。
可选的,所述对小程序进行特征检测,得到若干备选特征,包括:
提取小程序的源代码;
对所述源代码进行编译,生成抽象语法树;
对所述抽象语法树进行转换,得到代码属性图;
利用预先定义的漏洞检测规则对所述代码属性图进行特征检测,得到若干备选特征。
可选的,还包括通过以下方法构建安全检测特征库:
对所述源代码进行解析,得到特征代码;其中,所述特征代码表征产生代码漏洞的代码;
对所述特征代码进行转化,得到特征向量;
根据所述特征向量生成漏洞文本向量;
利用预先训练得到的分类模型对所述漏洞文本向量进行分类,得到分类结果;
根据所述分类结果构建得到所述安全检测特征库。
可选的,所述方法还包括:
对所述小程序的数据库进行数据抽取,得到若干第一数据;
响应于确定所述第一数据为明文数据,根据预先设定的敏感数据特征对所述第一数据进行识别,确定第二数据;其中,所述第二数据表征敏感数据;
将所述第二数据从所述数据库中清除。
可选的,还包括通过以下方法对所述小程序进行渗透测试:
拦截对所述小程序的第一请求;
对所述第一请求进行更改,生成第二请求;
将所述第二请求发送至所述小程序,得到第二漏洞信息。
可选的,所述对小程序进行特征检测之前,所述方法还包括:
输入待测试的小程序的名称;
对所述小程序进行模拟运行。
本申请第二方面,提供了一种小程序安全风险自动化评估装置,包括:
检测模块,被配置为:对小程序进行特征检测,得到若干备选特征;
确定模块,被配置为:将所述备选特征与预先构建的安全检测特征库进行匹配,响应于确定所述安全检测特征库中存在与所述备选特征相匹配的第一特征,根据所述第一特征确定所述小程序的第一漏洞信息;其中,所述安全检测特征库包括若干第一特征;
生成模块,被配置为:根据所述第一漏洞信息生成安全评估报告。
本申请第三方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如第一方面所述的方法。
本申请第四方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行如第一方面所述的方法。
本申请第五方面,提出了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如第一方面所述的方法。
从上面所述可以看出,本申请提供的小程序安全风险自动化评估方法及相关设备,利用预先构建的安全检测特征库检测小程序中的漏洞,并从小程序中匹配与特征库相同行为的特征,从而实现针对小程序中漏洞的快速查找并获得安全评估报告,进而能够防范小程序安全,有效保护信息安全。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的小程序安全风险自动化评估方法的流程示意图;
图2为本申请实施例的代码属性图的构建流程示意图;
图3为本申请实施例的污点分析的遍历流程示意图;
图4为本申请实施例的在构建安全检测特征库的过程中特征分类的流程示意图;
图5为本申请实施例的静态分析特征提取流程示意图;
图6为本申请实施例的特征向量的生成过程的流程示意图;
图7为本申请另一实施例的小程序安全风险自动化评估方法的流程示意图;
图8本申请实施例的小程序渗透测试的流程示意图;
图9本申请实施例的数据库安全检测的流程示意图;
图10本申请实施例的针对小程序前端和后台WEB端整体进行安全检测的流程示意图;
图11本申请实施例的小程序安全风险自动化评估装置的结构示意图;
图12为本申请实施例的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合附图对本申请的实施例进行详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
小程序(Mini Program)是一种不需要下载安装即可使用的应用,用户扫一扫或者搜一下即可打开应用。近年来,小程序应用领域更广种类更多,给人们的生活带来更多的便利,但同时小程序的应用也带来了众多安全风险。随着小程序的不断发展,小程序也逐渐成为了入侵者的目标,入侵者带有目的性的进行恶意代码的攻击方式也逐步向小程序恶意代码转变,不仅给用户造成不安因素,也给网络安全构成极大安全威胁隐患。
具体的,小程序安全漏洞是指在小程序设计与实现过程中由于算法的漏洞或者开发人员的疏忽,存在的一些可以被恶意攻击者所利用、对小程序的安全使用构成威胁的缺陷或者不足。随着小程序规模的不断增大和小程序数量的不断增多,以及小程序复杂度的不断提高,健壮的小程序***已经很难被设计和实现,所以小程序漏洞的存在是不可避免的。因此,需要快速而准确地发现小程序安全漏洞,以减少由于小程序漏洞带来的财产和安全损失。
然而,相关技术中的安全解决方案并非针对小程序所设计,因此往往会出现适配性的问题,小程序的开发商往往需要将大量精力耗费在与安全服务的兼容、调优方面,而且还有可能会影响小程序的持续运营。
鉴于此,本申请实施例提供了一种小程序安全风险自动化评估方法及相关设备,利用预先构建的安全检测特征库检测小程序中的漏洞,并从小程序中匹配与特征库相同行为的特征,从而实现针对小程序中漏洞的快速查找并获得安全评估报告,进而能够防范小程序安全,有效保护信息安全。
需要说明的是,本申请实施例中,特征形式支持字符串、网络行为等检测特征,并支持检测特征的逻辑组合,支持正则形式的检测特征描述。
图1示出了本申请实施例的小程序安全风险自动化评估方法100的流程示意图。如图1所示,该方法100可以包括以下步骤。
步骤S101、对小程序进行特征检测,得到若干备选特征。
本实施例中,输入待测试的小程序的名称(例如,XX乘车码),并对所述小程序进行模拟运行,从而进一步对小程序进行特征检测。
具体实施时,提取小程序的源代码;对所述源代码进行编译,生成抽象语法树;对所述抽象语法树进行转换,得到代码属性图;利用预先定义的漏洞检测规则对所述代码属性图进行特征检测,得到若干备选特征。
在一些实施例中,对于不同的电子设备可以采用不同的获取方式得到小程序的源代码。具体的,对于移动端(例如,手机端、平板端),可以通过将所设计的模拟器与移动端进行连接以进行命令查找及拷贝从而实现对小程序源代码的获取;对于电脑端,运行需要提取源码的小程序,确保所有页面的加载,获得小程序的加密包,对该进行解密即可获得小程序的源码文件。
以手机端为例,命令可以如下:
adb shell//进入手机***命令行;
su//切换root用户;
到小程序所在目录(例如,/data/data/com.tencent.mm/MicroMsg/{{一串32位的16进制字符串名文件夹}}/appbrand/pkg/);
根据时间顺序找出小程序,将apkg文件拷出;
按首次访问小程序的时间确认文件;
使用命令将其下载到本地。
这样,通过提取源代码,并对程序源代码进行处理,基于静态分析的技术原理,将其编译为能够便于静态分析的中间形式,为后续数据流构建做铺垫。
在一些实施例中,构造源代码的抽象语法树,从而允许以抽象和健壮的方式来处理代码。具体的,可以通过重新编写词法分析器和语法分析器来实现对源代码的解析,或者,利用语法解析器将代码转化为抽象语法树以便于后续进行静态分析。需要说明的是,在源代码内部也有能够处理源代码的函数,“token_get_all”,但是该函数是将源代码处理为token流,对于一些复杂的代码分析处理效果较差。
进一步的,参考图2,为代码属性图的构建流程图。如图2所示,基于抽象语法树需要分别构建控制流图、变量传递图和函数依赖图,从而得到代码属性图。具体构建过程可以如下。
(1)控制流图构建
在这一步中需要对抽象语法树作进一步处理,将其转化为控制流图,同时引入图谱的概念,构建图谱形式的控制流图,这就要求需要对前面所得到的抽象语法树结构做更深层次的分析,挖掘各结构的内外关系。
首先,根据特定的抽象语法树节点类型作为父亲节点进行统一构建,如变量定义、变量赋值、函数调用等操作,这类操作节点一般都含有子节点,接下来根据父亲节点的语法树信息填充叶子节点,如具体的变量名称、函数名称等信息,同时为每一个节点填充节点信息,如代码所在的行数、调用函数是否为PHP内置函数等相关信息。最后添加上文件名作为每一个文件的抽象语法树的根节点,并且增加程序的入口节点和退出节点。
在构建完所有的抽象语法树节点后需要对各父亲节点进行关系建立和嵌套处理,关系建立的依据是通过查看节点类型,判断哪些父亲节点既是抽象语法树节点又是控制流节点,一般来说变量赋值和函数调用由于涉及到多个节点信息,因此在构建控制流图时仅需对各父亲节点进行关系建立,即可构建全局的控制流图。另外由于变量赋值中也可能会出现函数调用,因此这里的函数调用父节点会嵌套在变量赋值的父节点中,作为其子节点存在于控制流图中。
在构建控制流图时常常会遇到一些结构化控制流语句(for/while)和非结构化控制流语句(continue/break),需要对结构化控制流语句定义了相应的路径规则,从而建立起初步的控制流路径图,其次对非结构化控制流语句做路径图修正处理,增加或删除某些控制流路径。
(2)变量传递图构建
相关技术中,在确立漏洞代码段后会对所有的代码段进行污点分析,而本实施例中,通过构建变量传递图优先遍历可大大减少污点分析的代码量。具体的,根据控制流图,通过对变量的定义节点作分析来判断变量的状态,在变量被定义之后与重新被定义之前,建立变量使用路径中各父亲节点的传递关系,传递关系为变量名。这样构建为后续的图遍历算法提供了遍历依据,在一定条件下仅需对传递路径作遍历回溯,从而减少了后续进行污点分析的时间复杂度和空间复杂度。
这样,通过构建变量传递图,在进行污点分析时可以只关注污点变量的数据流路径,从而减少对其他无关代码的分析,在一定程度上既利用了图谱构建技术的优势,又能够减轻污点分析的工作量。
(3)函数依赖图构建
如果没有对变量的函数调用建立依赖关系,在图数据库当中就会表现为自定义函数控制流与文件整体控制流的非连通性,在后续进行图遍历时就会导致遍历路径的终止,从而获取不到完整的数据流信息。
因此,在构建完控制流图和变量传递图后,需要对函数类型建立函数调用的依赖关系,函数调用主要分为四种类型:自定义函数调用(test())、静态方法调用(test::test())、构造函数调用(new test())和动态方法调用($a->test())。针对前三种函数调用类型由于函数调用名没有任何歧义,因此可以直接建立经过函数的变量的父亲节点与函数调用的依赖关系;针对最后一种动态方法调用,如果函数调用名为文件内唯一函数名称,则直接建立依赖关系,如果为不同类中的同一函数调用名称,则不建立函数依赖关系,因为在这种情况下如果仍想要构建函数依赖关系则需要对变量进行回溯,解析其定义的原始类名。
这样,将图谱知识与代码审计技术相结合,对编译结果进行形式转换和扩展,将编译结果按照图论知识进行节点、属性和关系的构建。进一步的,在一些实施例中,构建得到代码属性图,并利用预先定义的漏洞检测规则对所述代码属性图进行特征检测,得到若干备选特征。
具体的,所述漏洞检测规则包括污点变量来源规则和危险函数规则。污点变量来源规则主要是定义污点分析中可控变量的来源方式,也就是用户可控点,例如,在PHP语言当中,常见的可控点有$_GET、$_POST、$_COOKIE等,通过定义相对完整的污点变量来源规则,才能够完善污点分析的数据流获取;危险函数规则主要是定义一些能够触发漏洞的敏感函数,由于不同的敏感函数可能会触发相同类型的函数,因此在定义危险函数规则时,需要将危险函数与漏洞类型相对应,同时有可能一个危险函数会对应多种漏洞规则,当污点变量进入到危险函数时,很大程度上就会触发漏洞,所以需要定义尽可能全面的危险函数规则以检测更多的漏洞类型。危险函数规则可以如下表1所示。
表1危险函数规则
这样,将代码转化为代码属性图并将其存储到图数据库中后,配合上定义的所有漏洞检测规则,就可以使用图遍历算法来对节点及节点间的关系进行污点分析,其中图遍历算法包括反向遍历和正向遍历。通过两种遍历算法来完善数据流的获取,降低分析误报率和漏报率。
在一些实施例中,利用污点分析技术将小程序中的数据标记为污点或非污点,当污点数据依据信息流传播策略,可以影响到非污点数据时,则将该数据标记为污点,当污点标签最终随数据传播到指定的存储区域或者信息泄露点时,则违反了信息流策略。
图3示出了污点分析的遍历流程图。如图3所示,首先通过危险函数规则对图谱进行节点定位,找出所有可能的漏洞触发点,基于已经构造得到的代码属性图,在图中直接根据危险函数规则中的函数名称进行节点搜寻,确立潜在污点路径的终止节点,一段污点路径的起点是可控变量的引入点,终点是敏感函数和污点变量的调用关系,起点到终点的数据流路径即称为污点路径。
然后,根据危险函数节点进行变量搜寻,由于先前已经构造父亲节点和子节点的关系,这其中函数调用的节点类型为父节点,子节点为调用函数的名称和函数调用的变量名,所以这里对父子节点的遍历就能够得到危险函数名及函数调用的变量名,此时依据反向遍历的思想对调用变量的传递关系进行回溯。需要说明的是,部分漏洞的触发依据的是函数配置项,也就说如果在使用函数时配置不当才会触发漏洞,如curl函数由于会有配置项的存在,且能够触发SSRF漏洞的配置项仅有CURLOPT_URL项,因此针对curl函数获取其危险变量时,需要对函数配置项进行额外核查,提高污点路径的识别率。
应当理解的是,在反向遍历前需要对危险函数的父节点进行判断,这是因为函数调用极有可能发生在变量赋值阶段,在这个阶段既要获得经过函数名,又要获得映射变量名,同时在构造变量传递图时都是对各个子树的父节点进行关系建立,所以这里需要对父节点进行判断,判断是否为变量赋值的节点类型,如果是,那么在下一步进行回溯前应做变量映射,提供回溯依据,这样做可以进一步丰富污点路径图,提高污点分析的准确率。
进一步的,如果在分析污点路径时发现当危险函数不存在于自定义函数段中,但是在回溯数据流时发现存在自定义函数被调用的情况,由于反向遍历的根据是变量传递关系,但是在自定义函数中,数据流是自上而下的,在这种情况下采用反向遍历方法无法获取完整的污点路径信息,因此需要利用正向遍历的方法来辅助配合反向遍历完善数据流的获取。
具体的,当反向遍历获得调用函数名并发现当前调用函数为自定义函数时,根据先前构造的函数调用图,这里通过反向遍历就能回溯到自定义函数的代码属性图中去,由于自定义函数中会定义函数名和初始函数变量,所以这里需要对调用变量做变量的位置映射,将其映射为自定义函数内对应的变量名,然后采用自上而下的方式获取该变量的数据流路径图,这里遍历的依据也是变量间的传递关系,通过不断的依赖传递最终进入到自定义函数的终止节点,退出当前遍历流程并将正向遍历得到的数据流路径加入到原始变量的路径中去,从而不断丰富和完善污点路径。
步骤S102、将所述备选特征与预先构建的安全检测特征库进行匹配,响应于确定所述安全检测特征库中存在与所述备选特征相匹配的第一特征,根据所述第一特征确定所述小程序的第一漏洞信息;其中,所述安全检测特征库包括若干第一特征。
本实施例中,利用静态分析检测小程序中的漏洞首先需要构建一个安全检测特征库,且该安全检测特征库可以包括代码缺陷特征、代码漏洞特征和通信安全特征等。这样,基于该安全检测特征库,可以利用字符串、网络行为等检测特征,并利用检测特征的逻辑组合和正则表达式的方式从小程序中匹配与特征库相同行为的特征,从而快速找到小程序中的漏洞。
具体实施时,可以通过以下方法构建安全检测特征库:对小程序的源代码进行解析,得到特征代码;其中,所述特征代码表征产生代码漏洞的代码;对所述特征代码进行转化,得到特征向量;根据所述特征向量生成漏洞文本向量;利用预先训练得到的分类模型对所述漏洞文本向量进行分类,得到分类结果;根据所述分类结果构建得到所述安全检测特征库。
其中,对于分类模型的训练集和测试集,均由一组输入样本组成,且每个样本包括一个输入对象(特征向量)及其对应的标签。
图4示出了在构建安全检测特征库的过程中特征分类的流程示意图。如图4所示,生成特征向量的步骤可以包括:对于小程序代码数据(即小程序的源代码)进行预处理(例如,去除标点符号和特殊字符,分词及字符的大写转小写等),然后进行特征提取,从而得到特征向量。
在一些实施例中,结合静态分析中间结果从小程序中提取总结出产生代码漏洞的特征代码,并加以分类标注(图5为静态分析特征提取流程图),然后将这些特征代码转化为特征向量。并且,特征向量的生成过程可以如图6所示。
具体的,特征向量在三个维度上描述了小程序缺陷漏洞:元特征、文本特征和代码特征。元特征是指小程序代码漏洞的预定义字段,例如报告时间,优先级和严重度等,至少包括漏洞编号、漏洞名称、漏洞代码特征、漏洞引擎规则描述、危险等级等,还可以为漏洞报告识别提供潜在的标志;文本特征是指缺陷报告的文本内容,文本特征指的是概述字段,它是由缺陷提交者给出的一个句子,概括了提交者对缺陷的描述,可能包含可用于漏洞识别的潜在语义信息;代码特征是指一个小程序源代码文件的代码属性,可以分为四部分,是否存在危险函数或外部输入函数,缺陷补丁中添加或删除的代码行数,小程序漏洞涉及的文件数量,小程序缺陷的复杂度。
对于特征向量的每一个维度,一系列特性被提取。因此,一个小程序的特征向量可表示为:
Vreport={vmeta,vtext,vcode};
其中,vmeta是由一组元特征转化而来的,vtext是由一组文本特征转换而来的,vcode是由一组代码特征转换而来的。
对于元特征,这些字段经过数值映射和归一化处理,最终转换为元特征向量,表示为:
在一些实施例中,在生成特征向量之后,利用支持向量机(SVM)来构建漏洞自动化识别模型。SVM的基本模型是一个间隔最大化的线性分类器,尽管它是一个线性模型,但它可以通过核函数将输入映射到一个更高维的特征空间,从而有效地实现非线性分类。具体的,可以选择径向基函数(Radial Basis Function,RBF)作为核函数,因为它可以把原始特征从低维空间映射到高维空间,从而很好地处理类标签和属性之间的非线性关系。
相关技术中,文本特征提取方法TF-IDF和信息增益等生成的词向量空间呈现出的高维性和稀疏性导致漏洞分类准确性不高,并且漏洞日志文本的描述比较简短,而有的漏洞虽然类别不同但是日志描述却很相似,存在特征提取困难的问题。因此,本实例中,利用TFI-W2V算法来生成漏洞文本向量,并将TF-IDF和信息增益方法与基于Word2Vec的Skip-gram语言模型训练生成的词向量进行加权表示漏洞文本信息。
在一些实施例中,建立基于文本CNN和GRU特征融合的TextCGRU漏洞分类模型,该模型充分利用了CNN提取漏洞文本向量的局部特征,以及GRU提取与文本上下文相关的全局特征,然后将提取的特征进行融合作为区分每条漏洞的基本信息,使其能够表征更加准确漏洞日志描述的语义和语法信息,最后将TextCGRU模型应用于漏洞分类中,实现漏洞特征的自动分类。
最后,以NVD漏洞库中的漏洞为实验研究依据,详细分析并处理了NVD漏洞库中的漏洞数据,提取漏洞数据信息。以NVD为实验数据,对提出的TFI-W2V漏洞文本表示方法和TextCGRU漏洞分类模型进行实验验证和结果分析,并与以TF-IDF和信息增益方法为基础的神经网络漏洞分类模型进行实验对比,以此来表明提出的基于TFI-W2V算法的TextCGRU漏洞分类模型的优势。最终利用机器学习和自然语言处理处理模型方法,构建出安全检测特征库。
这样,利用该构建得到的安全检测特征库检测小程序中的漏洞,并从小程序中匹配与特征库相同行为的特征,从而实现针对小程序中漏洞的快速查找。具体的,可以将该构建得到的安全检测特征库中的若干第一特征分别与静态分析得到的检测特征(即若干备选特征)进行匹配,即利用字符串、网络行为等检测特征,并利用检测特征的逻辑组合和正则表达式的方式从小程序中匹配与特征库相同行为的特征;若相匹配,则将备选特征确定为目标特征,并根据该目标特征,也就是根据与其对应的第一特征确定第一漏洞信息以实现对小程序中漏洞的查找。
此外,在一些实施例中,还可以生成攻击向量。具体的,在攻击向量的自动化生成阶段,构建一个针对各漏洞的通用攻击向量库,并构建各类漏洞的过滤函数和净化函数的约束规则,从而利用约束求解来自动化生成可以被利用的攻击向量。
步骤S103、根据所述第一漏洞信息生成安全评估报告。
本实施例中,所生成的安全评估报告并非安全缺陷的简单总结,还可以进一步判断小程序的安全缺陷的严重性,并给出适当的修复建议。并且从易用性考虑,缺陷报告可以支持分组、排序、屏蔽特定结果等操作。
需要说明的是,所述安全评估报告中不仅包括第一漏洞信息,还可以包括小程序是否存在敏感信息泄露、代码保护强度、源代码暴露风险、源代码缺陷等其他安全风险评估检测信息。对于这些安全风险评估检测信息的获取过程将在后续进行具体说明。
图7示出了本申请另一实施例的小程序安全风险自动化评估方法的流程示意图。如图7所示,该小程序安全风险自动化评估方法可以包括:对小程序进行动态检测分析、静态检测分析、特征库构建、综合分析以及自动检测报告生成等。
在一些实施例中,该小程序安全风险自动化评估方法还可以包括常见漏洞及安全问题检测。关于常见漏洞及安全问题检测,可以包括:客户端代码安全检测、服务器安全检测、业务逻辑安全检测、小程序特有安全检测。客户端代码安全检测通过静态扫描小程序客户端代码,检测客户端是否有敏感信息泄露、代码保护强度是否足够等;服务器安全检测通过对服务器环境进行扫描,检测服务器是否使用的有漏洞或易被攻击的软件,是否存在不合理的服务配置等;业务逻辑安全检测对小程序业务的安全性进行检查,检查业务是否存在风险,拥有何种权限,是否含有广告等;小程序特有安全检测通过检测小程序调用微信的API是否符合规范,是否有客户信息或会话信息泄露等风险。具体的,可以采用渗透测试技术、安全检测技术、小程序加固技术相结合的方式。其中,小程序加固技术又包括代码混淆技术、防篡改技术、反调试技术。
也就是说,对于常见漏洞及安全问题检测,支持对小程序的服务器通信安全、业务逻辑安全、信息泄露风险和常见SQL注入、任意文件上传、路径穿越、目录枚举Web漏洞等内容的检测;检测引擎可分析小程序与服务器通信的数据,判断是否存在明文传输、是否存在过度用户信息外传,同时可以驱动多种安全检测工具对小程序是否存在SQL注入、任意文件上传、路径穿越和、目录枚举Web漏洞进行测试和分析。
在一些可选的实施例中,可以通过以下方法对所述小程序进行渗透测试:拦截对所述小程序的第一请求;对所述第一请求进行更改,生成第二请求;将所述第二请求发送至所述小程序,得到第二漏洞信息。
这样,通过模拟黑客攻击的形式对小程序业务***进行渗透测试,可以发现可导致业务数据泄露、资产受损、数据被篡改等各类安全风险。从而,在测试阶段发现高风险漏洞,提早进行修复,尽早避免因代码漏洞造成的安全风险及资产损失,针对小程序业务逻辑安全以及WEB框架安全进行深度漏洞挖掘。
参考图8,为小程序渗透测试的流程图。如图8所示,渗透测试可以包括以下步骤。
(1)嗅探测试目标,进行信息收集,为了使渗透测试更快速,该步骤主要目的是发现弱口令。
(2)远程连接测试目标,该步骤中可以通过一些命令行连接主机也可以使用相应的工具进行连接。远程连接测试主要目的是对测试目标的访问或者登陆到测试目标,实现对测试目标的操作。
(3)攻击测试目标,主要包括清除日志、置入虚拟后门等,该步骤主要是在登陆到测试目标之后执行的操作,即为攻击阶段,也是渗透测试的目的阶段。该步骤主要任务是取得相应的数据信息及消除一些虚拟的非法操作迹象和置入虚拟后门,为下次入侵做准备,而渗透测试主要得到用户网络是否安全,该阶段也是取得证据的阶段。
(4)扫描测试目标,通过对测试目标扫描,进一步收集测试目标的信息,该阶段与嗅探阶段基本相似,主要是发现弱口令和漏洞信息。
(5)弱口令探测,通过对测试目标访问得到测试目标存在的弱口令,该步骤主要是对那些常存在的弱口令探测,判断测试目标是否存在的弱口令。
(6)漏洞利用,利用通过扫描得到的漏洞信息,针对漏洞信息,执行相应的工具,能更快的达到对测试目标的攻击目的。
(7)权限提升,主要用于获得测试目标的普通权限之后,因权限的不同,对测试目标的攻击危害的程度就不同,如果只获得普通用户权限,对攻击目标只能做些简单的操作,并不能获得更多更有用的信息。而通过权限提升获取管理员权限,执行更多的操作,得到更多有用信息,对攻击目标造成的危害也就越大,作为渗透测试的执行者,能更有力的给用户证明用户的网络安全问题重大,让用户加大网络安全力度。
(8)拒绝服务攻击,其中包括DOS和DDOS攻击,该步骤主要目的是造成测试目标的资源消耗,甚至当机。执行该步骤主要是在以上各步骤没有起到攻击作用,说明用户网络相对安全,但是为测试网络的承受能力,而执行的该步骤,这样可以得到用户网络的最大承受攻击能力,可以给用户提出合理建议,但是该步骤会给用户带来一些影响,一般在执行该步骤时,要得到用户的同意,选定合适的时间执行。
在一些实施例中,该小程序安全风险自动化评估方法还可以包括数据库安全检测。具体的,首先进行数据库自动嗅探,自动搜索网内数据库,支持动态发现数据库能力,通过自动抓取访问数据库流量包,对流量包信息进行解析。然后,根据指定的或预定义的敏感数据特征,在执行任务过程中对抽取的数据进行自动的识别。通过自动识别敏感数据,可以避免按照字段定义敏感数据元的繁琐工作,同时能够持续的发现新的敏感数据。之后进行敏感数据泄露分析及敏感数据清除,为了防止敏感数据泄漏,需要对敏感数据彻底清除。常规的数据清除法攻击者可对清除数据进行恢复,采用数据覆盖法利用新数据覆盖原始数据,之后再采用数据清除软件清除,就可以彻底清除敏感数据。
具体实施时,可以通过扫描给定设备流量信息检测数据资产,核实数据资产信息及分布,发现数据库分布,通过预制发现规则发现敏感数据,对其敏感数据分级分类,呈现可视化敏感数据分布,通过对资产SQL语句量和会话并发量判断资产使用热度。
图9示出了数据库安全检测的流程示意图。如图9所示,可以包括以下步骤及其对应的实施例。
(1)数据库自动嗅探
即自动搜索网内数据库的功能,也可以指定IP段和端口的范围进行搜索。能够自动发现数据库的基本信息包括:端口号、数据库类型、数据库实例名、数据库服务器IP地址等。还需要支持动态发现数据库能力,通过自动抓取访问数据库流量包,对流量包信息进行解析,自动发现数据库的基本信息包括:端口号、数据库类型、数据库实例名、数据库服务器IP地址等。
(2)自动识别加密数据、敏感数据
即根据指定的敏感数据或预定义的敏感数据特征,在执行任务过程中对抽取的数据进行自动的识别。首先判断抽取的数据是否为加密数据,如果抽取的数据是明文数据,则进一步进行敏感数据识别。识别出敏感数据后,可以根据规则对发现的敏感数据进行导出清单。支持通过旁路链路的动态流量包进行解析,获取访问对象信息,根据用户指定的一部分敏感数据或预定义的敏感数据特征对访问对象自动识别,从而能够动态发现敏感数据分布。通过自动识别敏感数据,可以避免按照字段定义敏感数据元的繁琐工作,同时能够持续的发现新的敏感数据。
(3)敏感数据分级分类
即根据不同数据特征内置算法,对常见数据(例如,姓名、证件号、银行账户、金额、日期、住址、电话号码、Email地址、车牌号、车架号、企业名称、工商注册号、组织机构代码、纳税人识别号等)敏感数据。用户可以针对不同的数据类型指定不同的敏感级别,***会自动的对包含了敏感数据的表、模式、库进行敏感度评分。
(4)敏感数据泄露分析及敏感数据清除机制
通过文本提取与指纹生成得到待检测的指纹信息,最后计算待检测的指纹和敏感信息的指纹之间的文本相似度,通过文本相似度的结果来判断是否发生了敏感数据泄露。为了防止敏感数据泄漏,需要对敏感数据彻底清除。对于相关技术中的数据清除方案,攻击者可对清除数据进行恢复,因此本实施例中采用数据覆盖法利用新数据覆盖原始数据,之后再进行清除,可以实现对敏感数据的彻底清除。具体的,覆写方法可以采用二进制数据存储法,在原始数据上覆盖上毫无规律的0、1,则原始数据信息编码就会混乱,破坏了数据文件的完整性。根据敏感数据的分类级别,可以选择逐位覆写、跳位覆写、随机覆写等不同模式,覆写的次数越多,则敏感数据清除的安全性越高。
在另一个实施例中,对所述小程序的数据库进行数据抽取,得到若干第一数据;响应于确定所述第一数据为明文数据,根据预先设定的敏感数据特征对所述第一数据进行识别,确定第二数据;其中,所述第二数据表征敏感数据;将所述第二数据从所述数据库中清除。这样,可以实现对数据资产自动发现、对数据进行分级分类、及敏感数据清除等。
在一些可选的实施例中,该小程序安全风险自动化评估方法还可以包括小程序加固,即,针对小程序前端代码进行加密。可以利用加密工具对代码进行加密,可实现字符串加密、属性加密、调用转换、代码混淆等多项保护措施,提高攻击者分析H5前端代码逻辑的难度,从而保护小程序代码安全。
具体实施时,通过代码混淆方法将小程序进行扭曲变形以隐蔽真正代码功能。可以采用一些简单的毫无规律的字符对原始程序中的相关名称进行替换来达到隐藏语意的目的,还可以进行控制流混淆,可以基于基本的代码块做控制块分割,然后对控制流进行混淆,其原理是利用switch结构对控制流进行平展化,将程序的流程变得复杂多变不容易分析,还有一种通过***垃圾代码对攻击者进行迷惑,比如一些不透明谓词等。这样的话,如果逆向人员使用反编译工具反编译了源码文件,也只能看到一些单字符或者双字符的毫无规律的代码命名,从而实现保护。
具体实施时,采用防篡改方法通过一系列主动的防御手段防止程序被修改。如果一个小程序被注入恶意代码、广告、以及修改程序流程等攻击,都会改变文件的属性,因此可以利用防篡改来对文件做检查。可以利用加密算法计算文件的Hash值,并与本地保存的值进行比较,一旦发现程序被修改其校验值必然不相同,就可以在代码中结束本程序的运行。
具体实施时,可以采用反调试技术通过代码检测来杜绝攻击者对代码进行动态调试技术,***定义了判别调试状态的函数。此外可以基于调试状态特征的反调试模式,例如在调试状态,由于攻击者会一步一步的手动执行代码,导致代码执行时间变长,根据时间来对调试状态进行判断等。
另外,在一些实施例中,可以针对小程序前端和后台WEB端整体进行安全检测,如图10所示。可以通过覆盖前台代码安全和API使用规范,以及业务CGI和对WEB框架和的安全检测,包括SQL注入、XSS跨站脚本、目录遍历、信息泄露等主流Web攻击方式。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一技术构思,与上述任一实施例方法相对应的,本申请还提供了一种小程序安全风险自动化评估装置110。
参考图11,所述小程序安全风险自动化评估装置110,包括:
检测模块1101,被配置为:对小程序进行特征检测,得到若干备选特征;
确定模块1102,被配置为:将所述备选特征与预先构建的安全检测特征库进行匹配,响应于确定所述安全检测特征库中存在与所述备选特征相匹配的第一特征,根据所述第一特征确定所述小程序的第一漏洞信息;其中,所述安全检测特征库包括若干第一特征;
生成模块1103,被配置为:根据所述第一漏洞信息生成安全评估报告。
可选的,所述检测模块1101,具体被配置为:提取小程序的源代码;对所述源代码进行编译,生成抽象语法树;对所述抽象语法树进行转换,得到代码属性图;利用预先定义的漏洞检测规则对所述代码属性图进行特征检测,得到若干备选特征。
可选的,所述确定模块1102,具体被配置为:对所述源代码进行解析,得到特征代码;其中,所述特征代码表征产生代码漏洞的代码;对所述特征代码进行转化,得到特征向量;根据所述特征向量生成漏洞文本向量;利用预先训练得到的分类模型对所述漏洞文本向量进行分类,得到分类结果;根据所述分类结果构建得到所述安全检测特征库。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的小程序安全风险自动化评估方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一技术构思,与上述任一实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上任一实施例所述的小程序安全风险自动化评估方法。
图12示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的小程序安全风险自动化评估方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一技术构思,与上述任一实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上任一实施例所述的小程序安全风险自动化评估方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的小程序安全风险自动化评估方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一技术构思,与上述任一实施例方法相对应的,本申请还提供了一种计算机程序产品,其包括计算机程序指令。在一些实施例中,所述计算机程序指令可以由计算机的一个或多个处理器执行以使得所述计算机和/或所述处理器执行所述的小程序安全风险自动化评估方法。对应于所述的小程序安全风险自动化评估方法各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使所述计算机和/或所述处理器执行如上任一实施例所述的小程序安全风险自动化评估方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种小程序安全风险自动化评估方法,其特征在于,包括:
对小程序进行特征检测,得到若干备选特征;
将所述备选特征与预先构建的安全检测特征库进行匹配,响应于确定所述安全检测特征库中存在与所述备选特征相匹配的第一特征,根据所述第一特征确定所述小程序的第一漏洞信息;其中,所述安全检测特征库包括若干第一特征;
根据所述第一漏洞信息生成安全评估报告。
2.根据权利要求1所述的方法,其特征在于,所述对小程序进行特征检测,得到若干备选特征,包括:
提取小程序的源代码;
对所述源代码进行编译,生成抽象语法树;
对所述抽象语法树进行转换,得到代码属性图;
利用预先定义的漏洞检测规则对所述代码属性图进行特征检测,得到若干备选特征。
3.根据权利要求2所述的方法,其特征在于,还包括通过以下方法构建安全检测特征库:
对所述源代码进行解析,得到特征代码;其中,所述特征代码表征产生代码漏洞的代码;
对所述特征代码进行转化,得到特征向量;
根据所述特征向量生成漏洞文本向量;
利用预先训练得到的分类模型对所述漏洞文本向量进行分类,得到分类结果;
根据所述分类结果构建得到所述安全检测特征库。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述小程序的数据库进行数据抽取,得到若干第一数据;
响应于确定所述第一数据为明文数据,根据预先设定的敏感数据特征对所述第一数据进行识别,确定第二数据;其中,所述第二数据表征敏感数据;
将所述第二数据从所述数据库中清除。
5.根据权利要求1所述的方法,其特征在于,还包括通过以下方法对所述小程序进行渗透测试:
拦截对所述小程序的第一请求;
对所述第一请求进行更改,生成第二请求;
将所述第二请求发送至所述小程序,得到第二漏洞信息。
6.根据权利要求1所述的方法,其特征在于,所述对小程序进行特征检测之前,所述方法还包括:
输入待测试的小程序的名称;
对所述小程序进行模拟运行。
7.一种小程序安全风险自动化评估装置,其特征在于,包括:
检测模块,被配置为:对小程序进行特征检测,得到若干备选特征;
确定模块,被配置为:将所述备选特征与预先构建的安全检测特征库进行匹配,响应于确定所述安全检测特征库中存在与所述备选特征相匹配的第一特征,根据所述第一特征确定所述小程序的第一漏洞信息;其中,所述安全检测特征库包括若干第一特征;
生成模块,被配置为:根据所述第一漏洞信息生成安全评估报告。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的方法。
9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行如权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310755129.2A CN116932381A (zh) | 2023-06-25 | 2023-06-25 | 小程序安全风险自动化评估方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310755129.2A CN116932381A (zh) | 2023-06-25 | 2023-06-25 | 小程序安全风险自动化评估方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932381A true CN116932381A (zh) | 2023-10-24 |
Family
ID=88378198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310755129.2A Pending CN116932381A (zh) | 2023-06-25 | 2023-06-25 | 小程序安全风险自动化评估方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932381A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648724A (zh) * | 2024-01-30 | 2024-03-05 | 北京点聚信息技术有限公司 | 一种版式文件的数据安全传输方法 |
-
2023
- 2023-06-25 CN CN202310755129.2A patent/CN116932381A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648724A (zh) * | 2024-01-30 | 2024-03-05 | 北京点聚信息技术有限公司 | 一种版式文件的数据安全传输方法 |
CN117648724B (zh) * | 2024-01-30 | 2024-03-29 | 北京点聚信息技术有限公司 | 一种版式文件的数据安全传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Naway et al. | A review on the use of deep learning in android malware detection | |
Li et al. | Deeppayload: Black-box backdoor attack on deep learning models through neural payload injection | |
Carmony et al. | Extract Me If You Can: Abusing PDF Parsers in Malware Detectors. | |
Zhan et al. | Automated third-party library detection for android applications: Are we there yet? | |
Laskov et al. | Static detection of malicious JavaScript-bearing PDF documents | |
CN105893848A (zh) | 一种基于代码行为相似度匹配的Android恶意应用程序防范方法 | |
CN112685737A (zh) | 一种app的检测方法、装置、设备及存储介质 | |
Xue et al. | Detection and classification of malicious JavaScript via attack behavior modelling | |
CN105653956A (zh) | 基于动态行为依赖图的Android恶意软件分类方法 | |
KR101640479B1 (ko) | 소스코드기반 소프트웨어 취약점 공격행위 분석시스템 | |
Jie et al. | Survey on software vulnerability analysis method based on machine learning | |
CN114386032A (zh) | 电力物联网设备的固件检测***及方法 | |
Feng et al. | Automated detection of password leakage from public github repositories | |
Zhang et al. | Efficiency and effectiveness of web application vulnerability detection approaches: A review | |
Li et al. | Large-scale third-party library detection in android markets | |
CN111611590B (zh) | 涉及应用程序的数据安全的方法及装置 | |
Gonzalez et al. | Authorship attribution of android apps | |
Chaumette et al. | Automated extraction of polymorphic virus signatures using abstract interpretation | |
CN112688966A (zh) | webshell检测方法、装置、介质和设备 | |
CN116932381A (zh) | 小程序安全风险自动化评估方法及相关设备 | |
Pirch et al. | Tagvet: Vetting malware tags using explainable machine learning | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
KR20160090566A (ko) | 유효마켓 데이터를 이용한 apk 악성코드 검사 장치 및 방법 | |
JP7439916B2 (ja) | 学習装置、検出装置、学習方法、検出方法、学習プログラムおよび検出プログラム | |
US20240054210A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program |
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 |