CN112632546A - 广电行业自动化代码分析方法 - Google Patents
广电行业自动化代码分析方法 Download PDFInfo
- 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
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 59
- 238000010606 normalization Methods 0.000 claims abstract description 10
- 238000001514 detection method Methods 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 10
- 230000007547 defect Effects 0.000 claims description 9
- 230000008439 repair process Effects 0.000 claims description 5
- 230000000007 visual effect Effects 0.000 claims description 4
- 230000001149 cognitive effect Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 230000001788 irregular Effects 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3628—Software 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语句的使用规范问题。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672507A (zh) * | 2021-08-16 | 2021-11-19 | 深圳供电局有限公司 | 软件源代码检测方法、装置、计算机设备和存储介质 |
Citations (6)
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 | 云南电网有限责任公司信息中心 | 一种基于历史优化特征智能学习的源代码安全分析方法 |
-
2020
- 2020-12-31 CN CN202011628199.4A patent/CN112632546A/zh active Pending
Patent Citations (6)
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)
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 |