论坛首页 综合技术论坛

团队开发中代码安全的问题

浏览 33612 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-03-08  
gigix 写道

责任对应利益。项目如果失败,不管是哪块代码出的问题,你的利益受不受损?if so,你有没有责任去帮忙(当然,你有能力的前提下)?如果有人说项目失败了不关我事,我只管写好我这块代码,那好办,第一时间把他踢出去。

代码集体所有主要用于在团队成员之间构建合理的技术和知识分布,避免由于团队人员变动而给项目带来风险;
0 请登录后投票
   发表时间:2006-03-09  
vaja 写道
robbin 写道
你们开发的是什么系统,军队导弹导航系统吗?需要那么高保密级别?


呵呵,其实我自己也觉得用不着这么高的保密级别。但是领导提出这样的要求,我就想问问大家是否真的有什么好的解决方法。

如果没有太好的解决办法,只要有充分的理由能说服领导就行。
所以也想通过讨论分享一下大家的团队代码管理经验,最后能汇总出充分的理由证明对代码的限制弊大于利就行。

根据前面的一些讨论贴,现在能总结出来的一些理由如下:
1. 不利于团队成员间代码开发经验的共享,从长远考虑,对团队的发展不利。
2. 会导致各种猜疑和推脱,开发过程中如果出现各种衔接问题,每一个人会设法把问题推到另外一边去。
3. 与“所有人对所有代码负责”的团队管理办法相违背(如果这个理念是业界非常推崇的话就好办了)。
4. 降低人员的工作效率及公司的运转效率。
5. 降低了团队成员的责任感,使得“项目失败不关我事,我只管写好我这块代码”的思想成为主导。
6. 代码集体所有可以在团队成员之间构建合理的技术和知识分布,避免由于人员变动而给项目带来风险。

如果能再举几个具体的实例,比如XXX系统,包含XX模块……,在开发过程中也没有采用限制代码的开发方式,就更令人信服了。

对公司生存来说,这些代码是最重要的,还是这个组织系统和公司品牌,平台是最重要的?如果代码是最重要的,那掌握这些代码的人应该成为公司的股东,如果代码不是最重要的,别人拿去了又怎样?一个人把代码带走,能够自己去拿去作为产品抢市场同时提供维护服务?如果可以,那么就不是什么代码安全的问题了.
再说了,开源的代码这么多,你们的代码真的值得保密吗,真的值得大家偷回去慢慢研究?如果是,那你们公司一定是大家都想进去的地方.
0 请登录后投票
   发表时间:2006-03-09  
如果公司靠卖这个软件或基于这个软件的服务来赚钱,领导的想法也是完全可以理解的。
我觉得楼主关键是计算一下代码完全共享和每个人只能看到自己的代码这两种做法各自的效率,甚至可以做两个应用不同方式开发的开发计划给领导看,由领导自己去决定。
把领导想象成客户吧,开发人员的权力是列出成本,其他的抉择让客户去做。
0 请登录后投票
   发表时间:2006-03-09  
这个从手段上可以约束的到,比如我们用CC的话就完全可以。可是,这样做的话除了降低整个团队的开发效率和破坏团队的气氛之外还有什么好处呢?
这个从道德和法律上面去约束可能会取得更好的效果,你们都没有签订保密协议吗?
0 请登录后投票
   发表时间:2006-03-20  
有个要花点钱投资的办法,可以既提高保密级别,又不严重降低效率:

给所有开发人员额外铺设一个专用的局域网、提供专用的服务器、专用的开发工作站。这些机器全部不与internet和公司的其余网络相连。没有光驱、没有软驱、禁用所有USB端口。除了PM和TL几个级别高的人以外没人可以往外拷贝东西。开发的机器都在专用的房间里,大家都在里面开发。专用的网络不提供网口插手提电脑(以防泄密)。要上网查资料,就到外面的机器查。

反正讲到底就是钱,老板舍得投,也未尝不是一个办法。
0 请登录后投票
   发表时间:2006-03-21  
从信息安全的角度,软件系统的源代码作为公司的一项重要的信息资产,公司管理者有责任采取必要的措施对其安全性进行保护,对此无可厚非。相反公司管理人员不考虑这个问题,就是失职。

任何资产都是有价值的。源代码也不例外。因此在对源代码采取保护措施以前,需要对其价值进行评估。评估需要从保密性,可用性和完整性三个方面入手。评估的方法可以估算资产能给公司带来的直接价值,或者安全性的某一方面遭到破坏可能给公司带来的损害。信息资产的价值决定了应该采取的保护措施的成本的上限。采取成本超过资产价值的保护措施显然是没有意义的。

比如,如果一个开发软件产品的公司源代码泄露,被竞争对手获得。竞争对手有可能将其改头画面,包装成自己的产品强先推向市场,占得市场上的先手。或者竞争对手由源代码中窥得产品的独特功能的独特实现方法,从而在自己的产品中模仿,而获得类似的功能,以此弥补竞争劣势。这些都会给公司造成损失。这种情况下,公司应该采取一定的措施保护源代码不外泄。

而对于从事软件外包业务的公司来说,既然已经与客户签了合同,那即使其它人获得了系统的源代码,那也不大可能再卖给客户,客户也不大可能买。这种情况下,源代码在保密性方面的要求就很低。

因此,如果老板要保护源代码,LZ首先要给老板分析,你们公司的源代码的价值到底有多大,对于保密性,完整性和可用性的要求到底有多高。然后再问你们老板准备花多大代价来保护。

保护措施的成本有有形的,也有无形的。软硬件的投资自然是有形的。对开发效率,团队士气可能带来的负面就属于无形的成本。

确定了要保护的目标,愿意付出的成本以后才能考虑采取何种方式。

“限制每个人只能看到一部分代码”这个是方法,不是目标。要探究这背后老板的真实动机。如果老板的真实动机是要保护源代码不外泄,那么限制访问权限只是方法之一。前面有人建议的封锁所有外接端口的也是一种方法(华为就是怎么做的)。当然不同的方法代价和效果都是不一样的。

对一个比较大的系统来说,不同部分对安全性的要求,对企业的价值也是不一样的,这就需要采取不同的保护手段。

总之,是否需要保护,怎么保护,都必须建立在对信息资产的价值和安全要求的评价的基础之上,然后再对所有可能的保护措施分析,分析的内容就是可行性,可靠性,成本,效益。
0 请登录后投票
   发表时间:2006-04-03  
不错,有道理
0 请登录后投票
   发表时间:2006-04-03  
1、想保护资产,老板的想法肯定不用怀疑的;
2、可能想让大家各负其责,各干好各的,但是少了交流。

其实真的比较难。不过我见过的是分层分块,有一组专门做一些底层平台性质的,然后上面那一层的人让其它人去调用。但是实在人家要看还不会去jad一下啊,除非你又将之混淆?以人为本,那么多代码看得我估计会一个头三个大,有时间还不如去看看Spring、Hibernate的源码。

带走源码可能会用在一时,但是带走思想那就。。。要圈住这头牛了。。。
0 请登录后投票
   发表时间:2006-04-03  
引用
某老板走到实施部门某个要出去演示的哥们面前:

老板:代码拿出去要看紧的,这是我们公司的命根,代表着我们的美好来...省去滔滔江水江湖骗术千百。
下属:嗯,非常明白BOSS,我会一路顺风的。
老板:千万不要把源代码带去!加了密也不安全。
下属:这句话听了N百遍了,强烈抗议。
老板:抗议无效,你速去速回,回来前把客户那部署的盘格式化了............
下属:可是这样我走了客户想再看怎么办?
老板:你就再去一次吧............
下属:#$#@$#!@

  
   老板应该要保护的不是代码,而是团队中开发人员!
0 请登录后投票
   发表时间:2006-04-03  
我觉得”所有人对所有代码负责“不一定正确,这样做的结果是所有人都不负责
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics