CN113094711B - 基于阶段性项目开发的开源代码检测方法及系统 - Google Patents

基于阶段性项目开发的开源代码检测方法及系统 Download PDF

Info

Publication number
CN113094711B
CN113094711B CN202110479549.3A CN202110479549A CN113094711B CN 113094711 B CN113094711 B CN 113094711B CN 202110479549 A CN202110479549 A CN 202110479549A CN 113094711 B CN113094711 B CN 113094711B
Authority
CN
China
Prior art keywords
open source
source code
detection
safety
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.)
Active
Application number
CN202110479549.3A
Other languages
English (en)
Other versions
CN113094711A (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.)
Yunnan Power Grid Co Ltd
Original Assignee
Yunnan Power Grid 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 Yunnan Power Grid Co Ltd filed Critical Yunnan Power Grid Co Ltd
Priority to CN202110479549.3A priority Critical patent/CN113094711B/zh
Publication of CN113094711A publication Critical patent/CN113094711A/zh
Application granted granted Critical
Publication of CN113094711B publication Critical patent/CN113094711B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

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

Abstract

本发明涉及软件开发技术领域,具体涉及可在使用开源代码前期就对开源代码进行安全检测、版本追溯以及安全标记的基于阶段性项目开发的开源代码检测方法及系统。基于阶段性项目开发的开源代码检测方法,包括基于阶段性项目开发需求进行的开源代码查询步骤,其中,还包括以下步骤:基于所查询的开源代码,进行的开源代码的安全检测步骤,若检测到该开源代码存在安全风险,则识别该开源代码的版本,并对该开源代码相关的最新版本进行追溯查询,若检测到该开源代码不存在安全风险,则对该开源代码进行安全标记,并将该开源代码和安全标记关联存储到代码库中。

Description

基于阶段性项目开发的开源代码检测方法及系统
技术领域
本发明涉及软件开发技术领域,具体为一种基于阶段性项目开发的开源代码检测方法及系统。
背景技术
在项目软件开发中,通过检索开源代码并利用已有开源代码,可以缩短软件开发的周期,降低软件开发的成本,但是同时也带来了一定的安全隐患,因为有些开源代码极有可能存在一些恶意代码或者漏洞。目前,通常是在软件开发阶段,对于已有开源代码的,直接采用开源代码实现软件功能,对于没有开源代码的,自行编写代码实现相应的功能,最后在整个软件开发完成后,进行整体的后期的测试,由于采用的开源代码有可能存在安全隐患,有可能存在一些恶意代码或者漏洞,因此在后期的测试中,测试出问题的概率以及问题的数量都很可能会增加,这无疑会增加后期测试和反复修改程序代码的成本。
发明内容
本发明目的之一在于提供一种可在使用开源代码前期就对开源代码进行安全检测、版本追溯以及安全标记的基于阶段性项目开发的开源代码检测方法。
基于阶段性项目开发的开源代码检测方法,包括基于阶段性项目开发需求进行的开源代码查询步骤,其中,还包括以下步骤:
基于所查询的开源代码,进行的开源代码的安全检测步骤,
若检测到该开源代码存在安全风险,则识别该开源代码的版本,并对该开源代码相关的最新版本进行追溯查询,
若检测到该开源代码不存在安全风险,则对该开源代码进行安全标记,并将该开源代码和安全标记关联存储到代码库中。
有益效果:在项目软件开发阶段,若采用开源代码,则先对开源代码进行安全检测,避免了在采用开源代码开发完整个项目软件后整体进行测试,若测试出问题,一个是问题位置比较难精准定位,而且对问题代码进行修改优化,有可能会对其他功能模块造成影响,相当于,在本方案中在利用已有的开源代码之前就对开源代码进行安全检测。进一步地,本方案中,若检测出的开源代码存在安全风险,则会对开源代码的版本进行追溯,也就是可能存在的情况是之前查询到的版本不是最新版的,所以会存在安全风险,若查询到了最新版本的开源代码,则可采用该最新版本的开源代码,而不是直接选择放弃,导致浪费了很多精力而做无用功。进一步地,本方案中,若检测到开源代码不存在安全风险,则会对开源代码进行安全标记,并将该开源代码和安全标记关联存储到代码库中,这样在以后其他用户查询到该开源代码的时候,通过安全标记就可知晓该开源代码是安全的,可以直接利用的,而免去了再次进行安全风险检测的步骤,提高该安全代码的利用率,降低检测成本。
进一步,还包括在查询到该开源代码的最新版本后,对最新版本的开源代码进行安全检测的步骤,若检测到最新版本的开源代码不存在安全隐患,则对最新版本的开源代码进行安全标记,并将该最新版本的开源代码和安全标记关联存储到代码库中。
有益效果:虽然查询到最新版本的开源代码,但是也并不代表该开源代码一定没有问题,所以进一步地也需要对该最新版本的开源代码进行安全检测,在安全检测不存在安全风险后,进行利用,同时对检测安全的最新版开源代码进行安全标记,这样在以后其他用户查询到该开源代码的时候,通过安全标记就可知晓该开源代码是安全的,可以直接利用的,而免去了再次进行安全风险检测的步骤,提高该安全代码的利用率,降低检测成本。
进一步,还包括在查询到开源代码后,进行该开源代码的安全标记的查询,若查询到该开源代码的安全标记,则不进行该开源代码的安全检测。
有益效果:若查询到将要利用的开源代码有安全标记,则无需进行安全风险的检测,通过安全标记就可知晓该开源代码是安全的,可以直接利用的,而免去了再次进行安全风险检测的步骤。
进一步,所述的安全检测包括恶意代码检测或者漏洞检测。以此针对代码常见的问题进行安全检测。
进一步,若检测到该开源代码存在安全风险,则进一步查询该开源代码的下载信息,若查询到该开源代码的下载信息中包含本企业其他用户的下载子信息,则发出提示信息。
有益效果:本方案的目的是,若检测到该开源代码存在安全风险,则可进一步追溯本企业其他用户是否也下载并利用过该开源代码,若查询到有,则发出提示信息,提示本其他企业用户或者其他项目在开发阶段可能存在代码安全风险,也是一种反向追溯其他项目开发过程中的代码安全问题的补充手段。
进一步,在发出提示信息之前,还包括追溯本企业其他用户下载的开源代码是否进行安全风险检测的步骤,若进行了安全风险检测,则不发出提示信息。
有益效果:目的在于虽然本企业其他用户有下载该存在安全风险的开源代码,但是如果其进行了安全风险检测,则其他用户是很可能没有利用该存在安全风险的开源代码的,所以在这种情况下,无需发出提示信息。
本发明的目的之二在于提供一种基于阶段性项目开发的开源代码检测系统,采用上述检测方法实现。
基于阶段性项目开发的开源代码检测系统,包括查询模块、安全检测模块、版本追溯模块以及安全标记模块;
所述的查询模块,用于根据阶段性项目开发需求进行的开源代码查询,
安全检测模块,用于进行开源代码的安全检测,
版本追溯模块,用于检测到该开源代码存在安全风险,识别该开源代码的版本,并对该开源代码相关的最新版本进行追溯,
安全标记模块,用于检测到该开源代码不存在安全风险,对该开源代码进行安全标记。
有益效果:本方案中,通过版本追溯模块,若检测出的开源代码存在安全风险,则会对开源代码的版本进行追溯,也就是可能存在的情况是之前查询到的版本不是最新版的,所以会存在安全风险,若查询到了最新版本的开源代码,则可采用该最新版本的开源代码,而不是直接选择放弃,导致浪费了很多精力而做无用功。本方案中,通过安全标记模块,若检测到开源代码不存在安全风险,则会对开源代码进行安全标记,并将该开源代码和安全标记关联存储到代码库中,这样在以后其他用户查询到该开源代码的时候,通过安全标记就可知晓该开源代码是安全的,可以直接利用的,而免去了再次进行安全风险检测的步骤,提高该安全代码的利用率,降低检测成本。
附图说明
图1为本发明实施例基于阶段性项目开发的开源代码检测方法流程示意图。
具体实施方式
下面通过具体实施方式进一步详细说明:
实施例基本如附图1所示,基于阶段性项目开发的开源代码检测方法,包括基于阶段性项目开发需求进行的开源代码查询步骤,本实施例中所述的查询是基于现有的第三方开源代码库实现的,也就是在第三方开源代码库进行开源代码的查询,属于现有技术,在此不再赘述。
在查询到开源代码后,进行该开源代码的安全标记的查询,若查询到该开源代码的安全标记,则不进行该开源代码的安全检测;若未查询到该开源代码的安全标记,则基于所查询的开源代码,进行开源代码的安全检测;所述的安全检测包括恶意代码检测或者漏洞检测。具体是:检测开源代码是否存在恶意代码或者漏洞代码,对开源代码的恶意代码或者漏洞代码的位置、类型、属性、严重程度等进行检测,可以通过现有的漏洞代码库进行检测分析,以实现上述项目的检测,这个也属于现有技术,在此不再赘述。
若检测到该开源代码存在安全风险,则识别该开源代码的版本,并对该开源代码相关的最新版本进行追溯查询,以上查询也是在开源代码库中实现的,在查询到该开源代码的最新版本后,对最新版本的开源代码进行安全检测的步骤,若检测到最新版本的开源代码不存在安全隐患,则对最新版本的开源代码进行安全标记,并将该最新版本的开源代码和安全标记关联存储到代码库中。
若检测到该开源代码不存在安全风险,则对该开源代码进行安全标记,并将该开源代码和安全标记关联存储到代码库中。目的是:对检测安全的最新版开源代码进行安全标记,这样在以后其他用户查询到该开源代码的时候,通过安全标记就可知晓该开源代码是安全的,可以直接利用的,而免去了再次进行安全风险检测的步骤。
若检测到该开源代码存在安全风险,则进一步查询该开源代码的下载信息,若查询到该开源代码的下载信息中包含本企业其他用户的下载子信息,追溯本企业其他用户下载的开源代码是否进行安全风险检测的步骤,若进行了安全风险检测,则不发出提示信息;若未进行安全检测,则发出提示信息。具体的,可以通过企业路由器获取涉及该开源代码下载信息所包含的其他用户的下载子信息,来追溯本企业其他用户是否也下载并利用了该开源代码,从而判断是否发出提示信息。
本实施例还公开了一种基于阶段性项目开发的开源代码检测系统,该系统包括查询模块、安全检测模块、版本追溯模块以及安全标记模块;所述的查询模块,用于根据阶段性项目开发需求进行的开源代码查询,安全检测模块,用于进行开源代码的安全检测,版本追溯模块,用于检测到该开源代码存在安全风险,识别该开源代码的版本,并对该开源代码相关的最新版本进行追溯,安全标记模块,用于检测到该开源代码不存在安全风险,对该开源代码进行安全标记。进一步地,本系统还包括了开源代码下载信息查询模块,用于查询开源代码的下载信息中包含本企业其他用户的下载子信息,追溯本企业其他用户是否也下载了该开源代码;提示模块,用于追溯本企业其他用户下载的开源代码是否进行安全风险检测,若未进行安全风险检测,则发出提示信息。
以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。

Claims (5)

1.基于阶段性项目开发的开源代码检测方法,包括基于阶段性项目开发需求进行的开源代码查询步骤,其特征在于,还包括以下步骤:
基于所查询的开源代码,进行的开源代码的安全检测步骤;
若检测到该开源代码存在安全风险,则识别该开源代码的版本,并对该开源代码相关的最新版本进行追溯查询,在查询到该开源代码的最新版本后,对最新版本的开源代码进行安全检测的步骤,若检测到最新版本的开源代码不存在安全隐患,则对最新版本的开源代码进行安全标记,并将该最新版本的开源代码和安全标记关联存储到代码库中,并进一步查询该开源代码的下载信息,若查询到该开源代码的下载信息中包含本企业其他用户的下载子信息,则发出提示信息;
若检测到该开源代码不存在安全风险,则对该开源代码进行安全标记,并将该开源代码和安全标记关联存储到代码库中。
2.根据权利要求1所述的基于阶段性项目开发的开源代码检测方法,其特征在于:还包括在查询到开源代码后,进行该开源代码的安全标记的查询,若查询到该开源代码的安全标记,则不进行该开源代码的安全检测。
3.根据权利要求1所述的基于阶段性项目开发的开源代码检测方法,其特征在于:所述的安全检测包括恶意代码检测或者漏洞检测。
4.根据权利要求3所述的基于阶段性项目开发的开源代码检测方法,其特征在于:在发出提示信息之前,还包括追溯本企业其他用户下载的开源代码是否进行安全风险检测的步骤,若进行了安全风险检测,则不发出提示信息。
5.根据权利要求4所述的基于阶段性项目开发的开源代码检测系统,其特征在于:包括查询模块、安全检测模块、版本追溯模块、安全标记模块、开源代码下载信息查询模块以及提示模块;
所述的查询模块,用于根据阶段性项目开发需求进行的开源代码查询;
安全检测模块,用于进行开源代码的安全检测;
版本追溯模块,用于检测到该开源代码存在安全风险,识别该开源代码的版本,并对该开源代码相关的最新版本进行追溯;
安全标记模块,用于检测到该开源代码不存在安全风险,对该开源代码进行安全标记;
开源代码下载信息查询模块,用于查询开源代码的下载信息中包含本企业其他用户的下载子信息,追溯本企业其他用户是否也下载了该开源代码;
提示模块,用于追溯本企业其他用户下载的开源代码是否进行安全风险检测,若未进行安全风险检测,则发出提示信息。
CN202110479549.3A 2021-04-30 2021-04-30 基于阶段性项目开发的开源代码检测方法及系统 Active CN113094711B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110479549.3A CN113094711B (zh) 2021-04-30 2021-04-30 基于阶段性项目开发的开源代码检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110479549.3A CN113094711B (zh) 2021-04-30 2021-04-30 基于阶段性项目开发的开源代码检测方法及系统

Publications (2)

Publication Number Publication Date
CN113094711A CN113094711A (zh) 2021-07-09
CN113094711B true CN113094711B (zh) 2023-05-16

Family

ID=76680906

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110479549.3A Active CN113094711B (zh) 2021-04-30 2021-04-30 基于阶段性项目开发的开源代码检测方法及系统

Country Status (1)

Country Link
CN (1) CN113094711B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778509A (zh) * 2021-08-13 2021-12-10 国网河北省电力有限公司电力科学研究院 一种确定开源组件的版本的方法、存储介质和电子装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105354037A (zh) * 2015-11-30 2016-02-24 用友优普信息技术有限公司 模块化的软件开发方法及软件开发装置
CN105491053A (zh) * 2015-12-21 2016-04-13 用友网络科技股份有限公司 一种Web恶意代码检测方法及系统
CN106354632A (zh) * 2016-08-24 2017-01-25 北京奇虎测腾科技有限公司 一种基于静态分析技术的源代码检测系统及方法
CN108595960A (zh) * 2018-04-11 2018-09-28 郑州云海信息技术有限公司 一种基于第三方软件存在漏洞的检测方法及系统
US10579803B1 (en) * 2016-11-17 2020-03-03 Jpmorgan Chase Bank, N.A. System and method for management of application vulnerabilities
CN111783104A (zh) * 2020-07-02 2020-10-16 北京自如信息科技有限公司 一种漏洞检查方法、持续集成代码的漏洞检查方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200125532A1 (en) * 2018-07-10 2020-04-23 Didi Research America, Llc Fingerprints for open source code governance
CN110058860A (zh) * 2019-03-16 2019-07-26 平安城市建设科技(深圳)有限公司 一种代码自动交付方法、装置、设备及计算机存储介质
CN111581638A (zh) * 2020-03-20 2020-08-25 中国电力科学研究院有限公司 一种开源软件的安全分析方法及装置
CN111666203B (zh) * 2020-04-17 2023-10-27 北京百度网讯科技有限公司 风险软件的定位处理方法、装置、电子设备及存储介质
CN111625839A (zh) * 2020-05-29 2020-09-04 深圳前海微众银行股份有限公司 第三方组件漏洞检测方法、装置、设备及计算机存储介质
CN112148602B (zh) * 2020-09-17 2023-03-28 云南电网有限责任公司信息中心 一种基于历史优化特征智能学习的源代码安全分析方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105354037A (zh) * 2015-11-30 2016-02-24 用友优普信息技术有限公司 模块化的软件开发方法及软件开发装置
CN105491053A (zh) * 2015-12-21 2016-04-13 用友网络科技股份有限公司 一种Web恶意代码检测方法及系统
CN106354632A (zh) * 2016-08-24 2017-01-25 北京奇虎测腾科技有限公司 一种基于静态分析技术的源代码检测系统及方法
US10579803B1 (en) * 2016-11-17 2020-03-03 Jpmorgan Chase Bank, N.A. System and method for management of application vulnerabilities
CN108595960A (zh) * 2018-04-11 2018-09-28 郑州云海信息技术有限公司 一种基于第三方软件存在漏洞的检测方法及系统
CN111783104A (zh) * 2020-07-02 2020-10-16 北京自如信息科技有限公司 一种漏洞检查方法、持续集成代码的漏洞检查方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Girish Maskeri 等.Version History Based Source Code Plagiarism Detection in Proprietary Systems.《2012 28th IEEE International Conference on Software Maintenance (ICSM)》.2013,第609-612页. *
吴倩倩.综合型漏洞扫描系统的研究与设计.《中国优秀硕士学位论文全文数据库 信息科技辑》.2016,(第02期),第I139-99页. *
郝亮.面向开源代码复用的程序比对分析技术研究.《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》.2020,(第04期),第I138-172页. *

Also Published As

Publication number Publication date
CN113094711A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
US9715593B2 (en) Software vulnerabilities detection system and methods
US8935794B2 (en) Verifying application security vulnerabilities
Yang et al. Leakminer: Detect information leakage on android with static taint analysis
CN107657177B (zh) 一种漏洞检测方法及装置
CN103390130A (zh) 基于云安全的恶意程序查杀的方法、装置和服务器
CN105303109A (zh) 一种恶意代码情报检测分析方法及系统
CN106529294B (zh) 一种用于手机病毒判定与过滤的方法
CN113094711B (zh) 基于阶段性项目开发的开源代码检测方法及系统
CN108959936B (zh) 一种基于路径分析的缓冲区溢出漏洞自动利用方法
CN109614107B (zh) 一种软件开发工具包的集成方法和装置
CN111859380A (zh) Android App漏洞的零误报检测方法
CN104036193B (zh) 一种应用程序的本地跨域漏洞检测方法及装置
CN107392033B (zh) 一种安卓设备渗透测试系统及其自动化渗透测试方法
CN111814138B (zh) 一种基于云平台的软件安全管理系统
CN105873030A (zh) 一种对终端应用进行副署签名的方法
CN107977225B (zh) 一种安全漏洞的统一描述方法和描述系统
Laranjeiro et al. A learning-based approach to secure web services from SQL/XPath Injection attacks
Zhao et al. Dynamic taint tracking of web application based on static code analysis
CN113157314B (zh) 一种高效智能源代码安全管理平台
CN104346568A (zh) 识别恶意应用程序的方法、装置及移动设备
Mostafa et al. Netdroid: Summarizing network behavior of android apps for network code maintenance
CN114936369A (zh) 基于标记的sql注入攻击主动防御方法、系统及存储介质
Duan et al. Automatic Generation of Non-intrusive Updates for {Third-Party} Libraries in Android Applications
Zaid et al. Automated identification of over-privileged smartthings apps
JP5478381B2 (ja) アプリケーション判定システムおよびプログラム

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
GR01 Patent grant
GR01 Patent grant