CN109753807B - 安全检测方法和装置 - Google Patents
安全检测方法和装置 Download PDFInfo
- Publication number
- CN109753807B CN109753807B CN201910020720.7A CN201910020720A CN109753807B CN 109753807 B CN109753807 B CN 109753807B CN 201910020720 A CN201910020720 A CN 201910020720A CN 109753807 B CN109753807 B CN 109753807B
- Authority
- CN
- China
- Prior art keywords
- software package
- package
- software
- risk
- weight
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种安全检测方法和装置,该安全检测方法获取待检系统文件,并将所述待检系统文件中的各软件包与预设的漏洞检测库进行比对以得到各所述软件包中存在的漏洞数量以及漏洞等级;针对每个软件包,根据该软件包中存在的漏洞数量以及漏洞等级计算所述软件包的风险值;检测各所述软件包的包类型并根据该软件包的包类型确定所述软件包在所述待检系统文件中的风险权重;基于各所述软件包对应的风险权重对各所述软件包对应的风险值进行加权处理得到所述待检系统文件的风险值。本发明能够确保系统使用过程中的安全性、可靠性。
Description
技术领域
本发明涉及Linux系统安全设计技术领域,具体而言,涉及一种安全检测方法和装置。
背景技术
目前市场上基于Linux系统进行二次或多次开发形成的Linux发行版镜像多种多样,但如何确保系统文件的安全性,成为了本领域技术人员急需解决的技术问题。
发明内容
有鉴于此,本发明实施例的目的在于提供一种安全检测方法和装置,以改善上述问题。
一方面,本发明较佳实施例一种安全检测方法,所述方法包括:
获取待检系统文件,并将所述待检系统文件中的各软件包与预设的漏洞检测库进行比对以得到各所述软件包中存在的漏洞信息,该漏洞信息包括数量以及漏洞等级;
针对每个软件包,根据该软件包中存在的漏洞数量以及漏洞等级计算所述软件包的风险值;
检测各所述软件包的包类型并根据该软件包的包类型确定所述软件包在所述待检系统文件中的风险权重;
基于各所述软件包对应的风险权重对各所述软件包对应的风险值进行加权处理得到所述待检系统文件的风险值。
进一步地,所述包类型包括镜像内置软件包,所述检测各所述软件包的包类型的步骤,包括:
针对所述待检系统文件中的每个软件包,将该软件包与预设的基础信息库中的各原生软件包进行比对;
判断所述基础信息库中是否存在与所述软件包对应的原生软件包,当存在与该软件包对应的原生软件包时,判定所述软件包为镜像内置软件包。
进一步地,所述包类型还包括第三方源包和自定义包,所述检测各所述软件包的包类型的步骤,还包括:
当不存在与所述软件包对应的原生软件包时,继续检测所述软件包中是否存在包签名;
若所述软件包中存在包签名,则判定所述软件包为第三方源包;
若所述软件包中不存在包签名,则判定所述软件包为自定义包。
进一步地,根据该软件包的包类型确定所述软件包在所述待检系统文件中的风险权重的步骤,包括:
当所述软件包为镜像内置软件包时,判断所述软件包的安装属性是否为强制安装型,若否,则判定所述软件包存在安全风险并将该安全风险对应的权重值作为所述软件包的风险权重。
进一步地,根据该软件包的包类型确定所述软件包在所述待检系统文件中的风险权重的步骤,还包括:
当所述软件包为第三方源包时,检测该软件包的版本号并判断该版本号是否为最新版本;若不是最新版本,则判定所述软件包存在安全风险,并将所述版本号对应的权重值作为所述软件包的风险权重。
进一步地,当所述软件包为自定义包时,所述软件包的风险值通过下述步骤得到:
检测所述自定义包与其他软件包之间的依赖关系;
根据所述依赖关系中存在其他软件包的风险值计算所述自定义包的风险值。
进一步地,所述方法还包括:
检测所述待检系统文件中各软件包之间的依赖关系以得到各软件包之间的依赖拓扑图;
针对每个软件包,根据所述依赖拓扑图计算用于对该软件包对应的风险权重进行调整的调整系数;
根据所述调整系数对所述软件包对应的风险权重进行调整,并基于调整后的风险权重执行所述基于各所述软件包对应的风险权重对各所述软件包对应的风险值进行加权处理得到所述待检系统文件的风险值的步骤。
另一方面,本发明较佳实施例还提供一种安全检测装置,所述装置包括:
漏洞检测模块,用于获取待检系统文件,并将所述待检系统文件中的各软件包与预设的漏洞检测库进行比对以得到各所述软件包中存在的漏洞信息,该漏洞信息包括数量以及漏洞等级;
第一风险评估模块,用于针对每个软件包,根据该软件包中存在的漏洞数量以及漏洞等级计算所述软件包的风险值;
权重确定模块,用于检测各所述软件包的包类型并根据该软件包的包类型确定所述软件包在所述待检系统文件中的风险权重;
第二风险评估模块,用于基于各所述软件包对应的风险权重对各所述软件包对应的风险值进行加权处理得到所述待检系统文件的风险值。
与现有技术相比,本发明提供一种安全检测方法和装置,其中,本发明针对待测系统文件,对该待测系统文件中的每个软件包进行风险评估,进而基于各软件包的风险值对待检系统文件的风险值进行评估,从而实现对待检系统的全面、快速的安全检测方法,有效确保了系统使用过程中的安全性。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为应用本发明实施例提供的安全检测方法和装置的终端设备的方框结构示意图。
图2为本发明实施例提供的安全检测方法的流程示意图。
图3为软件包查询结果示意图。
图4中图2中所示的步骤S13的子流程示意图。
图5为本发明实施例提供的安全检测方法的另一流程示意图。
图6为本实施例给出的依赖拓扑图的结构示意图。
图7为另一软件包查询结果示意图。
图8为本发明实施例提供的安全检测方法的又一流程示意图。
图9为本实施例给出的另一依赖拓扑图的结构示意图。
图10为本发明实施例提供的安全检测装置的方框结构示意图。
图标:10-终端设备;100-安全检测装置;110-漏洞检测模块;120-第一风险评估模块;130-权重确定模块;140-第二风险评估模块;200-存储器;300-存储控制器;400-处理器。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
如图1所示,为应用本发明实施例提供的安全检测方法和装置的终端设备10的方框结构示意图,该终端设备10可包括安全检测装置100、存储器200、存储控制器300以及处理器400。其中,所述存储器200、存储控制器300、处理器400各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件之间通过一条或多条通讯总线或信号线实现电性连接。所述安全检测装置100包括至少一个可以软件或固件的形式存储于所述存储器200中或固化在所述终端设备10中的操作系统中的软件功能模块。所述处理器400在所述存储控制器300的控制下访问所述存储器200,以用于执行所述存储器200中存储的可执行模块,例如所述安全检测装置100所包括的软件功能模块及计算机程序等。
可以理解,图1所示的结构仅为示意,所述终端设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。另外,所述终端设备10可以是但不限于智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personaldigital assistant,PDA)、移动上网设备(mobile Internet device,MID)、云服务器、小型机、一体机等。
进一步地,如图2所示,为本发明实施例提供的安全检测方法的流程示意图,该安全检测方法应用于上述的终端设备10,下面将结合图2对所述安全检测方法的具体步骤和流程进行详细阐述。应理解的是,本实施例中给出的安全检测方法不以下面所述的步骤和流程的顺序为限制。
步骤S11,获取待检系统文件,并将所述待检系统文件中的各软件包与预设的漏洞检测库进行比对以得到各所述软件包中存在的漏洞信息,该漏洞信息包括数量以及漏洞等级;
步骤S12,针对每个软件包,根据该软件包中存在的漏洞数量以及漏洞等级计算所述软件包的风险值;
步骤S13,检测各所述软件包的包类型并根据该软件包的包类型确定所述软件包在所述待检系统文件中的风险权重;
步骤S14,基于各所述软件包对应的风险权重对各所述软件包对应的风险值进行加权处理得到所述待检系统文件的风险值。
上述步骤S11-步骤S14中给出的安全检测方法能够实现对待检系统全面、可靠的风险评估,提高了待检系统使用过程中的安全性。
在对上述步骤S11-步骤S14进行说明之前,本发明还需对基础信息库以及漏洞检测库进行说明,以作为后续对所述待检系统文件进行安全检测方法的基准信息。
(1)基础信息库的配置
a.收集现有的主流Linux发行版镜像,如centos系统、redhat系统、debain系统、ubuntu系统、opensuse系统等,以及与该Linux发行版镜像相关的第三方源包,;
b.针对每个发行版镜像,获取该发行版镜像中的镜像内置软件包以及各所述镜像内置软件包之间的关联信息。
c.根据镜像内置软件包、各所述镜像内置软件包之间的关联信息以及所述第三方源包配置形成所述基础信息库。
具体地,在此以centos为例,comps文件是linux系统用来说明不同安装模式下软件包的组成信息的xml(可扩展标记语言,eXtensible Markup Language)文件,通过分析comps.xml文件可以得到centos操作系统镜像内的软件包信息(如软件包名、软件包版本、软件包构建时间、软件包签名、软件包来源等)。例如表1和表2所示,分别表示centos7.0.1406版本镜像在GNOME Desktop模式下的部分软件包构成,Desktop模式下base和core组不可选(强制安装型),其中base组有rubygem-abrt等软件包。
表1
操作系统 | 版本 | 安装模式 | 软件包组 | 安装模式 |
centos | 7.0.1406 | GNOME Desktop | base | no |
centos | 7.0.1406 | GNOME Desktop | core | no |
centos | 7.0.1406 | GNOME Desktop | desktop-debugging | no(不可选) |
centos | 7.0.1406 | ... | ... | ... |
在表1中,安装模式为no表示默认安装,即用户不能取消,yes表示用户可以选择不安装,应注意的是。对于定制的linux系统,应该只安装默认的组。
表2
操作系统 | 版本 | 软件包组 | 安装属性 | 软件包名称 |
centos | 7.0.1406 | base | conditional | rubygem-abrt |
centos | 7.0.1406 | base | default | abrt-addon-ccpp |
centos | 7.0.1406 | base | default | abrt-addon-python |
centos | 7.0.1406 | ..... | ... | ... |
在表2中,软件包安装属性可包括mandatory(强制必须安装)、default(默认安装)、conditional(动态,根据其他包的选择来判断是否安装)等多种。
另外,在获取各发行版镜像中的镜像内置软件包的包信息时可通过分析镜像中primary.xml文件(如rpm(Red-Hat Package Manager,软件包管理器)包信息文件)得到,以abrt-addon-ccpp为,其软件包信息如表3所示:
表3
另外需要说明的是,rpm包类型有os、centos、noarch、oss、non-oss、update、extra、packman、epel等类型。其中,os表示linux系统基础包,centos表示centos系统专有包,noarch表示与平台无关的通用包,oss表示开源软件,non-oss非自由软件软件源,extras表示额外的包,updates表示更新包,packman来源于packman的包,epel来源于红帽系列的包。实际实施时,可根据rpm包类型对各软件包进行分类。
进一步地,根据实际需求,对于第三方源包可通过爬虫算法等收集得到,其中,第三方源包的包信息可以包括包名、包版本、包构建时间、包签名、包来源等信息。例如,下面以第三方软件源“epel”为例对所述第三方源包的包信息进行说明,详见表4。
(2)漏洞检测库配置。
通过对现有的主流Linux发行版镜像(如centos、redhat、debain、ubuntu、opensuse等)中存在的漏洞信息进行收集或通过自定义的方式配置漏洞检测信息,进而实现漏洞检测库的构建。其中,在对漏洞检测库进行配置时,还需对各漏洞的漏洞等级以及各漏洞等级(Level)对应的风险值进行设置,例如,漏洞等级可分为低危、中危、高危、超危、unknown等多个级别,低危对应的风险值为1、中危的风险值为3等。实际实施时,所述漏洞等级以及各等级对应的风险值可根据实际需求进行灵活设置,本实施例在此不做限制。详细地,以远程堆溢出漏洞为例,对各漏洞在所述漏洞检测库中的存储形式进行说明,具体见下表5所示。另外,表5中的attackpath可包括但不限于本地、特定网络环境、远程、远程※本地以及unknown类型等
表4
表5
进一步地,基于上述给出的基础信息库和漏洞检测库,接着对上述步骤S11-步骤S14进行说明。
详细地,在步骤S11中,获取待检测系统文件的方式有多种,在此以centos系统为例,可通过“rpm–qa”可以得到系统中安装的rpm包列表,从而得到系统中的rpm包(图3中所示为centos系统中的部分rpm包),其中,每个软件包的完整包名可包括包名+版本+发行版本号+要求平台,如图3中所示的第一个包名意思为:包名为mysql-community-server,版本为5.6.42,发行版本号为2.el7,需要在x86.64平台。
此外,在实际实施时,还可通过“rpm–qi包名得到对应软件包的详细信息,例如,当执行”rpm–qi zlib”得到软件包zlib的包信息表6所示。
表6
需要说明的是,在对待检系统文件的系统类型进行判定时,可通过对各软件包的版本、发行版本号和依赖硬件平台进行分析,如果有超过一定比例的软件包包含相同的操作系统属性,可以将该操作系统属性、类型等作为待检系统的属性、类型。
进一步地,在步骤S12中,一个软件包可能存在多个漏洞,那么在进行风险值评估时可通过将各漏洞对应的风险值进行叠加得到。例如,当软件包A存在2个漏洞,且根据该漏洞的漏洞等级得到其风险值分别为5.5和6,那么,该软件包A的整体风险值为5.5+6=11.5。
进一步地,在步骤S13中,所述包类型可以包括但不限于镜像内置软件包、第三方源包和自定义包等。实际实施时,如图4所示,各所述软件包的包类型可通过的检测过程具体如下:
步骤S130,针对所述待检系统文件中的每个软件包,将该软件包与预设的基础信息库中的各原生软件包进行比对;
步骤S131,判断所述基础信息库中是否存在与该软件包对应的原生软件包,若存在当存在与该软件包对应的原生软件包时,则执行步骤S132,反之,则执行步骤S133-步骤S135,
步骤S132,判定所述软件包为镜像内置软件包。
步骤S133,继续检测所述软件包中是否存在包签名;若所述软件包中存在包签名,则执行步骤S134,反之,则执行步骤S135;
步骤S134,判定所述软件包为第三方源包;
步骤S135,判定所述软件包为自定义包。
在上述步骤S130-步骤S135中,所述自定义包一般具有数量多并存在相同的特性,如命名规则相同、签名一样、厂商相同)等。此外,在对第三方源包进行包类型检测时,还可以根据厂商、命名规则等进行检测,本实施例在此不做限制。
在此需要说明是的,当所述数据包为第三方源包或者镜像内置软件包时,可直接与漏洞检测库中的各漏洞进行比对,以得到其风险值,但是对于自定义包,则可将预设风险值作为其风险值,也可以根据各软件包之间的依赖关系计算得到,例如,请参阅图5,所述自定义包的风险值的计算过程如下:
步骤S15,当所述软件包为自定义包时,检测该自定义包与其他软件包之间的依赖关系;
步骤S16,根据所述依赖关系中存在的其他软件包的风险值计算所述自定义包的风险值。
详细地,所述自定义包的风险值可通过公式计算得到,其中,an为其他软件包(如第三方源包或镜像内置软件包),f(an)为其他软件包的风险值,n正整数。例如,请结合参阅图6,假设自定义包为a1,且该自定义包a1直接依赖于软件包B1和软件包C1,其中,软件包B1的风险值为6,软件包C1的风险值为7.2,那么自定义包的风险值可以为Z=e(-(6+7.2))=e(-13.2)。
进一步地,在步骤S13中,所述基于各软件包的包类型确定其风险权重的过程如下:
(1)当所述软件包为镜像内置软件包时,判断所述软件包的安装属性是否为强制安装型,若否,则判定所述软件包存在安全风险并将该安全风险对应的权重值作为所述软件包的风险权重。可以理解的是,可预先对不同的安装属性配置不同的风险权重,例如,强制安装型(mandatory)的风险权重可以为0.9,默认安装型(default)的风险权重可以为1.1等,本实施例在此不做限制。
(2)当所述软件包为第三方源包时,检测该软件包的版本号并判断该版本号是否为最新版本;若不是最新版本,则判定所述软件包存在安全风险,并将所述版本号对应的权重值作为所述软件包的风险权重。可以理解的是,本实施例中可预先针对不同的版本设置对应的风险权重。具体地,由于老版本存在问题的可能性更高,因此本实施例中以最新版本的发版时间为准,可分别定义1年内(1.1)、1-2年(1.2)、2-3年(1.3)、3年(1.4)分别对应不同的风险权重,如0.5、1、1.5、2、2.5等,本实施例在此不做具体限制。例如图7所示,假设所述待检测系统为7.4.1708版本的NetworkManager-glib包的信息,其版本为1.8.0发行版本号为9.el7,而根据基础信息库中centos 7.4.1708系统的NetworkManager-glib更新版本为1.8.0-11.el_4,因此待检测系统NetworkManager-glib未更新,即NetworkManager-glib包存在风险。
(3)当所述软件包为自定义包时,该软件包的风险权重可预先设置为统一值,如各自定义包的风险权重均为2等,本实施例在此不做具体限制。
进一步地,根据实际需求,为了进一步提高对待检系统安全评估的准确性,本发明在得到各软件包的风险权重后,可根据各软件包之间的依赖关系对其风险权重进行调整,以使得各软件包的风险权重与其对待检系统的影响性一致。具体如图8所示,所述安全检测方法还包括:
步骤S17,检测所述待检系统文件中各软件包之间的依赖关系以得到各软件包之间的依赖拓扑图;
步骤S18,针对每个软件包,根据所述依赖拓扑图计算用于对该软件包对应的风险权重进行调整的调整系数;
步骤S19,根据所述调整系数对所述软件包对应的风险权重进行调整,并基于调整后的风险权重。
详细地,所述调整系数α可通过公式计算得到,其中,ai为所述软件包所依赖的其他软件包,ai为其他软件包,为ai的风险权重,m为依赖路径的数量。具体地,假设所述待检系统文件中包括A1、A2、A3、……、An、B1、B2、……、Bn、C1、C2、……、Cnd等多个软件包,其中,基于各软件包之间的依赖关系建立的依赖拓扑图如图9所示,从中可以看出C1、C2、Cn和A3都没有被其他软件包依赖,B1、Bn分别只被C1和Cn依赖。此外,在实际实施时,假设各软件包的风险权重的初始值均为1,根据所述调整系数对所述风险权重进行调整时可包括以下情形:
(1)假设软件包没有依赖其他软件包,如图9中所示的软件包C1、C2、Cn和A3,那么软件包C1、C2、Cn和A3的风险权重依旧为1;
(2)假设软件包依赖其他软件包,但不存在彼此依赖的软件包,如图9中所示的B1、Bn分别只被C1和Cn依赖,那么调整后的风险权重为自身权重+调整系数,如软件包B1调整后的风险权重为1+(1+1)/2=2,软件包B2调整后的风险权重为1+(1+1+2)/2=3。
(3)假设软件包依赖其他软件包,且存在彼此依赖的软件包,如图9中所示的A1不仅被软件包B1、B2、C1依赖,还与软件包A2彼此依赖,那么调整后的风险权重为自身权重*2+调整系数,如A1调整后的风险权重为1+1+(2+1+3+3)/2=6.5,其中,括号中的2是软件包B1的风险权重,1是C1的风险权重,3是B2的风险权重,3是依赖路径数量。
进一步地,在步骤S14中,假设待检系统文件包括H1、H2、H3、H4共4个软件包,且分别对应的风险值为2、5、4、3,以及分别对应的风险权重为1.5、3、0.8、6,那么所述待检系统文件的风险值为2*1.5+5*3+4*0.8+3*6=39.2。其中需要说明的是,所述风险权重可以是调整前的权重值,也可以是调整后的权重值,本实施例在此不做限制。
另外,在实际实施时,对于各软件包进行风险评估时,还可综合考虑软件包的安装属性、版本更新情况等,具体为:软件包在待检系统文件的风险值=风险值*权重影响系数*安装属性系数*更新时间系数,例如,假如软件包A的风险值为6,权重值为4(影响系数为0.699),安装属性系数为1.1,更新时间系数1.2,则A的最终风险值为6*0.699*1.1*1.2=5.54。其中,所述影响系数X可通过X=log10(Y+1)+a计算得到,Y表示风险权重。
进一步地,基于对上述安全检测方法的描述,如图10所示,本发明实施例还提供一种应用于终端设备10的安全检测装置100,所述安全检测装置100包括漏洞检测模块110、第一风险评估模块120、权重确定模块130和第二风险评估模块140。
所述漏洞检测模块110,用于获取待检系统文件,并将所述待检系统文件中的各软件包与预设的漏洞检测库进行比对以得到各所述软件包中存在的漏洞数量以及漏洞等级;本实施例中,关于所述漏洞检测模块110的描述具体可参考上述步骤S11的详细描述,也即,所述步骤S11可以由所述漏洞检测模块110执行,因而在此不作更多说明。
所述第一风险评估模块120,用于针对每个软件包,根据该软件包中存在的漏洞数量以及漏洞等级计算所述软件包的风险值;本实施例中,关于所述第一风险评估模块120的描述具体可参考上述步骤S12的详细描述,也即,所述步骤S12可以由所述第一风险评估模块120执行,因而在此不作更多说明。
所述权重确定模块130,用于检测各所述软件包的包类型并根据该软件包的包类型确定所述软件包在所述待检系统文件中的风险权重;本实施例中,关于所述权重确定模块130的描述具体可参考上述步骤S13的详细描述,也即,所述步骤S13可以由所述权重确定模块130执行,因而在此不作更多说明。
所述第二风险评估模块140,用于基于各所述软件包对应的风险权重对各所述软件包对应的风险值进行加权处理得到所述待检系统文件的风险值。本实施例中,关于所述第二风险评估模块140的描述具体可参考上述步骤S14的详细描述,也即,所述步骤S14可以由所述第二风险评估模块140执行,因而在此不作更多说明。
综上所述,本发明提供一种安全检测方法和装置,其中,本发明针对待测系统文件,对该待测系统文件中的每个软件包进行风险评估,进而基于各软件包的风险值对待检系统文件的风险值进行评估,从而实现对待检系统的全面、快速的安全检测,有效确保了系统使用过程中的安全性。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的可选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种安全检测方法,其特征在于,所述方法包括:
获取待检系统文件,并将所述待检系统文件中的各软件包与预设的漏洞检测库进行比对以得到各所述软件包中存在的漏洞信息,该漏洞信息包括数量以及漏洞等级;
针对每个软件包,根据该软件包中存在的漏洞数量以及漏洞等级计算所述软件包的风险值;
检测各所述软件包的包类型并根据该软件包的包类型确定所述软件包在所述待检系统文件中的风险权重;
基于各所述软件包对应的风险权重对各所述软件包对应的风险值进行加权处理得到所述待检系统文件的风险值;
所述包类型包括镜像内置软件包,所述检测各所述软件包的包类型的步骤,包括:
针对所述待检系统文件中的每个软件包,将该软件包与预设的基础信息库中的各原生软件包进行比对;
判断所述基础信息库中是否存在与所述软件包对应的原生软件包,当存在与该软件包对应的原生软件包时,判定所述软件包为镜像内置软件包;
所述包类型还包括第三方源包和自定义包,所述检测各所述软件包的包类型的步骤,还包括:
当不存在与所述软件包对应的原生软件包时,继续检测所述软件包中是否存在包签名;
若所述软件包中存在包签名,则判定所述软件包为第三方源包;
若所述软件包中不存在包签名,则判定所述软件包为自定义包。
2.根据权利要求1所述的安全检测方法,其特征在于,根据该软件包的包类型确定所述软件包在所述待检系统文件中的风险权重的步骤,包括:
当所述软件包为镜像内置软件包时,判断所述软件包的安装属性是否为强制安装型,若否,则判定所述软件包存在安全风险并将该安全风险对应的权重值作为所述软件包的风险权重。
3.根据权利要求2所述的安全检测方法,其特征在于,根据该软件包的包类型确定所述软件包在所述待检系统文件中的风险权重的步骤,还包括:
当所述软件包为第三方源包时,检测该软件包的版本号并判断该版本号是否为最新版本;若不是最新版本,则判定所述软件包存在安全风险,并将所述版本号对应的权重值作为所述软件包的风险权重。
4.根据权利要求3所述的安全检测方法,其特征在于,当所述软件包为自定义包时,所述软件包的风险值通过下述步骤得到:
检测所述自定义包与其他软件包之间的依赖关系;
根据所述依赖关系中存在其他软件包的风险值计算所述自定义包的风险值。
6.根据权利要求1所述的安全检测方法,其特征在于,所述方法还包括:
检测所述待检系统文件中各软件包之间的依赖关系以得到各软件包之间的依赖拓扑图;
针对每个软件包,根据所述依赖拓扑图计算用于对该软件包对应的风险权重进行调整的调整系数;
根据所述调整系数对所述软件包对应的风险权重进行调整,并基于调整后的风险权重执行所述基于各所述软件包对应的风险权重对各所述软件包对应的风险值进行加权处理得到所述待检系统文件的风险值的步骤。
8.一种安全检测装置,其特征在于,所述装置包括:
漏洞检测模块,用于获取待检系统文件,并将所述待检系统文件中的各软件包与预设的漏洞检测库进行比对以得到各所述软件包中存在的漏洞信息,该漏洞信息包括数量以及漏洞等级;
第一风险评估模块,用于针对每个软件包,根据该软件包中存在的漏洞数量以及漏洞等级计算所述软件包的风险值;
权重确定模块,用于检测各所述软件包的包类型并根据该软件包的包类型确定所述软件包在所述待检系统文件中的风险权重;
第二风险评估模块,用于基于各所述软件包对应的风险权重对各所述软件包对应的风险值进行加权处理得到所述待检系统文件的风险值;
所述包类型包括镜像内置软件包,所述权重确定模块,具体用于针对所述待检系统文件中的每个软件包,将该软件包与预设的基础信息库中的各原生软件包进行比对;判断所述基础信息库中是否存在与所述软件包对应的原生软件包,当存在与该软件包对应的原生软件包时,判定所述软件包为镜像内置软件包;
所述包类型还包括第三方源包和自定义包,所述权重确定模块,还用于当不存在与所述软件包对应的原生软件包时,继续检测所述软件包中是否存在包签名;若所述软件包中存在包签名,则判定所述软件包为第三方源包;若所述软件包中不存在包签名,则判定所述软件包为自定义包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910020720.7A CN109753807B (zh) | 2019-01-09 | 2019-01-09 | 安全检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910020720.7A CN109753807B (zh) | 2019-01-09 | 2019-01-09 | 安全检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109753807A CN109753807A (zh) | 2019-05-14 |
CN109753807B true CN109753807B (zh) | 2021-08-10 |
Family
ID=66405245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910020720.7A Active CN109753807B (zh) | 2019-01-09 | 2019-01-09 | 安全检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753807B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110276171A (zh) * | 2019-06-10 | 2019-09-24 | 深圳开源互联网安全技术有限公司 | 第三方库文件安全评估方法、系统、装置及存储介质 |
CN111046386B (zh) * | 2019-12-05 | 2020-11-20 | 深圳开源互联网安全技术有限公司 | 动态检测程序第三方库并进行安全评估的方法及系统 |
CN111666203B (zh) * | 2020-04-17 | 2023-10-27 | 北京百度网讯科技有限公司 | 风险软件的定位处理方法、装置、电子设备及存储介质 |
CN112784279B (zh) * | 2021-01-04 | 2023-03-28 | 北京交通大学 | 基于依赖库版本信息的软件产品安全风险评估方法 |
CN113127351A (zh) * | 2021-04-20 | 2021-07-16 | 长沙市到家悠享家政服务有限公司 | 一种第三方组件检测方法、系统和计算机设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105046155A (zh) * | 2015-06-24 | 2015-11-11 | 北京系统工程研究所 | 软件系统漏洞风险评估方法及装置 |
CN106650418A (zh) * | 2016-12-21 | 2017-05-10 | 天津大学 | 基于多策略的Android访问控制系统及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631338A (zh) * | 2014-10-31 | 2016-06-01 | 重庆重邮信科通信技术有限公司 | 一种应用程序安全认证的方法及终端 |
CN104933366B (zh) * | 2015-07-17 | 2018-02-09 | 成都布林特信息技术有限公司 | 一种移动终端应用程序处理方法 |
CN107045609A (zh) * | 2017-04-28 | 2017-08-15 | 努比亚技术有限公司 | 检测系统安全性的方法、存储介质和移动终端 |
-
2019
- 2019-01-09 CN CN201910020720.7A patent/CN109753807B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105046155A (zh) * | 2015-06-24 | 2015-11-11 | 北京系统工程研究所 | 软件系统漏洞风险评估方法及装置 |
CN106650418A (zh) * | 2016-12-21 | 2017-05-10 | 天津大学 | 基于多策略的Android访问控制系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109753807A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109753807B (zh) | 安全检测方法和装置 | |
US10482288B2 (en) | Content validation using blockchain | |
US11727117B2 (en) | Vulnerability analyzer for application dependencies in development pipelines | |
US8621278B2 (en) | System and method for automated solution of functionality problems in computer systems | |
US20160092350A1 (en) | Callpath finder | |
US20220391509A1 (en) | Container anomaly detection based on crowd sourcing | |
US8126859B2 (en) | Updating a local version of a file based on a rule | |
US20070220507A1 (en) | Managing version information for software components | |
KR101682738B1 (ko) | 관리 시스템 확장성 | |
US11893117B2 (en) | Software package analysis for detection of malicious properties | |
US9355005B2 (en) | Detection apparatus and detection method | |
US12041072B2 (en) | Software release tracking and logging | |
US20180096146A1 (en) | Method and apparatus for identifying malicious software | |
CN109634682B (zh) | 应用程序的配置文件更新方法及装置 | |
US10796023B2 (en) | Techniques for maintaining image integrity in containerized applications | |
CN110737887B (zh) | 恶意代码检测方法、装置、电子设备及存储介质 | |
US10705829B2 (en) | Software discovery using exclusion | |
US9330184B2 (en) | Methods and systems for machine learning to discover application compatibility status | |
US20070198423A1 (en) | Method,system and computer program for metering usage of multiple instances of software components | |
CN111343267B (zh) | 一种配置的管理方法及系统 | |
JP2019008377A (ja) | 照合情報生成装置、管理システム及び照合情報生成方法 | |
WO2023179749A1 (zh) | 组态数据处理系统、方法及电子设备 | |
CN108133136A (zh) | 攻击节点侦测装置、方法及其计算机可读取储存媒体 | |
CN116048554A (zh) | 容器镜像安全扫描方法、装置及电子设备和存储介质 | |
US20220129555A1 (en) | Increasing confidence scores via dcf equation mapping and automated stream inspection |
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 |