源代码数据安全经验分享

目前为止,了解实施了不少项目,概括下来该行业有如下特点:

1、软件研发人员水平比较高,首先得做到不易被破解;

2、软件研发人员的反监控、反加密、反防泄密的水平比较高,比较难防。普通的加密产品,很容易被秒杀。想花时间的人,进程伪造IP伪造dll注入等,懒的人去网上的下点工具,基本上都能搞定。懂安全的人就更不用说了,相信目前市面上的加密产品,95%的产品都很难熬过10分钟;

3、大部分员工都会抵触监控或加密。除非公司够强势,发的钱足够多,单位足够好,否则很难推,进行项目推进的话,需要找到平衡点;

软件研发环境方面,也较为复杂:

1、VC++(MFC/ATL/COM/服务/Socket),JAVA(JSP/J2EE/J2SE/J2ME),PHP,C#(app/.net),protel等等,如果是电力行业或者嵌入式的,PLC工控的,Android开发,则开发工具更加千奇百怪。这个时候,采用传统的加密产品来解决,基本上死路一条,因为没法进行那么多进程关联;

2、不能影响本地调试编译,特别是和网络相关的调试或服务调试,模拟器的调试;

3、服务器linux居多,客户端基本都有虚拟机;

在行为管理使用方面一般有3点:

1、需要给员工一定的自由空间。比如上网查资料,QQ等,只要不涉及公司机密,还是允许他做,并不监控。 这样员工不容易反感太厉害;

2、安全和便利是对立的,要掌握一个平衡点,一点不影响工作效率是不可能的,影响太厉害也是会被反感,对公司也没帮助;

3、没有绝对的安全,上安全的目的是增加其泄密成本,而不是彻底杜绝泄密,没有谁敢拍胸脯说自己产品没有一点问题的,就算是微软这么大的公司,产品还是有bug;

4、当真正需要防泄密方案时,必须有一套合理的规章制度和一个适合的安全软件,配合使用,相辅相成;

选产品选型的时候,需要同时满足一些条件:

1、不影响编译,调试debug;

2、不影响版本管理,版本对比;

3、不能只是.cpp等源代码加密,其附属物,obj,exe等都需要是受控的;

4、不能破坏文件;

5、最好源代码文档在服务器上是明文,在员工开发机器上是密文,减少对加密软件依赖性,防止安全事故;

6、不能影响上外网查资料,上QQ等,但不能经此造成泄密;

最近遇到一个客户,他们有个研发部门本来他们原来用无盘工作站方式做开发,有图纸,有源代码。采用无盘,主要目的就是防泄密。初期20-30人的时候,应该说效果很令人满意,但是目前这个部门已经100人了,相关部门也快500人了,研发人员做个图纸,调试个软件慢得跟某种牛一样,究其原因,是并发数较大的时候,网络负载和服务器负荷太高了。他们是做图纸设计和工控源代码开发的,几乎每位设计人员都必须使用AutoCAD,Pro.E和SolidWoks等耗资源很大的软件。工控源代码调试的时候,还必须用本地的串口,并口或者网络,结果只好买了些脱离无盘系统的笔记本。 速度慢的问题,本来想对无盘工作站进行扩容,但造价太昂贵了,并且部门还在不断扩大,这样下去不是办法,用他们的领导的话是:每个人都一个工作站,那肯定不存在速度问题了,但无盘的价值在哪里?另外,无盘虽然文件不再本地保留,但是因为上网会泄密等,造成很大不便。经过邮件,网络等仍然可以泄密。本地调试用的笔记本,仍然可以泄密。

最后更换成了SDC沙盒(沙盒也是一种云的理念)方案,

1)终端数和服务器负载无直接关系(SDC沙盒支持5000用户同时在线);

2)客户端运行占大资源的设计软件无速度问题(和单机跑损耗在5%以内);

3)设计结果和图纸,源代码和文档只能存在服务器,服务器上的文件,创建,修改编辑,另存等上不落地(本地无法保存);包括笔记本。

4)非客户端或外来PC无法接入服务器和访问其他客户端,使其隔离成为孤岛;

5)研发设计的同时,允许上网(网页浏览,资料下载,QQ,MSN使用),但不能把服务器上的数据传出造成泄密;

6)笔记本地外设,U盘,光盘,软盘等都是只读;

7)WinPE光盘启动本地客户端(包括笔记本),或把本地硬盘拆走,无数据泄密。(本地本来就无图纸数据);

8)服务器上的任何文件要拿出涉密环境,都需要走审批流程;

猜你喜欢

转载自blog.csdn.net/cnsinda_sdc/article/details/129957897