CN110708279B - 一种基于群体智能的漏洞挖掘模型构建方法 - Google Patents
一种基于群体智能的漏洞挖掘模型构建方法 Download PDFInfo
- Publication number
- CN110708279B CN110708279B CN201910762669.7A CN201910762669A CN110708279B CN 110708279 B CN110708279 B CN 110708279B CN 201910762669 A CN201910762669 A CN 201910762669A CN 110708279 B CN110708279 B CN 110708279B
- Authority
- CN
- China
- Prior art keywords
- task
- user
- vulnerability
- mining
- vulnerability mining
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于群体智能的漏洞挖掘模型构建方法,包括如下步骤:步骤一、对用户个体进行建模;步骤二、基于漏洞挖掘场景对漏洞挖掘任务进行智能分解;步骤三、最优化漏洞挖掘路径求解;步骤四、对群智漏洞挖掘结果进行汇聚融合并建立反馈学习模型。与现有技术相比,本发明的积极效果是:本模型体现了人群协同、机器协同、计算资源协同以及工具共享等群智理念,具有天然的高并发能力、快速高效的搜索求解能力、极强的环境适应性、高鲁棒性和自恢复能力、可扩展性强、灵活性高,有效地提升了漏洞挖掘效率、降低了漏洞挖掘成本。
Description
技术领域
本发明涉及一种基于群体智能的漏洞挖掘模型构建方法。
背景技术
1、群体智能国内外现状
群体智能(the intelligence of crowds)强调充分发掘每个人的智慧以做出最准确的决策。群体智能在多个学科中都有重要的地位,比如社会学、商业、计算机科学、大众传媒和大众行为等学科。在当前计算机领域中,群体智能与参与式感知(ParticipatorySensing)社群(SocialSensing)以及众包(Crowd-sourcing)的概念很相似,它们都是以大量普通用户参与为基础,其基本思想都是一致的,即人多力量大,发挥群体的智慧。群体智能指的是大量互联网用户所构成的群智资源的交互与协同。目前基于群体智能的应用方向主要有自由职业平台、数据众包平台、翻译众包、空间众包和众包物流等平台。从工作,到翻译,到物流,群智已经渗入到了许多方面,然而当前并没有基于漏洞挖掘的群智方法。
2、漏洞挖掘国内外研究现状
漏洞挖掘是一个多种漏洞挖掘分析技术相互结合、共同使用和优势互补的过程。目前漏洞挖掘分析技术有多种,主要包括手工测试技术(manual testing)、Fuzzing技术、比对和二进制比对技术(Diff and BinDiff)、静态分析技术(static analysis)、动态分析技术(runtime analysis)等。随着软件规模和复杂度的提升,当前的软件往往十分庞大,无论使用静态还是动态漏洞挖掘方法,均面临着巨大的计算挑战。虽然分布式计算能在一定程度上解决漏洞挖掘计算能力方面的问题,但传统的分布式计算中单个计算节点往往只能进行机械、重复的计算任务,无法根据漏洞任务的需求进行合理精细的漏洞任务分配,同样也无法解决漏洞挖掘人群之间的协作。
漏洞是影响网络安全的基本问题,对漏洞的挖掘和发现也成为网络安全的核心技术之一。早期的漏洞挖掘分析一般使用程序分析、模糊测试和符号执行等确定性的程序推理测试方法;随着技术的发展,业界开始尝试多种技术组合的方式来提高分析能力,如KLEE、Mayhem等系统采用基于优化的符号执行技术进行漏洞挖掘,RETracer、CREDAL等系统采用基于内核转储和程序分析定位漏洞点;当前研究方向已开始转向利用人工智能辅助漏洞挖掘分析,研究人员试图从程序执行历史中总结出漏洞的特征和发生原因,但因缺少先验知识的指导,无法挖掘分析深层漏洞。如何有效的分析与发现漏洞已经成为世界各国在信息安全领域的研究重点目标。在自动化漏洞挖掘分析方面,业界开始尝试多种技术组合的方式来提高挖掘分析能力,如卡耐基梅隆大学研究的Mayhem自动挖掘与利用系统,可自动发现二进制代码中的可利用漏洞;在规模化协同漏洞挖掘分析方面,美国已达到了万级节点并行处理的能力,如Google研制的并行漏洞挖掘与分析系统,能够并发数万个节点进行漏洞挖掘和分析,系统可以处理16TB的初始样本集。
国内漏洞挖掘分析技术研究方面起步较晚,我国在漏洞挖掘领域的研究仍面临重大挑战,还存在诸多不足之处。比如:漏洞挖掘方法目前主要包括开源代码分析和逆向分析等,以手工实施为主,需要快速提升挖掘者的技能,从他人经验中学习;防御者漏洞挖掘速度难以满足攻击防御的需求,安全事件仍频发,需要开展深层次、大规模、智能化漏洞挖掘研究,弥补差距;移动互联网、工业控制网等新应用新技术带来新挑战,需要提升面向网络空间新技术新应用的漏洞分析与发现能力;漏洞研究团队资源分散,顺畅协作机制尚未形成,需探索形成各层面漏洞研究协同机制,支撑国家对漏洞战略资源把控。面向网络空间安全对抗白热化演进趋势,研究突破高效化、规模化、协同化的漏洞挖掘方法,提升对漏洞资源的掌控和管理能力,已成为维护国家安全和公众权益的重要保障和迫切需求。
群体智能是自然界中的个体通过群体间的交互协作,涌现出来的明显超越个体智能水平的集体智慧,是面向共同任务时自发形成的集体脑。群体智能理念与新时期漏洞挖掘内在需求不谋而合,网络安全是“全民战争”,漏洞挖掘如能有效利用群体安全从业者的知识、经验和能力,将能完成远超个体能力极限的复杂安全任务,为扭转攻防非对称的局面提供有效解决途径。
发明内容
为了克服现有技术的上述缺点,本发明提出了一种基于群体智能的漏洞挖掘模型构建方法。
本发明解决其技术问题所采用的技术方案是:一种基于群体智能的漏洞挖掘模型构建方法,包括如下步骤:
步骤一、对用户个体进行建模;
步骤二、基于漏洞挖掘场景对漏洞挖掘任务进行智能分解;
步骤三、最优化漏洞挖掘路径求解;
步骤四、对群智漏洞挖掘结果进行汇聚融合并建立反馈学习模型。
与现有技术相比,本发明的积极效果是:
本发明基于合作博弈论和最优化理论构建任务和行为模型,提出系统体系架构,为用户个体进行能力画像、工具谱系归约、挖掘任务分配、挖掘结果去重融合和反馈学习五大任务提供详细算法以及工作流程指导。本模型体现了人群协同、机器协同、计算资源协同以及工具共享等群智理念,具有天然的高并发能力、快速高效的搜索求解能力、极强的环境适应性、高鲁棒性和自恢复能力、可扩展性强、灵活性高,有效地提升了漏洞挖掘效率、降低了漏洞挖掘成本。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为基于群体智能的漏洞挖掘模型;
图2为模型的环境上下文刻画;
图3为用户与标签对应关系示意图;
图4为群智漏洞挖掘结果融合和反馈学习模型。
具体实施方式
在本发明当中需要解决的关键技术问题如下:
(1)基于群体智能的漏洞挖掘描述方法
群智的核心在于对开放网络环境下的群智资源进行有效管理和协同利用,以实现群体智能的最大化。正确的理论方法是技术突破和应用创新的基础,面向漏洞挖掘的群体智能工程与四大因素相关,即参与漏洞挖掘的主体(人-机)、挖掘使用的工具、挖掘需达成的目标任务和挖掘所处的物理和网络环境。本发明要解决的主要问题是将面向网络空间漏洞挖掘主体、工具、目标、环境的高度随机复杂特征,归纳一种形式化流程语义计算模型,生成可控的引导规则。
(2)基于本体的群体个体建模方法
对人工漏洞挖掘中核心变量关联、污点数据追踪、关键代码回溯分析、疑似漏洞的判定等漏洞挖掘关键步骤的行为特征进行抽象,刻画群智个体漏洞挖掘能力,同时结合群智个体擅长的漏洞挖掘发现、漏洞挖掘工具、操作系统类型、群智个体之间的交互行为以及社群结构采用本体建模的方法进行统一抽象表达,构建多层次、多粒度的群体智能个体模型。
(3)基于漏洞挖掘场景的漏洞挖掘任务智能分解技术
细化漏洞分析流水线,将漏洞挖掘、漏洞分析、漏洞利用等环节采用的漏洞挖掘方法进行细粒度的分解,将程序异常路径构造、污点数据追踪、面向返回地址编程、约束求解等关键的操作步骤和方法进行提炼并统一表达,构建细粒度漏洞挖掘任务分解模型,实现漏洞挖掘任务的智能优化分解。
(4)群体智能漏洞挖掘结果汇聚融合
群体反馈回系统的挖掘结果分散,因此在这里我们需要将所有挖掘任务参与者反馈回来的结果进行汇聚和融合,形成统一的挖掘结果报告。
以下将结合附图详细介绍本发明方法如下:
基于群体智能的协同计算主要包括三种类型:机群协同(如多智能体系统)、人群协同(如众包、社会计算和集体智能)和人群与机群协同(如人计算、以人为中心的计算)。
基于群体智能的漏洞挖掘技术主要研究机群协同和人群与机群协同两种模式。针对漏洞挖掘目标软件数目众多或者挖掘任务众多等情况,可采用机群协同的方式进行处理;针对漏洞挖掘处理任务复杂的任务,由于各个组成部分之间存在一定约束,因此需要多个个体之间相互协同处理,可采用人群与机群协同的模式。针对群体智能个体能力差距大,业务流程复杂,资源需求差异大等问题,研究基于细粒度漏洞挖掘任务的多任务自适应均衡漏洞挖掘技术,资源隔离模型与技术、漏洞挖掘平台细粒度资源管理与迁移监控技术,实现快速并发运行的持久化存储和容错技术,进而支持节点的快速扩展与漏洞挖掘接口的整体联动,支持全息漏洞库大容量存储与还原。
基于上述思路,本发明以构建的漏洞协同挖掘原型系统作为承载基于群体智能漏洞挖掘的载体,对参与漏洞挖掘任务的群体智能个体进行抽象和建模,研究漏洞挖掘任务的规划与分配问题,分析漏洞挖掘过程中群体协同行为与机制,实现群智结果的汇聚。
根据研究目标以及上述分析,我们可以将基于群体智能的漏洞挖掘技术整理为由主体集合A(Agent)即任务的执行者、工具集合T(Tool)即用于挖掘漏洞的工具、目标任务集合G(Goal)和环境上下文E(Environment)构成的多元激励空间。设计路径代价函数F(Function)即漏洞挖掘任务分解算法完成漏洞挖掘问题求解任务S(Swarm IntelligentVulnerability Mining)即寻找最佳任务分解和协作方式,使得完成任务时收益最大、成本最低,具体关联关系如图1所示。
将图1抽象为量化的总体函数(1),通过对公式中的各个影响因素进行建模以及技术注入,完成对整个研究目标的研究。以下部分将对每个因素进行详细刻画。
S=max(Fpath(A,T,G,E)) (1)
4.1基于群体智能的漏洞挖掘技术模型刻画
4.1.1漏洞挖掘任务最优化求解“S”
公式(1)中字母“S”表示漏洞挖掘问题求解任务。漏洞挖掘时,由于自身状态、工具、任务目标、环境等多元激励空间是随机、动态、时变的,因此,协作的对象、协作的范围、协作的内容、协作的规则、交互的方式都是非线性的,不能采用固定不变的协作机理来刻画这种群智行为。非结构化协作理论主要研究时变多元激励空间下群智个体之间协作的途径和方法,寻找出多元激励空间与个体行为和协作行为之间作用关系与规律,从而建立时变多元激励空间下群智协作理论体系和相应的适变性机理,为多智能体以目标为导向的行为自主和全局优化提供理论基础,进而为群智漏洞挖掘应用提供理论指导。基于合作博弈论和最优化理论构建群智漏洞挖掘任务模型,根据理论建立非结构化协作体系架构,为多智能体画像、工具谱系梳理、任务工作流分析和时变环境交互提供框架性指导。
字母“F”表示问题S的求解函数。具体可视为驱动引擎,对漏洞挖掘路径代价函数进行极值求解。在成本与收益测量方面可采用定性分析与定量分析的结合的方式构建指标体系,确定指标间的依赖关系得到权重,并在实践中不断训练完善。
4.1.2漏洞挖掘智能体“A”
字母“A”表示漏洞挖掘智能体。参与群体漏洞挖掘的主体包括不同能力水平的人员,也包括不同功能性能的计算机。通过对主体静态属性和动态属性的提炼描述,形成关于主体能力的整体画像,促进人机协同、机群协同、工具选取和任务分配的自动化。
在漏洞挖掘多智能体画像方面,面向漏洞挖掘领域知识,利用基于符号推理系统的体系结构、基于反应式控制的体系结构、混合式多智能体系统体系结构、以及其它方法如应用协同进化计算来建立多智能体系统体系结构、利用领域知识图谱构建多智能体背景知识体系。
在多智能体系统学习方面,主要考虑两部分内容:1、学习过程有多个智能体参与,每个智能体有自己的学习空间。多个智能体的整体空间是相当大的,而且由于智能体之间存在交互,学习行为中的一些改变常常能引起宏观层而上不可预测的变化。2、对于有多个学习者参与的情况,每个个体都需要学习和适应其他个体的相关信息。
在群智漏洞挖掘系统中,通过个体执行任务的经验赋予个体学习和遗忘的能力。学习机制实质是一种强化学习机制,使得漏洞挖掘个体更易于选择自己曾经从事过的任务。而遗忘机制使得个体不会总是局限于某个任务,通过遗忘过去的经历而有了从事其他任务的可能性,从而达到对环境的自适应能力。
4.1.3漏洞挖掘工具集“T”
字母“T”表示漏洞挖掘工具集。通过归纳整理适应群智漏洞挖掘的工具谱系,按照“挖掘工具-功能组件-原子能力”三级模型分解和组织,实现工具在支撑挖掘目标方面的灵活组织、重构和编排。
应用群智思想来构建适应群智漏洞挖掘的工具谱系,该工具谱系以树状结构为特征。为漏洞挖掘多智能体提供行为工具集,可以从模块化和构件重用等角度考虑。
漏洞挖掘工具分类:模糊测试、代码审计、符号执行。
简单列举了几个分类下面的现实工具:
符号执行:RIPS、Clair、Ponce
模糊测试:Valgrind、Triton、manticore、radamsa
代码审计:Vulny Code、Lynis
控制流分析:Open SMT
模型检测:Z3、AVA
其他:CREST
4.1.4漏洞挖掘目标“G”
字母“G”表示漏洞挖掘目标。针对群智漏洞挖掘目标,综合考虑可利用资源、任务环境、问题求解效率和时间要求,对时间和空间上分散的分布式漏洞挖掘主体和相匹配的工具集,将群智漏洞挖掘任务流程划分成矩阵式交织的可编排过程,构建多级分层次分布式工作流控制体系规范。
针对群智漏洞挖掘目标,综合考虑可利用资源、任务环境、问题求解效率和时间要求,对时间和空间上分散的分布式漏洞挖掘多智能体,将群智漏洞挖掘任务流程划分成纵向和横向分布的过程,从而形成多级分层次分布式工作流控制体系。
根据群智协同决策结果,针对多智能体当前状况和任务态势的动态变化情况,对工作流进行控制与全局优化,基于动态协同过程控制模型、分布式求解算法和群智协同任务重分配机制,定义面向领域问题的智能体通信原语和智能体消息结构,结合智能体的智能性、自治性、协作性功能实现分布式节点执行任务的动态控制与协同优化。
通过分析漏洞挖掘群智管理需求、任务执行需求和群智行为的特点,依据各种漏洞挖掘方式对目标软件系统管理控制的边界条件,完成个人、单机、人群、机群、人机混合群体执行漏洞挖掘任务下的群智运动管理和行为控制,实现漏洞挖掘工作流引擎的纠错和容错机制。
漏洞挖掘工作流引擎实现目标、任务和行为的一致性,能够接收漏洞挖掘任务的空域、时域和动作域的分解结果,根据目标系统态势信息和智能体状态,生成并执行子模块任务的战术规划、路径规划和动作规划。
4.1.5漏洞挖掘任务环境“E”
字母“E”代表漏洞挖掘任务环境。漏洞挖掘任务环境既包括群体智能漏洞挖掘过程所依赖的环境,也包括该过程所改变的环境。同时也可以是能够对漏洞挖掘产生影响的环境要素,包括政策、法规、条令、网络、通信、资源、激励、评估等,不同要素施加的影响程度、环节、对象各不相同,建模需要逐步求精。如图2所示。
1)通信:通信是多智能体系统之间进行交互和组织的基础。分为隐式通信和显式通信。隐式通信可以分为两类:(1)通过改变外界环境实现通信。(2)通过自身感知来获得外界信息。显式通信可以分为全局通信和局部通信。
2)网络:漏洞挖掘任务由若干子任务组成,子任务由多智能体分别承担,任务之间的关系可以是串行的、也可以是并行的,随着漏洞挖掘任务的进展,单个任务、多个任务本身会发生变化,任务之间的关系也会发生变化。
3)资源:资源包含目标系统所涵盖的资源全集,以及攻击者能够获取的资源集合,资源间的博弈是一个动态的过程,随着任务的进展,资源的平衡会被打破,当然,目标系统主动的变化也会对攻击者可利用的资源范围起到影响。
4)激励:多智能体完成划分的任务后会给予一定的激励,激励可以是现金、积分、荣誉、资源等,瞄准不同智能体的差异化需求。随着任务的进展,激励内容会发生变化,激励与任务之间的关系是非线性的。
5)评估:采用定性分析与定量分析的结合的方式抽取指标,根据层次分析法构建判断矩阵,确定指标间的依赖关系,进行一致性检验,得到评估的权重值,形成效果评估指标体系。
4.2基于群体智能的漏洞挖掘技术实现方法
群体智能漏洞挖掘技术在这里可以分解成四个子问题:(1).对用户个体进行建模;(2).基于漏洞挖掘场景对漏洞挖掘任务进行智能分解;(3).寻找解决漏洞挖掘任务的最优化的挖掘路径;(4).群体智能挖掘结果的汇聚和系统的反馈学习。接下来的部分对以上四个子问题进行详细介绍。下表是本节所有符号以及含义。
表1 Notation
4.2.1基于本体的群体个体建模方法(Agent)
首先研究机群协同和人群与机群协同两种模式,因此群体智能个体建模目标分为两大类,即机群个体和参与任务的个人。本发明构建的多层次、多粒度群体个体模型要求能够对漏洞挖掘情景进行形式化的描述,此外,要包含参与任务个体的漏洞挖掘能力进行形式化的描述,能够为质量感知的任务调度提供感知基础,因此本发明采用基于本体的群体个体建模方法。
首先对典型群体智能协同漏洞挖掘情场景进行分析、学习,得到术语、顶层的概念、同义和层次关系以及相关规则,然后进行实体学习的过程,将实体纳入前面的概念体系中。结合规则和机器学习方法实现混合式的的术语抽取方法,以及混合式的的同义关系抽取,最终构建多层次、多粒度的群体个体模型。
漏洞挖掘平台学习交流论坛的社交数据作为输入源,进行数据挖掘后形成对个人用户的多维度建模,如专业能力、活跃度、信用口碑等。在个人信用建模方面,将研究基于社交数据用户行为模式和异构社交数据多源信息融合方式的用户信用建模,以进行信用评估和优质工人筛选。此外,外部社交平台关联数据的搜集、分析与融合,将构建更为清晰准确的用户信用模型。
1.用户个体建模
因此,我们需要对用户进行刻画,让计算机“认识”他们,在这里,我们利用标签权重算法以及历史信誉度对用户进行数字化标识。主要通过用户被打上的标签(如擅长模糊测试、擅长WEB漏洞挖掘),以及与改标签发生行为的次数(如执行过二进制分析任务)、行为类型(如收藏过哪些类型的漏洞,漏洞挖掘任务等行为)、行为时间(越久远的时间对用户当前的影响越小,如5年前执行过软件源码分析任务,最近常常分析网站),最后最重要的是标签权重,该权重严重影响着对用户的归类。以下详细介绍基于TF-IDF算法的权重归类和信誉度算法进行任务画像建模。
假设系统中的用户(Agent)用集合U来表示,U={u1,u2,…,un},每个用户对每种类型的任务拥有不同的能力和执行任务的情况,我们需要一个参数来反应用户uj将不同类型有效任务结果返回到系统的可能性,即成功返回有效结果的原始概率,这里用来表示,这个概率与历史返回的有效结果相关。另外因为每个用户的特长和能力参差不一,因此我们需要利用另外一个因子进行特征分类刻画和加权,这里记做其中uj表示用户,表示用户uj的所属标签mx的重要程度,假设用户的信誉度为那么用户uj执行类型为mx的任务时的信誉度可以表示为:
2.TFIDF的计算
接下来计算特征刻画因子。TFIDF的主要思想简而言之是:一个词语的重要性随着它在该文章出现的次数成正比,随它在整个文档集中出现的次数成反比。如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类和打标签。如图3所示,现在n个用户共有s个标签,即漏洞挖掘类型或者是任务类型共s种,标签集合记做M={m1,m2,…,ms},每个用户可能被打上不同的类型标签,同时根据系统或者执行过的任务甚至同行对该用户进行标签标示,因此可能相同的标签被标记了多次,图中用户2被标签1标记过3次,被标签2标记过4次,被标签s标记过1次。那么下面将介绍具体算法。
TFIDF实际上是:TF×IDF,TF(Term Frequency):词频,IDF(Inverse DocumentFrequency):逆向文件频率。词频用于标记用户所有标签中某一标签所占的比重,对于一个用户来说,这个比重越大,则越有能力执行这个标签类型的任务。逆向文件频率IDF是一个标签普遍重要性的度量。某一特定标签的IDF表示某标签在全部标签中的稀缺程度。
TF(uj,mx)表示标签mx在用户uj身上的标记次数占用户uj身上所有标签次数中所占的比重,计算公式如下;其中w(uj,mx)表示标签mx用于标记用户uj的次数,表示用于标记用户uj的所有标签的次数总和。
IDF的主要思想是:如果包含某标签的用户越少,IDF越大,则说明该标签的类别区分能力越大。IDF是一个标签普遍重要性的度量。某一特定标签的IDF表示某标签在全部标签中的稀缺程度,可以由总用户数目除以包含该标签的用户的数量,再将得到的商取以10为底的对数得到。在这里相应的IDF(mx)计算公式如下,其中|U|表示所有用户数目,|W(U,mx)|表示包含标签mx的所有用户数目总和,IDF(mx)表示标签mx在全部标签中的稀缺程度。公式当中,IDF函数是随着包含标签mx的所有用户数目总和|W(U,mx)|的增加而变小的,这就说明标签mx的代表这个用户的特征表现能力不强。
值得注意的是,如果该标签不用于标记任何的用户,就会导致分母为零,因此一般情况下使用1+|{W(U,mx)}|作为分母。
综上所述,TF表示某标签在该用户身上表现出的横向比较的重要性,IDF表示某标签在整个标记用户的特征过程中的纵向比较的普遍重要性度量。换句话说,某用户的高标签频率TF,以及该标签在整个标记用户群集合中的低用户频率IDF,计算TF与IDF的乘积后可以产生出高权重的TFIDF。因此对于某一用户画像来说,TFIDF倾向于过滤掉没有特征的标签,保留重要特征的标签,用以刻画用户uj的标签mx的特征权重。
3.用户信誉度的计算方法
另外我们还需要刻画用户的历史信誉度,可以根据历史任务执行和有效结果反馈进行刻画。为了与上述结合起来,我们这里进行的计算也是基于标签也就是任务类型进行的历史信誉度计算。在这里我们假设需要计算用户uj执行任务为mx类型的任务时的信誉值,利用下式进行计算:
ε=TF-IDF×ε′
ε′表示历史成功返回挖掘结果的比率也就是原始信誉度,其中ε表示加上权重TF-IDF因子进行调整之后的最终用户信誉值。考虑到我们之后是根据具体的任务和任务类型进行任务分配,因此我们这里计算荣誉值是针对某个用户uj执行某种类型mx的任务时的信誉值,计算方式是执行过的mx类型任务占总接收任务的比率,再乘上成功返回的mx类型任务的概率,如下式:
其中表示历史中用户uj执行mx类型任务的数量,表示历史中用户uj执行所有类型任务的数量,表示历史中用户uj执行mx类型任务并且成功在任务有效期内返回结果的数量,最后简化得到上式。那么最终用户执行某类任务的信誉值的计算如下式:
4.2.2基于漏洞挖掘场景的漏洞挖掘任务智能分解技术
针对漏洞挖掘业务数据种类多样、数据密集型应用交互复杂,不同的漏洞挖掘方法适用于不同的群智协同模式,因此,本发明采用基于漏洞挖掘场景的漏洞挖掘任务分解技术,通过研究漏洞挖掘、漏洞分析、漏洞利用等漏洞分析流水线的重点环节以及任务分发,任务交互,任务导出,任务展示等漏洞任务实施环节,根据不同群智协同场景,构建细粒度漏洞挖掘任务分解模型,从而实现基于群体智能的漏洞挖掘任务高效分解。
针对机群的协同模式,主要适用于任务微小,但是群智个体能力层次不齐的情况,一般以冗余的方式进行任务的分解和发放;针对人群与机群协同模式,主要适用于任务结构复杂,每个复杂任务的各个部分间具有一定的约束性关系,一般除了关注统一子任务的多个冗余结果之间的协同,还要考虑不同子任务之间结果的协同,还要考虑人群和机群之间结果的协同。
1、群智漏洞挖掘任务典型样例
本发明对漏洞挖掘分析的常用两种方法进行了适用于哪种群智协同模式的分析:
1)模糊测试方法
在初始文本样本的搜集阶段,可以采用人群协同的模式,以覆盖更多的代码和更多的漏洞为导向,采集尽可能多的初始文本样本,然后生成测试样本集合。
在测试样本分析阶段基于现有的计算资源以达到最大代码覆盖为目标,可采用机群协同的模式进行分析,最后对最终的机群分析结果进行汇聚和融合,得到最终漏洞挖掘分析结果,整体大幅提升模糊测试的效率。
2)符号执行方法
以对目标程序路径状态空间最大限度遍历进行安全检测为目标,可采用机群协同的模式进行分析,构建基于路径状态拆分算法的分布式符号计算负载均摊机制,提升符号执行技术对于大型程序安全分析的路径状态规模适应度,同时提升软件缺陷测试用例自动生成的计算效率。
3)模糊测试+符号执行方法
在漏洞挖掘分析阶段采用模糊测试的方法得到漏洞,用符号执行的方式生成漏洞利用代码,最终漏洞缓解机制的绕过采用人群和机群结合的方式。
2、群智漏洞挖掘任务分配算法
根据以上分析,我们对不同漏洞挖掘场景下的漏洞挖掘方法进行原子拆分,根据群智协作模式,对原子动作按照协同关系进行组合,最终构建基于漏洞挖掘场景的漏洞挖掘任务分解模型,实现对不同漏洞挖掘方法和场景下漏洞任务的高效分解。
基于漏洞挖掘场景的群智漏洞挖掘任务分配需要考虑到以下几个因素:任务类型,挖掘目标,挖掘目标/目标软件规模,目标操作系统类型,根据任务类型和挖掘目标归纳挖掘分析方法,确定挖掘引擎类型,锁定目标群智个体和推荐工具集进行群智漏洞挖掘完成任务分配。
在此之前的预备工作主要包括以下1),2),3)点准备工作,紧接着进行第4)步的主要算法部分:
1)用户配合系统进行信息完善
为了高效地完成任务分配,系统需要提前了解用户的一些基本信息,包括:擅长的领域和工具,期望执行的任务分类等信息。同时系统根据用户历史完成任务的任务类型对用户进行刻画,并根据任务执行后返回的结果计算用户的信誉度。
如上一节所述,假设系统中的用户用集合U来表示,U={u1,u2,…,un},每个用户拥有不同的能力和执行任务的情况,我们需要一个参数来反应用户将有效任务结果返回到系统的可能性,即成功返回有效结果的概率,这个概率与历史返回的有效结果相关,假设用户的信誉度为任务集合为G={g1,…,gq},用来表示用户uj执行每个任务的相遇指数参数,其中表示任务gi被用户uj执行的概率。在这里我们假设任务gi被用户uj执行的模型符合指数分布,这是在移动社交网络中被广泛接受的,指数分布的参数为为了简化处理,根据指数分布,预计任务gi被用户uj执行的执行时间符合以下公式:
2)工具收集并对工具集进行分类
系统中收集了大部分漏洞挖掘工具,并对工具进行分类刻画,如打标签,并对标签的权重进行量化。并统计工具历史使用情况和挖掘结果对工具进行有效性刻画,最终形成一个工具集合T={t1,…,tk},其中表示类型为mx的工具集合。
3)任务发布需要完善挖掘目标信息以及挖掘场景描述
发布一个新的群智任务,需要明确任务类型,挖掘目标大小,目标操作系统,目标软件/系统规模等信息,形成任务集合为G={g1,…,gq}。相应的,每个任务都有一个完成任务的最低成功率阈值,我们用π={π1,…,πq}表示完成任务的最低阈值,H={h1,…,hq}表示任务有效期。更多地,任务发布者可以根据挖掘任务进行推荐挖掘任务参与用户和任务挖掘和分析工具。
4)基于最优用户组的群智任务分配算法
在预备工作完成的情况下,我们可以设计算法来进行任务分配和挖掘引擎推荐。我们考虑待完成任务gi,执行该任务的用户能够组成一个群体智能组,相互协作完成任务gi,我们假设执行任务gi的群体智能用户组用数学集合表示,我们可以将问题的数学化定义成如下公式:
then:
s.t.:
上述公式中,表示的是协作完成任务gi的群体智能用户组的集合的大小,也就是群体智能用户组的数量。由于是潜在用户中的产生出来的用户,因此是集合U的子集。表示用户uj单独完成任务gi时,其成功返回有效结果的概率值,我们称之为有效结果反馈度,下一小节将介绍其计算方法。表示用户uj历史完成任务的信誉度,在这里需要根据任务gi的类型从选择相应的用户信誉值,也就是以往成功返回有效结果的情况。表示用户uj可以获得任务gi并返回结果的概率。表示用户uj没能在任务失效前将有效结果返回或者没能返回有效结果的概率,因而表示群体智能用户组中没有一个用户返回有效结果的概率,那么表示的是在用户组中用户协助完成任务gi的情况下,组员在任务失效前,成功返回有效任务结果的总体概率。因此这个公式满足协助完成任务的任务执行用户数量最小,并且返回结果的概率超过阈值πi。
5)φ值的计算
与两个概率有关,第一个是完成任务的结果是有效结果的概率第二个是分配任务并成功返回任务结果的概率假设现在任务gi需要进行任务分配,该任务最后有效期为hi,如果此时h0将任务gi分配给uj,该用户开始执行任务,在此之后,由于系统只能在用户空闲的时候可以将任务分配给用户,因此在此期间系统将不会再次给该用户分配此任务,之前声明过用户uj执行任务gi的概率服从指数分布,那么用户uj执行任务gi成功返回任务结果的概率
4.2.3最优化漏洞挖掘路径求解(Swarm Intelligent Vulnerability Mining)
根据以上步骤计算出了执行群智任务的推荐工具集和最优化任务执行用户集合。执行任务是需要支付给任务参与者相应奖励的,因此,需要设计算法使得执行任务的用户数量少和获得的检测结果佳的情况,得到最优化漏洞挖掘路径。那么最后一步是根据以上计算结果,求解出效益最大化的情况,即支出(执行任务的用户数)最少收益(任务执行效果)最大化。
上述算法表示,对需要进行群智协同挖掘的任务,我们为在用户集合当中的用户计算有效结果反馈度然后将其进行从高到底排序,也就是得到推荐执行此任务的用户优先级排序。但是并非所有用户都需要参与到这个群智任务gi当中来,因此我们需要根据任务完成阈值πi,并结合用户自身的能力对用户进行择优选择,比较的标准便是sumφ<πi,最终我们会得到最佳任务执行组合并执行任务向系统反馈结果。
4.2.4群智漏洞挖掘结果融合和反馈学习模型
系统收集任务反馈结果,并通过结果汇聚算法对各用户反馈的挖掘结果进行智能整合分类。在现有技术基础上,建立漏洞挖掘任务质量评价体系和反馈学习模型,通过迭代实现对任务连接智能优化,以及中间结果数据的共享。研究任务智能分解、智能重构和智能连接关键技术,实现任务目标的智能分解、模块优化重组和工作序列智能组装,完成基于群体智能漏洞挖掘任务的信息融合与反馈。
在这里首先涉及一个漏洞报告范本,对漏洞挖掘反馈的结果进行规范化处理,方便接下来的结果融合和处理。其次,我们需要对挖掘结果进行分析和整合,在这里只需要对反馈回来的结果进行解析即可,如图4所示。首先涉及数据库,编写解析脚本,对输入的结果报告进行解析,并将对应字段的内容写入数据库,完成结果融合和汇聚,最终得到挖掘分析结果。
另外根据群智漏洞任务执行者完成任务的情况,将其执行情况在用户数据库中进行记录和反馈,进一步反馈到用户画像步骤对用户的信誉值进行更新,达到反馈结果。
Claims (6)
1.一种基于群体智能的漏洞挖掘模型构建方法,其特征在于:包括如下步骤:
步骤一、对用户个体进行建模:
第一步、确定用户集合U={u1,u2,…,un},其中,uj表示第j个用户;
(1)计算标签mx在用户uj身上的标记次数在用户uj身上所有标签次数中所占的比重:
(2)计算标签mx在全部标签中的稀缺程度:
其中:|U|表示所有用户数目,|W(U,mx)|表示包含标签mx的所有用户数目总和;
(3)计算用户uj执行mx类型任务的特征权重:
第三步、计算用户uj执行mx类型任务时的信誉值:
(2)计算最终用户执行某类任务的信誉值:
步骤二、基于漏洞挖掘场景对漏洞挖掘任务进行智能分解;
步骤三、最优化漏洞挖掘路径求解;
步骤四、对群智漏洞挖掘结果进行汇聚融合并建立反馈学习模型。
2.根据权利要求1所述的一种基于群体智能的漏洞挖掘模型构建方法,其特征在于:计算标签mx在全部标签中的稀缺程度时,采用1+|{W(U,mx)}|作为分母。
4.根据权利要求3所述的一种基于群体智能的漏洞挖掘模型构建方法,其特征在于:第三步所述任务发布的方法为:形成任务集合G={g1,…,gq},确定每个任务对应的完成该任务的最低成功率阈值π={π1,…,πq},确定任务有效期H={h1,…,hq}。
6.根据权利要求5所述的一种基于群体智能的漏洞挖掘模型构建方法,其特征在于:步骤三所述最优化漏洞挖掘路径的求解方法为:为在用户集合当中的用户计算有效结果反馈度,然后将其进行从高到底排序,得到推荐执行此任务的用户优先级排序,再结合用户自身的能力对用户进行择优选择,最终得到最佳任务执行组合Cgi,并执行任务向系统反馈结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910762669.7A CN110708279B (zh) | 2019-08-19 | 2019-08-19 | 一种基于群体智能的漏洞挖掘模型构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910762669.7A CN110708279B (zh) | 2019-08-19 | 2019-08-19 | 一种基于群体智能的漏洞挖掘模型构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110708279A CN110708279A (zh) | 2020-01-17 |
CN110708279B true CN110708279B (zh) | 2021-08-13 |
Family
ID=69193550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910762669.7A Active CN110708279B (zh) | 2019-08-19 | 2019-08-19 | 一种基于群体智能的漏洞挖掘模型构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110708279B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367815B (zh) * | 2020-03-24 | 2022-03-15 | 中国电子科技网络信息安全有限公司 | 一种基于人机协同的软件漏洞模糊测试方法 |
CN112101406A (zh) * | 2020-07-31 | 2020-12-18 | 北京交通大学 | 一种多智能体网络的智能水平量化方法 |
CN112001484A (zh) * | 2020-08-22 | 2020-11-27 | 哈尔滨工业大学 | 一种基于多任务深度学习的安全缺陷报告预测方法 |
CN112165462A (zh) * | 2020-09-11 | 2021-01-01 | 哈尔滨安天科技集团股份有限公司 | 基于画像的攻击预测方法、装置、电子设备及存储介质 |
CN113407945B (zh) * | 2021-06-18 | 2023-08-22 | 北京计算机技术及应用研究所 | 一种基于人机协同的规模化Fuzzing优化系统及方法 |
CN113592034B (zh) * | 2021-08-23 | 2022-07-22 | 江苏鼎跃腾信息技术有限公司 | 基于大数据可视化挖掘处理的内容推送方法及ai管控系统 |
CN113836727B (zh) * | 2021-09-27 | 2023-04-25 | 西南交通大学 | 用于复杂产品群智协同设计过程的设计能力优化方法 |
CN115033894B (zh) * | 2022-08-12 | 2022-12-09 | 中国电子科技集团公司第三十研究所 | 一种基于知识图谱的软件组件供应链安全检测方法及装置 |
CN115563627B (zh) * | 2022-12-06 | 2023-03-14 | 中国电子科技集团公司第三十研究所 | 一种基于人机协同的二进制程序漏洞静态分析方法 |
CN115795489B (zh) * | 2023-02-09 | 2023-05-09 | 中国电子科技集团公司第三十研究所 | 一种基于硬件级进程跟踪的软件漏洞静态分析方法及装置 |
CN116720197B (zh) * | 2023-08-09 | 2023-11-03 | 北京比瓴科技有限公司 | 一种对漏洞优先级排列的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853200A (zh) * | 2010-05-07 | 2010-10-06 | 北京大学 | 一种高效动态软件漏洞挖掘方法 |
CN105100042A (zh) * | 2014-05-06 | 2015-11-25 | 塞纳克公司 | 用于对应用中的漏洞进行分布式发现的计算机系统 |
CN108874655A (zh) * | 2017-05-15 | 2018-11-23 | 华为技术有限公司 | 一种处理众包测试数据的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10972494B2 (en) * | 2016-10-10 | 2021-04-06 | BugCrowd, Inc. | Vulnerability detection in IT assets by utilizing crowdsourcing techniques |
-
2019
- 2019-08-19 CN CN201910762669.7A patent/CN110708279B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853200A (zh) * | 2010-05-07 | 2010-10-06 | 北京大学 | 一种高效动态软件漏洞挖掘方法 |
CN105100042A (zh) * | 2014-05-06 | 2015-11-25 | 塞纳克公司 | 用于对应用中的漏洞进行分布式发现的计算机系统 |
CN108874655A (zh) * | 2017-05-15 | 2018-11-23 | 华为技术有限公司 | 一种处理众包测试数据的方法及装置 |
Non-Patent Citations (1)
Title |
---|
群智漏洞挖掘技术;饶志宏;《信息安全与通信保密》;20190228;第14-17页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110708279A (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110708279B (zh) | 一种基于群体智能的漏洞挖掘模型构建方法 | |
Nguyen et al. | A hybrid approach for fuzzy multi-attribute decision making in machine tool selection with consideration of the interactions of attributes | |
Chan et al. | Overview of the application of “fuzzy techniques” in construction management research | |
Fan et al. | Identifying risk factors of IT outsourcing using interdependent information: An extended DEMATEL method | |
Deelman et al. | The role of machine learning in scientific workflows | |
Černevičienė et al. | Review of multi-criteria decision-making methods in finance using explainable artificial intelligence | |
Goble et al. | 23 CHAPTER Enhancing Services and Applications with Knowledge and Semantics | |
Mohebzada et al. | Systematic mapping of recommendation systems for requirements engineering | |
Marle et al. | Forming risk clusters in projects to improve coordination between risk owners | |
Chen et al. | Synergizing domain expertise with self-awareness in software systems: A patternized architecture guideline | |
Karabetian et al. | An Environmentally-sustainable Dimensioning Workbench towards Dynamic Resource Allocation in Cloud-computing Environments | |
Costa et al. | A genetic algorithm-based approach to support forming multiple scrum project teams | |
Mezouar et al. | A systematic literature review of machine learning applications in software engineering | |
Kannimuthu et al. | Discovery of interesting itemsets for web service composition using hybrid genetic algorithm | |
Malihi et al. | A decision framework for optimisation of business processes aligned with business goals | |
Mahalle et al. | Data-Centric AI in Mechanical Engineering | |
Alkan | Risk analysis for digitalization oriented sustainable supply chain using interval-valued Pythagorean fuzzy AHP | |
Pemmada et al. | A deep intelligent framework for software risk prediction using improved firefly optimization | |
Hoang et al. | Decision support system for assignment of conference papers to reviewers | |
Karlik et al. | Participative Cognitive Mapping as a Multidisciplinary Approach for Managing Complex Systems | |
Vukićević et al. | Reusable component-based architecture for decision tree algorithm design | |
Štolfa et al. | Value estimation of the use case parameters using SOM and fuzzy rules | |
Kumar et al. | AI-Driven Financial Forecasting: The Power of Soft Computing | |
Ewald et al. | Data mining for simulation algorithm selection | |
KR102671887B1 (ko) | 부품 조달을 위한 글로벌 밸류 체인에 대한 데이터베이스 구축 방법 및 이를 구현하기 위한 시스템 |
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 |