CN115292716A - 第三方软件包的安全性分析方法、装置、设备及介质 - Google Patents

第三方软件包的安全性分析方法、装置、设备及介质 Download PDF

Info

Publication number
CN115292716A
CN115292716A CN202210950715.8A CN202210950715A CN115292716A CN 115292716 A CN115292716 A CN 115292716A CN 202210950715 A CN202210950715 A CN 202210950715A CN 115292716 A CN115292716 A CN 115292716A
Authority
CN
China
Prior art keywords
analysis
software package
current
preset
behavior
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
Application number
CN202210950715.8A
Other languages
English (en)
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.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202210950715.8A priority Critical patent/CN115292716A/zh
Publication of CN115292716A publication Critical patent/CN115292716A/zh
Pending legal-status Critical Current

Links

Images

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种第三方软件包的安全性分析方法、装置、设备及介质,涉及计算机技术领域,包括:获取待分析软件包的当前版本信息,判断当前版本信息与待分析软件包的上一版本信息是否相同,若不同则生成对应的分析任务;筛选出与分析任务对应的预设容器引擎,利用与分析任务对应的分析命令启动预设容器引擎,以便采集到对应的第一分析数据;清洗第一分析数据得到第二分析数据,获取第二分析数据的所有当前行为中满足第一预设条件的第一标记行为;对第一标记行为进行分值计算得到满足第二预设条件的第二标记行为以及其对应的当前行为等级,对第二标记行和当前行为等级进行验证得到当前分析结果。能够提高第三方软件包的安全性分析的漏洞检测能力。

Description

第三方软件包的安全性分析方法、装置、设备及介质
技术领域
本发明涉及计算机技术领域,特别涉及第三方软件包的安全性分析方法、装置、设备及介质。
背景技术
在现代应用程序开发中,许多高级编程语言都支持丰富的库和包,例如python、golang、node.js、ruby、rust等高级语言,它允许开发人员重用第三方代码,共享自己开发的代码,简化开发中重复造轮子的过程。这样可以大大减小软件开发成本,加速软件研发周期。但是在使用第三方库带来的便捷的同时,也会将其中大量缺陷以及安全漏洞引入进来,这给软件带来了巨大的安全风险,容易产生供应链攻击事件。为保证企业软件供应链的安全,从而支撑安全的应用程序开发和组装,SCA(Software Composition Analysis,即软件成分分析)技术应运而生。目前业界在SCA检测方案中,一般通过分析软件引用的第三方组件名字、版本、MD5(Message Digest Algorithm MD5,即消息摘要算法)等,通过匹配漏洞库中组件和漏洞的对应关系确定引用的第三方组件是否有漏洞。这种做法可以解决大部分问题,但是在面对未知的漏洞威胁时,这样的方式毫无作用,即现有软件成分分析解决方案高度依赖已公布的漏洞库检测软件存在的漏洞而缺少对未知漏洞的检测能力。
综上可见,如何提高第三方软件包的安全性分析的漏洞检测能力是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种第三方软件包的安全性分析方法、装置、设备及介质,能够提高第三方软件包的安全性分析的漏洞检测能力。
其具体方案如下:
第一方面,本申请公开了一种第三方软件包的安全性分析方法,包括:
获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务;
筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据;
清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为;
对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。
可选的,所述获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务,包括:
基于预设软件包分析时间周期确定预设软件包分析时间,若当前满足预设软件包分析时间,则获取包括待分析软件包的当前类型信息、当前名称信息、当前存储仓库信息、当前版本信息、当前更新时间信息、当前检测时间信息以及上一行为等级的当前存储信息;
从对应的存储仓库中获取到所述待分析软件包的上一软件包版本信息,并判断所述当前版本信息与所述上一版本信息是否相同,若不相同则利用所述当前存储信息生成对应的分析任务。
可选的,所述若不相同则利用所述当前软件包存储信息生成对应的分析任务,包括:
若不相同则利用所述当前软件包存储信息生成对应的以json形式组成的分析任务。
可选的,所述筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,包括:
将所述分析任务进行解析,以得到所述当前类型信息,并筛选出与所述当前类型信息对应的预设容器引擎,并利用与所述当前类型信息对应的docker分析命令启动所述预设容器引擎。
可选的,所述利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据,包括:
利用与所述分析任务对应的分析命令启动所述预设容器引擎,并利用所述预设容器引擎对所述待分析软件包进行预设软件包安装检测处理、预设内嵌可执行文件检测处理、预设软件包导入初始化检测处理以及预设软件包导出函数检测处理,以便采集到对应的第一分析数据。
可选的,所述基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为,包括:
基于启发式规则获取所述第二分析数据的所有当前行为中包括访问预设非白名单内的域名行为、对系统敏感位置读写行为以及预设非白名单进程的启动行为中任意一种或几种的第一标记行为。
可选的,所述对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果之后,还包括:
确定出满足第三预设条件的所述分析结果,并生成与满足第三预设条件的所述分析结果对应的安全提示信息,然后在预设界面显示所述安全提示信息。
第二方面,本申请公开了一种第三方软件包的安全性分析装置,包括:
分析任务生成模块,用于获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务;
数据采集模块,用于筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据;
标记行为获取模块,用于清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为;
分析结果获取模块,用于对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的第三方软件包的安全性分析方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的第三方软件包的安全性分析方法的步骤。
可见,本申请获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务;筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据;清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为;对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。由此可见,若当前版本信息与上一版本信息不同,则说明版本进行更新,那么就需要生成分析任务对待分析软件包进行安全性分析,利用预设容器引擎采集到第一分析数据,并对第一分析数据进行清洗以得到第二分析数据,基于启发式规则对第二分析数据中满足第一预设条件的行为进行标记以得到第一标记行为,然后对第一标记行为进行分值计算以得到第二标记行为及其对应的当前行为等级,进而得到待分析软件包的当前分析结果,无需利用预设安全漏洞库分析,因为是基于启发式规则获取第二分析数据的所有当前行为中满足第一预设条件的第一标记行为,所以后续可以分析出预设安全漏洞中不存在的漏洞,提高了第三方软件包的安全性分析的漏洞检测能力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种第三方软件包的安全性分析;
图2为本申请公开的一种具体的第三方软件包的安全性分析;
图3为本申请公开的一种具体的第三方软件包的安全性分析示意图;
图4为本申请公开的一种具体的第三方软件包的安全性分析;
图5为本申请公开的一种第三方软件包的安全性分析装置结构示意图;
图6为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在现代应用程序开发中,许多高级编程语言都支持丰富的库和包,例如python、golang、node.js、ruby、rust等高级语言,它允许开发人员重用第三方代码,共享自己开发的代码,简化开发中重复造轮子的过程。这样可以大大减小软件开发成本,加速软件研发周期。但是在使用第三方库带来的便捷的同时,也会将其中大量缺陷以及安全漏洞引入进来,这给软件带来了巨大的安全风险,容易产生供应链攻击事件。为保证企业软件供应链的安全,从而支撑安全的应用程序开发和组装,SCA技术应运而生。目前业界在SCA检测方案中,一般通过分析软件引用的第三方组件名字、版本、MD5等,通过匹配漏洞库中组件和漏洞的对应关系确定引用的第三方组件是否有漏洞。这种做法可以解决大部分问题,但是在面对未知的漏洞威胁时,这样的方式毫无作用,即现有软件成分分析解决方案高度依赖已公布的漏洞库检测软件存在的漏洞而缺少对未知漏洞的检测能力。
为此本申请相应的提供了一种第三方软件包的安全性分析方案,能够提高第三方软件包的安全性分析的漏洞检测能力。
参见图1所示,本申请实施例公开了一种第三方软件包的安全性分析方法,包括:
步骤S11:获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务。
本实施例中,所述获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务,具体包括:基于预设软件包分析时间周期确定预设软件包分析时间,若当前满足预设软件包分析时间,则获取包括待分析软件包的当前类型信息、当前名称信息、当前存储仓库信息、当前版本信息、当前更新时间信息、当前检测时间信息以及上一行为等级的当前存储信息;从对应的存储仓库中获取到所述待分析软件包的上一软件包版本信息,并判断所述当前版本信息与所述上一版本信息是否相同,若不相同则利用所述当前存储信息生成对应的分析任务。可以理解的是,本实施例可以利用预设包变更监视服务接收分析配置,监视包变更推送分析任务并接收分析结果,推送恶意包告警等,预设包变更监视服务启动后创建定时任务,根据用户配置定时查询待检测软件包的版本信息,并在本地数据库中存储、更新存储信息,存储信息包括:待分析软件包的当前类型信息、当前名称信息、当前存储仓库信息、当前版本信息、当前更新时间信息、当前检测时间信息以及上一行为等级,每次定时查询当前存储仓库中的当前版本信息后与数据库中存储的上一版本信息对比,若发现当前版本信息与上一版本信息不同,即待分析软件包存在变更,则发布分析任务。
本实施例中,所述若不相同则利用所述当前软件包存储信息生成对应的分析任务,具体包括:若不相同则利用所述当前软件包存储信息生成对应的以json形式组成的分析任务。发布的分析任务以json形式组成的任务消息,例如发布python包分析消息,如下所示:
1.{"type":"pypi","source":"https://pypi.org/simple","package":"Django","version":"4.0.5"}。
步骤S12:筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据。
本实施例中,所述筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,具体包括:将所述分析任务进行解析,以得到所述当前类型信息,并筛选出与所述当前类型信息对应的预设容器引擎,并利用与所述当前类型信息对应的docker分析命令启动所述预设容器引擎。需要注意的是,本实施例中可以利用预设调度分析服务接收分析任务、筛选出与分析任务对应的预设容器引擎以及启动所述预设容器引擎。选择启动对应类型的预设容器引擎,例如python包、node.js包、golang包等不同类型,都有各自独立对应的预设容器引擎,预设容器引擎即为动态分析引擎,并且动态分析引擎是多个docker容器隔离环境,每个容器内都有一个常驻进程,通过分析任务中指定的仓库链接、包名、包版本下载对应的包源码进行分析。每个容器内都安装并启动sysdig,收集第三方软件包的安全性分析过程中系统数据,用于提供预设数据聚合服务进行分析与恶意评估。引擎分析过程包含了对包安装过程分析、包内嵌入的二进制执行分析、包导入初始化过程分析、包导出函数模糊分析,通过sysdig收集的系统数据包含进程、文件、网络信息等。通过docker分析命令启动预设容器引擎,并传入分析参数。docker分析命令可以如下所示:
1.docker run-it--rmpython-analyzer:v1.0\
2.--source https://pypi.org/simple\
3.--package Django\
4.--version 4.0.5。
步骤S13:清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为。
本实施例中,可以利用预设数据聚合服务实现清洗第一分析数据以得到第二分析数据,并基于启发式规则获取第二分析数据的所有当前行为中满足第一预设条件的第一标记行为。
步骤S14:对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。
本实施例中,所述对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果之后,还包括:确定出满足第三预设条件的所述分析结果,并生成与满足第三预设条件的所述分析结果对应的安全提示信息,然后在预设界面显示所述安全提示信息。可以理解的是,利用预设包变更监视服务接收分析结果,若分析结果显示待分析软件包为可疑包,即满足第三预设条件,则生成与该分析结果对应的安全提示信息,例如为“警告:当前第三方软件包为可疑包”。需要注意的是,当预设包变更监视服务接收分析结果之后,对相关信息进行更新。
可见,本申请获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务;筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据;清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为;对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。由此可见,若当前版本信息与上一版本信息不同,则说明版本进行更新,那么就需要生成分析任务对待分析软件包进行安全性分析,利用预设容器引擎采集到第一分析数据,并对第一分析数据进行清洗以得到第二分析数据,基于启发式规则对第二分析数据中满足第一预设条件的行为进行标记以得到第一标记行为,然后对第一标记行为进行分值计算以得到第二标记行为及其对应的当前行为等级,进而得到待分析软件包的当前分析结果,无需利用预设安全漏洞库分析,因为是基于启发式规则获取第二分析数据的所有当前行为中满足第一预设条件的第一标记行为,所以后续可以分析出预设安全漏洞中不存在的漏洞,提高了第三方软件包的安全性分析的漏洞检测能力。
参见图2所示,本申请实施例公开了一种具体的第三方软件包的安全性分析方法,包括:
步骤S21:获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务。
步骤S22:筛选出与所述分析任务对应的预设容器引擎。
步骤S23:利用与所述分析任务对应的分析命令启动所述预设容器引擎,并利用所述预设容器引擎对所述待分析软件包进行预设软件包安装检测处理、预设内嵌可执行文件检测处理、预设软件包导入初始化检测处理以及预设软件包导出函数检测处理,以便采集到对应的第一分析数据。
本实施例中,预设容器引擎即为动态分析引擎,动态分析引擎是由多个分析的docker环境构成。不同包类型,其启动、导入、运行分析的方式都有差异,故都有独立的分析环境。除了具体的分析命令不同以外,所有的动态分析引擎都有统一的接口与流程,整个分析过程主要包含了预设软件包安装检测处理、预设内嵌可执行文件检测处理、预设软件包导入初始化检测处理以及预设软件包导出函数检测处理。具体分析过程如下所示:
1)预设启动系统追踪处理:通过命令行调用启动sysdig进行系统监视。
2)预设软件包安装检测处理:例如图3所示的一种具体的第三方软件包的安全性分析示意图,在第三方包安装的过程中,会触发由包提供者编写的安装脚本,一些恶意的第三方包会在安装脚本中植入恶意代码。引擎会模拟安装包的过程,以触发安装脚本行为,从而被sysdig所捕获记录。python包通过pip install执行包安装过程;npm(Node PackageManager)包通过npm install执行包安装过程;ruby通过gem install执行包安装过程;golang通过go install执行包安装过程。
3)预设内嵌可执行文件检测处理:一些恶意的第三方包会已经构建好的二进制文件或者混淆代码放入其中。引擎通过遍历包的安装路径,寻找可执行的二进制文件,若发现二进制文件,则通过命令行启动,并由sysdig采集其行为。
4)预设软件包导入初始化检测处理:一些恶意包会在初始化过程中执行可疑代码。通过模拟第三方包导入的过程,会触发包的初始化逻辑,从而被sysdig所捕获记录。
5)预设软件包导出函数检测处理:对于大多数恶意包,会导出一些恶意函数,让调用者触发。引擎通过枚举包所有导出函数(即可被使用者调用的函数),构造参数进行模糊测试,以触发可能存在的潜在恶意代码。
上述2)至5)四个软件包分析执行的方向,均在sysdig的监视下进行。sysdig捕获分析过程中的系统调用,采集相关文件、进程、网络等数据,当分析完成后,预设容器引擎会将所有采集到的第一分析数据发送给预设数据聚合服务后退出。
步骤S24:清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为。
步骤S25:对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。
由此可见,本申请通过动态分析的方式,对第三方软件包安装过程、内嵌程序执行过程、导入过程、导出函数模糊测试过程进行分析,分析过程更加全面,因此后续基于第一分析数据而最终获得的分析结果更加准确;并且本申请不依赖第三方软件包的元信息、静态信息、漏洞库信息,即可检测未知威胁,更加灵活,漏洞检索能力提升。
参见图4所示,本申请实施例公开了一种具体的第三方软件包的安全性分析方法,包括:
步骤S31:获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务。
步骤S32:筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据。
步骤S33:清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中包括访问预设非白名单内的域名行为、对系统敏感位置读写行为以及预设非白名单进程的启动行为中任意一种或几种的第一标记行为。
本实施例中,当预设数据聚合服务接收到第一分析数据后,首先清洗第一分析数据,剔除无效的数据,以得到第二分析数据。预设数据聚合服务基于启发式规则对第二分析数据中所有行为进行分析,并对为预设非白名单内的域名行为、对系统敏感位置读写行为以及预设非白名单进程的启动行为中任意一种或几种行为进行标记,标记后的行为即为第一标记行为。
步骤S34:对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。
本实施例中,预设数据聚合服务对所有第一标记行为进行分值计算,得出软件包可疑等级,即满足第二预设条件的第二标记行为和第二标记行为对应的当前行为等级。维护人员根据第二标记行为和第二标记行为对应的当前行为等级进行人工验证,从而回馈并更新启发式规则,将最终的当前分析结果推送至预设包变更监视服务,以便预设包变更监视服务基于当前分析结果进行相应的信息显示。
由此可见,本申请基于半自动化启发式规则进行行为标记,以达到无需使用特征规则检测第三方软件包的恶意行为,基于启发式规则标记研判,不依赖恶意包的特征规则,自动化样本可疑性、更新启发式规则,灵活度提高,安全性分析能力提升。
参见图5所示,本申请实施例公开了一种第三方软件包的安全性分析装置,包括:
分析任务生成模块11,用于获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务;
数据采集模块12,用于筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据;
标记行为获取模块13,用于清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为;
分析结果获取模块14,用于对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。
可见,本申请获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务;筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据;清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为;对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。由此可见,若当前版本信息与上一版本信息不同,则说明版本进行更新,那么就需要生成分析任务对待分析软件包进行安全性分析,利用预设容器引擎采集到第一分析数据,并对第一分析数据进行清洗以得到第二分析数据,基于启发式规则对第二分析数据中满足第一预设条件的行为进行标记以得到第一标记行为,然后对第一标记行为进行分值计算以得到第二标记行为及其对应的当前行为等级,进而得到待分析软件包的当前分析结果,无需利用预设安全漏洞库分析,因为是基于启发式规则获取第二分析数据的所有当前行为中满足第一预设条件的第一标记行为,所以后续可以分析出预设安全漏洞中不存在的漏洞,提高了第三方软件包的安全性分析的漏洞检测能力。
在一些具体实施例中,所述分析任务生成模块11,包括:
信息获取单元,用于基于预设软件包分析时间周期确定预设软件包分析时间,若当前满足预设软件包分析时间,则获取包括待分析软件包的当前类型信息、当前名称信息、当前存储仓库信息、当前版本信息、当前更新时间信息、当前检测时间信息以及上一行为等级的当前存储信息;
第一任务生成单元,用于从对应的存储仓库中获取到所述待分析软件包的上一软件包版本信息,并判断所述当前版本信息与所述上一版本信息是否相同,若不相同则利用所述当前存储信息生成对应的分析任务。
在一些具体实施例中,所述第一任务生成单元,包括:
第二任务生成单元,用于若不相同则利用所述当前软件包存储信息生成对应的以json形式组成的分析任务。
在一些具体实施例中,所述数据采集模块12,包括:
引擎启动单元,用于将所述分析任务进行解析,以得到所述当前类型信息,并筛选出与所述当前类型信息对应的预设容器引擎,并利用与所述当前类型信息对应的docker分析命令启动所述预设容器引擎。
在一些具体实施例中,所述数据采集模块12,包括:
第一分析数据采集单元,用于利用与所述分析任务对应的分析命令启动所述预设容器引擎,并利用所述预设容器引擎对所述待分析软件包进行预设软件包安装检测处理、预设内嵌可执行文件检测处理、预设软件包导入初始化检测处理以及预设软件包导出函数检测处理,以便采集到对应的第一分析数据。
在一些具体实施例中,所述标记行为获取模块13,包括:
第一标记行为获取单元,用于基于启发式规则获取所述第二分析数据的所有当前行为中包括访问预设非白名单内的域名行为、对系统敏感位置读写行为以及预设非白名单进程的启动行为中任意一种或几种的第一标记行为。
在一些具体实施例中,所述第三方软件包的安全性分析装置,包括:
提示单元,用于确定出满足第三预设条件的所述分析结果,并生成与满足第三预设条件的所述分析结果对应的安全提示信息,然后在预设界面显示所述安全提示信息。
图6为本申请实施例提供的一种电子设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现以下步骤:
获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务;
筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据;
清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为;
对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
基于预设软件包分析时间周期确定预设软件包分析时间,若当前满足预设软件包分析时间,则获取包括待分析软件包的当前类型信息、当前名称信息、当前存储仓库信息、当前版本信息、当前更新时间信息、当前检测时间信息以及上一行为等级的当前存储信息;
从对应的存储仓库中获取到所述待分析软件包的上一软件包版本信息,并判断所述当前版本信息与所述上一版本信息是否相同,若不相同则利用所述当前存储信息生成对应的分析任务。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
若不相同则利用所述当前软件包存储信息生成对应的以json形式组成的分析任务。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
将所述分析任务进行解析,以得到所述当前类型信息,并筛选出与所述当前类型信息对应的预设容器引擎,并利用与所述当前类型信息对应的docker分析命令启动所述预设容器引擎。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
利用与所述分析任务对应的分析命令启动所述预设容器引擎,并利用所述预设容器引擎对所述待分析软件包进行预设软件包安装检测处理、预设内嵌可执行文件检测处理、预设软件包导入初始化检测处理以及预设软件包导出函数检测处理,以便采集到对应的第一分析数据。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
基于启发式规则获取所述第二分析数据的所有当前行为中包括访问预设非白名单内的域名行为、对系统敏感位置读写行为以及预设非白名单进程的启动行为中任意一种或几种的第一标记行为。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,还可以进一步包括以下步骤:
确定出满足第三预设条件的所述分析结果,并生成与满足第三预设条件的所述分析结果对应的安全提示信息,然后在预设界面显示所述安全提示信息。
本实施例中,电源23用于为电子设备上的各硬件设备提供工作电压;通信接口24能够为电子设备创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备执行的第三方软件包的安全性分析方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由第三方软件包的安全性分析过程中执行的方法步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种第三方软件包的安全性分析方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种第三方软件包的安全性分析方法,其特征在于,包括:
获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务;
筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据;
清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为;
对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。
2.根据权利要求1所述的第三方软件包的安全性分析方法,其特征在于,所述获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务,包括:
基于预设软件包分析时间周期确定预设软件包分析时间,若当前满足预设软件包分析时间,则获取包括待分析软件包的当前类型信息、当前名称信息、当前存储仓库信息、当前版本信息、当前更新时间信息、当前检测时间信息以及上一行为等级的当前存储信息;
从对应的存储仓库中获取到所述待分析软件包的上一软件包版本信息,并判断所述当前版本信息与所述上一版本信息是否相同,若不相同则利用所述当前存储信息生成对应的分析任务。
3.根据权利要求2所述的第三方软件包的安全性分析方法,其特征在于,所述若不相同则利用所述当前软件包存储信息生成对应的分析任务,包括:
若不相同则利用所述当前软件包存储信息生成对应的以json形式组成的分析任务。
4.根据权利要求2所述的第三方软件包的安全性分析方法,其特征在于,所述筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,包括:
将所述分析任务进行解析,以得到所述当前类型信息,并筛选出与所述当前类型信息对应的预设容器引擎,并利用与所述当前类型信息对应的docker分析命令启动所述预设容器引擎。
5.根据权利要求1所述的第三方软件包的安全性分析方法,其特征在于,所述利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据,包括:
利用与所述分析任务对应的分析命令启动所述预设容器引擎,并利用所述预设容器引擎对所述待分析软件包进行预设软件包安装检测处理、预设内嵌可执行文件检测处理、预设软件包导入初始化检测处理以及预设软件包导出函数检测处理,以便采集到对应的第一分析数据。
6.根据权利要求1所述的第三方软件包的安全性分析方法,其特征在于,所述基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为,包括:
基于启发式规则获取所述第二分析数据的所有当前行为中包括访问预设非白名单内的域名行为、对系统敏感位置读写行为以及预设非白名单进程的启动行为中任意一种或几种的第一标记行为。
7.根据权利要求1至6任一项所述的第三方软件包的安全性分析方法,其特征在于,所述对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果之后,还包括:
确定出满足第三预设条件的所述分析结果,并生成与满足第三预设条件的所述分析结果对应的安全提示信息,然后在预设界面显示所述安全提示信息。
8.一种第三方软件包的安全性分析装置,其特征在于,包括:
分析任务生成模块,用于获取待分析软件包的当前版本信息,并判断所述当前版本信息与所述待分析软件包的上一版本信息是否相同,若不相同则生成对应的分析任务;
数据采集模块,用于筛选出与所述分析任务对应的预设容器引擎,并利用与所述分析任务对应的分析命令启动所述预设容器引擎,以便采集到对应的第一分析数据;
标记行为获取模块,用于清洗所述第一分析数据以得到第二分析数据,并基于启发式规则获取所述第二分析数据的所有当前行为中满足第一预设条件的第一标记行为;
分析结果获取模块,用于对所述第一标记行为进行分值计算,以得到满足第二预设条件的第二标记行为以及与所述第二标记行为对应的当前行为等级,然后对所述第二标记行和所述当前行为等级进行验证以得到与所述待分析软件包的当前分析结果。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的第三方软件包的安全性分析方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的第三方软件包的安全性分析方法的步骤。
CN202210950715.8A 2022-08-09 2022-08-09 第三方软件包的安全性分析方法、装置、设备及介质 Pending CN115292716A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210950715.8A CN115292716A (zh) 2022-08-09 2022-08-09 第三方软件包的安全性分析方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210950715.8A CN115292716A (zh) 2022-08-09 2022-08-09 第三方软件包的安全性分析方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115292716A true CN115292716A (zh) 2022-11-04

Family

ID=83827706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210950715.8A Pending CN115292716A (zh) 2022-08-09 2022-08-09 第三方软件包的安全性分析方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115292716A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115659343A (zh) * 2022-12-27 2023-01-31 北京知其安科技有限公司 一种模仿真实攻击的容器攻击模拟方法、检测方法和终端

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115659343A (zh) * 2022-12-27 2023-01-31 北京知其安科技有限公司 一种模仿真实攻击的容器攻击模拟方法、检测方法和终端

Similar Documents

Publication Publication Date Title
US10509719B2 (en) Automatic regression identification
CN108595952A (zh) 一种电力移动应用软件漏洞的检测方法及系统
US10169002B2 (en) Automated and heuristically managed solution to quantify CPU and path length cost of instructions added, changed or removed by a service team
CN101853200B (zh) 一种高效动态软件漏洞挖掘方法
CN106294094A (zh) 游戏服务器的测试方法、客户端、服务器及系统
CN105653946A (zh) 基于组合事件行为触发的Android恶意行为检测系统及其检测方法
US11436133B2 (en) Comparable user interface object identifications
US20180143897A1 (en) Determining idle testing periods
CN113114680B (zh) 用于文件上传漏洞的检测方法和检测装置
CN106407102B (zh) 应用程序的模糊测试方法、装置及系统
CN115033887A (zh) 开源组件安全治理方法、系统、电子设备及存储介质
CN110365641A (zh) 跨站脚本攻击漏洞检测方法、设备及计算机可读介质
CN113590454A (zh) 测试方法、装置、计算机设备和存储介质
CN111859399A (zh) 一种基于oval的漏洞检测方法及装置
CN115292716A (zh) 第三方软件包的安全性分析方法、装置、设备及介质
CN111625834A (zh) Docker镜像文件漏洞检测系统及检测方法
CN110598419A (zh) 一种区块链客户端漏洞挖掘方法、装置、设备及存储介质
CN110298179A (zh) 开源框架安全漏洞检测方法及装置
US20180137036A1 (en) Determining potential test actions
CN108874658A (zh) 一种沙箱分析方法、装置、电子设备及存储介质
CN114547610A (zh) 一种文件检测方法、装置及设备
CN113590463A (zh) 一种基于非介入式动态监测的软件可靠性度量方法
CN114462030A (zh) 隐私政策的处理、取证方法、装置、设备及存储介质
CN110321130B (zh) 基于系统调用日志的不可重复编译定位方法
Rammig et al. Online behavior classification for anomaly detection in self‐x real‐time systems

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