草庐IT

《阿里云代码安全白皮书》5个维度应对3类代码安全问题

云效DevOps 2023-03-28 原文

摘要:在互联网快速发展的时代,代码是企业最核心的资产,代码安全也是企业资产安全最重要部分;为了保护企业代码安全,各公司使出的手段也是五花八门。阿里云云效联合阿里云的代码安全能力从基础安全、备份与恢复、安全与加密、审计与洞察、代码安全检测5个维度,达成「进不来」、「搞不坏」、「译不破」、「带不走」、「赖不掉」的效果。

企业的代码安全作为最重要的数字资产之一,企业和开发者在解决开源依赖包漏洞代码安全问题的同时,还需要考虑如何更全面地保障自己的代码数据安全。那么有哪些安全问题值得我们关注呢?

第一种,编码中自引入风险漏洞

例如:

● 源码编码安全策略问题,如弱加密函数、不安全SSL、Json注入、LDAP操纵、跨站点请求伪造等;
● 敏感信息如 Token、密码等明文泄露
● 引入不安全的二方、三方依赖包

第二种,代码数据丢失或泄漏

如员工恶意或手误删除代码数据、非核心技术人访问权限不明导致核心数据泄露等。

第三种,来自外部黑客攻击

如存在基础设施、组件漏洞导致的被攻击损失。

在如此危机四伏的环境下,云效代码管理平台 Codeup 如何保障企业代码资产安全?

阿里云云效联合阿里云的代码安全能力从基础安全、备份与恢复、安全与加密、审计与洞察、代码安全检测5个维度来应代码安全问题,保障编码环节代码安全。

基础设施安全确保“进不来”

云效系统完整部署在阿里云基础设施上,保证高度自动化的运维与安全。

  • 系统部署在阿里云独立 VPC 中,应用层服务、数据服务均具备双机房容 灾能力,支持分钟级切换到备用机房并提供服务,整个网络环境受阿里云 统一管控;
  • 服务器使用阿里云的 ECS,稳定可靠;
  • 系统及中间件都采用集群化服务,具备弹性伸缩能力;
  • 数据库及中间件均采用阿里云安全认证的云产品,包括 RDS、RocketMQ、 OSS 等;

云效应用安全

阿里云应用安全已形成一套规范的阿里云应用安全开发规范体系,全面覆盖云效 业务,云效的源码经过严格的安全审核,安全检查覆盖静态资源、前端应用、后 端应用、OpenAPI 等,覆盖密码安全、虚拟化安全、应用安全等多个维度。

数据存储安全

云效面向企业级用户,数据存储安全至关重要。存储加密、多地容灾等保障企业 数据存储的安全性。

数据传输安全

云效为用户访问(包括读取和上传)数据提供了套接层协议(SSL/TLS)来提升数 据传输的安全性,保障数据在传输过程中无法被解密和篡改。

多副本备份和恢复确保“搞不坏”

代码库存储安全

  • 云效Codeup 在底层存储节点上对代码库进行哈希散列处理,从而避免存储节 点由于仓库分布不均匀而成为热点;
  • 针对单个节点可能存储大库而导致热点的问题, Codeup 通过多副本的方 式对单个节点的请求进行负载均衡,根据实际流量可以实时进行弹性扩容 /缩容;
  • 仓库数据的备份策略为多份热备份+1 份冷备份,其中热备份至少会存在 2 份,冷备份数据存储全量数据快照;

对接阿里云高防产品

服务端支持对异常请求的 IP 进行限流、熔断操作,同时 HTTP 请求强制跳转为 HTTPS 协议请求。

云效Codeup 接入阿里云盾高防系统,能够抵御流量攻击和 CC 等 DDos 分布式拒绝 服务攻击,包括如下功能:

功能子功能描述
攻击防护类型 畸形报文过滤 过滤 frag flood, smurf,stream flood, land flood 攻击
攻击防护类型 畸形报文过滤 过滤 IP 畸形包、 TCP 畸形包、UDP 畸 形包
攻击防护类型 攻击防护类型 传输层 DDoS 攻击防 护 过滤 Syn flood,Ack flood,
攻击防护类型 攻击防护类型 Web 应用 DDoS 攻击 防护 过滤 HTTP Get flood,HTTP Post flood,高频攻击等攻 击,支持 HTTP 特征 过滤、URI 过滤、 host 过滤

行为管控与加密确保“译不破”

云效从多方面为企业提供安全功能特性,时刻守卫企业资产安全。

事前防控

  • IP 白名单:限定特定 IP 段允许访问企业代码库,非 IP 白名单内的访 问(代码库克隆、下载、提交、合并等操作行为)均会被阻止。
  • 离职用户权限清理:和钉钉企业绑定后,员工从钉钉企业离职,自动回收 权限。
  • 多级精细化权限管控:多角色权限分级,权限清晰明确。
  • 下载控制:限制代码库的克隆下载操作。

事中预警

  • 安全通知:针对代码库删除和公开性调整事件,提供及时通知机制,帮助 企业管理者第一时间识别风险。

事后追溯

  • 提供库级别、代码级别和企业管理级别完备的审计日志,帮助企业管理者 追溯问题和责任。

审计和洞察追踪确保事后“带不走”

  • 离职用户权限清理:和钉钉企业绑定后,员工从钉钉企业离职,自动回收 权限;
  • 多级精细化权限管控:多角色权限分级,权限清晰可控;
  • 审计日志:危险行为计入日志,支持审计追溯;

代码安全检测确保“赖不掉”

云效 Codeup 通过事前防控、事中预警、事后追溯机制,从用户行为安全、代码 内容安全为企业代码资产安全保驾护航。

用户行为安全

  • 回收站:延迟删除代码资源,无论是恶意删除还是手误反悔,都可以在回 收站有效期内一键恢复。
  • 敏感行为监测:通过智能化算法评估企业成员的异常行为,帮助企业管理 者感知风险,及时止损。

代码内容安全

敏感信息报表宏观呈现企业内敏感信息分布情况,帮助企业管理者推动开 发者提升代码质量,降低企业敏感信息泄露风险。

  • 「敏感信息检测」服务,全面扫描代码中隐藏的敏感信息问题,防止企业 隐私信息泄露。
  • 「依赖包漏洞检测」服务,及时检查编码依赖项漏洞,帮助企业保证工程 依赖包的安全性。
  • 基于云效流水线 Flow,支持灵活扩展更多安全检测能力。
  • 自动化检测、人工评审都可作为代码合并卡点,管控危险代码禁止合入主 干环境。
  • GPG 签名确保提交记录或者标签来自受信任的来源。

用户隐私

我们致力于保护您的数据隐私,防止未经授权的访问。

严格控制访问权限 ,除非出于支持原因需要,并且只有在企业通过支持申请单要求云效提供技术支持 时,云效支持人员才能访问您的企业。 处理支持问题时,我们将努力尽可能地尊重您的隐私。

验证帐户所有权后,我们将仅访问解决问题所需的文件和设置。支持可能会登录 您的帐户以访问配置,但我们会将审查的范围限制在解决您的问题所需的最小范 围内。

此政策有两个例外情况:您的行为违反了我们的服务条款,或者我们因法律要求 提供数据。

总结

云效通过了公安部网络安全等级保护 2.0 三级认证、ISO 27001 信息安全管理 体系标准认证、ISO 9001 质量管理体系认证,标志着云效安全实践达到国内外 相关权威机构的安全标准要求,用户使用云效的数据保密性、完整性、可用性和 隐私性已经与国内外最佳实践对标,且得到独立第三方安全认证

云效始终坚持客户第一的原则,通过各项安全控制措施,加强安全体系建设,积 极拥抱国内外安全监管,规范内部安全运营活动,在充分考虑客户权益的基础上 构建了兼具安全和合规性的解决方案。

踏云而上日行千里,在客户业务快速发展的背后,云效将不遗余力地保障您的研 发资产安全,同时带给您和团队流畅便捷的云上体验。

云效Codeup提供的安全能力还有很多,在访问安全、数据可信、审计风控、存储安全等角度全方位保障企业代码资产安全,如果你开始重视代码安全这件事,不妨立即前往云效 Codeup 开始探索。点击下方链接,即可免费体验云效代码管理 Codeup

立即体验

参考阅读:

云效安全哪些事儿-Codeup代码智能安全检测服务
安全那些事儿-数据回收站 & 代码备份
揭秘!业界创新的代码仓库加密技术
Apache Log4j2 丨阿里云「流量+应用+主机」三重检测防护指南

关于我们

了解更多关于阿里云云效DevOps的最新动态,可微信搜索并关注【云效】公众号;

福利:公众号后台回复【代码安全】免费下载《云效产品安全白皮书》!

回复【指南】,可获得《阿里巴巴DevOps实践指南》&《10倍研发效能提升案例集》;

看完觉得对您有所帮助别忘记点赞、收藏和关注呦;

有关《阿里云代码安全白皮书》5个维度应对3类代码安全问题的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  3. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  4. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  5. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  6. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  7. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  8. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

  9. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  10. ruby - 模块嵌套代码风格偏好 - 2

    我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的

随机推荐