CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全

本文作者:王振威 - CODING 研发总监
CODING 创始团队成员之一,多年系统软件开发经验,擅长 Linux,Golang,Java,Ruby,Docker 等技术领域。近两年来一直在 CODING 从事系统架构和运维工作。

不同类型的企业资产有不同的管理办法,但守护资产的安全性无一例外都是重中之重,但对如何保障代码资产安全并没有形成统一认知。本文将就“代码资产的安全性”这一话题展开全面的阐述,尝试从代码管理的生命周期进行全链路分析,读者可以据此来审视自己企业的代码资产安全。

代码资产安全是什么

代码资产安全不等于信息安全

代码资产安全不等于信息安全,这是很容易理解的。整个企业的信息系统组成不仅仅是代码资产,甚至可以说大多数情况下不涉及代码资产。企业的信息系统往往由基础计算设施、网络平台、软件、数据库等方面组成。信息安全重点是关注上述信息设施在投产之后运行过程中的安全问题。而大多数软件运行的程序包是经由源代码编译的结果,跟源代码本身是分割开来的。信息安全关注的方面更为全面,代码资产安全只是其中的一部分,而且往往不是最为关注的一部分。

代码资产安全不等于代码安全

代码资产安全不等于代码安全,这不太容易理解。代码安全往往指代代码本身的安全性,如代码中是否有远程过程执行漏洞,注入漏洞等等。而代码资产安全是一个管理概念,强调管理过程的安全,而非代码本身安全,例如某研究机构需要研究某种计算机病毒,他们需要在源码库中存放对应病毒的源码。这病毒的源码就是这个机构的重要资产。

代码管理系统不审视源码中的漏洞或者恶意行为,而是必须忠实地确保存储的代码的原始文件

代码资产管理是围绕代码仓库的全生命周期管理

代码资产管理的核心是代码仓库。仓库里存放着企业的全部代码,配置文件以及全部历史版本。守护代码资产安全的核心就是围绕代码仓库的三个关键环节构建起全链路的安全能力,这三个环节分别是检入,存储和检出

检入安全

检入可以理解为开发者在开发环境上编辑好代码,并且把代码传送到代码仓库的过程。这个环节关注两个方面,分别是机密性完整性

机密性

机密性是指开发者把开发环境中的代码检入代码仓库的过程不被第三方窃取,一般通过传输过程加密来实现。Git 代码仓库最常用的是 HTTPS 和 SSH 传输协议。

HTTPS 协议是通过 HTTP 协议加上传输层安全协议(TLS)实现的。HTTP 协议是明文传输协议,这意味着如果没有 TLS,网络节点中的路由设备都可以轻松窃取代码。TLS 可以在 TCP 协议之上建立双向加密能力,配合 HTTP 协议上就是 HTTPS。HTTPS 客户端和服务端先通过非对称加密协商加密算法和密钥,再使用协商的算法和密钥来进行对称加密传输。本文不涉及具体算法的安全性介绍,不过随着密码学的发展,算法在与时俱进,我们可以认为加密算法本身是安全的。

然而这一过程并不完备,攻击者可以制作中间服务器,使得客户端在发起连接的时候误连接了中间服务器,从而跟这个中间服务器进行加密通信。这将导致即便是加密传输,但最终还是会被恶意服务器窃取,这就形成了中间人攻击

行业推出了 CA(证书授权机构)机制应对此问题,即服务器在提供加密传输服务前,要把自己的公钥和服务的域名绑定,并且在全球公信的 CA 处登记。这样一来,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值