阿里巴巴|5 款阿里常用代码检测工具,免费用( 三 )


源伞检测引擎能够在活跃度比较高的大型开源项目中发现隐藏超过 10 年的缺陷 , 以 MySQL 检测 [5
为例 , 这些缺陷都是市面上其他检查工具无法扫描出来的 , 并且能够在 1.5 小时完成 200 万行大型开源项目的检测 。 在保持扫描的高效率同时 , 还能够将误报率控制在 15%左右 。 对于复杂且体量庞大的分析项目来说 , 源伞检测引擎所表现的扫描效率和误报率在业内也处于领先水平 。
「源码漏洞检测」集成了源伞检测引擎的安全分析能力 , 能够在分析精度、速度、深度等方面均衡得到较好的分析结果 , 具备的核心优势:
1、支持分析字节码 , 二三方包的代码逻辑都不会遗漏;
2、擅长跨函数长调用链路的逻辑分析;
3、可以处理引用、指针等带来的间接数据修改;
【阿里巴巴|5 款阿里常用代码检测工具,免费用】4、精度高 , 相比于同类工具 , 如 Clang、Infer , 在精度和有效问题识别上表现更佳;
5、性能好 , 目前单应用平均 5 分钟左右分析完毕;

源伞检测引擎可以精确的追踪代码中的数据流向 , 拥有高深度高精度的函数调用链分析能力 , 可以找到跨越多层函数的深度问题 。 在发现缺陷的同时还能给出问题触发的过程 , 完整展示相关的控制流以及数据流 , 这样可以辅助开发者快速理解和修复问题 , 在软件开发早期更低成本地提高软件质量 , 大幅减少生产成本 , 提高研发效能 。
依赖包漏洞检测 我们期望对于开源组件的安全可信程度 , 为开发者建立一种有效的检测和管理机制 , 因此我们实现了依赖包漏洞检测服务和依赖包安全问题报表 。 在实践过程中 , 开发者普遍反映依赖包漏洞修复成本大多高于修复自身编码漏洞 , 从而不愿意或难于处理此类问题 。 究其原因 , 一方面是大部分漏洞并非直接引入 , 而是依赖的第三方组件又间接依赖了其它组件 , 另一方面是不确定具体哪个版本是干净可用且兼容的 。

为了降低开发者的修复难度 , 我们对依赖项的引用关系进行了进一步识别分析 , 清晰的标注出直接依赖和间接依赖 , 并定位到具体的依赖包引入文件 , 方便开发者快速找到关键问题位置 。 同时 , 通过对漏洞数据的聚合 , 智能推荐修复漏洞的版本升级建议 , 因为一个依赖可能对应多个漏洞问题 , 开发者可以针对建议评估是否接受采用 。 通过分析不同版本间的 API 变更和代码调用链路 , 衡量版本升级成本 , 为开发人员自动创建修复评审 , 最大程度的帮助开发人员更高效地维护代码安全 。
无论是代码质量检测还是代码安全检测 , 以上 5 款阿里代码自动检测工具 , 开发者们都可以在云效 Codeup 内免费体验 。
检测服务应用 1、代码提交
检测服务的最直接的应用便是在代码提交场景中 , 企业可以根据业务场景和规范 , 制定和配置不同项目的检查方案 。 当开发者将代码变更推送至服务端 , 自动触发当前代码库配置的检测服务 , 可以为开发者检查当前 commit 版本中的全量问题 , 帮助开发者及早发现新增问题 , 并确认存量问题的解决情况 。 通过接入上述检测服务 , 可以从代码规范、代码质量、代码安全等多个维度进行测试左移 , 在开发人员刚完成编码时就进行快速检测和反馈 。
2、代码评审
在企业项目协同中 , 开发者多以合并请求的方式将特性分支代码合入主干分支 , 合并请求过程需要项目开发负责人或模块负责人进行代码评审和人工检查 。 一方面人工审查代码需要投入较大精力 , 另一方面人工审查难以覆盖代码各个维度的潜在问题 。 因此 , 通过合理配置检测服务 , 可以极大地减少人工评审的工作量 , 加速代码评审的工作过程 。 同时 , 通过丰富、筛选、沉淀检测规则集和人工经验 , 检测服务可以更加贴合企业的业务场景进行卡点 , 避免不符合规范或存在风险的代码进入企业代码库 。