CN116186705A - 基于源代码静态分析的软件安全代码分析器及其检测方法 - Google Patents
基于源代码静态分析的软件安全代码分析器及其检测方法 Download PDFInfo
- Publication number
- CN116186705A CN116186705A CN202211438376.1A CN202211438376A CN116186705A CN 116186705 A CN116186705 A CN 116186705A CN 202211438376 A CN202211438376 A CN 202211438376A CN 116186705 A CN116186705 A CN 116186705A
- Authority
- CN
- China
- Prior art keywords
- code
- threat
- new
- analysis
- security
- 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
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/436—Semantic checking
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及软件安全代码检测与分析技术领域,特别涉及一种基于源代码静态分析的软件安全代码分析器及其检测方法,代码分析器包括代码解析模块、语义分析模块、逻辑分析模块、判定规则库和结果输出模块。检测方法包括:将待检测的软件源代码导入软件安全代码分析器;代码解析模块对源代码进行解析,得到代码解析信息;语义分析模块调取判定规则库中的语义判定规则,根据代码解析信息进行源代码的语义分析,进行风险判断得到第一风险数据;逻辑分析模块调取判定规则库中的逻辑判定规则,根据代码解析信息进行源代码的逻辑分析,进行风险判断得到第二风险数据;将第一风险数据和第二风险数据相互印证,进行风险数据排序,并输出源代码风险报告。
Description
技术领域
本发明涉及软件安全代码检测与分析技术领域,特别涉及一种基于源代码静态分析的软件安全代码分析器及其检测方法。
背景技术
软件使用的安全性非常重要,因此,程序员编写的软件在投入运营使用前,一般宜基于源代码进行软件安全性评估。人工进行软件源代码安全性评估费时费力,效率较低,且容易受到评估人员的水平和状态等人为因素的影响。
CN100461132C公开的基于源代码静态分析的软件安全代码分析器及其检测方法专利文献,对软件源代码采用语义分析,根据语法与语义,分析程序的结构与关键特征,从而获得程序的安全风险并提供报告。用来解决人工进行软件安全性评估存在的问题。
但是,上述专利文献仅从语义分析为基础进行评估并不全面,很多其他方面的软件漏洞不能被发现和补救,评估结果的可靠性较差。
发明内容
为了解决上述技术问题,本发明提供了一种基于源代码静态分析的软件安全代码分析器,包括:
代码解析模块,对软件的源代码进行解析,得到代码解析信息;
语义分析模块,根据代码解析信息进行源代码的语义分析,采用判定规则库中的语义判定规则进行判断,得到第一风险数据;
逻辑分析模块,根据代码解析信息进行源代码的逻辑分析,采用判定规则库中的逻辑判定规则进行判断,得到第二风险数据;
判定规则库,用于存储语义判定规则和逻辑判定规则;
结果输出模块,将第一风险数据和第二风险数据相互印证,进行风险数据排序,并输出源代码风险报告。
可选的,还包括:
新威胁搜索分析模块,通过网络自动进行新威胁搜索,对搜索到的新威胁进行分析,获取新威胁的攻击类型和攻击特性;
判定规则更新模块,根据新威胁的攻击类型和攻击特性,确定新的代码安全规则项或者修改原有的代码安全规则项,得到新的判定规则库。
可选的,新威胁搜索分析模块包括:
搜索控制子模块,用于确定进行网络搜索的时机,当时机满足时启动搜索工作;
网络搜索子模块,用于通过网络自动进行搜索,通过提取分析获取查找到的搜索周期内的威胁的攻击类型和攻击特性;
威胁记录子模块,用于记录和保存各种威胁的攻击类型和攻击特性;
威胁判定子模块,将搜索到的威胁的攻击类型和攻击特性与威胁记录子模块的保存记录进行比对,筛选出新威胁,并将新威胁的攻击类型和攻击特性添加到威胁记录子模块。
可选的,判定规则更新模块包括:
关联度评估子模块,将新威胁的攻击类型和攻击特性与判定规则库存储的各代码安全规则项进行关联度评估,得到关联度数据;
更新控制子模块,根据关联度数据确定是否需要进行代码安全规则更新,若需要更新,确定需要修改的原有代码安全规则项或者添加新代码安全规则项;
规则编辑子模块,根据新威胁的攻击类型和攻击特性,针对需要修改的原有代码安全规则项进行修改,或者重新编辑得到新代码安全规则项;
更新子模块,将修改后的代码安全规则项替代对应的判定规则库中的原有代码安全规则项,或者将新代码安全规则项添加入判定规则库。
可选的,若关联度数据满足第一预设条件,则表示代码安全规则需要更新;
若关联度数据满足第二预设条件,则采用修改原有代码安全规则项进行更新,否则采用添加新代码安全规则项进行更新。
本发明还提供了一种基于源代码静态分析的软件安全检测方法,采用前述软件安全代码分析器,包括以下步骤:
将待检测的软件源代码导入软件安全代码分析器;
代码解析模块对源代码进行解析,得到代码解析信息;
语义分析模块调取判定规则库中的语义判定规则,根据代码解析信息进行源代码的语义分析,进行风险判断得到第一风险数据;
逻辑分析模块调取判定规则库中的逻辑判定规则,根据代码解析信息进行源代码的逻辑分析,进行风险判断得到第二风险数据;
将第一风险数据和第二风险数据相互印证,进行风险数据排序,并输出源代码风险报告。
可选的,对检测采用的判定规则库周期性进行更新,具体包括:
定期通过网络进行新威胁搜索,对搜索到的新威胁进行分析,获取新威胁的攻击类型和攻击特性;
根据新威胁的攻击类型和攻击特性,确定更新方式:采用新增方式则编辑新的代码安全规则项并添加入判定规则库;采用修改方式则对选定的原代码安全规则项进行修改并替代判定规则库中对应的原代码安全规则项。
可选的,新威胁搜索通过以下方式进行:
搜索网络中各节点的安全日志的新增警示信息,通过新增警示信息的指引对威胁进行定位;
根据定位查找获取威胁的攻击类型和攻击特性;
将搜索到的威胁的攻击类型和攻击特性与威胁记录子模块的保存记录进行比对,筛选出新威胁;
将新威胁的攻击类型和攻击特性添加到威胁记录子模块。
可选的,将连接的网络进行抽象,构建搜索网络模型,进行新威胁搜索前,根据搜索网络模型进行搜索路径规划,得到多个搜索线路方案;
根据各网络节点的历史运行速度数据对各节点进行分时赋值;
根据各个搜索线路的节点搜索时序,采用节点在节点搜索时序安排上概率最大的分时赋值作为用时系数,计算搜索线路的各节点的用时系数之和的倒数作为对应搜索线路的搜索效率;
选择搜索效率最大的搜索线路进行新威胁搜索。
可选的,先将各节点的安全日志的新增警示信息进行相互比对,剔除对相同威胁的重复性新增警示信息,在全部新增警示信息不存在对相同威胁的重复性记录后,再通过新增警示信息的指引对威胁进行定位。
本发明的基于源代码静态分析的软件安全代码分析器及其检测方法,在对源代码静态进行语义分析的基础上,结合采用逻辑分析,根据源代码,通过构建抽象的结构树、流程图和关系图,采用数据融合技术,分析源代码逻辑规则;结合逻辑规则与语义分析结果,得出软件安全性评估结果;通过多种分析方式结合,防止评估偏差,提高所得到的软件安全性评估结果可靠性,为弥补软件安全漏洞提供更准确的依据。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种基于源代码静态分析的软件安全代码分析器的示意图;
图2为本发明的基于源代码静态分析的软件安全代码分析器实施例采用的新威胁搜索分析模块和判定规则更新模块与判定规则库的连接关系示意图;
图3为本发明的基于源代码静态分析的软件安全代码分析器实施例采用的新威胁搜索分析模块示意图;
图4为本发明的基于源代码静态分析的软件安全代码分析器实施例采用的判定规则更新模块示意图;
图5为本发明实施例中一种基于源代码静态分析的软件安全检测方法的流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如图1所示,本发明实施例提供了一种基于源代码静态分析的软件安全代码分析器,包括:
代码解析模块10,对软件的源代码进行解析,得到代码解析信息;
语义分析模块20,根据代码解析信息进行源代码的语义分析,采用判定规则库中的语义判定规则进行判断,得到第一风险数据;
逻辑分析模块30,根据代码解析信息进行源代码的逻辑分析,采用判定规则库中的逻辑判定规则进行判断,得到第二风险数据;
判定规则库40,用于存储语义判定规则和逻辑判定规则;
结果输出模块50,将第一风险数据和第二风险数据相互印证,进行风险数据排序,并输出源代码风险报告。
上述技术方案的工作原理和有益效果为:本方案在对源代码静态进行语义分析的基础上,结合采用逻辑分析,根据源代码,通过构建抽象的结构树、流程图和关系图,采用数据融合技术,分析源代码逻辑规则;结合逻辑规则与语义分析结果,得出软件安全性评估结果;通过多种分析方式结合,防止评估偏差,提高所得到的软件安全性评估结果可靠性,为弥补软件安全漏洞提供更准确的依据。
在一个实施例中,如图2所示,还包括:
新威胁搜索分析模块60,通过网络自动进行新威胁搜索,对搜索到的新威胁进行分析,获取新威胁的攻击类型和攻击特性;
判定规则更新模块70,根据新威胁的攻击类型和攻击特性,确定新的代码安全规则项或者修改原有的代码安全规则项,得到新的判定规则库。
上述技术方案的工作原理和有益效果为:本方案通过设置新威胁搜索分析模块和判定规则更新模块,可以及时发现新出现的威胁软件安全的情况,并根据新威胁自动对判定规则库进行相应的更新升级,使得采用更新升级后的判定规则库进行软件源代码安全检测与分析,能够涵盖新出现的威胁内容所利用的软件设计缺陷或者漏洞,自动跟随行业技术发展进行升级,进一步提高软件安全性评估结果可靠性。
在一个实施例中,如图3所示,新威胁搜索分析模块60包括:
搜索控制子模块601,用于确定进行网络搜索的时机,当时机满足时启动搜索工作;
网络搜索子模块602,用于通过网络自动进行搜索,通过提取分析获取查找到的搜索周期内的威胁的攻击类型和攻击特性;
威胁记录子模块603,用于记录和保存各种威胁的攻击类型和攻击特性;
威胁判定子模块604,将搜索到的威胁的攻击类型和攻击特性与威胁记录子模块的保存记录进行比对,筛选出新威胁,并将新威胁的攻击类型和攻击特性添加到威胁记录子模块。
上述技术方案的工作原理和有益效果为:本方案通过搜索控制子模块进行网络搜索的时机的控制,可以是按照预先设定的时长进行周期性搜索,也可以设置特定的触发事件(比如本地遭受新攻击等)启动网络搜索,再通过与保存记录比对,判断是否存在新威胁;从而产生更新判定规则库的需求;一方面相对于不条件地进行实时搜索能够降低资源占有率和能耗;另一方面能够有效地发现新威胁的存在。
在一个实施例中,如图4所示,判定规则更新模块70包括:
关联度评估子模块701,将新威胁的攻击类型和攻击特性与判定规则库存储的各代码安全规则项进行关联度评估,得到关联度数据;
更新控制子模块702,根据关联度数据确定是否需要进行代码安全规则更新,若需要更新,确定需要修改的原有代码安全规则项或者添加新代码安全规则项;
规则编辑子模块703,根据新威胁的攻击类型和攻击特性,针对需要修改的原有代码安全规则项进行修改,或者重新编辑得到新代码安全规则项;具体地,若关联度数据满足第一预设条件,则表示代码安全规则需要更新;若关联度数据满足第二预设条件,则采用修改原有代码安全规则项进行更新,否则采用添加新代码安全规则项进行更新;
更新子模块704,将修改后的代码安全规则项替代对应的判定规则库中的原有代码安全规则项,或者将新代码安全规则项添加入判定规则库。
上述技术方案的工作原理和有益效果为:本方案通过新威胁与判定规则库存储的各代码安全规则项进行关联度评估,对于应对新威胁进行分类处理,若关联度大,则表明当前的判定规则库存储的各代码安全规则项已经能够有效应对新威胁,不需要进行判定规则库的更新;若关联度较小需要更新,首先可以考虑对原有代码安全规则项进行修改实现目的,降低处理难度;若关联度非常小即几乎无关联,一般需要重新编辑新代码安全规则项来实现目的;本方案通过评估分流处理,可以提高处理效率,节省资源。
在一个实施例中,判定规则库40采用代码安全规则项包含的特征指标构建对应的代码安全规则树;
关联度评估子模块701采用以下算法进行关联度评估:
上式中,τi表示新威胁与第i个代码安全规则项的关联度系数;P(xj)表示第j项特征指标xj位于代码安全规则树上的距离赋值;n表示代码安全规则项对应的代码安全规则树上的特征指标数量;Sij表示新威胁与第j项特征指标相似度值;
第一预设条件为所有关联度系数都小于第一设定阈值;
第二预设条件为存在小于第一设定阈值且大于第二设定阈值的关联度系数;该关联度系数对应的原有代码安全规则项即为需要修改的原有代码安全规则项。
上述技术方案的工作原理和有益效果为:本方案通过对代码安全规则项构建对应的代码安全规则树,根据特征指标在代码安全规则树的位置进行距离赋值;在此基础上,采用上述算法计算新威胁与第i个代码安全规则项的关联度系数,通过关联度系数与第一设定阈值和第二设定阈值的比对来确定应对新威胁的判定规则库处理方式,即采用算法解决评估分流处理条件的设定,使得分流方式更为客观,并且通过数值化简化了操作的复杂性。
如图5所示,本发明实施例提供了一种基于源代码静态分析的软件安全代码检测方法,采用前述软件安全代码分析器,包括以下步骤:
S100:将待检测的软件源代码导入软件安全代码分析器;
S200:代码解析模块对源代码进行解析,得到代码解析信息;
S300:语义分析模块调取判定规则库中的语义判定规则,根据代码解析信息进行源代码的语义分析,进行风险判断得到第一风险数据;
S400:逻辑分析模块调取判定规则库中的逻辑判定规则,根据代码解析信息进行源代码的逻辑分析,进行风险判断得到第二风险数据;
S500:将第一风险数据和第二风险数据相互印证,进行风险数据排序,并输出源代码风险报告。
上述技术方案的工作原理和有益效果为:本方案在对源代码静态进行语义分析的基础上,结合采用逻辑分析,根据源代码,通过构建抽象的结构树、流程图和关系图,采用数据融合技术,分析源代码逻辑规则;结合逻辑规则与语义分析结果,得出软件安全性评估结果;通过多种分析方式结合,防止评估偏差,提高所得到的软件安全性评估结果可靠性,为弥补软件安全漏洞提供更准确的依据。
在一个实施例中,对检测采用的判定规则库周期性进行更新,具体包括:
定期通过网络进行新威胁搜索,对搜索到的新威胁进行分析,获取新威胁的攻击类型和攻击特性;
根据新威胁的攻击类型和攻击特性,确定更新方式:采用新增方式则编辑新的代码安全规则项并添加入判定规则库;采用修改方式则对选定的原代码安全规则项进行修改并替代判定规则库中对应的原代码安全规则项。
上述技术方案的工作原理和有益效果为:本方案能够及时发现新出现的威胁软件安全的情况,并根据新威胁自动对判定规则库进行相应的更新升级,使得采用更新升级后的判定规则库进行软件源代码安全检测与分析,能够涵盖新出现的威胁内容所利用的软件设计缺陷或者漏洞,自动跟随行业技术发展进行升级,进一步提高软件安全性评估结果可靠性。
在一个实施例中,新威胁搜索通过以下方式进行:
搜索网络中各节点的安全日志的新增警示信息,通过新增警示信息的指引对威胁进行定位;
根据定位查找获取威胁的攻击类型和攻击特性;
将搜索到的威胁的攻击类型和攻击特性与威胁记录子模块的保存记录进行比对,筛选出新威胁;
将新威胁的攻击类型和攻击特性添加到威胁记录子模块。
上述技术方案的工作原理和有益效果为:本方案选择搜索网络中各节点的安全日志的新增警示信息的方式,大大降低了搜索的难度,可以提高搜索效率;另外,避免搜索时直接面对网络上的威胁,提高了搜索过程本身的安全性。
在一个实施例中,将连接的网络进行抽象,构建搜索网络模型,进行新威胁搜索前,根据搜索网络模型进行搜索路径规划,得到多个搜索线路方案;
根据各网络节点的历史运行速度数据对各节点进行分时赋值;
根据各个搜索线路的节点搜索时序,采用节点在节点搜索时序安排上概率最大的分时赋值作为用时系数,计算搜索线路的各节点的用时系数之和的倒数作为对应搜索线路的搜索效率;
选择搜索效率最大的搜索线路进行新威胁搜索。
上述技术方案的工作原理和有益效果为:本方案通过网络抽象构建搜索网络模型,根据搜索网络模型进行搜索路径规划;通过采集的各网络节点的历史运行速度数据,统计网络节点的历史运行速度的时间规律,根据运行速度的时间规律对各节点进行分时赋值作为对应分时节点处理的用时系数;根据各搜索路径规划,以当前时点为基础形成各个搜索线路的节点搜索时序,采用对应网络节点在节点搜索时序安排上出现概率最大的分时赋值作为用时系数,以同一搜索线路的各节点的用时系数之和的倒数作为对应搜索线路的搜索效率,选择搜索效率最大的搜索线路进行新威胁搜索,能够进一步提高搜索的效率,加快每次对判定规则库更新处理的进程,减少能耗。
在一个实施例中,先将各节点的安全日志的新增警示信息进行相互比对,剔除对相同威胁的重复性新增警示信息,在全部新增警示信息不存在对相同威胁的重复性记录后,再通过新增警示信息的指引对威胁进行定位。
上述技术方案的工作原理和有益效果为:本方案通过先将各节点的安全日志的新增警示信息进行相互比对,剔除对相同威胁的重复性新增警示信息,大大减少后续对新增警示信息处理的数据量,避免重复性数据处理工作浪费资源增加能耗,提高数据处理效率。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于源代码静态分析的软件安全代码分析器,其特征在于,包括:
代码解析模块,对软件的源代码进行解析,得到代码解析信息;
语义分析模块,根据代码解析信息进行源代码的语义分析,采用判定规则库中的语义判定规则进行判断,得到第一风险数据;
逻辑分析模块,根据代码解析信息进行源代码的逻辑分析,采用判定规则库中的逻辑判定规则进行判断,得到第二风险数据;
判定规则库,用于存储语义判定规则和逻辑判定规则;
结果输出模块,将第一风险数据和第二风险数据相互印证,进行风险数据排序,并输出源代码风险报告。
2.根据权利要求1所述的基于源代码静态分析的软件安全代码分析器,其特征在于,还包括:
新威胁搜索分析模块,通过网络自动进行新威胁搜索,对搜索到的新威胁进行分析,获取新威胁的攻击类型和攻击特性;
判定规则更新模块,根据新威胁的攻击类型和攻击特性,确定新的代码安全规则项或者修改原有的代码安全规则项,得到新的判定规则库。
3.根据权利要求2所述的基于源代码静态分析的软件安全代码分析器,其特征在于,新威胁搜索分析模块包括:
搜索控制子模块,用于确定进行网络搜索的时机,当时机满足时启动搜索工作;
网络搜索子模块,用于通过网络自动进行搜索,通过提取分析获取查找到的搜索周期内的威胁的攻击类型和攻击特性;
威胁记录子模块,用于记录和保存各种威胁的攻击类型和攻击特性;
威胁判定子模块,将搜索到的威胁的攻击类型和攻击特性与威胁记录子模块的保存记录进行比对,筛选出新威胁,并将新威胁的攻击类型和攻击特性添加到威胁记录子模块。
4.根据权利要求2所述的基于源代码静态分析的软件安全代码分析器,其特征在于,判定规则更新模块包括:
关联度评估子模块,将新威胁的攻击类型和攻击特性与判定规则库存储的各代码安全规则项进行关联度评估,得到关联度数据;
更新控制子模块,根据关联度数据确定是否需要进行代码安全规则更新,若需要更新,确定需要修改的原有代码安全规则项或者添加新代码安全规则项;
规则编辑子模块,根据新威胁的攻击类型和攻击特性,针对需要修改的原有代码安全规则项进行修改,或者重新编辑得到新代码安全规则项;
更新子模块,将修改后的代码安全规则项替代对应的判定规则库中的原有代码安全规则项,或者将新代码安全规则项添加入判定规则库。
5.根据权利要求4所述的基于源代码静态分析的软件安全代码分析器,其特征在于,若关联度数据满足第一预设条件,则表示代码安全规则需要更新;
若关联度数据满足第二预设条件,则采用修改原有代码安全规则项进行更新,否则采用添加新代码安全规则项进行更新。
6.一种基于源代码静态分析的软件安全检测方法,其特征在于,采用权利要求1所述的软件安全代码分析器,包括以下步骤:
将待检测的软件源代码导入软件安全代码分析器;
代码解析模块对源代码进行解析,得到代码解析信息;
语义分析模块调取判定规则库中的语义判定规则,根据代码解析信息进行源代码的语义分析,进行风险判断得到第一风险数据;
逻辑分析模块调取判定规则库中的逻辑判定规则,根据代码解析信息进行源代码的逻辑分析,进行风险判断得到第二风险数据;
将第一风险数据和第二风险数据相互印证,进行风险数据排序,并输出源代码风险报告。
7.根据权利要求6所述的基于源代码静态分析的软件安全检测方法,其特征在于,对检测采用的判定规则库周期性进行更新,具体包括:
定期通过网络进行新威胁搜索,对搜索到的新威胁进行分析,获取新威胁的攻击类型和攻击特性;
根据新威胁的攻击类型和攻击特性,确定更新方式:采用新增方式则编辑新的代码安全规则项并添加入判定规则库;采用修改方式则对选定的原代码安全规则项进行修改并替代判定规则库中对应的原代码安全规则项。
8.根据权利要求7所述的基于源代码静态分析的软件安全检测方法,其特征在于,新威胁搜索通过以下方式进行:
搜索网络中各节点的安全日志的新增警示信息,通过新增警示信息的指引对威胁进行定位;
根据定位查找获取威胁的攻击类型和攻击特性;
将搜索到的威胁的攻击类型和攻击特性与威胁记录子模块的保存记录进行比对,筛选出新威胁;
将新威胁的攻击类型和攻击特性添加到威胁记录子模块。
9.根据权利要求7所述的基于源代码静态分析的软件安全检测方法,其特征在于,将连接的网络进行抽象,构建搜索网络模型,进行新威胁搜索前,根据搜索网络模型进行搜索路径规划,得到多个搜索线路方案;
根据各网络节点的历史运行速度数据对各节点进行分时赋值;
根据各个搜索线路的节点搜索时序,采用节点在节点搜索时序安排上概率最大的分时赋值作为用时系数,计算搜索线路的各节点的用时系数之和的倒数作为对应搜索线路的搜索效率;
选择搜索效率最大的搜索线路进行新威胁搜索。
10.根据权利要求8所述的基于源代码静态分析的软件安全检测方法,其特征在于,先将各节点的安全日志的新增警示信息进行相互比对,剔除对相同威胁的重复性新增警示信息,在全部新增警示信息不存在对相同威胁的重复性记录后,再通过新增警示信息的指引对威胁进行定位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211438376.1A CN116186705A (zh) | 2022-11-17 | 2022-11-17 | 基于源代码静态分析的软件安全代码分析器及其检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211438376.1A CN116186705A (zh) | 2022-11-17 | 2022-11-17 | 基于源代码静态分析的软件安全代码分析器及其检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116186705A true CN116186705A (zh) | 2023-05-30 |
Family
ID=86444911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211438376.1A Pending CN116186705A (zh) | 2022-11-17 | 2022-11-17 | 基于源代码静态分析的软件安全代码分析器及其检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116186705A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528656A (zh) * | 2016-10-20 | 2017-03-22 | 杨瀛 | 一种基于学员历史和实时学习状态参量实现课程推荐的方法和系统 |
US20180115577A1 (en) * | 2016-10-21 | 2018-04-26 | Tata Consultancy Services Limited | System and method for detecting and mitigating ransomware threats |
CN111404909A (zh) * | 2020-03-10 | 2020-07-10 | 上海豌豆信息技术有限公司 | 一种基于日志分析的安全检测系统及方法 |
CN111859400A (zh) * | 2020-07-29 | 2020-10-30 | 中国工商银行股份有限公司 | 风险评估方法、装置、计算机系统和介质 |
CN112784290A (zh) * | 2021-01-28 | 2021-05-11 | 湖北宸威玺链信息技术有限公司 | 数据导出工具安全性分析方法及系统及数据导出方法 |
CN115310087A (zh) * | 2022-08-05 | 2022-11-08 | 长沙火线云网络科技有限公司 | 一种基于抽象语法树的网站后门检测方法和系统 |
-
2022
- 2022-11-17 CN CN202211438376.1A patent/CN116186705A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528656A (zh) * | 2016-10-20 | 2017-03-22 | 杨瀛 | 一种基于学员历史和实时学习状态参量实现课程推荐的方法和系统 |
US20180115577A1 (en) * | 2016-10-21 | 2018-04-26 | Tata Consultancy Services Limited | System and method for detecting and mitigating ransomware threats |
CN111404909A (zh) * | 2020-03-10 | 2020-07-10 | 上海豌豆信息技术有限公司 | 一种基于日志分析的安全检测系统及方法 |
CN111859400A (zh) * | 2020-07-29 | 2020-10-30 | 中国工商银行股份有限公司 | 风险评估方法、装置、计算机系统和介质 |
CN112784290A (zh) * | 2021-01-28 | 2021-05-11 | 湖北宸威玺链信息技术有限公司 | 数据导出工具安全性分析方法及系统及数据导出方法 |
CN115310087A (zh) * | 2022-08-05 | 2022-11-08 | 长沙火线云网络科技有限公司 | 一种基于抽象语法树的网站后门检测方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245496A (zh) | 一种源代码漏洞检测方法及检测器和其训练方法及系统 | |
CN102034042B (zh) | 基于函数调用关系图特征的恶意代码检测新方法 | |
CN109241740B (zh) | 恶意软件基准测试集生成方法及装置 | |
CN111400724B (zh) | 基于代码相似性分析的操作系统脆弱性检测方法、系统及介质 | |
US20070027674A1 (en) | Analytical system for discovery and generation of rules to predict and detect anomalies in data and financial fraud | |
CN105335391A (zh) | 基于搜索引擎的搜索请求的处理方法和装置 | |
CN110287292B (zh) | 一种裁判量刑偏离度预测方法及装置 | |
CN110704846B (zh) | 一种人在回路的智能化安全漏洞发现方法 | |
CN116882978B (zh) | 一种基于产品信息框架的深海潜水器运维保障系统 | |
CN114726654B (zh) | 应对云计算网络攻击的数据分析方法及服务器 | |
US6973446B2 (en) | Knowledge finding method | |
CN111047173B (zh) | 基于改进d-s证据理论的社团可信度评估方法 | |
CN113779590B (zh) | 一种基于多维度表征的源代码漏洞检测方法 | |
Kala et al. | Apriori and sequence analysis for discovering declarative process models | |
CN112073396A (zh) | 一种内网横向移动攻击行为的检测方法及装置 | |
CN116186705A (zh) | 基于源代码静态分析的软件安全代码分析器及其检测方法 | |
CN116796323A (zh) | 一种智能合约重入攻击检测方法、系统及终端设备 | |
CN116663018A (zh) | 一种基于代码可执行路径的漏洞检测方法及装置 | |
CN109002716A (zh) | 一种移动应用的恶意代码入侵检测与防范方法 | |
CN114780439A (zh) | 一种面向参数路径流图的相似程序间测试用例的重用方法 | |
CN111221704B (zh) | 一种确定办公管理应用系统运行状态的方法及系统 | |
KR20230052010A (ko) | Ai 기반 모델 선택 알고리즘을 이용한 수요 예측 방법 | |
CN117473571B (zh) | 一种数据信息安全处理方法及系统 | |
Ifham et al. | Unsupervised Learning Approach for Clustering Source Code based on Functionalities | |
Mim et al. | Impact of Centrality on Automated Vulnerability Detection Using Convolutional Neural Network |
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 |