关于代码质量:利用云效做代码扫描将代码风险扼杀掉

26次阅读

共计 2500 个字符,预计需要花费 7 分钟才能阅读完成。

代码扫描
利用云效做代码扫描,当代企业,离不开软件技术。软件是工程师编写的,不免可能存在品质或平安问题,这些问题可能在生产环境中引发重大的故障,间接造成企业的经济损失和信任危机。为了将危险降至最低,倡议在编码过程中启用一系列的自动化扫描服务,尽早的发现问题,将危险扼杀在摇篮中。
1、用户的诉求或问题
• 编码不标准:开发者业余度无限,特地是依赖外包团队的状况,业务代码通常没有通过粗疏的设计,也很难保障兼容性和扩展性,存在暗藏的缺点和故障危险;
• 敏感数据泄露:开发者不足安全意识,企业的敏感信息间接编写到代码中,可能造成敏感信息的外流,进而使得不法分子无隙可乘,造成企业损失;
• 依赖项存在安全漏洞:代码中免不了引入二方或三方的依赖包,特地是引入开源依赖包的场景下,很可能本身代码爱护周全,然而依赖的代码存在安全漏洞,使得不法分子能够通过这些破绽发动攻打;
• 代码优化:开发者编写了代码,冀望可能失去业余的代码优化倡议;

2、代码扫描启用服务
云效代码治理内置了多种扫描服务,为了保障每次提交都能及时的获取扫描后果,倡议在创立代码库后,立刻返回代码库「设置」-「集成与服务」开启自动化扫描服务。

阐明 立刻体验:云效代码扫描
点击冀望开启服务右侧的开关,确认受权后服务胜利启用。
启用时能够抉择触发形式:提交触发或合并申请触发,局部服务仅反对一种触发形式。
「提交触发」在每次提交后,将主动触发相干分支的全量扫描,即扫描分支下的所有内容;
「合并申请触发」在创立或更新合并申请后,将主动触发源 / 指标分支的增量扫描,即扫描源 / 指标分支变更的内容(Diff);
如不再应用扫描服务,点击服务右侧开关敞开即可。
接下来顺次介绍上诉四种扫描服务。
代码品质——Java 开发规约
《阿里巴巴 Java 开发手册》是阿里外部 Java 工程师所遵循的开发标准,涵盖编程规约、单元测试规约、异样日志规约、MySQL 规约、工程规约、平安规约等,这是近万名阿里 Java 技术精英的经验总结,并经验了屡次大规模一线实战测验及欠缺。依据约束力强弱,规约顺次分为强制、举荐、参考三大类:
【强制】必须恪守。是不得不恪守的约定,违反本约定或将引起重大的结果。
【举荐】尽量恪守。长期恪守这样的规定,有助于零碎稳定性和单干效率的提醒。
【参考】充沛了解。技术意识的疏导,是集体学习、团队沟通、我的项目单干的方向。
Java 代码规约扫描应用《阿里巴巴 Java 开发规约》插件扫描 Java 规约问题。
代码品质——代码补丁智能举荐
缺点检测和补丁举荐几十年来始终是软件工程畛域的难题,又是研究者和一线开发者最为关怀的问题之一,这里讲的缺点不是网络破绽、零碎缺点,而是暗藏在代码中的缺点。帮忙开发者辨认这些缺点,并进行修复,可能大幅晋升软件品质。
基于业界和学术界较为风行的缺点检测伎俩,并剖析和躲避其局限性,云效代码治理的算法工程师们提出了一种新的算法,实现更加精准和高效的剖析代码缺点并举荐优化计划,该算法已被国内软件工程大会(ICSE)收录。
代码补丁举荐服务目前利用于合并申请的代码主动扫描场景,扫描输出优化举荐计划,问题等级仅蕴含 MAJOR 类型:倡议修复的代码缺点。
代码平安——敏感信息检测
敏感信息检测性能,能够检测代码库中的敏感凭证和密钥,比方 API keys 等信息。集成在合并申请代码评审阶段,能够无效避免敏感信息意外提交。
敏感信息问题等级分为:BLOCKER, CRITICAL, MAJOR
BLOCKER: 通过规定扫描进去的可能性很高的明文问题;
CRITICAL: 通过信息熵模型得出的可能性较高的潜在问题;
MAJOR: 用于测试的敏感信息字段;
代码平安——依赖包破绽检测
为了杜绝安全隐患,企业须要做到以下三点:
1. 理解工程都应用了哪些依赖包;
2. 删除不须要的依赖包;
3. 检测并修复以后依赖的已知破绽;
依赖包破绽检测服务帮忙企业不便的查看其工程依赖包的安全性。
依赖包破绽等级分为:BLOCKER, CRITICAL, MAJOR,等级划分依据国家破绽数据库 CVSS 分数评估制订。
BLOCKER: 高危破绽,倡议立刻修复;
CRITICAL: 中危破绽,倡议尽快修复;
MAJOR: 低危破绽;

3、提交代码执行检测
为了保障代码问题不被引入生产环境,越早进行查看,引入的危险越小。因而,倡议可能在每次提交时都进行代码检测,从终点发现并扼杀问题,保障后续利用研发流程的稳定性。
开启检测服务时,勾选触发形式的「代码提交触发扫描」,如图①:
尔后库内的每次提交都会主动执行对应的自动化检测,检测以后新提交的所有文件,可在源文件或提交页面查看检测后果:

可点击检测服务开展问题详情查看,Blocker 级别的问题倡议立刻解决,这类问题容易引起故障或安全漏洞:

4、合并申请执行检测
开启检测服务时,勾选触发形式的「合并申请触发扫描」,如图②:
阐明 立刻体验::云效代码合并申请
尔后库内的每次创立合并申请或合并申请源分支有新提交,都会针对变更文件主动执行对应的自动化检测,保障新增冀望合并至指标分支的代码品质和平安。
可在合并申请列表和详情页面查看检测后果:
点击合并申请详情的检测后果详情,能够跳转代码行内查看具体问题代码:

5、平安检测
针对安全类问题,通常须要统计或追溯历史,因而云效代码库中提供了专门的平安模块,用于承载检测出的全副问题,并记录了已解决的历史数据。
若未开启过安全类检测服务,能够通过平安模块返回代码库设置 -「集成与服务」中开启。
阐明
立刻体验:云效代码平安
开启后,能够在当前页查看各分支检测出的平安问题:
同样,可点击问题名称查看详情和举荐的解决方案:
TIPS:针对敏感信息检测,若局部文件心愿跳过扫描,能够应用文件白名单的性能,白名单内的文件将不被检测:

总结

将测试左移,对每次提交和合并进行自动化检测,保障存量和新增代码的品质和平安,可能无效的晋升研发效率,助力企业更好的实现业务价值。云效代码治理 Codeup,10 万企业都在用的代码治理平台,提供代码托管、代码评审、代码扫描、品质检测、继续集成等性能,全方位爱护企业代码资产,帮忙企业实现平安、稳固、高效的代码托管和研发治理。
点击立刻体验:云效代码治理 Codeup

正文完
 0