CN101442412B - 一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法 - Google Patents

一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法 Download PDF

Info

Publication number
CN101442412B
CN101442412B CN2008102326857A CN200810232685A CN101442412B CN 101442412 B CN101442412 B CN 101442412B CN 2008102326857 A CN2008102326857 A CN 2008102326857A CN 200810232685 A CN200810232685 A CN 200810232685A CN 101442412 B CN101442412 B CN 101442412B
Authority
CN
China
Prior art keywords
attack
defect
defective
software
sequence
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.)
Expired - Fee Related
Application number
CN2008102326857A
Other languages
English (en)
Other versions
CN101442412A (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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN2008102326857A priority Critical patent/CN101442412B/zh
Publication of CN101442412A publication Critical patent/CN101442412A/zh
Application granted granted Critical
Publication of CN101442412B publication Critical patent/CN101442412B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法,包括:缺陷检测子系统,对基于规则的软件缺陷进行静态分析和检测;特征缺陷序列库子系统,利用缺陷植入技术进行挖掘并记录缺陷序列和网络攻击的关系;攻击预警判定子系统,将检测出的目标软件的缺陷漏洞和特征缺陷序列库中的记录相匹配,发出攻击预警报告。

Description

一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法
技术领域
本发明属于软件漏洞检测及网络安全领域,具体设计一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法。
背景技术
随着软件产业的不断发展,软件缺陷和漏洞已经逐渐受到业界的关注,特别是伴随着互联网的普及和蓬勃发展,出现了大量黑客攻击和安全性问题,使网络应用程序和软件的安全质量受到了严峻的考验。目前,提供软件安全性保障主要采取了两种技术方法。一种是基于代码的软件缺陷和漏洞检测方法,一种是基于攻击模式的入侵检测方法。
基于代码的软件缺陷和漏洞检测方法,已广泛运用在软件开发过程中,自动化检测工具的应用更是大大提高了检测软件缺陷和漏洞的效率,Jeffery S.Foster提出一种基于类型限定符分析(Type Qualifier Analysis)的静态缺陷检测方法(Jeffrey S.Foster,Type Qualifiers:Lightweight Specifications to Improve Software Quality,Ph.D.thesis,University of California,Berkeley,December2002),这种半自动静态扫描软件漏洞的方法,需要软件开发人员为源程序添加类型限制符,通过静态扫描分析检测软件漏洞,此方法对特定的软件漏洞检测效果比较好,但是可检测的漏洞类型比较少,并且误报率比较高;Gary McGraw等人提出了基于缺陷函数库匹配的静态代码扫描分析方法(John Viega,J.T.Bloch,Tadayoshi Kohno,Gary McGraw.ITS4:A StaticVulnerability Scanner for C and C++Code.http://www.rstcorp.com),实现了全自动的软件缺陷扫描,但受到缺陷函数库规模的限制,这种方法可以检测的漏洞类型比较有限,不能胜任复杂的网络应用程序安全检测;Moohun Lee等人提出了一种基于规则的软件缺陷检测方法(Moohun Lee,Sunghoon Cho,Changbok Jang,Heeyong Park,Eui in Choi,A Rule-based Security Auditing Tool for Software Vulnerability Detection,2006International Conference on Hybrid Information Technology.),引入了软件缺陷规则的概念,这种基于缺陷规则库静态检测技术具有良好的扩展性,通过更新缺陷规则库,可以检测出新近出现的软件缺陷,有比较好的应用前景。
入侵检测方法主要应用在网络应用程序的安全性检测方面,Koral Ilgun等提出了一种基于规则的入侵检测方法(Koral Ilgun,Richard A.Kemmerer,Fellow,IEEE,and Phillip A.Porras,State Transition Analysis:A Rule-Based Intrusion Detection Approach,IEEE TRANSACTIONS ON SOFTWARE ENGINEERING,VOL.21,NO.3,MARCH 1995),此方法建立了基于状态图模型,通过软件状态跃迁变化发现入侵攻击,对特定攻击的捕获具有良好的效果,并且基于规则发现攻击模式,系统具备一定扩展性,但仅关注了软件状态变化,没有涉及软件自身缺陷和攻击模式关系;Michael Gegick等提出了一种通过检测入侵攻击查找缺陷的方法(Matching Attack Patterns to Security Vulnerabilities in Software-Intensive System Designs,Michael Gegick,Laurie Williams,Michael Gegick,Laurie Williams,ICSE-SESS’05,May 15-16,2005,St.Louis,Missouri,USA.),但未提出软件缺陷和攻击模式库(AttackPattern Base)的概念,并且没有建立两者之间对应关系,仅仅提出了一种辅助查找缺陷的方法。
目前,以上的两大类方法都在保障软件安全方面发挥着重要的作用,然而基于代码的软件缺陷和漏洞检测方法,主要检测软件源程序,并不关心环境变量的影响,分析的结果不能全面应对真实的网络攻击;而基于攻击模式的入侵检测方法只能检测出入侵攻击的类型,却不能为软件开发者提供建设性的软件缺陷修补意见,很难从实质上改善软件安全质量。
发明内容
本发明的目的在于克服上述现有技术的缺点,提供了一种集成了软件缺陷检测子系统和攻击预警判定子系统,在静态检测软件缺陷的同时,匹配特征缺陷序列知识库中的攻击模式,发出攻击预警信号提前对软件进行风险评估,全面保障了软件的安全质量,适用于软件开发周期各个阶段的基于软件缺陷及网络攻击关系挖掘的攻击预警方法。
为了便于说明问题,本发明先引进有关概念。
定义1:软件缺陷规则文件(vulnerability role file)是指缺陷类型抽取出的特征规则形成的规则库文件,目标代码文件(target code file)是指源程序经过语义分析后形成的中间代码。
定义2:序列长度为L的缺陷序列是指由L个不同种类缺陷漏洞组成的一个无序序列。
定义3:特征缺陷序列库是指挖掘出的易受网络攻击的缺陷序列的记录,每条记录包含缺陷序列和对应的网络攻击两部分。
为达到上述目的,本发明采用的技术方案是:包括:
对基于规则的缺陷序列进行静态分析和检测的缺陷检测子系统;
利用缺陷植入技术对缺陷序列和网络攻击的关系进行挖掘并记录的特征缺陷序列库子系统;
将检测出的目标软件的缺陷序列和特征缺陷序列库中的记录相匹配,发出攻击预警报告的攻击预警判定子系统;
其攻击预警过程如下:
1)首先利用缺陷检测子系统扫描软件漏洞和缺陷,并且记录扫描结果,输出缺陷号和缺陷名称以及简单的描述,以供特征缺陷序列库子系统匹配;
2)特征缺陷序列库子系统抽取软件缺陷特征,采用了缺陷植入的方法,通过攻击模拟实验挖掘缺陷特征与攻击模式的关联关系,每条记录包含缺陷序列和对应的网络攻击两部分,构建出特征缺陷序列库,特征缺陷序列库支持多维匹配;
3)然后将扫描的缺陷文件送入攻击预警判定子系统,与特征缺陷序列库中的记录进行匹配;
4)如果扫描出的缺陷序列在攻击预警判定子系统中单维匹配成功,则通过攻击预警判定子系统输出软件的缺陷信息,及该缺陷对应的潜在攻击模式,否则说明单个缺陷出现不会引起攻击,继续进行多维匹配。
所说的基于规则的缺陷检测子系统和攻击预警判定子系统协同工作,两个子系统都是基于美国缺陷标准工业库Common Weakness Enumeration设计,并实现数据交互。
所说的攻击预警判定子系统,支持特征缺陷序列库多维匹配,即可以发现多个缺陷特征同时存在时对应的攻击模式。
本发明是采用缺陷植入方法,通过模拟攻击实验,对软件缺陷及网络攻击之间的关系进行挖掘建立特征缺陷序列库,然后通过分析扫描目标软件源代码中的缺陷序列,与挖掘得到的特征缺陷序列库记录进行匹配,进而发出攻击预警。
附图说明
图1是本发明的较佳实施例结构图;
图2是利用缺陷植入技术建立特征缺陷序列库流程图;
图3是检测目标软件缺陷漏洞流程图;
图4是攻击预警流程图。
下面结合附图和实例对本发明做进一步说明。
具体实施方式
参见图1,依照本发明的技术方案,该系统至少包括:缺陷检测子系统;特征缺陷序列库子系统,采用缺陷植入方法,通过模拟攻击实验挖掘缺陷类型相关联的攻击模式;攻击预警判定子系统,将扫描出的缺陷类型与特征缺陷序列库中记录匹配,输出匹配成功的缺陷类型和潜在攻击模式。其中,特征缺陷序列库子系统与攻击预警判断子系统相连,缺陷检测子系统与攻击预警判断子系统相连。
参照图2,首先进行步骤101,目前已知软件缺陷漏洞个数为M,所有漏洞构成初始集合,常用网络攻击方法个数为N,并初始化缺陷序列长度初始值为L=I,初始化特征缺陷序列库为空,然后进行步骤102,判断序列长度是否大于缺陷漏洞集合中的元素个数即L>M,如果是,则建立过程结束,否则进行步骤103,缺陷序列个数为T=CM L,缺陷序列记为St,t=1,2,…,T,然后进行步骤104及步骤105,令t=1,i=1;步骤106,将缺陷序列St植入软件并利用第i个网络攻击方法Attacki对软件进行攻击;步骤107判定攻击是否成功,如果成功,则进行步骤109,将缺陷序列St及对应的网络攻击Attacki记录写入特征缺陷序列库,如果攻击不成功,那么利用下一个网络攻击方法,即步骤108,对该序列进行攻击,直到攻击方法均进行完为止(步骤110即i>N),然后对下个一缺陷序列进行相同操作(步骤111),直到长度为L的所有序列均受攻击完毕(步骤112即t>T),最后,进行步骤113,在缺陷漏洞集合中删除特征缺陷序列库中新增的缺陷元素个数共m个,更新M=M-m,L=L+1,继续进行步骤102,直到建立过程结束。
参照图3,首先进行步骤210,缺陷系统加载软件源程序,开始进行缺陷扫描与分析。然后进行步骤220,将软件源程序送入语义分析系统,遍历语法分析器生成的抽象语法树(Abstract Syntax Tree,AST),分析解释语法结构树的结点,将其标识为易于数据流分析的中间代码。然后进行步骤230,通过数据流分析描述出程序的数据流图,根据缺陷生成器产生的规则范式发现异常数据依赖关系,并且标记出这些异常,再然后进行步骤240,通过控制流分析已被标记过的数据依赖关系图,准确地跟踪程序块运行的先后顺序,缺陷根据规则库的规则限制来发现不适当的代码结构,形成目标代码文件(target file),然后进行步骤250,缺陷系统加载软件漏洞规则库,漏洞规则库主要包括缺陷特征抽取和规则生成器两部分,软件开发者加载使用预定义的规则库文件(vulnerability role file),也可以添加新的缺陷特征,通过规则生成器(role generator)形成新的规则达到更新规则库的目的,具有很好的扩展性和适用性。最后进行步骤260,比较目标代码文件和规则库文件的内容,如果目标代码文件与规则库中缺陷内容一致,则说明源程序存在这种类型的缺陷,逐一进行以上文件匹配,直到查出全部的缺陷。
参照图4,攻击预警判定首先进行步骤301,步骤210-260过程检测到目标软件的缺陷漏洞个数为K,初始化缺陷序列长度初始值为L=1,然后进行步骤302,判定序列长度L是否大于漏洞个数K,如果是,则判定过程结束,如果否,则进行步骤303,缺陷序列个数为G=GK L,缺陷序列记为Sg,g=1,2,…,G;步骤304令g=1,步骤305将Sg与特征序列库中缺陷长度为L的所有特征序列进行比对,如果比对成功,则进行步骤307,将与Sg比对成功的特征缺陷序列写入输出缓冲并进行下个序列的比对过程(步骤308),如果比对不成功,则直接跳入下个序列的比对过程(步骤308),直到所有长度为L的序列均比对完成,此时将新增输出缓冲区中的缺陷从目标软件漏洞集中删除,并更新K=K-n,L=L+1,重新转入步骤302,直至所有攻击预警判断结束。
本发明抽取软件缺陷特征,挖掘缺陷特征与攻击模式的关联关系,建立特征缺陷序列库子系统,通过缺陷检测子系统检测出软件漏洞和缺陷,然后将扫描出的缺陷类型与特征缺陷序列库中记录匹配,发出攻击预警信号。本发明综合了软件缺陷检测和入侵攻击检测的优点,既检测出软件源程序中的缺陷,同时采用错误注入的方法挖掘缺陷和攻击模式间的关系,达到了入侵检测的检查效果,同时基于规则的特征缺陷序列库也具备良好的扩展性,表现出了现实应用价值。本发明首先通过基于规则的静态软件缺陷检测系统扫描软件的安全漏洞,然后将扫描出的缺陷类型送入攻击预警判定子系统,与特征缺陷序列库的记录进行匹配,最后将匹配成功的潜在攻击方式发出预警信号,对软件系统进行风险评价。

Claims (3)

1.一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法,其特征在于,包括:
对基于规则的缺陷序列进行静态分析和检测的缺陷检测子系统;
利用缺陷植入技术对缺陷序列和网络攻击的关系进行挖掘并记录的特征缺陷序列库子系统;
将检测出的目标软件的缺陷序列和特征缺陷序列库中的记录相匹配,发出攻击预警报告的攻击预警判定子系统;
其攻击预警过程如下:
1)首先利用缺陷检测子系统扫描软件漏洞和缺陷,并且记录扫描结果,输出缺陷号和缺陷名称以及简单的描述,以供特征缺陷序列库子系统匹配;
2)特征缺陷序列库子系统抽取软件缺陷特征,采用了缺陷植入的方法,通过攻击模拟实验挖掘缺陷特征与攻击模式的关联关系,每条记录包含缺陷序列和对应的网络攻击两部分,构建出特征缺陷序列库,特征缺陷序列库支持多维匹配;
3)然后将扫描的缺陷文件送入攻击预警判定子系统,与特征缺陷序列库中的记录进行匹配;
4)如果扫描出的缺陷序列在攻击预警判定子系统中单维匹配成功,则通过攻击预警判定子系统输出软件的缺陷信息,及该缺陷对应的潜在攻击模式,否则说明单个缺陷出现不会引起攻击,继续进行多维匹配。
2.如权利要求1所述的基于软件缺陷及网络攻击关系挖掘的攻击预警方法,其特征在于:所说的基于规则的缺陷检测子系统和攻击预警判定子系统协同工作,两个子系统都是基于美国缺陷标准工业库Common Weakness Enumeration设计,并实现数据交互。
3.如权利要求1所述的基于软件缺陷及网络攻击关系挖掘的攻击预警方法,其特征在于:所说的攻击预警判定子系统,支持特征缺陷序列库多维匹配,即可以发现多个缺陷特征同时存在时对应的攻击模式。
CN2008102326857A 2008-12-18 2008-12-18 一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法 Expired - Fee Related CN101442412B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102326857A CN101442412B (zh) 2008-12-18 2008-12-18 一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102326857A CN101442412B (zh) 2008-12-18 2008-12-18 一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法

Publications (2)

Publication Number Publication Date
CN101442412A CN101442412A (zh) 2009-05-27
CN101442412B true CN101442412B (zh) 2011-04-06

Family

ID=40726673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102326857A Expired - Fee Related CN101442412B (zh) 2008-12-18 2008-12-18 一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法

Country Status (1)

Country Link
CN (1) CN101442412B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101662467B (zh) * 2009-09-27 2012-08-22 成都市华为赛门铁克科技有限公司 扫描方法及装置
US9390269B2 (en) * 2013-09-30 2016-07-12 Globalfoundries Inc. Security testing using semantic modeling
CN104933368B (zh) * 2014-03-21 2018-05-22 腾讯科技(深圳)有限公司 一种网络安全漏洞的检测方法及装置
CN103970657B (zh) * 2014-05-09 2017-02-15 中国联合网络通信集团有限公司 软件缺陷检测方法及装置
CN104008057B (zh) * 2014-06-13 2017-12-15 国家电网公司 一种基于缺陷分析的代码安全性评价方法
CN105320591B (zh) * 2014-07-25 2019-08-27 腾讯科技(深圳)有限公司 代码检测方法及装置
US9928156B2 (en) * 2015-10-23 2018-03-27 Microsoft Technology Licensing, Llc. Missing include suggestions for external files
CN105554022A (zh) * 2016-01-12 2016-05-04 烟台南山学院 一种软件的自动化测试方法
US11005863B2 (en) * 2016-06-10 2021-05-11 General Electric Company Threat detection and localization for monitoring nodes of an industrial asset control system
CN106446689A (zh) * 2016-09-02 2017-02-22 中科信息安全共性技术国家工程研究中心有限公司 一种对android应用进行自动化安全检测的方法
CN107483481B (zh) * 2017-09-11 2020-12-15 杭州域晓科技有限公司 一种工业控制系统攻防模拟平台及其实现方法
CN109492402A (zh) * 2018-10-25 2019-03-19 杭州趣链科技有限公司 一种基于规则引擎的智能合约安全评测方法
CN109376247B (zh) * 2018-11-13 2022-05-13 扬州大学 一种基于关联规则的软件缺陷自动分类方法
CN110290114B (zh) * 2019-06-04 2020-09-08 武汉大学 一种基于预警信息的漏洞自动化防护方法及系统
CN111651773B (zh) * 2020-08-05 2020-11-06 成都无糖信息技术有限公司 一种二进制安全漏洞自动化挖掘方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1878082A (zh) * 2005-06-09 2006-12-13 杭州华为三康技术有限公司 网络攻击的防护方法
CN101026500A (zh) * 2007-01-31 2007-08-29 北京佳讯飞鸿电气有限责任公司 一种减少网络入侵检测系统漏报的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1878082A (zh) * 2005-06-09 2006-12-13 杭州华为三康技术有限公司 网络攻击的防护方法
CN101026500A (zh) * 2007-01-31 2007-08-29 北京佳讯飞鸿电气有限责任公司 一种减少网络入侵检测系统漏报的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
宋擒豹等.软件质量保障技术.《计算机工程与应用》.2001,(第15期),第14-16页. *
李磊.基于WindowsAPI的通用型缺陷植入模型的研究与设计.《中国优秀硕士学位论文全文数据库》.2006,(第06期),第1-6页. *
杨向荣等.基于行为模式挖掘的网络入侵检测.《西安交通大学学报》.2002,第36卷(第2期),第173-176,189页. *

Also Published As

Publication number Publication date
CN101442412A (zh) 2009-05-27

Similar Documents

Publication Publication Date Title
CN101442412B (zh) 一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法
CN108718310B (zh) 基于深度学习的多层次攻击特征提取及恶意行为识别方法
Bekrar et al. Finding software vulnerabilities by smart fuzzing
CN110399730A (zh) 智能合约漏洞的检查方法、系统及介质
CN101359352B (zh) 分层协同的混淆后api调用行为发现及其恶意性判定方法
Murtaza et al. A host-based anomaly detection approach by representing system calls as states of kernel modules
CA2559020C (en) Method and apparatus for drilling waste disposal engineering and operations using a probabilistic approach
US7072876B1 (en) System and method for mining execution traces with finite automata
CN103780614B (zh) 一种基于模拟攻击扩展的sql注入漏洞挖掘方法
CN107292169B (zh) 恶意软件的威胁溯源方法及装置
CN102768638B (zh) 基于状态转移图的软件行为可信性检测方法
CN101976313A (zh) 基于频繁子图挖掘的异常入侵检测方法
CN108521392B (zh) 一种双向流量的sql注入攻击检测方法
CN109308415A (zh) 一种面向二进制的导向性模糊测试方法与系统
KR101640479B1 (ko) 소스코드기반 소프트웨어 취약점 공격행위 분석시스템
CN105138903A (zh) 一种基于ret指令与jmp指令的rop攻击检测方法
CN109308411B (zh) 基于人工智能决策树的分层检测软件行为缺陷的方法和系统
CN116405246A (zh) 一种基于攻防结合的漏洞利用链构建技术
CN104766015A (zh) 一种基于函数调用的缓冲区溢出漏洞动态检测方法
CN111914260A (zh) 一种基于函数差分的二进制程序漏洞检测方法
CN110457220A (zh) 基于安卓系统的模拟器检测方法、智能终端及存储介质
CN104766016A (zh) 一种基于系统调用短序列的软件漏洞检测方法
CN116383833A (zh) 软件程序代码的测试方法及其装置、电子设备、存储介质
CN112214399A (zh) 基于序列模式匹配的api误用缺陷检测系统
CN112115053A (zh) 基于序列模式匹配的api误用缺陷检测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110406

Termination date: 20131218