5 款阿里常用代码检测工具,免费用!

简介: 5 款阿里常用代码检测工具免费体验,仅需 2 步,Cherry键盘、公仔抱回家,100%拿奖!

作者 | 喻阳

面临问题

在日常研发过程中,我们通常面临的代码资产问题主要分为两大类:代码质量问题和代码安全漏洞。

1、代码质量问题

代码质量其实是一个老生常谈的话题,但问题是大家都知道它很重要,却又不知道如何去提升和维护这一团队的共同财产。一方面开发人员可能为了功能及时上线,疏忽了对质量的把控,另一方面开发人员编码习惯和程序理解风格各异。

长期下来代码质量下降通常会自成因果,因为业务压力大而趋于下降,又因此开发效率下降,进一步加大业务压力,导致恶性循环。

2、代码安全问题

安全类问题往往隐藏在缺乏安全意识的编码逻辑和未经检测或维护的开源依赖组件中,难以在日常开发和代码评审中被及时察觉。

代码安全问题也可以分两个方面进行分析:

  • 编码安全问题,即:安全规范类问题,通过避免不符合规范的代码进入企业代码库,减少隐私数据泄露、注入类风险、安全策略漏洞的出现。
  • 依赖安全问题,即:开源依赖三方组件引入的安全漏洞。根据 Synopsys 2020 开源安全报告显示,99%以上的组织使用了开源技术。使用开源组件本身带来的技术交流和站在巨人肩膀上协作、降低开发成本、加快迭代周期、提高软件质量等优势已经不必赘述,但是,开源软件带来一系列便利的同时,也暗藏大量安全风险,据审计,75%的代码库存在安全漏洞,其中 49%包含高危问题,另外 82%的代码库仍在使用超过 4 年的 outdated 组件。

代码安全类问题,一方面也需要进行准入性检查,根据业务场景和规范配置安全编码规范检测和卡点。另一方面需要定期维护,对于新爆发出的安全漏洞进行及时察觉并修复。

5 款阿里常用代码监测工具推荐

1、代码质量检测

  • Java 代码规约检测

阿里巴巴在实践过程中,各个组织由于历史隔阂和业务风格差异,工程结构差别很大,代码风格迥异,规范不一,沟通成本大,合作效率低,维护成本高。集团发展到现在的规模,需要专业化的技术集团军迭代式、集约式发展,而不是动辄重复造轮,而真正专业化的团队一定会有统一的开发规约,这代表效率、共鸣、情怀、可持续。

基于上述背景,阿里制定了《阿里巴巴 Java 开发手册》,作为阿里内部 Java 工程师所遵循的开发规范,涵盖编程规约、单元测试规约、异常日志规约、MySQL 规约、工程规约、安全规约等。这是近万名阿里 Java 技术精英的经验总结,并经历了多次大规模一线实战检验及完善。

制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全。试想如果没有限速,没有红绿灯,没有靠右行驶条款,谁还敢上路。同理,对软件来说,开发规约绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,推行相对标准化,以一种普遍认可的方式一起做事。

因此,代码规约的目标是:1、码出高效:标准统一,提升沟通效率和研发效能。2、码出质量:防患未然,提升质量意识和系统可维护性,降低故障率。3、码出情怀:工匠精神,追求极致的卓越精神,打磨精品代码。

代码规约通过 IDE 检测插件、流水线集成测试、代码评审集成等工具手段,深度融入了阿里巴巴的各种开发活动中。与此同时,在云效代码托管平台 Codeup 中,也内置集成了 Java 代码规约检测能力,为开发人员在代码提交和代码评审阶段提供更为方便的快速检查。

  • 代码智能补丁推荐

缺陷检测和补丁推荐几十年来一直是软件工程领域的难题,又是研究者和一线开发者最为关心的问题之一,这里讲的缺陷不是网络漏洞、系统缺陷,而是隐藏在代码中的缺陷。帮助开发者识别这些缺陷,并进行修复,能够大幅提升软件质量。

基于业界和学术界较为流行的缺陷检测手段,并分析和规避其局限性,阿里巴巴 Codeup 的算法工程师们提出了一种新的算法,实现更加精准和高效的分析代码缺陷并推荐优化方案,该算法已被国际软件工程大会(ICSE)收录。

1.jpg

1、根据 commit message 中的关键词找出修复型的 commit,只取涉及文件小于 5 个的 commit(涉及文件过多的 commit 可能会稀释修复行为)。这个步骤十分依赖开发者良好的 commit习惯,希望开发者能用好 commit,写好 message。

2、从这些修复型 commit 中以文件级别提取删除内容和新增内容,即 Defect and Patch pairs(DP Pair),这一步难免会有很大的噪声。

3、利用改进的 DBSCAN 方法对 buggy 和 patch 对同时聚类,将相似的缺陷和补丁代码聚在一起。(也可以做片段级的聚类)通过将相似的缺陷和修复做聚类,减少了上一步留下的大量噪声,同时历史代码提交中大家共同犯过的错具有很强的借鉴意义。

4、利用自研的模板提取方法总结缺陷代码和补丁代码,并根据不同的变量来适配上下文。

代码补丁推荐服务目前应用于合并请求的代码自动扫描场景,在代码评审过程中检测可优化代码片段并给出优化建议,将历史评审中的人工经验沉淀下来持续提升企业代码质量。

2、代码安全检测

  • 敏感信息检测

近年来,业内发生多起敏感信息(API Key、Database credential、OAuth token 等)通过某些站点被无意识地泄露出去的事件,给企业带来了安全风险,甚至直接的经济损失。

在我们的实践过程中,我们也面临了类似的问题,硬编码问题出现非常高频,而又缺乏有效的识别机制。因此开发者和企业管理者亟需一款稳定健全的敏感信息检测方法和系统。通过调研我们了解到,目前已有的敏感信息检测工具大多单纯使用规则匹配或信息熵技术,导致其召回率或准确率难以满足预期。因此我们在规则匹配和信息熵技术的基础上,结合上下文语义,提出了一款采用多层检测模型的敏感信息检测工具——SecretRadar。

2.jpg

SecretRadar 的技术实现思路主要分为三层,第一层采用规则匹配这种传统敏感信息识别技术,规则匹配具有良好的准确度和扩展性,但是非常依赖比较固化的长度、前缀、变量名,难以应对不同开发者的不同编码风格,容易造成漏报。针对难以固定规则捕捉的场景,在第二层我们采用了信息熵算法。信息熵算法用于衡量代码行混乱程度,对随机生成型密钥和随机身份信息识别效果良好。但信息熵算法也有其局限性,召回率提升的同时误报也增多了。因此在第三层我们采用了模板聚类和上下文语义分析等方法进行过滤优化,针对信息熵结果聚合提取常见关键字,结合上下文语义和当前语法结构提升模型准确率。

敏感信息检测工具不止服务我们内部开发同学,在云效平台上也支持了超过 2 万代码库、3 千家企业,帮助开发者解决了超过 9 万硬编码问题。

  • 源码漏洞检测

阿里巴巴采用 Sourcebrella Pinpoint 源伞检测引擎,进行源码漏洞检测,主要涉及到注入类风险和安全策略类风险检测。

源伞检测引擎是香港科技大学 Prism 研究组在过去十年的时间内的技术研究成果。该引擎吸收了国际上近十年的软件验证技术研究成果,并且加以改进和创新,独立设计和实现了一套技术领先的软件验证系统。其主要验证方式是将编程语言翻译成一阶逻辑和线性代数等数学表达,通过形式化验证技术推理缺陷成因。迄今为止,一共发表了四篇核心技术相关的论文,一篇 PLDI 和三篇 ICSE,研究型的同学可以点击文末链接阅读。

  • 源伞检测引擎能够在活跃度比较高的大型开源项目中发现隐藏超过 10 年的缺陷,以 MySQL 检测 [5] 为例,这些缺陷都是市面上其他检查工具无法扫描出来的,并且能够在 1.5 小时完成 200 万行大型开源项目的检测。在保持扫描的高效率同时,还能够将误报率控制在 15%左右。对于复杂且体量庞大的分析项目来说,源伞检测引擎所表现的扫描效率和误报率在业内也处于领先水平。
     

「源码漏洞检测」集成了源伞检测引擎的安全分析能力,能够在分析精度、速度、深度等方面均衡得到较好的分析结果,具备的核心优势:

1、支持分析字节码,二三方包的代码逻辑都不会遗漏;

2、擅长跨函数长调用链路的逻辑分析;

3、可以处理引用、指针等带来的间接数据修改;

4、精度高,相比于同类工具,如 Clang、Infer,在精度和有效问题识别上表现更佳;

5、性能好,目前单应用平均 5 分钟左右分析完毕;

3.jpg

源伞检测引擎可以精确的追踪代码中的数据流向,拥有高深度高精度的函数调用链分析能力,可以找到跨越多层函数的深度问题。在发现缺陷的同时还能给出问题触发的过程,完整展示相关的控制流以及数据流,这样可以辅助开发者快速理解和修复问题,在软件开发早期更低成本地提高软件质量,大幅减少生产成本,提高研发效能。

  • 依赖包漏洞检测

我们期望对于开源组件的安全可信程度,为开发者建立一种有效的检测和管理机制,因此我们实现了依赖包漏洞检测服务和依赖包安全问题报表。在实践过程中,开发者普遍反映依赖包漏洞修复成本大多高于修复自身编码漏洞,从而不愿意或难于处理此类问题。究其原因,一方面是大部分漏洞并非直接引入,而是依赖的第三方组件又间接依赖了其它组件,另一方面是不确定具体哪个版本是干净可用且兼容的。

4.jpg

为了降低开发者的修复难度,我们对依赖项的引用关系进行了进一步识别分析,清晰的标注出直接依赖和间接依赖,并定位到具体的依赖包引入文件,方便开发者快速找到关键问题位置。同时,通过对漏洞数据的聚合,智能推荐修复漏洞的版本升级建议,因为一个依赖可能对应多个漏洞问题,开发者可以针对建议评估是否接受采用。通过分析不同版本间的 API 变更和代码调用链路,衡量版本升级成本,为开发人员自动创建修复评审,最大程度的帮助开发人员更高效地维护代码安全。

无论是代码质量检测还是代码安全检测,以上 5 款阿里代码自动检测工具,开发者们都可以在云效 Codeup 内免费体验。

检测服务应用

1、代码提交

检测服务的最直接的应用便是在代码提交场景中,企业可以根据业务场景和规范,制定和配置不同项目的检查方案。当开发者将代码变更推送至服务端,自动触发当前代码库配置的检测服务,可以为开发者检查当前 commit 版本中的全量问题,帮助开发者及早发现新增问题,并确认存量问题的解决情况。通过接入上述检测服务,可以从代码规范、代码质量、代码安全等多个维度进行测试左移,在开发人员刚完成编码时就进行快速检测和反馈。

2、代码评审

在企业项目协同中,开发者多以合并请求的方式将特性分支代码合入主干分支,合并请求过程需要项目开发负责人或模块负责人进行代码评审和人工检查。一方面人工审查代码需要投入较大精力,另一方面人工审查难以覆盖代码各个维度的潜在问题。因此,通过合理配置检测服务,可以极大地减少人工评审的工作量,加速代码评审的工作过程。同时,通过丰富、筛选、沉淀检测规则集和人工经验,检测服务可以更加贴合企业的业务场景进行卡点,避免不符合规范或存在风险的代码进入企业代码库。

3、代码度量

检测服务除了在代码提交和代码评审阶段帮助开发者及早发现问题并解决问题,还可以帮助管理者进行企业代码质量度量和风险可视化。通过建设企业级报表服务和项目任务管理,可以更为直观地度量项目演进过程中的安全问题和质量问题。

活动推荐

代码捉虫-PC.jpg

5 款阿里常用代码检测工具免费体验,仅需 2 步,Cherry键盘、公仔抱回家,100%拿奖!

都 2021 年了,你还认为代码检测=语法/风格扫描?

大厂每年数百万采购的扫描软件,都在采购什么?如何不花钱白嫖?

落地 DevOps 的第 2 步是什么?

什么是接入成本最低的质量和安全提升工具?

云效 DevOps 实验室特推出【1 分钟代码自动捉虫】活动

1-3 分钟,给你的代码做个全身体检吧。


体验完成,还可抽 Cherry 机械键盘、阿里云定制 GIt 命令鼠标垫、积木星球等,1000 分礼品,100%中奖!

点击下方链接,立刻参与活动!注:本活动仅限云效新用户参加

https://developer.aliyun.com/adc/series/activity/bugdetect

原文链接
本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看topic信息_如何规划的你博客文章主题(Topic)

产品有了, 写手有了。该写哪些主题,就成问题了。这篇文章,会结合真实案例,告诉大家,该如何规划自己的博客主题。(注意这里不是标题)。以我最近的一个项目, 游泳池产品为例。关键词叫…

DataWorks功能实践速览 — 参数透传

简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率! 往期回顾: DataWorks 功能实践速览01期——数据同步解决方案:为您介绍不同场景下可选的数据同步方案。DataWorks 功能…

GPU还是IPU?IPU 芯片厂商 Graphcore 的 2021

作者 | 宋慧 出品 | CSDN 云计算&AI 科技大本营 AI 人工智能毋庸置疑是目前最火的 IT 技术领域之一,而主攻图形计算的 NVIDIA GPU(图形处理器)又是现今 AI 领域的当红炸子鸡。不过 AI 芯片领域又迎来了新的挑战者,2016 年创立…

云原生大数据架构中实时计算维表和结果表的选型实践

简介: 随着互联网技术的日渐发展、数据规模的扩大与复杂的需求场景的产生,传统的大数据架构无法承载。 作者 | 志羽 来源 | 阿里技术公众号 一 前言 传统的大数据技术起源于 Google 三架马车 GFS、MapReduce、Bigtable,以及其衍生的开源分布…

冬奥开幕在即,现场通信网络技术深度揭秘!

作者 | 小枣君来源 | 鲜枣课堂还有9天,举世瞩目的北京冬奥会就将拉开大幕。本次冬奥会,是继2008年之后,中国再一次承办这种世界最顶级体育盛会。这两年全球疫情肆虐,抗疫形势波折多变。北京冬奥能够如期举办,意义极为重…

Flink 在 58 同城的应用与实践

简介: 58 同城的实时 SQL 建设以及如何从 Storm 迁移至 Flink。 本文整理自 58 同城实时计算平台负责人冯海涛在 Flink Forward Asia 2020 分享的议题《Flink 在 58 同城应用与实践》,内容包括: 实时计算平台架构实时 SQL 建设Storm 迁移 Fli…

当云原生遇到混合云:如何实现“求变”与“求稳”的平衡

简介: 多年来,随着云计算技术的蓬勃发展和落地,越来越多的企业选择采用云计算技术来帮助自己快速完成业务数字化转型,以便能更好地适应市场变化,进而赢得更大的市场空间。 作者|郝树伟 Flexera 的《RightScale2021 云…

之前写的 JSX 的条件语句竟然存在那么多 Bug?

作者 | 零一来源 | 前端印象今天的主题是&#xff1a;关于 JSX 的条件语句&#xff0c;你不知道3件事一、&&隐藏大坑在 JSX 里写条件语句&#xff0c;&& 应该是用的最多的了&#xff0c;例如&#xff1a;function Demo () {// ...省略一些代码return (<div&…

如何高效学习 Kubernetes 知识图谱?

简介&#xff1a; Kubernetes 知识图谱遵循云原生人才学习路径搭建课程体系框架&#xff0c;及人才发展路线设置不同阶段&#xff0c;由浅入深&#xff0c;帮助云原生人才学习容器基础、Kuternetes 网络、存储、资源对象、服务发现、应用编排与管理等 Kubernetes 完整技术栈内容…

中科院信工所经验_2021中科院信息工程研究所电子信息专业考研经验指导分享...

一、在计算机如此火热的今天&#xff0c;为什么选择要读研&#xff1f;我是一个乐观主义者&#xff0c;上大学以来我一直庆幸自己在高考结束填志愿的时候选择了计算机专业&#xff0c;更庆幸报考了湖南大学信息科学与工程学院&#xff0c;高考仅仅一分的优势把我送到了最美的学…

极验创始人吴渊:恶意流量威胁新趋势,揭秘网络黑产3大核心本质

记者 | 邓晓娟出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;天下没有免费的午餐&#xff0c;更没有免费的流量。以电商为例&#xff0c;最疯狂的时候&#xff0c;某电商平台单个获客成本接近400元。作为互联网的稀缺资源&#xff0c;流量的成本不断冲击着…

如何将一棵LSM-Tree塞进NVM

简介&#xff1a; 随着非易失内存产品的商业化推广&#xff0c;我们对于其在云原生数据库中大规模推广的潜力越来越有兴趣。X-Engine是阿里云数据库产品事业部PolarDB新型存储引擎团队研发的一个LSM-tree存储引擎&#xff0c;目前在阿里云PolarDB产品上提供对外服务。我们以X-E…

再见了,我的散装研发管理平台;再见了,4台ECS!

简介&#xff1a; 目前云效全家桶的功能相对来说比较适合个人开发或者中小团队的群体&#xff0c;如果你此时正在为搭建这类管理平台做选型&#xff0c;同时预算和人力都捉襟见肘&#xff0c;那么不妨试试云效这个产品&#xff01;一起白嫖一起爽&#xff01;尤其服务器资源在阿…

15拆分成3个不同的自然数_17个数学重点知识点汇总,一篇搞定小升初

更多电子版学习资料请关注公众号&#xff1a;小学资源园地1体积和表面积三角形的面积底高2。公式 S ah2正方形的面积边长边长 公式 S a2长方形的面积长宽 公式 S ab平行四边形的面积底高 公式 S ah梯形的面积(上底下底)高2 公式 S(ab)h2内角和&#xff1a;三角形的内角和180度。…

走进统信软件,读懂国产操作系统新生态建设

回顾国际 2021 操作系统领域发展&#xff0c;有起伏有波澜&#xff1a;开源操作系统 Linux 迎来 30 岁&#xff0c;全球超级计算机 500 强和超过 70% 的智能手机都运行其上&#xff1b;CentOS 突然宣布 CentOS 8 停止维护&#xff0c;不少企业不得不面临迁移难题…… 反观国产…

Serverless 工程实践 | Serverless 应用开发观念的转变

简介&#xff1a; Serverless 架构带来的除了一种新的架构、一种新的编程范式&#xff0c;还包括思路上的转变&#xff0c;尤其是开发过程中的一些思路转变。有人说要把 Serverless 架构看成一种天然的分布式架构&#xff0c;需要用分布式架构的思路去开发 Serverless 应用。诚…

中科院计算机所硕士导师,中科院计算技术研究所研究生导师介绍:毕经平

中科院计算技术研究所研究生导师介绍&#xff1a;毕经平简历:2002年7月于中国科学院计算所获得博士学位&#xff0c;同年9月被破格提拔为计算所副研究员&#xff0c;2008年3月被任命为博士生导师&#xff0c;2009年1月获得卢嘉锡青年人才奖作者佚名次阅读2014-05-15代表论著:1)…

bash: 未预期的符号 `( 附近有语法错误_安规群中关于泄漏电流测试、接地符号等相关的6个问题,快来围观大神的回答吧!...

【本文属"世界认证地图"原创&#xff0c;未经允许&#xff0c;请勿转载哦~~~】问题一群员提问&#xff1a;接地这样符合GB4706.1-2005的标准要求吗&#xff1f;图片由群友提供群友解答&#xff1a;接地符号标错地方&#xff0c;应该如下图图片由群友提供专家解答&…

多项“首次”落地 腾讯云数据库助力金融机构国产化

日前&#xff0c;IDC发布了《2021年上半年中国关系型数据库软件市场跟踪报告》&#xff0c;数据显示&#xff0c;我国关系型数据库市场规模迅速增长。2021上半年&#xff0c;中国关系型数据库软件市场规模为11.9亿美元&#xff0c;整体市场同比增长37.2%。IDC预测&#xff0c;2…

庖丁解牛-图解MySQL 8.0优化器查询转换篇

简介&#xff1a; 在《庖丁解牛-图解MySQL 8.0优化器查询解析篇》一文中我们重点介绍了MySQL最新版本8.0.25关于SQL基本元素表、列、函数、聚合、分组、排序等元素的解析、设置和转换过程&#xff0c;本篇我们继续来介绍更为复杂的子查询、分区表和JOIN的复杂转换过程。 作者 |…