最近,各大媒体发布的2.4 亿数据泄漏事件,引起了大家广泛的关注。而这次数据泄露的原因也让人啼笑皆非,某公司程序员把代码不经任何处理上传到了 Github 的公共代码库,泄露了 IP 和用户名密码,导致黑客对整个数据库进行了拖库。

整个事件暴露出目前互联网企业普遍存在的软件研发和代码安全问题,而造成这些问题的主要原因是:

1、缺乏统一的软件研发平台

毫无疑问,软件全生命周期管理是业界所接受的、可靠的软件研发模式。然而,这个管理过程是非常复杂的,不同团队和个人使用不同的工具:Maven、Jira、Junit、Sonar、SVN等等。既无法共享项目信息,又给使用上带来很多不便,这让部门之间产生了明显的信息壁垒。

2、缺少精细化权限管控

互联网公司业务场景中,需要给用户赋角色、给各角色赋权限、实现权限内信息数据的浏览及操作等细粒度权限管控。但是,实际大部分企业内部权限管理混乱,如企业员工对于项目中的重要分支随意提交代码,导致产生很多不必要的损失;无法控制成员读写权限,导致团队代码面临泄漏的危险局面;项目链接发出去后,无法限制访问人员,项目管理困难等。

3、没有完备的代码安全体系

如果公司自建 Gitlab,需要随时关注代码管理软件的各种漏洞和 Bug 并即刻更新;难以应对来自公司内部对代码仓库的恶意破坏,可能发生删库跑路事件等等。可以预见的是,如果没有完备的代码安全体系,类似于本次数据泄漏的事件将会不断被上演。

企业代码安全如何保障?

1、统一工具和系统,减少效率损耗

提供全方位工具支持,帮助企业团队处理研发流程中的需求,开发,审查、持续集成和部署,同时跟踪错误并讨论想法。

项目经理定制项目计划可直接关联需求内容,并给研发人员指派任务,研发人员接到任务后可直接查看关联的客户需求。测试人员提交Bug时可关联到研发人员与此对应的任务。既节省了员工的工作量,也保证了信息的一致性,同时也使得项目研发的所有历史都可追踪到。

开发人员能直接看到自己还有哪些任务要处理,谁分配了任务给自己,自己需要做什么,还有谁和自己一起完成这个任务,当前任务处于计划中的哪个里程碑阶段,任务来自于哪个需求,任务的具体描述是什么等,从而实现跨部门工作,很好的解决了研发团队协作难的特点。

2、灵活且细粒度权限管理

团队协作中,不同的项目成员角色被赋予不同的访问权限,精细化管控项目读写权限,配合保护分支设置,减小误操作带来的损失。良好的公、私有项目,以及企业内、外部项目多维权限设置,便于控制访问权限,保护企业软件资产。

3、全面安全防护体系

企业数据采用基于 SSL/TLS 协议以加密形式传输数据,以确保端到端的网络传输安全。建立企业数据防火墙,员工离职自动删除所有Fork 的企业项目数据信息,重要信息不泄露。为企业项目及企业名下的组织项目进行快照备份,无惧代码误删,为企业代码安全保驾护航。

更多企业安全防护:操作日志记录、异常行为监控告警、敏感操作二次验证、高级别云安全防护、7X24小时运维监控等。

4、代码审核

码云上的 Pull Request 作为一个非常有用的代码审查工具,通过 Pull Request @相关团队成员 让对方审阅自己的代码,指定成员跳转到指定分支后可以对代码进行评论,提出改善建议,帮助改善逻辑及缺陷。

提交 PR 后,我们可以通过双栏对比查看修改文件和源文件之间的差异。

我们可以对指定代码进行提问及评论,回答并展开讨论。通过讨论和评论的方式对代码进行不断的重构和改善,直至指派的审查人员和测试人员对代码完成审查并通过后才能进行最终合并。

有数据显示:2017 年全球有 26 亿条数据记录被盗、丢失或外泄,比 2016 年增加 88%。与此同时,许多企业的安全意识淡薄,导致企业数据资产安全已经成为软件研发管理中的重灾区。码云作为国内首家企业级代码托管平台,基于国内活跃的开源技术社区,致力于为开发者服务 5 年,超过 30,000 家公司和机构正在使用码云,提高企业竞争力。

往期精彩: