CN103713998A - 一种可扩展的在线静态代码缺陷分析方法 - Google Patents

一种可扩展的在线静态代码缺陷分析方法 Download PDF

Info

Publication number
CN103713998A
CN103713998A CN201310557353.7A CN201310557353A CN103713998A CN 103713998 A CN103713998 A CN 103713998A CN 201310557353 A CN201310557353 A CN 201310557353A CN 103713998 A CN103713998 A CN 103713998A
Authority
CN
China
Prior art keywords
defect analysis
defect
code
interface
analysis
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
CN201310557353.7A
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.)
Xu Qin
Original Assignee
BEIJING SAFE-CODE TECHNOLOGY 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 BEIJING SAFE-CODE TECHNOLOGY Co Ltd filed Critical BEIJING SAFE-CODE TECHNOLOGY Co Ltd
Priority to CN201310557353.7A priority Critical patent/CN103713998A/zh
Publication of CN103713998A publication Critical patent/CN103713998A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种可扩展的静态代码缺陷分析方法。该方法包括:设计了一个高度可扩展的系统架构,对多个缺陷检测工具进行封装和集成;之后对缺陷检测报告进行有效汇总和排序,充分发挥多个缺陷检测工具的优势,提高代码静态分析的效率。

Description

一种可扩展的在线静态代码缺陷分析方法
技术领域
本发明涉及代码检测技术,特别涉及一种可扩展的在线静态代码缺陷分析方法。 
背景技术
随着社会信息化的不断深入,各类应用软件的使用,人们不得不开始面对日益突出的软件安全问题。 
软件代码安全是一个随时都在发展和变化的动态事物,攻击的领域已经由传统的网络和系统层面上升到了应用层面,近期越来越多的应用系统面临攻击威胁。应用系统的安全性能,一方面立足于系统安全方案的分析与设计,而另一方面同样也取决于系统实现过程中是否存在安全性缺陷。为降低应用系统的安全风险,减少软件代码编写中可能出现的安个漏洞,提高应用系统自身安全防护能力,软件的应用方越来越依赖于采用源代码安全扫描工具在软件开发的过程中去帮助软件开发团队快速查找、定位、修复和管理软件代码安全问题,应用静态源代码安全扫描的的主要价值在于能够快速、准确地查找,定位和修复软代码中存在的安全风险,增加工具投资所带来的最大效益,节约代码安全分析的成本,最终开发安全的软件。 
静态代码审计是近年被人提及较多的软件应用安全解决方案之一。它是指在软件工程中,程序员在写好源代码后,无需经过编译器编译,而直接使用一些扫描工具对其进行扫描,找出代码当中存在的一些安全漏洞的解决方案。 
静态代码审计的优点在于,无需进行编译、也无需去搭建运行环境,就可以对程序员所写的源代码进行扫描。可以节省大量的人力和时间成本,提高开发效率,并且能够发现很多靠人力无法发现的安全漏洞,站在黑客的角度去审查程序员的代码,大大降低项目中的安全风险,提高软件质量。 
然而,目前的静态缺陷分析工具在可用性和有效性方面仍然存在着很多不足,制约了这类工具的进一步广泛应用。 
可用性方面的问题主要包括:每个独立缺陷分析工具都需要程序员手工地在其本地安装配置。这个过程会占用程序员大量的时间和精力;每个独立缺陷分析工具的运行依赖于程序员本地计算机的性能,当程序员本地机器的性能低下时,独立缺陷分析工具的计算效率不如人意;不同的缺陷分析工具优劣势不同,使用单一的缺陷分析工具无法较全面地进行缺陷检测。 
有效性方面的问题主要包括:静态分析技术往往静态地近似模拟受检项目的运行时过程,导致静态缺陷分析工具的缺陷报告中往往存在大量的误报;除了误报,静态缺陷分析工具的缺陷报告中依然会存在很多虽然正确但不足以引起程序员修复动作(重要性或严重性较低)的缺陷报告。 
鉴于当前的情况,一个具有良好架构的在线静态代码缺陷分析方法可以在很在一定程度上缓解上述问题。 
发明内容
本发明实施例提供的一种可扩展的在线静态代码缺陷分析方法,用以解决现有技术存在的可操作性与代码缺陷分析效率的问题。 
一种可扩展的在线静态代码缺陷分析方法包括: 
基于B/S架构,从浏览器进行代码分析操作;部署可扩展的数据存取系统,封装集成多种开源静态代码分析工具,屏蔽各工具的系统差异性,提供统一调用接口;对缺陷分析报告进行一定排序,能够基于机器学习的方式对各开源工具的缺陷修复历史进行挖掘学习,最终得到汇总后的缺陷分析报告。 
附图说明
图1为静态代码缺陷分析系统意图; 
图2为静态代码缺陷分析系统部署示意图; 
图3为代码分析过程示意图。 
具体实施方式
针对现有技术存在的现有技术中存在的可操作性与代码缺陷分析效率的问题,本发明实施例基于B/S架构,从浏览器进行代码分析操作。 
数据存取系统可扩展,独立部署Windows文件系统和Hadoop分布式文件系统服务器,数据需求增加时,Hadoop分布式文件系统可以通过增加存储节点扩展存储容量。 
集成各个独立缺陷分析工具,各个缺陷分析工具封装部署为独立的web服务,并且以统一的“外部访问接口”对外提供访问操作。基于统一的标准化接口对各个独立缺陷分析工具的封装,屏蔽各个缺陷分析工具的系统差异性,当存在缺陷能力扩展需求时,只需要基于封装接口对新的缺陷分析工具进行集成。 
上述统一的“外部访问接口”有6个: 
根据指定位置获取待分析代码压缩包接口,指定位置可以是windows文件系统本地路径,也可以说Hadoop文件系统统一资源标识符指定的位置; 
待分析代码进行格式转换或结构调整接口,根据特定静态代码分析工具的需求,对代码压缩包进行解压、源码编译、结构调整、配置文件补充等操作; 
对待分析代码进行缺陷分析过程接口,通过命令行调用方式启动代码分析工具对当前代码进行缺陷分析; 
解析缺陷分析报告并以统一的格式保存接口,解析缺陷分析报告并提取特定信息以特定格式保存至数据库中; 
获取特定格式的缺陷分析报告位置接口,指定所需的分析报告格式,获取 格式化后的指定格式报告访问的完整路径; 
获取缺陷分析过程的异常描述信息接口,根据不同缺陷分析工具的封装过程,获取其执行过程中的异常日志信息。 
对获取的多个工具的缺陷分析报告排序,在进行排序前,首先为每条缺陷分析报告计算排序影响因子得分。影响因子分为3类:第一类影响因子是缺陷分析报告提供的描述信息,该类信息可以直接从各个缺陷分析服务的报告中得到;第二类影响因子是基于缺陷分析报告的统计信息,该类信息通过对所有的缺陷分析报告进行自动化统计而得到;第三类影响因子是每条缺陷分析报告相关的代码特征的提取,该类信息的提取通过部署于独立节点上的“代码特征提取服务”完成。在完成影响因子值的提取后,利用内置的、提前训练好的“得分排序器”为每一条缺陷分析报告计算排序得分。排序器训练的思想是基于机器学习的方式,通过挖掘开源项目的代码跟踪系统和版本控制系统中存储的信息,自动化地学习,总结出开源项目的缺陷修复历史,并据此对静态缺陷分析报告进行自动化评估,从而得到训练集。完成排序得分的预估后,根据排序得分对所有的缺陷分析报告进行降序排列,形成缺陷分析报告并返回给用户,用户可以基于该返回的缺陷分析报告进行相应的缺陷修复动作。 
如图3所示,为本发明实施例所述可扩展的在线静态代码缺陷分析方法实现流程图。主要包括如下步骤: 
步骤301、访问web界面,指定待测源码的位置。 
步骤302、系统相应用户请求,启动分析过程,首先接收代码并保存。 
步骤303、系统通知各静态代码分析工具,启动各自的分析过程。代码分析工具在各自的工作空间中,先把获取的代码按照所需格式调整转换,然后启动分析程序,获得分析报告。 
步骤304、基于机器学习的方式,根据3类影响因子,为每个缺陷分析报告计算排序得分,并形成最终的缺陷分析报告并返回给用户。 
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。 

Claims (5)

1.一种可扩展的在线静态代码缺陷分析方法,其特征在于,该方法包括:
基于B/S架构,从浏览器进行代码分析操作;部署可扩展的数据存取系统,封装集成多种开源静态代码分析工具,屏蔽各工具的系统差异性,提供统一调用接口;对缺陷分析报告进行一定排序,能够基于机器学习的方式对各开源工具的缺陷修复历史进行挖掘学习,最终得到汇总后的缺陷分析报告。
2.如权利要求1所述的方法,其特征在于,所述方法的可扩展性,具体包括:
数据存取系统的可扩展性,独立部署Windows文件系统和Hadoop分布式文件系统服务器,数据需求增加时,Hadoop分布式文件系统可以通过增加存储节点扩展存储容量;
代码分析模块的可扩展性,集成在系统中的各个缺陷分析工具被封装部署为独立的web服务,并且以统一的“外部访问接口”对外提供访问,当存在缺陷能力扩展需求时,只需要基于封装接口对新的缺陷分析工具进行集成。
3.如权利要求1所述的方法,其特征在于,所述提供的统一调用标准化接口,具体包括:
根据指定位置获取待分析代码压缩包接口,待分析代码进行格式转换或结构调整接口,对待分析代码进行缺陷分析过程接口,解析缺陷分析报告并以统一的格式保存接口,获取特定格式的缺陷分析报告位置接口,获取缺陷分析过程的异常描述信息接口。
4.如权利要求1所述的方法,其特征在于,缺陷分析报告排序有3个影响因子,具体包括:
缺陷分析报告提供描述信息、基于缺陷分析报告的统计信息以及与缺陷分析报告相关的受检代码特征信息。
5.如权利要求1所述的方法,其特征在于,完成排序得分的预估后,系统会根据排序得分对所有的缺陷分析报告进行降序排列,形成缺陷分析报告并返回给用户。用户可以基于该返回的缺陷分析报告进行相应的缺陷修复动作。
CN201310557353.7A 2013-11-07 2013-11-07 一种可扩展的在线静态代码缺陷分析方法 Pending CN103713998A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310557353.7A CN103713998A (zh) 2013-11-07 2013-11-07 一种可扩展的在线静态代码缺陷分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310557353.7A CN103713998A (zh) 2013-11-07 2013-11-07 一种可扩展的在线静态代码缺陷分析方法

Publications (1)

Publication Number Publication Date
CN103713998A true CN103713998A (zh) 2014-04-09

Family

ID=50406995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310557353.7A Pending CN103713998A (zh) 2013-11-07 2013-11-07 一种可扩展的在线静态代码缺陷分析方法

Country Status (1)

Country Link
CN (1) CN103713998A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105809039A (zh) * 2016-03-04 2016-07-27 南京大学 缓冲区溢出漏洞自动修复方法
CN106095446A (zh) * 2016-06-14 2016-11-09 深圳市彬讯科技有限公司 软件源代码在线检测系统及其检测方法
CN106372511A (zh) * 2016-08-24 2017-02-01 北京奇虎测腾安全技术有限公司 一种源代码检测系统及方法
CN107045477A (zh) * 2016-12-30 2017-08-15 上海富聪金融信息服务有限公司 一种可进行多维度检测的质量评估平台
CN109408389A (zh) * 2018-10-30 2019-03-01 北京理工大学 一种基于深度学习的代码缺陷检测方法及装置
CN111913872A (zh) * 2019-05-09 2020-11-10 南京大学 一种基于缺陷预测的软件静态检查警告排序优化方法
CN112328475A (zh) * 2020-10-28 2021-02-05 南京航空航天大学 一种面向多可疑代码文件的缺陷定位方法
CN114816963A (zh) * 2022-06-28 2022-07-29 南昌航空大学 嵌入式软件质量评估方法、系统、计算机及可读存储介质
WO2024078062A1 (zh) * 2022-10-12 2024-04-18 中兴通讯股份有限公司 代码静态分析结果管理方法、设备及可读存储介质

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105809039A (zh) * 2016-03-04 2016-07-27 南京大学 缓冲区溢出漏洞自动修复方法
CN105809039B (zh) * 2016-03-04 2018-07-27 南京大学 缓冲区溢出漏洞自动修复方法
CN106095446A (zh) * 2016-06-14 2016-11-09 深圳市彬讯科技有限公司 软件源代码在线检测系统及其检测方法
CN106372511A (zh) * 2016-08-24 2017-02-01 北京奇虎测腾安全技术有限公司 一种源代码检测系统及方法
CN107045477A (zh) * 2016-12-30 2017-08-15 上海富聪金融信息服务有限公司 一种可进行多维度检测的质量评估平台
CN109408389A (zh) * 2018-10-30 2019-03-01 北京理工大学 一种基于深度学习的代码缺陷检测方法及装置
CN109408389B (zh) * 2018-10-30 2020-10-16 北京理工大学 一种基于深度学习的代码缺陷检测方法及装置
CN111913872A (zh) * 2019-05-09 2020-11-10 南京大学 一种基于缺陷预测的软件静态检查警告排序优化方法
CN112328475A (zh) * 2020-10-28 2021-02-05 南京航空航天大学 一种面向多可疑代码文件的缺陷定位方法
CN114816963A (zh) * 2022-06-28 2022-07-29 南昌航空大学 嵌入式软件质量评估方法、系统、计算机及可读存储介质
WO2024078062A1 (zh) * 2022-10-12 2024-04-18 中兴通讯股份有限公司 代码静态分析结果管理方法、设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN103713998A (zh) 一种可扩展的在线静态代码缺陷分析方法
CN108090567B (zh) 电力通信系统故障诊断方法及装置
US7496795B2 (en) Method, system, and computer program product for light weight memory leak detection
CN102684927B (zh) 一种巡检网络设备的方法和装置
CN109670091B (zh) 一种基于数据标准的元数据智能维护方法和装置
CN106231074A (zh) 一种消息处理的方法及装置
CN111614483A (zh) 链路监控方法、装置、存储介质及计算机设备
US20220138032A1 (en) Analysis of deep-level cause of fault of storage management
CN113051308A (zh) 告警信息处理方法、设备、存储介质及装置
CN109144852A (zh) 静态代码的扫描方法、装置、计算机设备及存储介质
CN110647472A (zh) 崩溃信息统计方法、装置、计算机设备及存储介质
CN102043720A (zh) 利用sql语句自动生成测试数据的方法和装置
CN107609179A (zh) 一种数据处理方法及设备
CN107579976A (zh) 自定义检测网站敏感信息的方法及装置
CN110515758A (zh) 一种故障定位方法、装置、计算机设备及存储介质
CN106301975A (zh) 一种数据检测方法及其装置
CN110427622A (zh) 语料标注的评估方法、装置及存储介质
CN109559121A (zh) 交易路径调用异常分析方法、装置、设备及可读存储介质
CN113609008A (zh) 测试结果分析方法、装置和电子设备
CN116074183B (zh) 一种基于规则引擎的c3超时分析方法、装置及设备
CN114091699A (zh) 一种电力通信设备故障诊断方法及系统
CN114444087A (zh) 一种越权漏洞检测方法、装置、电子设备及存储介质
CN114445162A (zh) 反向追溯企业发票系统配置的方法
CN113282493A (zh) 冒烟测试的方法、装置、存储介质和电子设备
CN109062797B (zh) 生成信息的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Zhu Yantao

Inventor after: Wang Lijin

Inventor after: Xu Qin

Inventor after: Li Rong

Inventor after: Guo Jingjing

Inventor before: Li Xing

Inventor before: Li Wei

Inventor before: Ma Yanbin

Inventor before: Xu Qin

Inventor before: Wang Lijin

Inventor before: Zhang Ling

Inventor before: Lu Yunlong

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: LI XING LI WEI MA YANBIN XU QIN WANG LIJIN ZHANG LING LU YUNLONG TO: ZHU YANTAO WANG LIJIN XU QIN LI RONG GUO JINGJING

C41 Transfer of patent application or patent right or utility model
CB03 Change of inventor or designer information

Inventor after: Xu Qin

Inventor before: Zhu Yantao

Inventor before: Wang Lijin

Inventor before: Xu Qin

Inventor before: Li Rong

Inventor before: Guo Jingjing

COR Change of bibliographic data
TA01 Transfer of patent application right

Effective date of registration: 20160122

Address after: 100082, building 1, building 32, 612 North Main Street, Haidian District, Beijing, Xizhimen

Applicant after: Xu Qin

Address before: 100082, building 1, building 32, 612 North Main Street, Haidian District, Beijing, Xizhimen

Applicant before: Beijing Safe-Code Technology Co., Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140409

WD01 Invention patent application deemed withdrawn after publication