CN108520180A - 一种基于多维度的固件Web漏洞检测方法及系统 - Google Patents

一种基于多维度的固件Web漏洞检测方法及系统 Download PDF

Info

Publication number
CN108520180A
CN108520180A CN201810172682.2A CN201810172682A CN108520180A CN 108520180 A CN108520180 A CN 108520180A CN 201810172682 A CN201810172682 A CN 201810172682A CN 108520180 A CN108520180 A CN 108520180A
Authority
CN
China
Prior art keywords
firmware
web
loophole
detected
loopholes
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.)
Granted
Application number
CN201810172682.2A
Other languages
English (en)
Other versions
CN108520180B (zh
Inventor
石志强
王思琪
陈昱
严彪
张�林
孙利民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201810172682.2A priority Critical patent/CN108520180B/zh
Publication of CN108520180A publication Critical patent/CN108520180A/zh
Application granted granted Critical
Publication of CN108520180B publication Critical patent/CN108520180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Abstract

本发明提供一种基于多维度的固件Web漏洞检测方法及系统,提取大量固件Web漏洞的通用漏洞特征,通过多类特征表征漏洞,形成固件的多维度Web漏洞特征库,然后提取待检测固件的脆弱性特征,通过多维度固件Web漏洞匹配算法进行漏洞特征匹配,通过漏洞规则推理模型对漏洞是否存在的可信程度进行量化判断,能够有效地检测、发现物联网及工业控制系统设备的固件中存在的Web安全漏洞及后门,在一定程度上降低固件Web漏洞检测漏报率和误报率,降低漏洞检测时间复杂度。

Description

一种基于多维度的固件Web漏洞检测方法及系统
技术领域
本发明涉及嵌入式系统安全、软件安全分析及软件漏洞检测领域,更具体地,涉及一种基于多维度的固件Web漏洞检测方法及系统。
背景技术
信息技术的不断发展和信息化产品的快速普及,使得嵌入式系统和设备在日常生活中已无处不在。固件作为运行在嵌入式系统中的可执行程序,是指硬件设备和计算机指令的结合体,或在硬件设备上作为只读软件存储、运行的计算机数据。
固件为上层软件有效地使用硬件设备提供调用接口,是嵌入式系统的重要组成部分。固件普遍存在于各类商用设备如路由器、打印机、手机、医用植入设备中。此外,固件也出现在视频监控系统、车载系统、RTU、PLC可编程逻辑控制器等工业控制系统设备中。
固件灵活多样的存在方式方便了用户对嵌入式设备和系统的使用,但由于市场竞争,厂商更加注重固件所能提供的功能,在设计固件时没有遵循一个清晰的威胁模型和安全开发标准,导致固件中存在大量的安全漏洞,其中包含了众多的固件Web漏洞。固件Web是固件设备的人机交互接口,其漏洞会给固件设备使用者带来巨大的安全威胁。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的一种基于多维度的固件Web漏洞检测方法及系统。
根据本发明的一个方面,提供一种基于多维度的固件Web漏洞检测方法,包括:
提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库,其中,所述固件样本集合中的每一个固件为存在Web漏洞的固件;
提取待检测固件的脆弱性特征,并将所述待检测固件的脆弱性特征与所述固件Web漏洞特征库中的每一维Web漏洞特征进行匹配,得到待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果;
根据固件Web漏洞特征库中的每一维Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型;
根据待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果,利用所述漏洞规则推理模型对待检测固件存在Web漏洞的可信度进行计算;
根据计算出来的待检测固件存在Web漏洞的可信度,确定待检测固件是否存在Web漏洞。
在上述技术方案的基础上,本发明还可以作如下改进。
进一步的,所述提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库之前还包括:
使用Scapy、pyspider或WebCrawler工具,通过网络爬虫的方式抓取大量存在Web漏洞的固件,形成固件样本集合,其中,所述固件至少包括网络摄像头的固件、智能路由器的固件、智能灯泡的固件和可编程逻辑控制器PLC的固件。
进一步的,所述提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库具体包括:
对抓取到的存在Web漏洞的固件进行批量解压,得到固件文件系统;
提取所述固件文件系统中的关键代码文件和配置文件;
对所述固件文件系统中的Web漏洞代码进行定位,并确定所述Web漏洞代码处的上下文环境;
根据Web漏洞代码和Web漏洞代码的上下文环境提取出多维度的Web漏洞特征,形成固件的多维度Web漏洞特征库。
进一步的,所述Web漏洞代码包括存在硬编码或弱口令的代码片段、存在XSS漏洞的代码片段或者存在CSRF漏洞的代码片段,所述Web漏洞特征包括词法特征、行为特征和属性特征。
进一步的,所述提取待检测固件的脆弱性特征具体包括:
对待检测固件进行解压,并提取出待检测固件的Web相关的代码文件和配置文件;
根据所述待检测固件的Web相关的代码文件和配置文件,提取并定位待检测固件的Web代码片段和数据片段,形成待检测固件的脆弱性特征。
进一步的,所述词法特征、行为特征和属性特征包括字符串特征、第三方库所使用的危险函数特征和漏洞的数据流程图特征,所述将所述待检测固件的脆弱性特征与所述固件Web漏洞特征库中的每一维Web漏洞特征进行匹配具体包括:
使用正则表达式匹配算法或者危险函数匹配算法或者存在漏洞的第三方库匹配算法将待检测固件的脆弱性特征与多维度的Web漏洞特征库中的每一维Web漏洞特征进行匹配。
进一步的,所述根据固件Web漏洞特征库中的Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型具体包括:
基于D-S证据理论,根据固件的多维度Web漏洞特征库中的每一位Web漏洞特征,建立漏洞判断推理网络图,其中,所述漏洞判断推理网络图的各个节点由所述Web漏洞特征和漏洞原理描述确定;
根据待检测固件的脆弱性特征,设定每一个节点对应的初始证据的可信因子;
逐步计算所述漏洞判断推理网络图中各节点的可信度,通过传递计算得到最终待检测固件是否存在Web漏洞的可信度。
进一步的,所述根据计算出来的待检测固件存在Web漏洞的可信度,确定待检测固件是否存在Web漏洞具体包括:
当计算出来的待检测固件存在Web漏洞的可信度大于等于预设阈值时,确定出待检测固件存在Web漏洞;否则,待检测固件不存在Web漏洞。
根据本发明的另一个方面,提供了一种基于多维度的固件Web漏洞检测系统,包括:
第一提取模块,用于提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库,其中,所述固件样本集合中的每一个固件为存在Web漏洞的固件;
第二提取模块,用于提取待检测固件的脆弱性特征;
匹配模块,用于将所述待检测固件的脆弱性特征与所述固件Web漏洞特征库中的每一维Web漏洞特征进行匹配,得到待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果;
建立模块,用于根据固件Web漏洞特征库中的每一维Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型;
计算模块,用于根据待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果,利用所述漏洞规则推理模型对待检测固件存在Web漏洞的可信度进行计算;
确定模块,用于根据计算出来的待检测固件存在Web漏洞的可信度,确定待检测固件是否存在Web漏洞。
根据本发明的又一个方面,提供了一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行基于多维度的固件Web漏洞检测方法。
本发明提供的一种基于多维度的固件Web漏洞检测方法及系统,提取大量固件Web漏洞的通用漏洞特征,通过多类特征表征漏洞,形成多维度固件Web漏洞特征库,然后提取待检测固件的脆弱性特征,通过多维度固件Web漏洞匹配算法进行漏洞特征匹配,通过漏洞规则推理模型对漏洞是否存在的可信程度进行量化判断,能够有效地检测、发现物联网及工业控制系统设备的固件中存在的Web安全漏洞及后门,在一定程度上降低固件Web漏洞检测漏报率和误报率,降低漏洞检测时间复杂度。
附图说明
图1为本发明一个实施例的基于多维度的固件Web漏洞检测方法流程图;
图2为本发明另一个实施例的基于多维度的固件Web漏洞检测方法流程图;
图3为本发明一个实施例的提取固件的Web漏洞特征的流程图;
图4为本发明一个实施例的待检测固件的脆弱性特征提取方法流程图;
图5为本发明一个实施例的Web漏洞规则推理模型的建立方法流程图;
图6为对固件的XSS漏洞特征进行检测的流程图;
图7为XSS漏洞行为特征的数据流向图;
图8为XSS漏洞规则推理模型网络图;
图9为本发明一个实施例的基于多维度的固件Web漏洞检测系统连接框图;
图10为本发明另一个实施例的基于多维度的固件Web漏洞检测系统连接框图;
图11为本发明一个实施例的电子设备连接框图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参见图1,提供了本发明一个实施例的基于多维度的固件Web漏洞检测方法,能够对固件的Web漏洞进行准确的检测,该方法包括:提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库,其中,所述固件样本集合中的每一个固件为存在Web漏洞的固件;提取待检测固件的脆弱性特征,并将所述待检测固件的脆弱性特征与所述固件Web漏洞特征库中的每一维Web漏洞特征进行匹配,得到待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果;根据固件Web漏洞特征库中的每一维Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型;根据待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果,利用所述漏洞规则推理模型对待检测固件存在Web漏洞的可信度进行计算;根据计算出来的待检测固件存在Web漏洞的可信度,确定待检测固件是否存在Web漏洞。
需要对待检测固件的Web漏洞进行检测,首先需要对大量存在Web漏洞的固件的特征进行分析,提取出大量存在Web漏洞的固件的Web漏洞特征,其中,固件的Web漏洞特征基本上是多维的,也就是说固件的Web漏洞特征包括多维特征,通过多维特征来表征固件的Web漏洞的静态特征。根据提取出的每一个存在Web漏洞的固件的Web漏洞特征,形成固件的多维度Web漏洞特征库。对于待检测固件,提取待检测固件的脆弱性特征,随后将待检测固件的脆弱性特征与固件Web漏洞特征库中的每一维Web漏洞特征进行匹配,得到待检测固件的脆弱性特征与Web漏洞特征库中的每一维Web漏洞特征的匹配结果。比如,待检测固件存在有多个脆弱性特征,则将待检测固件的每一个脆弱性特征与Web漏洞特征库中的每一维Web漏洞特征进行匹配,得到待检测固件的每一个脆弱性特征与Web漏洞特征库中的每一维Web漏洞特征的匹配结果。
随后,根据从大量存在Web漏洞的固件中提取的多维度的Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型,根据待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果,利用漏洞规则推理模型对待检测固件存在Web漏洞的可信度进行计算,根据可信度的大小来确定待检测固件是否存在Web漏洞。
本实施例提取大量固件Web漏洞的通用漏洞特征,通过多类特征表征漏洞,形成多维度固件Web漏洞特征库,然后提取待检测固件的脆弱性特征,通过多维度固件Web漏洞匹配算法进行漏洞特征匹配,通过漏洞规则推理模型对漏洞是否存在的可信程度进行量化判断,能够有效地检测、发现物联网及工业控制系统设备的固件中存在的Web安全漏洞及后门,在一定程度上降低固件Web漏洞检测漏报率和误报率,降低漏洞检测时间复杂度。
参见图2,提供了本发明一个实施例的基于多维度的固件Web漏洞检测方法,包括:使用Scapy、pyspider或WebCrawler工具,通过网络爬虫的方式抓取大量存在Web漏洞的固件,形成固件样本集合;提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库;提取待检测固件的脆弱性特征;将待检测固件的脆弱性特征与固件Web漏洞特征库中的每一维Web漏洞特征进行匹配,若存在与待检测固件的脆弱性特征匹配的Web漏洞特征,则待检测固件为存在Web漏洞的固件;基于D-S证据理论,结合待检测固件的Web漏洞特征,建立对应的知识规则和漏洞判断推理网络图,从而建立Web漏洞规则推理模型。
其中,使用Scapy、pyspider或WebCrawler工具,通过网络爬虫的方式抓取大量存在Web漏洞的固件,其中,所述固件至少包括网络摄像头的固件、智能路由器的固件、智能灯泡的固件和可编程逻辑控制器PLC的固件。
具体的,在抓取大量存在Web流动的固件时,通过网络爬虫抓取大量存在Web漏洞的固件,比如,网络摄像头、智能路由器、智能灯泡以及可编程逻辑控制器PLC等设备的固件,形成固件样本集合,以便后面从固件样本集合中的每一个固件提取Web漏洞特征,形成存在Web漏洞的固件的多维度的Web漏洞特征库。
其中,在通过网络爬虫抓取的过程中,包括但不限于使用Scapy、pyspider、WebCrawler等工具从网站上抓取存在Web漏洞的固件,抓取的固件的压缩文件后缀包括但不限于.bin,.zip,.iso等。
在上述实施例的基础上,本发明的一个实施例中,所述提取所述固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库具体包括:对抓取到的存在Web漏洞的固件进行批量解压,得到固件文件系统;提取所述固件文件系统中的关键代码文件和配置文件;对所述固件文件系统中的Web漏洞代码进行定位,并确定所述Web漏洞代码处的上下文环境;从Web漏洞代码处和Web漏洞代码的上下文环境提取出多维度的Web漏洞特征,形成固件的多维度Web漏洞特征库。
参见图3,抓取的存在Web漏洞的固件是处于压缩形式的,因此,需要对抓取到的、存在Web漏洞的固件进行批量解压,得到固件文件系统,并提取其中的关键代码文件和配置文件。在固件的解压过程中,使用的解压工具包括但不限于binwalk、python-lzma、sasquatch、zip等,提取出的代码文件和配置文件包括但不限于php文件、asp文件、js文件、htmp文件、ini文件、conf文件等。根据提取的固件的关键代码文件和配置文件,对固件中的Web漏洞代码进行定位,并通过数据流程图和代码流程图确认Web漏洞代码处的上下文环境。
分析漏洞的具体原理和细节,从Web漏洞代码处和漏洞的上下文环境处提取固件的Web漏洞特征,形成固件Web漏洞特征库,其中的特征均为Web漏洞特征。其中,Web漏洞代码包括存在硬编码或弱口令的代码片段、存在XSS漏洞的代码片段或者存在CSRF漏洞的代码片段,Web漏洞特征主要包括词法特征、行为特征和属性特征,这些特征包括但不限于字符串特征、带三方库所使用的危险函数特征以及漏洞的数据流程图特征等。
在上述实施例的基础上,本发明的一个实施例中,所述提取待检测固件的脆弱性特征具体包括:对待检测固件进行解压,并提取出待检测固件的Web相关的代码文件和配置文件;根据所述待检测固件的Web相关的代码文件和配置文件,提取并定位待检测固件的Web代码片段和数据片段,形成待检测固件的脆弱性特征。
参见图4,当提取了存在Web漏洞的固件的Web漏洞特征,并形成了固件的多维度Web漏洞特征库后,对待检测固件进行解压,提取出固件中Web相关的代码文件和配置文件,并进一步提取、定位待检测固件的Web代码片段和数据片段,比如,提取用户输入变量相关的代码、用户登录控制流程处的代码、包含敏感字符串的代码和配置文件等,形成待检测固件的脆弱性特征。
在上述实施例的基础上,本发明的一个实施例中,所述将所述待检测固件的脆弱性特征与所述固件Web漏洞特征库中的每一维Web漏洞特征进行匹配具体包括:使用正则表达式匹配算法或者危险函数匹配算法或者存在漏洞的第三方库匹配算法将待检测固件的脆弱性特征与多维度的Web漏洞特征库中的每一维Web漏洞特征进行匹配。
当提取了待检测固件的脆弱性特征后,将待检测固件的脆弱性特征与固件Web漏洞特征库中的每一维Web漏洞特征进行匹配,具体匹配的过程中,使用正则表达式匹配算法或者危险函数匹配算法或者存在漏洞的第三方库匹配算法将待检测固件的脆弱性特征与Web漏洞特征库中的每一维Web漏洞特征进行匹配,得到待检测固件的每一个脆弱性特征与固件Web漏洞特征库中的每一维Web漏洞特征的匹配结果。
在上述实施例的基础上,本发明的一个实施例中,所述根据固件Web漏洞特征库中的多维Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型具体包括:基于D-S证据理论,根据固件Web漏洞特征库中的多维Web漏洞特征,建立漏洞判断推理网络图,其中,所述漏洞判断推理网络图的各个节点由所述Web漏洞特征确定;根据待检测固件的脆弱性特征,设定每一个节点对应的初始证据的可信度因子;逐步计算所述漏洞判断推理网络图中各节点的可信度,通过传递计算得到最终待检测固件是否存在Web漏洞的可信度。
参见图5,上述实施例通过匹配算法确定了待检测固件为存在Web漏洞的固件,本实施例根据大量存在Web漏洞的固件的多维度的Web漏洞特征,建立漏洞判断推理网络图。其中,漏洞判断推理网络图中包括多个知识节点,可参见图5,知识节点包括各个Web漏洞特征的证据以及各个Web漏洞特征,根据待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果,为每一个节点给定可信度因子。确定好了漏洞判断推理网络图中每一个节点的可信度因子,逐步计算判断推理网络图中各节点的可信度,通过传递计算得到最终待检测固件存在Web漏洞的可信度,即待检测固件存在Web漏洞的可信度多大。当待检测固件存在Web漏洞的可信度大于等于预设阈值时,则表明待检测固件存在Web漏洞,否则,待检测固件不存在Web漏洞。
其中,漏洞知识规则中所包含的证据包括但不限于入参可控、存在s ink点、存在source点、形成入参出参通路、过滤函数等。也就是说,当在待检测固件的代码文件中查找到这些证据,则表明待检测固件是存在Web漏洞特征的,比如,存在词法特征或者行为特征等。
为加深对本发明提供的一种基于多维度的固件Web漏洞检测方法的理解,下面以提取固件的XSS漏洞特征和建立对应的XSS漏洞推理规则对固件的Web漏洞进行检测和判断为例详细说明本实施例的测试流程,其具体实现过程如图6所示。
固件的XSS漏洞特征的建立过程具体如下:首先从漏洞平台seebug、exploit-db、CVE等收集已存在XSS漏洞的固件信息,包括厂商、固件名、固件型号、漏洞详情等。然后根据收集到的信息利用爬虫从厂商官方网站上爬取得到这些存在Web漏洞的固件。
对爬虫得到的、存在XSS漏洞的固件进行解压操作,解压工具为binwalk和sasquatch,解压命令为“binwalk–e固件名”,可得到固件文件系统squashfs-root,形成固件XSS漏洞特征提取样本集合。
根据收集到的漏洞详情对XSS漏洞代码进行定位,确定XSS漏洞代码所在路径、位置、上下文,结果如下:
其中,echo为变量输出,$_GET为GET方式得到的用户输入参数。
根据漏洞代码上下文以及XSS漏洞原理分析提取出词法特征和行为特征来标识XSS漏洞静态特征。首先定义四个集合:用户可控外部输入source、变量输出sink、程序流程图flow、过滤替换函数handle_func。其中,词法特征为:变量输出sink关键敏感词与用户可控外部输入source关键词在同一行代码中直接拼接形成词法特征。行为特征为:建立程序流程图flow,其中包括代码流程图和数据流程图。XSS漏洞行为特征的数据流向图如图7所示,主要描述用户外部输入数据变量的流向和该数据变量处理过程,程序流程图flow的主要特征用一个三元组进行概括:{source,sink,handle_func},即用户可控的外部输入sink,包括$_GET[]、$_POST[]、$_COOKIE[]、$_SERVER[]等传入的数据变量经过部分或全部程序流程图flow后,通过变量输出关键词sink,如echo、printf等输出到html/DOM,形成漏洞的可达路径。其中handle_func表示在程序流程图flow的sink和source之间没有对特殊字符进行过滤,即不包含str_replace、addslashes等函数关键词。
当建立了XSS漏洞特征库后,对待检测固件的XSS漏洞进行检测的过程为,将待检测固件解压,解压工具同样为binwalk和sasquatch,解压命令为“binwalk–e待测固件名”,可得到待检测固件文件系统squashfs-root。提取出其中后缀名为.php、.asp、.js、.htm等相关文件形成待检测固件脆弱性特征提取集合,并对待检测固件脆弱性特征提取集合中的相关代码文件进行分片解析。
根据XSS漏洞的词法特征进行变量输出sink关键敏感词集合(echo、printf、var_dump等)和用户可控外部输入source关键词集合($_GET、$_POST、$_SERVER等)的搜索。如果两者直接拼接且同时存在于同一句逻辑处理代码中,则将其作为初始证据E4。
根据XSS漏洞的行为特征提取程序流程图作为flow特征,首先根据用户可控外部输入数据变量集合查找、定位用户可控外部输入source关键词,并作为起始节点P。然后正向追踪该变量集合P1中元素p1所经过逻辑函数处理handle_func1之后得到的新变量集合P2,作为下一个节点。直到第n个节点,即集合Pn中元素pn通过变量输出语句关键敏感词sink输出结束,从而得到程序流程图flow中的特征信息。将程序流程图flow中包含source点作为初始证据E1,程序流程图flow中包含sink点作为初始证据E2,程序流程图中sink和source间不存在过滤、替换函数作为初始证据E3。
漏洞规则推理模型建立与判断过程具体如下:基于D-S证据理论并根据XSS漏洞的描述建立XSS漏洞规则推理模型。首先定义漏洞知识规则如下,定义初始证据如下,E1:程序流程图中包含source点;E2:程序流程图中包含sink点;E3:程序流程图中sink和source之间不存在过滤、替换函数;E4:sink点和source点关键词直接拼接。
得出的结论为,X:形成漏洞可达路径。取值范围为{是,否,不确定},用{x1,x2,x3}对应表示;Y:用户外部可控参数无过滤。取值范围为{是,否,不确定},用{y1,y2,y3}表示;A:满足行为特征。取值范围为{满足,不满足,不确定},用{a1,a2,a3}表示;B:满足词法特征。取值范围为{满足,不满足,不确定},用{b1,b2,b3}表示;R:存在XSS漏洞。取值范围为{存在,不存在,不确定},用{r1,r2,r3}表示。
建立如下XSS漏洞推理规则并给定信任度因子,可信任度因子可由分析固件漏洞并统计来得到:
rule1:if E1 AND E2 then X={x1,x2,x3},CF={CF_x1,CF_x2,CF_x3};
rule2:if E3 then Y={y1,y2,y3},CF={CF_y1,CF_y2,CF_y3};
rule3:if X AND Y then A={a1,a2,a3},CF={CF_a1,CF_a2,CF_a3};
rule4:if E4 then B={b1,b2,b3},CF={CF_b1,CF_b2,CF_b3};
rule5:if A then R={r1,r2,r3},CF={CF_r1,CF_r2,CF_r3};
rule6:if B then R={r1,r2,r3},CF={CF_r1’,CF_r2’,CF_r3’};
由XSS推理规则可得到XSS漏洞规则推理模型网络图如图8所示。
根据前面步骤得到的初始证据情况得到其对应可信度,即可分别得到证据E1、证据E2、证据E3和证据E4的可信度,用于漏洞规则推理模型初始证据可信度数据。然后依次往上计算模型网络各节点的概率分配函数m、信任函数Bel、似然函数Pl、类概率函数f和可信度CER,最终传递计算后得到最终结论R的可信度,即待检测固件存在Web漏洞的可信度。根据漏洞检测漏报率和误报率需求可动态调整判断漏洞是否存在的阈值。当R可信度大于判断阈值被判定为待检测固件存在该漏洞,当R可信度小于判断阈值被判定为待检测固件不存在web漏洞。
参见图9,提供了本发明一个实施例的基于多维度的固件Web漏洞检测系统,包括第一提取模块91、第二提取模块92、匹配模块93、建立模块94、计算模块95和确定模块96。
第一提取模块91,用于提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库,其中,所述固件样本集合中的每一个固件为存在Web漏洞的固件。
第二提取模块92,用于提取待检测固件的脆弱性特征。
匹配模块93,用于将所述待检测固件的脆弱性特征与所述固件Web漏洞特征库中的每一维Web漏洞特征进行匹配,得到待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果。
建立模块94,用于根据固件Web漏洞特征库中的每一维Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型。
计算模块95,用于根据待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果,利用所述漏洞规则推理模型对待检测固件存在Web漏洞的可信度进行计算。
确定模块96,用于根据计算出来的待检测固件存在Web漏洞的可信度,确定待检测固件是否存在Web漏洞。
参见图10,提供了本发明一个实施例的基于多维度的固件Web漏洞检测系统,包括抓取模块90、第一提取模块91、第二提取模块92、匹配模块93、建立模块94、计算模块95和确定模块96。
第一提取模块91,用于提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库,其中,所述固件样本集合中的每一个固件为存在Web漏洞的固件。
第二提取模块92,用于提取待检测固件的脆弱性特征。
匹配模块93,用于将所述待检测固件的脆弱性特征与所述固件Web漏洞特征库中的每一维Web漏洞特征进行匹配,得到待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果。
建立模块94,用于根据固件Web漏洞特征库中的每一维Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型。
计算模块95,用于根据待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果,利用所述漏洞规则推理模型对待检测固件存在Web漏洞的可信度进行计算。
确定模块96,用于根据计算出来的待检测固件存在Web漏洞的可信度,确定待检测固件是否存在Web漏洞。
其中,抓取模块90,用于使用Scapy、pyspider或WebCrawler工具,通过网络爬虫的方式抓取大量存在Web漏洞的固件,形成固件样本集合,其中,所述固件至少包括网络摄像头的固件、智能路由器的固件、智能灯泡的固件和可编程逻辑控制器PLC的固件。
第一提取模块91,具体用于对抓取到的存在Web漏洞的固件进行批量解压,得到固件文件系统;提取所述固件文件系统中的关键代码文件和配置文件;对所述固件文件系统中的Web漏洞代码进行定位,并确定所述Web漏洞代码处的上下文环境;根据Web漏洞代码和Web漏洞代码的上下文环境提取出多维Web漏洞特征,形成固件的多维度Web漏洞特征库。
其中,所述Web漏洞代码包括存在硬编码或弱口令的代码片段、存在XSS漏洞的代码片段或者存在CSRF漏洞的代码片段,所述Web漏洞特征包括词法特征、行为特征和属性特征。
第二提取模块92,具体用于对待检测固件进行解压,并提取出待检测固件的Web相关的代码文件和配置文件;根据所述待检测固件的Web相关的代码文件和配置文件,提取并定位待检测固件的Web代码片段和数据片段,形成待检测固件的脆弱性特征。
所述词法特征、行为特征和属性特征包括字符串特征、第三方库所使用的危险函数特征和漏洞的数据流程图特征。相应的,匹配模块93,具体用于使用正则表达式匹配算法或者危险函数匹配算法或者存在漏洞的第三方库匹配算法将待检测固件的脆弱性特征与多维Web漏洞特征库中的每一维Web漏洞特征进行匹配。
建立模块94,具体用于基于D-S证据理论,根据固件的多维度Web漏洞特征库中的每一位Web漏洞特征,建立漏洞判断推理网络图,其中,所述漏洞判断推理网络图的各个节点由所述Web漏洞特征和漏洞原理描述确定。相应的,计算模块95,具体用于根据待检测固件的脆弱性特征,设定每一个节点对应的初始证据的可信因子;逐步计算所述漏洞判断推理网络图中各节点的可信度,通过传递计算得到最终待检测固件是否存在Web漏洞的可信度。
确定模块96,具体用于当计算出来的待检测固件存在Web漏洞的可信度大于等于预设阈值时,确定出待检测固件存在Web漏洞;否则,确定出待检测固件不存在Web漏洞。
参见图11,提供了本发明一个实施例的电子设备,包括处理器(processor)1101、存储器(memory)1102和总线1103;其中,所述处理器1101和存储器1102通过所述总线1103完成相互间的通信。
所述处理器1101用于调用所述存储器1102中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库,其中,所述固件样本集合中的每一个固件为存在Web漏洞的固件;提取待检测固件的脆弱性特征,并将所述待检测固件的脆弱性特征与所述固件Web漏洞特征库中的每一维Web漏洞特征进行匹配,得到待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果;根据固件Web漏洞特征库中的每一维Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型;根据待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果,利用所述漏洞规则推理模型对待检测固件存在Web漏洞的可信度进行计算;根据计算出来的待检测固件存在Web漏洞的可信度,确定待检测固件是否存在Web漏洞。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。
本发明提供的基于多维度的固件Web漏洞检测方法及系统,提取大量固件Web漏洞的通用漏洞特征,通过多类特征表征漏洞,形成多维度固件Web漏洞特征库,然后提取待检测固件的脆弱性特征,通过多维度固件Web漏洞匹配算法进行漏洞特征匹配,通过漏洞规则推理模型对漏洞是否存在的可信程度进行量化判断,能够有效地检测、发现物联网及工业控制系统设备的固件中存在的Web安全漏洞及后门,在一定程度上降低固件Web漏洞检测漏报率和误报率,降低漏洞检测时间复杂度。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于多维度的固件Web漏洞检测方法,其特征在于,包括:
提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库,其中,所述固件样本集合中的每一个固件为存在Web漏洞的固件;
提取待检测固件的脆弱性特征,并将所述待检测固件的脆弱性特征与所述多维度Web漏洞特征库中的每一维Web漏洞特征进行匹配,得到待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果;
根据固件Web漏洞特征库中的每一维Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型;
根据待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果,利用所述漏洞规则推理模型对待检测固件存在Web漏洞的可信度进行计算;
根据计算出来的待检测固件存在Web漏洞的可信度,确定待检测固件是否存在Web漏洞。
2.如权利要求1所述的基于多维度的固件Web漏洞检测方法,其特征在于,所述提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库之前还包括:
使用Scapy、pyspider或WebCrawler工具,通过网络爬虫的方式抓取大量存在Web漏洞的固件,形成固件样本集合,其中,所述固件至少包括网络摄像头的固件、智能路由器的固件、智能灯泡的固件和可编程逻辑控制器PLC的固件。
3.如权利要求1所述的基于多维度的固件Web漏洞检测方法,其特征在于,所述提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库具体包括:
对抓取到的存在Web漏洞的固件进行批量解压,得到固件文件系统;
提取所述固件文件系统中的关键代码文件和配置文件;
对所述固件文件系统中的Web漏洞代码进行定位,并确定所述Web漏洞代码处的上下文环境;
根据Web漏洞代码和Web漏洞代码的上下文环境提取出多维度的Web漏洞特征,形成固件的多维度Web漏洞特征库。
4.如权利要求3所述的基于多维度的固件Web漏洞检测方法,其特征在于,所述Web漏洞代码包括存在硬编码或弱口令的代码片段、存在XSS漏洞的代码片段或者存在CSRF漏洞的代码片段,所述Web漏洞特征包括词法特征、行为特征和属性特征。
5.如权利要求1所述的基于多维度的固件Web漏洞检测方法,其特征在于,所述提取待检测固件的脆弱性特征具体包括:
对待检测固件进行解压,并提取出待检测固件的Web相关的代码文件和配置文件;
根据所述待检测固件的Web相关的代码文件和配置文件,提取并定位待检测固件的Web代码片段和数据片段,形成待检测固件的脆弱性特征。
6.如权利要求1所述的基于多维度的固件Web漏洞检测方法,其特征在于,所述词法特征、行为特征和属性特征包括字符串特征、第三方库所使用的危险函数特征和漏洞的数据流程图特征,所述将所述待检测固件的脆弱性特征与所述固件Web漏洞特征库中的每一维Web漏洞特征进行匹配具体包括:
使用正则表达式匹配算法或者危险函数匹配算法或者存在漏洞的第三方库匹配算法将待检测固件的脆弱性特征与多维度的Web漏洞特征库中的每一维Web漏洞特征进行匹配。
7.如权利要求1所述的基于多维度的固件Web漏洞检测方法,其特征在于,所述根据固件Web漏洞特征库中的Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型具体包括:
基于D-S证据理论,根据固件的多维度Web漏洞特征库中的每一维Web漏洞特征,建立漏洞判断推理网络图,其中,所述漏洞判断推理网络图的各个节点由所述Web漏洞特征和漏洞原理描述确定;
根据待检测固件的脆弱性特征,设定每一个节点对应的初始证据的可信度因子;
逐步计算所述漏洞判断推理网络图中各节点的可信度,通过传递计算得到最终待检测固件是否存在Web漏洞的可信度。
8.如权利要求1-7任一项所述的基于多维度的固件Web漏洞检测方法,其特征在于,所述根据计算出来的待检测固件存在Web漏洞的可信度,确定待检测固件是否存在Web漏洞具体包括:
当计算出来的待检测固件存在Web漏洞的可信度大于等于预设阈值时,确定出待检测固件存在Web漏洞;否则,待检测固件不存在Web漏洞。
9.一种基于多维度的固件Web漏洞检测系统,包括:
第一提取模块,用于提取固件样本集合中每一个固件的多维度Web漏洞特征,形成固件的多维度Web漏洞特征库,其中,所述固件样本集合中的每一个固件为存在Web漏洞的固件;
第二提取模块,用于提取待检测固件的脆弱性特征;
匹配模块,用于将所述待检测固件的脆弱性特征与所述固件Web漏洞特征库中的每一维Web漏洞特征进行匹配,得到待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果;
建立模块,用于根据固件Web漏洞特征库中的每一维Web漏洞特征,基于漏洞原理知识建立漏洞规则推理模型;
计算模块,用于根据待检测固件的脆弱性特征与每一维Web漏洞特征的匹配结果,利用所述漏洞规则推理模型对待检测固件存在Web漏洞的可信度进行计算;
确定模块,用于根据计算出来的待检测固件存在Web漏洞的可信度,确定待检测固件是否存在Web漏洞。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1-8任一项所述的基于多维度的固件Web漏洞检测方法。
CN201810172682.2A 2018-03-01 2018-03-01 一种基于多维度的固件Web漏洞检测方法及系统 Active CN108520180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810172682.2A CN108520180B (zh) 2018-03-01 2018-03-01 一种基于多维度的固件Web漏洞检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810172682.2A CN108520180B (zh) 2018-03-01 2018-03-01 一种基于多维度的固件Web漏洞检测方法及系统

Publications (2)

Publication Number Publication Date
CN108520180A true CN108520180A (zh) 2018-09-11
CN108520180B CN108520180B (zh) 2020-04-24

Family

ID=63433328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810172682.2A Active CN108520180B (zh) 2018-03-01 2018-03-01 一种基于多维度的固件Web漏洞检测方法及系统

Country Status (1)

Country Link
CN (1) CN108520180B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109409094A (zh) * 2018-10-29 2019-03-01 杭州安恒信息技术股份有限公司 一种路由器自动化漏洞利用的方法、系统及电子设备
CN110661804A (zh) * 2019-09-29 2020-01-07 南京邮电大学 一种针对防火墙的污点分析漏洞检测方法
CN110941832A (zh) * 2019-11-28 2020-03-31 杭州安恒信息技术股份有限公司 一种嵌入式物联网设备固件漏洞挖掘方法、装置及设备
CN111191237A (zh) * 2019-12-19 2020-05-22 杭州安恒信息技术股份有限公司 一种基于rce漏洞的web后门检测装置及检测方法
CN111277555A (zh) * 2018-12-05 2020-06-12 中国移动通信集团河南有限公司 漏洞误报筛选方法及装置
CN111931187A (zh) * 2020-08-13 2020-11-13 深信服科技股份有限公司 一种组件漏洞检测方法、装置、设备及可读存储介质
CN112506614A (zh) * 2020-12-08 2021-03-16 西安雷风电子科技有限公司 一种支持多架构终端的idv系统初始化部署方法
CN112685746A (zh) * 2021-01-08 2021-04-20 中国科学技术大学 一种面向物联网设备固件的漏洞检测方法及系统
CN114676438A (zh) * 2022-04-15 2022-06-28 电子科技大学 面向硬件系统多维脆弱性的快速探测方法
US20220222342A1 (en) * 2018-11-20 2022-07-14 Yong Ma Monitoring method of static object tampering in hybrid environment

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090077624A1 (en) * 2005-03-16 2009-03-19 Marc Baum Forming A Security Network Including Integrated Security System Components and Network Devices
CN103731429A (zh) * 2014-01-08 2014-04-16 深信服网络科技(深圳)有限公司 web应用漏洞检测方法及装置
CN103902913A (zh) * 2012-12-28 2014-07-02 百度在线网络技术(北京)有限公司 一种用于对web应用进行安全处理的方法与设备
CN104065645A (zh) * 2014-05-28 2014-09-24 北京知道创宇信息技术有限公司 用于防护web漏洞的方法和设备
CN104615542A (zh) * 2015-02-11 2015-05-13 中国科学院软件研究所 一种基于函数调用的脆弱性关联分析辅助漏洞挖掘的方法
CN105938533A (zh) * 2016-03-03 2016-09-14 杭州迪普科技有限公司 一种系统漏洞的扫描方法和扫描装置
CN106796640A (zh) * 2014-09-26 2017-05-31 迈克菲股份有限公司 分类恶意软件检测和抑制
CN107644166A (zh) * 2017-09-22 2018-01-30 成都知道创宇信息技术有限公司 一种基于自动学习的web应用安全防护方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090077624A1 (en) * 2005-03-16 2009-03-19 Marc Baum Forming A Security Network Including Integrated Security System Components and Network Devices
CN103902913A (zh) * 2012-12-28 2014-07-02 百度在线网络技术(北京)有限公司 一种用于对web应用进行安全处理的方法与设备
CN103731429A (zh) * 2014-01-08 2014-04-16 深信服网络科技(深圳)有限公司 web应用漏洞检测方法及装置
CN104065645A (zh) * 2014-05-28 2014-09-24 北京知道创宇信息技术有限公司 用于防护web漏洞的方法和设备
CN106796640A (zh) * 2014-09-26 2017-05-31 迈克菲股份有限公司 分类恶意软件检测和抑制
CN104615542A (zh) * 2015-02-11 2015-05-13 中国科学院软件研究所 一种基于函数调用的脆弱性关联分析辅助漏洞挖掘的方法
CN105938533A (zh) * 2016-03-03 2016-09-14 杭州迪普科技有限公司 一种系统漏洞的扫描方法和扫描装置
CN107644166A (zh) * 2017-09-22 2018-01-30 成都知道创宇信息技术有限公司 一种基于自动学习的web应用安全防护方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109409094A (zh) * 2018-10-29 2019-03-01 杭州安恒信息技术股份有限公司 一种路由器自动化漏洞利用的方法、系统及电子设备
US20220222342A1 (en) * 2018-11-20 2022-07-14 Yong Ma Monitoring method of static object tampering in hybrid environment
CN111277555A (zh) * 2018-12-05 2020-06-12 中国移动通信集团河南有限公司 漏洞误报筛选方法及装置
CN111277555B (zh) * 2018-12-05 2022-03-11 中国移动通信集团河南有限公司 漏洞误报筛选方法及装置
CN110661804A (zh) * 2019-09-29 2020-01-07 南京邮电大学 一种针对防火墙的污点分析漏洞检测方法
CN110941832A (zh) * 2019-11-28 2020-03-31 杭州安恒信息技术股份有限公司 一种嵌入式物联网设备固件漏洞挖掘方法、装置及设备
CN111191237A (zh) * 2019-12-19 2020-05-22 杭州安恒信息技术股份有限公司 一种基于rce漏洞的web后门检测装置及检测方法
CN111931187A (zh) * 2020-08-13 2020-11-13 深信服科技股份有限公司 一种组件漏洞检测方法、装置、设备及可读存储介质
CN112506614A (zh) * 2020-12-08 2021-03-16 西安雷风电子科技有限公司 一种支持多架构终端的idv系统初始化部署方法
CN112506614B (zh) * 2020-12-08 2023-02-24 西安雷风电子科技有限公司 一种支持多架构终端的idv系统初始化部署方法
CN112685746A (zh) * 2021-01-08 2021-04-20 中国科学技术大学 一种面向物联网设备固件的漏洞检测方法及系统
CN114676438A (zh) * 2022-04-15 2022-06-28 电子科技大学 面向硬件系统多维脆弱性的快速探测方法

Also Published As

Publication number Publication date
CN108520180B (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
CN108520180A (zh) 一种基于多维度的固件Web漏洞检测方法及系统
CN112131882B (zh) 一种多源异构网络安全知识图谱构建方法及装置
CN111400719B (zh) 基于开源组件版本识别的固件脆弱性判别方法及系统
CN107292170B (zh) Sql注入攻击的检测方法及装置、系统
CN111813960B (zh) 基于知识图谱的数据安全审计模型装置、方法及终端设备
CN110659502B (zh) 一种基于文本信息关联关系分析的项目版本检测方法及系统
EP4002174A1 (en) Utilizing orchestration and augmented vulnerability triage for software security testing
CN104866764B (zh) 一种基于对象引用图的Android手机恶意软件检测方法
CN112733156A (zh) 基于代码属性图的软件脆弱性智能检测方法、系统及介质
CN110362995A (zh) 一种基于逆向与机器学习的恶意软件检测及分析系统
CN116756327A (zh) 基于知识推断的威胁情报关系抽取方法、装置和电子设备
CN105468975A (zh) 恶意代码误报的追踪方法、装置及系统
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
CN115022026A (zh) 一种区块链智能合约威胁检测装置及方法
Bharadwaj et al. Is this URL safe: detection of malicious URLs using global vector for word representation
CN116702157B (zh) 一种基于神经网络的智能合约漏洞检测方法
US20240054210A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
CN116074092B (zh) 一种基于异构图注意力网络的攻击场景重构系统
US20230048076A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
CN108875374B (zh) 基于文档节点类型的恶意pdf检测方法及装置
CN115883218A (zh) 基于多模态数据模型的复合攻击链补全方法、系统及介质
CN114117419A (zh) 一种模板注入攻击的检测方法、装置、设备、存储介质
Kozakevicius et al. URL query string anomaly sensor designed with the bidimensional Haar wavelet transform
Luh et al. Sequitur-based Inference and Analysis Framework for Malicious System Behavior.
Chen et al. AI-Based intrusion detection system for secure AI BOX applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant