支持的检测规则

本文介绍云效支持的代码检测规则种类。

规则说明

云效支持多语言的代码检测规则,覆盖源码开发质量规范和源码安全,以及依赖包风险漏洞扫描,覆盖CWE\OWASP\SANS\CERT等标准。

规则包名称

适用语言

规则介绍

Java开发规范

Java

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

Java安全检测

基于spotbugs提供一系列规则和模式来检测代码中的常见问题,帮助开发人员提高代码质量、减少潜在的安全漏洞。

源码漏洞检测

在软件编程中大多数安全漏洞都源于撰写者,虽然编码工具偶尔也会发生意外,但大部分的错误还是由于编码不当造成的。企业可以通过为开发者提供更多的编码安全培训来尽可能的减少安全风险,但是效果通常并没有设想的有效。

云效源码漏洞检测基于专业安全产品Sourcebrella Pinpoint,为用户提供编码漏洞检测服务,包括:

  • 数据泄露:例如泄露堆栈信息、数据传入不安全API等。

  • 安全策略管理:如弱加密函数、不安全SSL、不安全随机性、访问控制、不安全存储等。

  • 输入验证:如邮件命令注入、Json注入、LDAP操纵、跨站点请求伪造等。

依赖包漏洞检测

现代企业常用开源组件,开源依赖提供方通常没有较多的预算进行安全性测试,黑客的主要攻击目标也是开源包内的漏洞。为了杜绝安全隐患,企业需要做到以下三点:

  1. 了解工程都使用了哪些依赖包。

  2. 删除不需要的依赖包。

  3. 检测并修复当前依赖的已知漏洞。

依赖包漏洞检测基于丰富的安全漏洞库,高效识别代码直接和间接依赖的漏洞风险,并可推荐直接依赖包的修复版本,进而屏蔽直接和间接的风险引入。

代码补丁推荐

基于业界和学术界流行的缺陷检测手段,并分析和规避其局限性,云效通过自研算法,更精准高效的分析代码缺陷并推荐优化方案,该算法被国际软件工程大会(ICSE)收录。

代码补丁推荐服务目前应用于合并请求的代码自动扫描场景,基于最佳实践样本训练的智能代码补丁推荐算法,为开发者提供缺陷补丁建议。

JavaScript开发规范(Vue\React)

JavaScript

基于《阿里巴巴前端规约》配套的ESLint配置,JavaScript开发规范主要包含了编码风格、语言特性、注释、命名检查等。

TypeScript开发规范(Vue\React)

TypeScript

基于《阿里巴巴前端规约》配套的ESLint配置,TypeScript开发规范主要包含了编码风格、语言特性、注释、命名检查等。

Golang开发规范

Golang

支持Go代码规范问题扫描,包含代码风格、代码简化、不具结构性的段落以及未使用的函数、变量和类型等。

Golang安全检测

基于gosec静态分析Go代码,检测和识别潜在的安全漏洞和问题,并提供实时反馈和建议,帮助开发人员在上线前及时发现问题并解决。

Python开发规范

Python

分析Python代码中的错误,查找不符合代码风格标准、有潜在问题的代码并提供重构建议。

Python安全检测

基于Bandit检测工具帮助开发者检测和修复Python代码中的编码安全问题。

Python编码风格检测

基于PyCodeStyle检测工具帮助开发者检测和修复Python代码中的风格问题。

Node.js安全检测

NodeJs

基于ESLint规则,检测Node应用中常见的潜在安全隐患。

C/C++安全检测

C/C++

C/C++ 安全检测规则包,基于CppLint实现的安全检测功能。根据Google的编程风格指南,CppLint可以扫描代码,并检查代码中的每行是否符合Google的编码风格规则且能快速识别代码中的安全问题,并提供优秀的代码安全规范建议,帮助开发人员改进代码质量和安全性。

C/C++基础规则包

C/C++基础规则包,它提供了独特的代码分析来检测错误,不需要提供编译信息,执行的检查包括:代码出现未定义行为或其他错误、代码风格检查、以及性能因素检查等。

Lua通用检测

Lua

基于LuaCheck检测工具帮助开发者检测和修复Lua代码中的语法,编码风格和安全问题。

Scala编码风格检测

Scala

基于ScalaStyle工具进行Scala编码风格检测,帮助开发者优化编码过程的产生的Scala编码风格问题。

Kotlin基础规则包

Kotlin

基于Detekt检测工具帮助开发者检测与修复kotlin开发过程中的编码问题,帮助开发人员提高代码质量、减少潜在的代码漏洞。

Android基础规则包

Android

基于Androidlint检测工具帮助开发者检测与修复开发过程中出现的编码规范,安全问题,帮助开发人员提高代码质量、减少潜在的代码漏洞。

敏感信息检测

不限语言

检测代码中的API keys等敏感凭证和密钥,有效防止敏感信息意外提交和泄露。