云效安全那些事儿-Codeup代码智能安全检测服务

简介: 云效Codeup为开发者提供了丰富的代码安全检测服务

随着计算机技术在各行各业广泛而深入的应用,软件规模和调用链路逐渐复杂,潜在的代码安全问题和风险也日益增多。近几年安全漏洞频发,诸多知名软件被发现存在远程代码执行、隐私数据泄露、SQL注入等安全漏洞问题,造成企业资产损失。面对越来越复杂的安全场景和安全漏洞可能会带来的巨大损失,如何识别和管理潜在安全风险成了企业管理者和产研同学的一个不可忽视的问题。

在日常研发过程中,安全类问题往往隐藏在缺乏安全意识的编码逻辑和未检查的开源依赖组件中,难以在功能性测试和代码评审中被及时察觉。云效Codeup为开发者提供了丰富的代码安全检测服务:

image.png

企业管理者可以通过「源码漏洞检测」和「敏感信息检测」识别源码编程中的策略漏洞和隐私泄露问题,通过「依赖包漏洞检测」为每次代码变更引入的三方依赖软件包进行充分的安全检查,并在企业级安全中心和代码库安全页面进行风险数字化管理。除了云效Codeup开箱即用的内置检测服务,开发者也可以简单快捷地在云效Flow流水线平台上解锁更多的自定义检测场景。

源码漏洞检测

Codeup集成了Sourcebrella Pinpoint源伞检测引擎,为开发者提供源码漏洞检测服务。主要涉及到注入类风险和安全策略类风险检测。

源伞检测引擎是香港科技大学Prism研究组在过去十年的时间内的技术研究成果。该引擎吸收了国际上近十年的软件验证技术研究成果,并且加以改进和创新,独立设计和实现了一套技术领先的软件验证系统。其主要验证方式是将编程语言翻译成一阶逻辑和线性代数等数学表达,通过形式化验证技术推理缺陷成因。迄今为止,一共发表了四篇核心技术相关的论文,一篇PLDI和三篇ICSE,研究型的同学可以搜索下方链接阅读:
Pinpoint: Fast and Precise Sparse Value Flow Analysis for Million Lines of Code [1]
SMOKE: Scalable Path-Sensitive Memory Leak Detection for Millions of Lines of Code [2]
Pipelining Bottom-up Data Flow Analysis [3]
Conquering the Extensional Scalability Problem for Value-Flow Analysis Frameworks [4]

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

image.png

云效Codeup源码漏洞检测集成了源伞检测引擎的安全分析能力,能够在分析精度、速度、深度等方面均衡得到较好的分析结果,开发者可在云效Codeup代码库安全页面直接创建源码漏洞检测流水线,无需人工干预,自动寻找软件的编码安全漏洞。

综合来说,Codeup源码漏洞检测具备的核心优势:
支持分析字节码,二三方包的代码逻辑都不会遗漏;
擅长跨函数长调用链路的逻辑分析,即将推出跨微服务的代码分析技术;
可以处理引用、指针等带来的间接数据修改;
精度高,相比于同类工具,如Clang、Infer,在精度和有效问题识别上表现更佳;
性能好,目前单应用平均5分钟左右分析完毕;

image.png

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

敏感信息检测

近年来,业内发生多起敏感信息(API Key、Database credential、OAuth token 等)通过某些站点被无意识地泄露出去的事件,给企业带来了安全风险,甚至直接的经济损失。开发者和企业管理者亟需一款稳定健全的敏感信息检测方法和系统。通过调研我们了解到,目前已有的敏感信息检测工具大多单纯使用规则匹配或信息熵技术,导致其召回率或准确率难以满足预期。因此我们在规则匹配和信息熵技术的基础上,结合上下文语义,提出了一款采用多层检测模型的敏感信息检测工具——SecretRadar。

image.png

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

依赖包漏洞检测

在编码问题以外,根据Synopsys 2020开源安全报告显示,99%以上的组织使用了开源技术。使用开源组件本身带来的技术交流和站在巨人肩膀上协作、降低开发成本、加快迭代周期、提高软件质量等优势已经是业内共识了。但是,开源软件带来一系列便利的同时,也暗藏大量安全风险。据审计,75%的代码库存在安全漏洞,其中49%包含高危漏洞;另外,82%的代码库仍在使用超过4年以上的outdated组件。据Github Octoverse年度报告显示平均每个代码库依赖203个依赖包,而这个数量正在呈现逐年上升的趋势,因此单纯的漏洞检测工具不足以支撑企业和开发者的快速迭代和项目演进。云效Codeup支撑了阿里云上数千家企业,我们期望对于开源组件的安全可信程度,为开发者建立一种有效的检测和管理机制,因此我们提供了依赖包漏洞检测服务和依赖包安全问题报表。

image.png

在调研中,开发者普遍反映依赖包漏洞修复成本大多高于修复自身编码漏洞,从而不愿意或难于处理此类问题。究其原因,一方面是大部分漏洞并非直接引入,而是依赖的第三方组件又间接依赖了其它组件,另一方面是不确定具体哪个版本是干净可用且兼容的。
为了降低开发者的修复难度,我们对依赖项的引用关系进行了进一步识别分析,清晰的标注出直接依赖和间接依赖,并定位到具体的依赖包引入文件,方便开发者快速找到关键问题位置。同时,Codeup通过对漏洞数据的聚合,智能推荐了修复漏洞的版本升级建议,因为一个依赖可能对应多个漏洞问题,开发者可以针对建议评估是否接受采用。

更多检测

因为云效Codeup支持便捷的对接内置流水线产品 Flow,因此可以基于流水线快速自由的扩展出更多的检测能力,并且可以作为提交代码或合并请求的自动化卡点,将即时检测真实的左移,落地到研发场景中。

image.png

image.png

以上您最关注哪方面的检测能力呢,或者您是怎样将代码检测融入到日常研发流程中去的,欢迎添加云效开发者交流群(钉钉群:23362009),和资深同行们一起探讨经验和看法。另外,群内不定期开展研发效能领域大佬直播分享,快去看看他们是如何提升工程效能的吧。

参考链接
[1] http://t.tb.cn/0qxIpFV5sRD5uxOcgED7o
[2] http://t.tb.cn/2l96Jh2yqOGowsfs4oVk2m
[3] https://qingkaishi.github.io/public_pdfs/ICSE2020a.pdf
[4] https://qingkaishi.github.io/public_pdfs/ICSE2020b.pdf
[5] http://t.tb.cn/58wnVUjCi6Lq0UeMHnzn4T

了解更多云效:链接文字

相关实践学习
流水线运行出错排查难?AI帮您智能排查
本实验将带您体验云效流水线Flow的智能排查能力,只需短短1-2分钟,即可体验AI智能排查建议。
ALPD云架构师系列 - 云原生DevOps36计
如何把握和运用云原生技术,撬动新技术红利,实现持续、安全、高效和高质量的应用交付,并提升业务的连续性和稳定性,这是云原生时代持续交付共同面对的机会和挑战。本课程由阿里云开发者学堂和阿里云云效共同出品,是ALPD方法学云架构师系列的核心课程之一,适合架构师、企业工程效能负责人、对DevOps感兴趣的研发、测试、运维。 课程目标 前沿技术:了解云原生下DevOps的正确姿势,享受云原生带来的技术红利 系统知识:全局视角看软件研发生命周期,系统学习DevOps实践技能 课程大纲: 云原生开发和交付:云研发时代软件交付的挑战与云原生工程实践 云原生开发、运行基础设施:无差别的开发、运行环境 自动部署:构建可靠高效的应用发布体系 持续交付:建立团队协同交付的流程和流水线 质量守护:构建和维护测试和质量守护体系 安全保障:打造可信交付的安全保障体系 建立持续反馈和持续改进闭环
目录
相关文章
|
人工智能 自然语言处理 Devops
云效 AI 智能代码评审体验指南
云效AI智能代码评审正式上线!在合并请求时自动分析代码,精准识别问题,提升交付效率与质量。支持自定义规则、多语言评审,助力研发效能升级。立即体验AI驱动的代码评审革新,让AI成为你的代码质量伙伴!
323 7
|
10月前
|
人工智能 JavaScript 测试技术
如何在云效中使用DeepSeek等大模型实现AI智能评审
本文介绍了一种基于云效平台和DeepSeek的AI智能代码评审解决方案。通过云效代码管理Codeup、流水线Flow和DeepSeek大模型,企业可快速实现自动化代码评审。具体步骤包括:创建云效组织并获取API令牌、配置百炼APIKey、开发自定义Flow步骤调用大模型、创建示例代码库和流水线,并通过合并请求触发智能评审。最终,评审结果将自动回写到Codeup中,帮助开发者提升代码质量。
1859 11
如何在云效中使用DeepSeek等大模型实现AI智能评审
|
4月前
|
机器学习/深度学习 人工智能 运维
DevOps 不香了?可能是你还没用上“智能运维”!
DevOps 不香了?可能是你还没用上“智能运维”!
177 0
|
6月前
|
敏捷开发 自然语言处理 IDE
通义灵码+云效 DevOps MCP:通过云效工作项自动生成代码并提交请求
本文将详细介绍如何利用云效MCP服务,根据工作项内容生成对应代码、创建分支、提交代码,并发起合并请求。
|
9月前
|
人工智能 JavaScript Devops
如何在云效中使用 DeepSeek 等大模型实现 AI 智能评审
除了代码智能补全外,AI 代码智能评审是 DevOps 领域受开发者广泛关注的另一场景了。本文,我们将结合云效代码管理 Codeup、流水线 Flow 和 DeepSeek,分享一种企业可快速自主接入,即可实现的 AI 智能评审解决方案,希望给大家一些启发。
421 18
|
10月前
|
人工智能 JavaScript 安全
如何在云效中使用 DeepSeek 等大模型实现 AI 智能评审
如何在云效中使用 DeepSeek 等大模型实现 AI 智能评审
|
运维 Devops Java
DevOps 工具链:从代码到生产
【8月更文第30天】在现代软件开发中,DevOps(Development 和 Operations 的结合)已成为确保快速而可靠的软件交付的关键方法。DevOps 通过自动化流程将软件开发与 IT 运维相结合,从而实现持续集成 (CI) 和持续部署 (CD)。本文将介绍一个典型的 DevOps 工具链,并提供实际的代码示例来帮助您理解如何将这些工具集成在一起。
640 5
|
监控 安全 Devops
DevOps实践:从代码到部署的无缝过渡
【8月更文挑战第30天】本文通过深入浅出的方式,向读者展示了DevOps文化和实践如何帮助团队实现从代码编写到软件部署的高效、自动化流程。我们将探讨持续集成(CI)、持续交付(CD)以及监控和日志记录的最佳实践,旨在为希望优化软件开发周期的专业人士提供实用指南。文章不展示具体代码示例,而是聚焦于概念理解和实践应用,确保内容即便在没有代码的情况下也具有实质性价值。
|
敏捷开发 缓存 前端开发
阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
敏捷开发 弹性计算 持续交付
阿里云云效产品使用合集之同一个主机部署是否支持下载多个制品
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。