代码静态检查为什么需要对规则集去做运营?

举报
gentle_zhou 发表于 2024/02/26 01:40:46 2024/02/26
【摘要】 规则集运营的目的是保证服务内规则集的有效性和适用性,以此来评估和提升规则集的执行效果,达到促进规则集效果不断提升、保障用户在服务内持续活跃的效果。

代码检查SAST技术支持指对代码的风格,质量和安全进行静态的检查,以发现代码中的缺陷和漏洞,提高代码的可读性,可靠性和可维护性。在代码检查服务里,规则集是由一系列规则组成的一个集合,通常是按照某种属性(比如编程语言、告警级别、告警类型等)将具有相同性质的规则归属在一起,这样用户可以因地制宜结合检查目的、扫描场景、项目需要,快捷的选择相关合适的规则集合,对项目代码针对性的进行扫描。

规则集的作用就是支持用户快速选择代码扫描所需要的规则们,而不是在每次扫描前都要去一条条的勾选规则。先不论逐条匹配再勾选比较耗费人力时间,挑选的基础还建立在用户对规则、项目都比较了解的基础上才可以发挥出较好的扫描效果。因此在扫描前就建立好一套完善的规则集就至关重要了,比如公司产品线众多研发方向不尽相同的情况下可以分为三级(公司级、产品线级、产品/部门级)来检查;再举个例子某个项目会运用在金融行业对安全非常关注,此时如果已经准备好针对金融行业几个典型场景的安全类规则集就可以快速对项目进行扫描,缩短上线的迭代周期。

至于为什么要对规则集去做运营呢?因为规则集作为项目和扫描规则之间的桥梁,它决定了项目代码在检查扫描期间的标准和内容,关系到扫描结果的质量。对规则集去做运营,就是要对规则集进行管理和优化,以保证规则集在使用期间的有效性和适用性。细致些来讲,规则集用户和责任人会关注如下一些问题,比如:创建规则集的时候是否选择好合适的语言,规则集内数量是否过多或过少了,规则集的维护部门维护人分别是哪个,规则集的引用情况怎么样,规则集创建好之后是否放到了合适的位置等等。

系列文章

什么是规则集运营?

规则集运营是指对代码检查服务内已创建好的规则集进行管理和优化的过程,运营统计出来的数据会真实反应出规则集的基础属性、继承状况、责任主体、引用情况等信息。规则集运营的目的是保证服务内规则集的有效性和适用性,以此来评估和提升规则集的执行效果,达到促进规则集效果不断提升、保障用户在服务内持续活跃的效果。

规则集运营里,用户一般关注什么?

在规则集运营里,用户一般会关注以下几个方面:

  • 规则集的数量,以此来明确服务内还存在可以被使用的规则集有多少个
  • 规则集的语言,以此来明确哪些规则集适合应用于项目内哪些业务场景;比如该项目涉及到的编程语言是Java、Python两种,用户就可以在两种语言相关的规则集列表内挑选
  • 规则集的检查规则数,以此来明确规则集内配置了多少条规则
  • 规则集的继承状况,包括继承类型、继承规则集等信息,可以让用户了解规则集是原创的还是继承了别的规则集、分别都继承了哪些规则集,帮助用户识别源头并统一看护
  • 规则集的维护责任信息,以此来明确规则集当前的维护主体是谁,遇到需要规则集对集合本身改动或则集合内部规则做增、删、改、查操作时,可以向谁去提出诉求
  • 规则集的引用情况,被哪些部门、产品、工程引用了,以此来明确规则集在实际运用过程中,都被哪些部门、工程所偏好,以此来明确规则集的适用范围和目标群体
  • 规则集的存储位置,判断规则集是否存储在了合适的位置;比如该规则集是某产品线A创建的,就需要放在公司-产品线A的文件夹内或则标记上公司-产品线A的属性信息,这样在运营和管理的时候,就可以方便的展示出相关归属信息

关注规则集运营的用户一般是包括哪几类?

一般关注规则集运营的用户包括如下几种类型:

  • 规则集的使用方,无论是个人开发者还是使用了这个规则集的部门/产品线,都可以说是直接受规则集影响的用户。作为规则集的使用方,他们需要遵守规则集内所有规则的标准,在享受到规则集便利的同时,也会承担规则集内部分不适合规则引出的告警去做分析、处理的责任。因此他们会很关注规则的有效性、合理性和其业务使用场景中的适应性。
  • 规则集的责任主体,作为规则集的创建者或则说是当前的维护主体,这部分人群对规则集是负直接责任的。规则集的名称是否取得清晰明了,规则集内的规则是否合理,在被执行时是否被高频有效使用等,这都会关系到责任主体对规则集的评估和优化。
  • 代码检查服务的管理者或监督者,规则集作为代码检查整体服务内关键的一部分,他们需要监督管理规则集的使用情况。他们需要站在用户的角度,去评估规则集的使用状况,借此判断规则集的影响力,并结合用户反馈的问题来判断是否是普遍发生的问题;同时,作为服务的管理者,需要维护规则集的合理性,关注规则集的价值和用户满意度,以便于好用的规则集的优化、推广和长期被使用。

关注这些指标对于用户来说都有什么好处?

关注规则集相关的各类指标,可以协助用户挑选和使用到合适项目的规则集,或则帮助维护主体及时识别和修复规则集相关的问题。

比如,规则集内规则的数量,可以帮助用户了解本次代码检查服务检查的覆盖面和覆盖深度。数量过多会导致产生大量并不关注的问题,程序员可能还会不理解或则有抵触情绪;数量过少可能就会扫描不出一些关键问题,导致项目带着隐藏BUG上线。因此,创建一个含有合适规则数量的规则集对于维护主体就是必须要考虑的因素。

再比如,规则集的引用情况,可以帮助使用者大致了解都是哪些产品线/部门在使用这些规则集,结合这些部门的产品特性,分析比较自身是否也是贴合的或则需要继承这些规则集做稍许的修改。

综上所述,规则集运营可以帮助用户评估规则集的有效性,合理性,可维护性和适应性。

用户怎么分别去获取到各自关注的数据呢?

类似于规则运营维度,关注规则集运营的用户会根据自身角色和关注侧重点的不同,选择相应的工具来分析和监控。

对于规则集使用方,因为他们需要挑选和直接使用规则集,日常经常和规则集打交道,对于规则集含有的规则内容、规则数量、扫描有效性其实是非常关注的。在其使用的代码检查服务里,如果有一个明确的规则集界面,让他可以看到当前规则集详情和内容,再结合告警详情界面可以看到规则集内规则产生的告警详情,就非常有必要。

而对于规则集责任主体和服务监督者,因为他们在更高层面关注规则集在公司、产品线、部门的整体使用情况。高level层面的指标,比如规则集属性是否都配上齐全,规则集的维护层级,规则集引用情况,就是他们关注的重点,那么如果有一个专门的规则集运营看板可以承载起这块的内容就是锦上添花了。

让我们来看一看华为云CodeArts Check代码检查本身自带的规则集信息都有哪些?
1、规则集界面
image.png

2、复制/继承规则集
image.png

3、规则集详情界面及丰富的过滤指标
image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。