CN112632546A - 广电行业自动化代码分析方法 - Google Patents

广电行业自动化代码分析方法 Download PDF

Info

Publication number
CN112632546A
CN112632546A CN202011628199.4A CN202011628199A CN112632546A CN 112632546 A CN112632546 A CN 112632546A CN 202011628199 A CN202011628199 A CN 202011628199A CN 112632546 A CN112632546 A CN 112632546A
Authority
CN
China
Prior art keywords
code
analysis
scanning
report
television industry
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
CN202011628199.4A
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.)
Wasu Media & Network Co ltd
Original Assignee
Wasu Media & Network 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 Wasu Media & Network Co ltd filed Critical Wasu Media & Network Co ltd
Priority to CN202011628199.4A priority Critical patent/CN112632546A/zh
Publication of CN112632546A publication Critical patent/CN112632546A/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3628Software debugging of optimised code

Landscapes

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

Abstract

本发明公开了广电行业自动化代码分析方法,具体包括如下步骤:101)动态检测步骤、102)信息检测步骤、103)代码扫描步骤、104)代码分析步骤、105)报告步骤;本发明提供实现广电行业对于代码漏洞、BUG、规范性、安全性等规范要求的工具化,实现生产环境代码扫描常态化制度化,极大提升了代码质量和安全性的广电行业自动化代码分析方法。

Description

广电行业自动化代码分析方法
技术领域
本发明涉及代码分析领域,更具体的说,它涉及广电行业自动化代码分析方法。
背景技术
随着IT的进步,对于广电行业的服务平台提出了更高的质量和安全性要求,但目前部分服务平台由外包团队完成,代码的规范性和质量缺乏完备的保障。
目前对于代码质量的管理主要有三种技术:
1、定期组织专家对服务平台的代码进行评审;
2、提供开发环境的代码规范性检查插件,由程序员开发过程中进行自检;
3、制定完备的测试验收流程,对最终产品进行验收。
但现有技术存在许多客观缺点:
缺点一:组织专家评审费时费力,团队开发代码量大,无法做到全部审查;
缺点二:代码规范性检查插件只针对规范性进行校验,无法覆盖到代码漏洞、安全性等其他问题;
缺点三:测试验收作为项目最终的把关可有效保障代码质量,但无法涉及到代码的规范性,后期发现缺陷,修复的成本也相应提高。
发明内容
本发明克服了现有技术的不足,提供一种针对广电行业的自动化代码分析方法。
本发明的技术方案如下:
广电行业自动化代码分析方法,具体包括如下步骤:
101)动态检测步骤:广电行业项目的开发人员将含有代码分析任务脚本文件的本地代码提交至远程公共代码仓库;代码一经提交至仓库,由CI/CD工具动态检测到代码更新情况,并拉取相应广电行业项目的各子系统的源代码至指定代码分析仓库目录下;
102)信息检测步骤:通过脚本文件获取并记录步骤101)提交的本次更新的相关信息,包含通用信息和项目相关信息;
通用信息包括本次代码提交的人员信息、时间信息;项目相关信息包括本次提交代码的项目名称、代码分支信息、日志记录;
103)代码扫描步骤:步骤102)中的代码同步至远程公共代码仓库后,CI/CD工具会自动触发流水线进行代码扫描任务;
代码扫描模块接收到扫描任务启动指令后,则自动从代码扫描模块获取针对广电行业业务规范定制的代码扫描规则;代码扫描模块获取到相应的代码扫描规则后,对远程公共代码仓库路径下的工程进行源代码扫描;
104)代码分析步骤:步骤103)的代码扫描模块完成扫描任务后即调起代码分析模块,依据代码分析模块中的分析规则对上一步中扫描的源代码进行漏洞、BUG、代码规范性、安全热定内容的逐项代码分析,并生成分析日志文件;
105)报告步骤:步骤104)的代码分析结束后,分析报告模块针对广电行业规范要求自定义质量阈值生成个性化、可视化的扫描报告,报告包括代码扫描的覆盖率情况、代码中BUG的数量比例、代码中漏洞的数量比例、代码的多余重复率、代码不规范的实例数量比例、单个类/接口/方法中的行数、是否写了注释、代码的认知复杂度、自动生成的问题统计图表、问题代码的相应解决意见、建议;
报告生成后,以单个报告级别的RBAC用户角色权限设计方式分离权限,而后通过hook的方式将报告发送给开发人员,开发人员根据报告内容修复源代码中的缺陷,即可再次提交代码重复步骤101),直至修复所有缺陷。
进一步的,步骤103)中的代码扫描规则包含以下五部分:
(1)代码漏洞:是指代码中可能存在会对系统安全、性能方面产生重大影响的问题;
(2)BUG:是指代码中可能存在会对业务逻辑产生影响的语法异常问题;
(3)规范性:是指代码中存在的语法不符合业界通用的语言规范问题;
(4)安全热点:是指代码中的一些安全敏感问题;
(5)SQL语句:是指SQL语句的使用规范问题。
本发明相比现有技术优点在于:本发明针对广电行业的代码规范及安全性等要求,自定义相应的扫描规则,该规则主要包含代码漏洞、BUG、规范性、安全热点、SQL语句等领域。对于代码分析结果进行量化分析,针对广电行业代码规范及安全性要求设定项目质量阈值,如设定漏洞阈值为0,即不允许漏洞存在,则当项目不满足该质量阈值要求时,在报告首页会以红色标注,同时在缺陷详情信息中提供修复建议,形成个性化、可视化的代码分析报告。
本发明对于一段时间内代码分析结果进行统计分析,生成项目和开发人员代码质量的曲线图,通过纵向对比,体现代码质量的改进过程,通过横向对比,发现项目和开发人员之际代码质量的优劣,为项目决策提供依据。
本发明实现广电行业对于代码漏洞、BUG、规范性、安全性等规范要求的工具化,实现生产环境代码扫描常态化制度化,极大提升了代码质量和安全性。统一团队开发代码规范,提升团队整体开发效率和质量,减少运维测试成本。
附图说明
图1为本发明的整体框架图;
图2为本发明的代码扫描分析流程图;
图3为本发明的代码分析规则开发框架图。
具体实施方式
下面结合附
图和具体实施方式对本发明进一步说明。
如图1至图3所示,广电行业自动化代码分析方法,具体包括如下步骤:
101)动态检测步骤:广电行业项目的开发人员将含有代码分析任务脚本文件的本地代码提交至远程公共代码仓库(如git仓库)。代码一经提交至仓库,由CI/CD工具(例如GoCD、Drone、Jenkins等)动态检测到代码更新情况,并拉取相应广电行业项目的各子系统的源代码至指定代码分析仓库目录下。
102)信息检测步骤:通过脚本文件获取并记录步骤101)提交的本次更新的相关信息,主要包含通用信息和项目相关信息。
通用信息包括本次代码提交的人员信息、时间信息。项目相关信息包括本次提交代码的项目名称、代码分支信息、日志记录。
103)代码扫描步骤:步骤102)中的代码同步至远程公共代码仓库后,CI/CD工具会自动触发流水线进行代码扫描任务。
代码扫描模块接收到扫描任务启动指令后,则自动从代码扫描模块获取针对广电行业业务规范定制的代码扫描规则。代码扫描模块获取到相应的代码扫描规则后,对远程公共代码仓库路径下的工程进行源代码扫描。
代码扫描规则包含以下五部分:
(1)代码漏洞:是指代码中可能存在会对系统安全、性能方面产生重大影响的问题。例如,内存泄漏、加密算法失效等问题。
(2)BUG:是指代码中可能存在会对业务逻辑产生影响的语法异常问题。例如,死循环、逻辑死锁、空指针异常等问题。
(3)规范性:是指代码中存在的语法不符合业界通用的语言规范问题。例如:变量命名规则、类方法注释、注解使用等问题。
(4)安全热点:是指代码中的一些安全敏感问题,例如:cookies的安全敏感,哈希数据的安全敏感等问题。
(5)SQL语句:是指SQL语句的使用规范问题,例如:运算符的使用等问题。
104)代码分析步骤:步骤103)的代码扫描模块完成扫描任务后即调起代码分析模块,依据代码分析模块中的分析规则对上一步中扫描的源代码进行漏洞、BUG、代码规范性、安全热定等内容的逐项代码分析,并生成分析日志文件。
105)报告步骤:步骤104)的代码分析结束后,分析报告模块针对广电行业规范要求自定义质量阈值生成个性化、可视化的扫描报告,报告主要包含以下方面:
(1)代码扫描的覆盖率情况。
(2)代码中BUG的数量比例。
(3)代码中漏洞的数量比例。
(4)代码的多余重复率。
(5)代码不规范的实例数量比例。
(6)单个类/接口/方法中的行数、是否写了注释等问题。
(7)代码的认知复杂度。
(8)自动生成的问题统计图表。
(9)问题代码的相应解决意见、建议等。
报告生成后,以单个报告级别的RBAC用户角色权限设计方式分离权限,而后通过hook的方式(邮件、网页等多种形式)将报告发送给开发人员,开发人员根据报告内容修复源代码中的缺陷,即可再次提交代码重复步骤101),直至修复所有缺陷。
其中代码扫描的分析流程如下:
加载源文件、代码和分析规则的定义,判断规则是否依赖jar库,如果是依赖jar库则获取jar库规则并获取相应的代码分析规则,否则的话直接加载代码分析规则。将源文件抽象为文件树,提取文件树中的一个节点,结合加载的代码分析规则,得到一条代码分析结果,并进行记录。循环此判断过程,直至判断完所有节点。分析整理节点分析结果并结合源代码具体位置进行记录。
代码分析模块包括有规则插件对接模块,首先对代码分析模块的开发标准包括规则定义和结果进行确认。再依据代码扫描模块进行相应的规则定义,一般包括唯一可识别的key,相应的规则属性、名称以及严重程度分析等,定义相应规则逻辑和规则主体,定义规则的结果展示,相应结果的原因和解决建议等。最后将设定的规则接入到代码分析模块对应的数据库中。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。

Claims (2)

1.广电行业自动化代码分析方法,其特征在于,具体包括如下步骤:
101)动态检测步骤:广电行业项目的开发人员将含有代码分析任务脚本文件的本地代码提交至远程公共代码仓库;代码一经提交至仓库,由CI/CD工具动态检测到代码更新情况,并拉取相应广电行业项目的各子系统的源代码至指定代码分析仓库目录下;
102)信息检测步骤:通过脚本文件获取并记录步骤101)提交的本次更新的相关信息,包含通用信息和项目相关信息;
通用信息包括本次代码提交的人员信息、时间信息;项目相关信息包括本次提交代码的项目名称、代码分支信息、日志记录;
103)代码扫描步骤:步骤102)中的代码同步至远程公共代码仓库后,CI/CD工具会自动触发流水线进行代码扫描任务;
代码扫描模块接收到扫描任务启动指令后,则自动从代码扫描模块获取针对广电行业业务规范定制的代码扫描规则;代码扫描模块获取到相应的代码扫描规则后,对远程公共代码仓库路径下的工程进行源代码扫描;
104)代码分析步骤:步骤103)的代码扫描模块完成扫描任务后即调起代码分析模块,依据代码分析模块中的分析规则对上一步中扫描的源代码进行漏洞、BUG、代码规范性、安全热定内容的逐项代码分析,并生成分析日志文件;
105)报告步骤:步骤104)的代码分析结束后,分析报告模块针对广电行业规范要求自定义质量阈值生成个性化、可视化的扫描报告,报告包括代码扫描的覆盖率情况、代码中BUG的数量比例、代码中漏洞的数量比例、代码的多余重复率、代码不规范的实例数量比例、单个类/接口/方法中的行数、是否写了注释、代码的认知复杂度、自动生成的问题统计图表、问题代码的相应解决意见、建议;
报告生成后,以单个报告级别的RBAC用户角色权限设计方式分离权限,而后通过hook的方式将报告发送给开发人员,开发人员根据报告内容修复源代码中的缺陷,即可再次提交代码重复步骤101),直至修复所有缺陷。
2.根据权利要求1所述的广电行业自动化代码分析方法,其特征在于:步骤103)中的代码扫描规则包含以下五部分:
(1)代码漏洞:是指代码中可能存在会对系统安全、性能方面产生重大影响的问题;
(2)BUG:是指代码中可能存在会对业务逻辑产生影响的语法异常问题;
(3)规范性:是指代码中存在的语法不符合业界通用的语言规范问题;
(4)安全热点:是指代码中的一些安全敏感问题;
(5)SQL语句:是指SQL语句的使用规范问题。
CN202011628199.4A 2020-12-31 2020-12-31 广电行业自动化代码分析方法 Pending CN112632546A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011628199.4A CN112632546A (zh) 2020-12-31 2020-12-31 广电行业自动化代码分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011628199.4A CN112632546A (zh) 2020-12-31 2020-12-31 广电行业自动化代码分析方法

Publications (1)

Publication Number Publication Date
CN112632546A true CN112632546A (zh) 2021-04-09

Family

ID=75290272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011628199.4A Pending CN112632546A (zh) 2020-12-31 2020-12-31 广电行业自动化代码分析方法

Country Status (1)

Country Link
CN (1) CN112632546A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672507A (zh) * 2021-08-16 2021-11-19 深圳供电局有限公司 软件源代码检测方法、装置、计算机设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130014093A1 (en) * 2010-03-29 2013-01-10 Soft4Soft Co., Ltd. Code inspection executing system for performing a code inspection of abap source codes
CN109542769A (zh) * 2018-10-25 2019-03-29 武汉精立电子技术有限公司 一种持续集成的自动化测试方法
CN110162980A (zh) * 2019-05-31 2019-08-23 上交所技术有限责任公司 一种软件开发过程中一站式安全测试和管理的方法
CN111008376A (zh) * 2019-12-09 2020-04-14 国网山东省电力公司电力科学研究院 一种基于代码动态分析的移动应用源代码安全审计系统
CN111837109A (zh) * 2019-11-22 2020-10-27 深圳海付移通科技有限公司 一种代码质量和缺陷的分析方法、服务器及存储介质
CN112148602A (zh) * 2020-09-17 2020-12-29 云南电网有限责任公司信息中心 一种基于历史优化特征智能学习的源代码安全分析方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130014093A1 (en) * 2010-03-29 2013-01-10 Soft4Soft Co., Ltd. Code inspection executing system for performing a code inspection of abap source codes
CN109542769A (zh) * 2018-10-25 2019-03-29 武汉精立电子技术有限公司 一种持续集成的自动化测试方法
CN110162980A (zh) * 2019-05-31 2019-08-23 上交所技术有限责任公司 一种软件开发过程中一站式安全测试和管理的方法
CN111837109A (zh) * 2019-11-22 2020-10-27 深圳海付移通科技有限公司 一种代码质量和缺陷的分析方法、服务器及存储介质
CN111008376A (zh) * 2019-12-09 2020-04-14 国网山东省电力公司电力科学研究院 一种基于代码动态分析的移动应用源代码安全审计系统
CN112148602A (zh) * 2020-09-17 2020-12-29 云南电网有限责任公司信息中心 一种基于历史优化特征智能学习的源代码安全分析方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672507A (zh) * 2021-08-16 2021-11-19 深圳供电局有限公司 软件源代码检测方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
US11487539B2 (en) Systems and methods for automating and monitoring software development operations
Nguyen et al. An automatic method for assessing the versions affected by a vulnerability
US11907107B2 (en) Auto test generator
US8875110B2 (en) Code inspection executing system for performing a code inspection of ABAP source codes
US10339029B2 (en) Automatically detecting internalization (i18n) issues in source code as part of static source code analysis
CN113326247B (zh) 云端数据的迁移方法、装置及电子设备
US11768851B2 (en) Systems and methods for facilitating data transformation
US11144643B1 (en) Functional language source code vulnerability scanner
Zhao et al. Towards an understanding of change types in bug fixing code
Yang et al. Vuldigger: A just-in-time and cost-aware tool for digging vulnerability-contributing changes
CN113760947A (zh) 一种数据中台、数据处理方法、装置、设备及存储介质
CN112650526B (zh) 版本一致性的检测方法、装置、电子设备和介质
CN112632546A (zh) 广电行业自动化代码分析方法
CN111258562A (zh) Java代码质量检查方法、装置、设备和存储介质
CN115794858A (zh) 查询语句处理方法、装置、设备及存储介质
CN114691197A (zh) 代码分析方法、装置、电子设备和存储介质
Moreira et al. An exploratory study on extract method floss-refactoring
CN114327588A (zh) 一种代码提交日志的处理方法及装置
US11894976B1 (en) Automated predictive change analytics
RU2783724C1 (ru) Способ и система проверки архитектуры программно-аппаратного решения
CN116756184B (zh) 数据库实例处理方法、装置、设备、存储介质及程序产品
US20230376603A1 (en) Techniques for identifying and validating security control steps in software development pipelines
CN117992051A (zh) 代码的环路检测方法、装置、设备、存储介质及程序产品
CN113900694A (zh) 静态代码扫描规则的更新方法和更新装置
CN114115892A (zh) 一种fadec控制软件多引擎静态分析检测系统及方法

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