源代码安全保护方案
引言
源代码是软件开发最重要的资源,也是开发人员思想、经验和工作的结晶。对于软件开发企业来讲,公司内部的全部核心代码文档以及程序文档都是绝对机密,是企业的核心竞争力所在。现如今,互联网上可以搜索到大量公开的源代码,其中也包含有大量涉及企业商业秘密的非公开内容。由于商业恶性竞争和职业道德的低下,存在部分从业人员将企业核心源代码低价出售给竞争对手,或者不遵循“竞业禁止”约定而随意拷贝、利用、扩散及分发,给企业带来不可估量的损失。因此,软件开发企业对源代码的保护历来是高度重视和密切关注。如何采取切合实际的安全防护手段保护软件开发企业的源代码等敏感数据安全,成为了众多企业在源代码保护实践过程中的难题。
目前大环境下,研发人员流动性很强,这就要求企业建立一套机制,对企业自己的知识库和项目源代码和图纸,技术文档等进行安全控制,不但要对在职人员的主动泄密行为进行管控,更要杜绝离职人员拿走公司的核心资料,避免因泄密给企业造成损失。另外,源代码行业特点要求必须对研发成果—源代码进行安全管理。源码管理工具是一种 记录代码更改历史, 可以无限回溯, 用于代码管理,多个程序员开发协作的工具。比如SVN/GIT等,这就要求防泄密系统能够与这些源代码管理工具进行无缝兼容。
现在是移动互联网时代,安卓和IOS开发都是在Linux和Mac系统。因此,不仅是windows系统,MAC、Linux系统下的数据安全同等重要。于是,一款能保护企业源代码及其他核心文档安全,且稳定、兼容性好,能够无缝兼容内部代码管理工具,支持跨平台下的数据安全统一管理的加密产品便成为源代码行业的迫切需求。
1、 源代码防泄密的核心需求是:不绑定程序、文件,不区分文件大小,不影响速度,不影响上网。在不影响开发调试效率的前提下,有效管控网络,邮件,屏幕截图等泄密途径。
2、 应用软件的开发环境比较复杂,开发平台大部分是windows平台的,但也有很大一部分是linux和MAC平台,所以防泄密软件需要能够适应复杂的开发环境。
3、 支持同SVN、CVS、VSS等版本管理服务器无缝结合,当源代码更新上传至服务器时自动解密,下载至终端时自动加密保护。
4、 能够提供安全离线策略,既方便研发人员外出工作或者回家加班,又能保证笔记本上的加密数据安全。
5、 鉴于研发岗位的重要性和特殊性,不但要对在职人员的主动泄密行为进行管控,更要杜绝离职人员拿走公司的核心资料,避免因泄密给企业造成损失。
6、 能够控制USB移动存储介质使用行为,防止使用USB移动存储介质非法拷贝涉密数据。
7、 研发人员所有操作行为都必须有可追溯的日志记录,一旦安全事件发生,可提供有力审计依据。
8、 研发人员自身计算机水平比较高、攻击破解能力强、不能容忍出现数据损坏或者影响开发效率等。
1、源代码程序文件透明加密
从数据泄密角度来看,只要是源代码程序文件以明文方式在硬盘上保存,无论是从访问控制、设备监控、安全审计等手段都无法从根源上彻底解决数据泄密隐患。最有效的手段就是对存储代码文件进行强制加密保护。
采用国际最先进的Windows底层文件驱动过滤技术,在不改变研发人员原有工作习惯和工作流程的情况下,对EditPlus、Notepad++、ultraEdit、Eclipse、MyEclipse、 Keil、Visusl studio等源代码开发工具,以及CAM350、PADS、Altium Designer、Cadence、MentorGraphics等电路设计软件进行受控加密保护。源代码文件加密后,不影响软件的正常编译,合法用户正常双击打开,在授权范围内使用。如果加密文件通过QQ、电子邮件、移动存储设备等手段传输到企业授权范围以外(企业外部),那么它将无法被正常打开和应用,打开将显示乱码,文件始终保持加密状态。
除了管控源代码文件安全外,还需要对源代码文件内容进行安全管控,防止用户通过剪切板、截录屏等途径进行泄密。通过以下保护措施实现对源代码文件内容的安全防护:
Ø 受控程序之间可以进行内容的复制、粘贴、剪切等操作,但是受控程序的内容不允许粘贴至非受控程序中,防止用户从密文文件向明文文件拷贝文件内容;
Ø 当终端受控程序改名为假冒的进程时,假冒的进程会被结束掉;
Ø 用户发起截屏请求时(比如键盘PrintScreen、QQ截屏以及其他截屏工具等),系统会自动拦截截屏请求,实现屏幕黑屏保护;
Ø 在禁止截屏的情况下,为了用户使用方便,可通过加密客户端自带的截屏功能进行截屏,且截取图片自动加密。
Ø .....
对于企业支撑部门或管理部门来说,他们往往不是数据的生产者,但由于业务需要,会是数据的使用者。因此,不需要加密电脑上的文件,只希望能够打开加密文件就可以,这个时候就可以采用半透明加密模式。
半透明加密其实就类似一个阅读加密文件的功能,本地自己生成的文件都不加密,而能打开公司内部的加密文件,并确保这些加密文件去编辑保存还是处于加密状态。简单来说就是,自己创建的文件都不加密,明文的文件编辑也不加密,但是别人发的加密文件,你可以打开,且文件始终保持加密状态。
Linux操作系统是当前最流行的开发平台,所以对软件开发企业来说Linux平台上的源代码安全同样至关重要。Linux操作系统具有开放性的特点,因此,企业面临着如何保护Linux系统上数据安全的严峻问题。从加密软件选型上,用户经常碰到以下几种情形:
q 情形一:只有单独Windows平台数据防泄密,不支持Linux平台上的数据加密防护。
► 实现效果:无法保障Linux平台上的源代码安全。
q 情形二:Windows平台和Linux平台分别部署不同加密软件。
► 实现效果:能够分别实现两大操作平台上的源代码安全,但是在跨平台操作时,需要事先进行解密处理,既繁琐又无法保证解密后的代码文件安全。
q 情形三:Windows平台和Linux平台部署同一套加密软件。
► 实现效果:能够分别实现两大操作平台上的源代码安全,且能够实现无障碍跨平台交互。
采用基于Linux内核的文档透明加解密技术,能够在不改变用户使用习惯、计算机文件格式大小和编译程序的前提下,对linux平台上通过eclipse 、idea intellij等开发工具产生的源代码自动加密保护,同windows加密体验无差别。且能够与windows加密客户端完美兼容,在Windows平台下的加密代码可以直接在Linux平台下直接编译,在Linux平台下加密的代码也可以直接在Windows平台下直接编辑、编译等操作。
时代在发生变化,如今在电脑上工作,早已不意味着一定是在“PC”上,如果你是一位平面设计师或视频编辑师,在“Mac”依然可以出色完成工作。因为 Mac 电脑配套了清晰锐利的显示屏以及最为直观的系统界面,适用于各种创作和创意的工作。另外,据统计,目前已经有66%的企业开始使用Mac电脑。特别是企业老板,大多数会倾向于使用MAC操作系统进行办公。所以,对于MAC平台上的数据安全同样要兼顾。
现在唯一的问题是,Mac 和 PC 两个平台在互通方面有所麻烦。如果企业部署的加密软件不能同时支持MAC操作系统,那么只能在MAC上装windows系统,或者将要传送的文件先进行解密,再进行传送。无论哪一种方法,要么掩盖了Mac系统自身的优势,要么就具有极大的不便利性,这些或多或少都将对公司的日常工作造成不必要的困扰。
大部分企业是Windows、Linux、Mac终端混合使用,在进行文档加密管理时通常会遇到不兼容的现象,而为了统一化的管理,又必须使用同一套加密系统,从而保障企业的信息安全和内部工作人员之间的文档流通阅览。针对如此现象,已经全面覆盖Mac、Windows以及Linux系统,在多个系统之间实现文档的统一加密,无缝管控!
随着软件规模的扩大,一个软件产品会有越来越多的开发人员参与开发,每个开发人员所开发的模块或功能总会有千丝万缕的联系。协作开发带来的一个很大的问题就是交流成本的几何级增长。而开放源码可以使交流成本得到很大的降低,开发人员可以通过阅读源代码完成一些需要交流才能实现的工作。目前软件开发企业通常用SVN、VSS 、CVS、TFS、GIT等来作为代码版本管理工具,以达到多个人共同开发同一个项目,共用资源的目的。
开放源代码带来的最大问题就是如何保护这些代码管理服务器上的数据安全。根据企业的实际情况,通常有以下两种情况:
q 情形一:企业内部SVN服务器采取透明模式,即加密文件是可以存放在SVN服务器上的,需要达到的效果是SVN服务器上文件密文存储。
► 解决方案
配合应用服务器安全接入系统来实现只有安装了加密客户端的Windows、Linux、MAC端才能够正常的访问公司内部的SVN服务器。另外,企业还可针对SVN服务器机房安装云监控摄像头24小时防护。
► 解决方案
除此之外,针对应用服务器上的数据安全防护,我们还可提供以下措施:
Ø 传输加密:为了避免用户在与SVN等应用服务器进行源代码文件传输时,被非法分子监听、盗取,系统采用数据加密安全通道,来完成客户端与服务器之间的数据交换,有效保障了源代码文件在传输过程中不被窃取。
Ø 在线阅读控制:支持对在线阅读的网页内容进行安全设置,如:禁止截屏,禁止打印,禁止复制。
Ø 非法外联控制:通过“端到端”的控制,对加密客户端与SVN服务器进行绑定连接,此时,用户将禁止连接仿冒应用服务器,防止非法用户利用客户端上传自动解密机制进行非法外联泄密。
对于企业内部研发人员,有时候一些软件问题在公司(内网)研发环境下无法重现,需要携带笔记本到客户现场,进行联调。此时,既要兼顾离线办公的需求,又要能保证离线笔记本上的代码安全。针对此需求,提供以下解决方案:
1)携带加密笔记本出差办公,在出差之前通过流程进行申请,经上级审批后,导入授权离线策略文件,才能够在授予的时间期限内,在外正常打开加密文件。
2)如果在授予的时间期限内,仍需要在外办公,需要利用公司服务器重新制作授权文件,该笔记本获得授权文件后,才可以重新使用。
3)同时,离线期间的所有操作记录仍然实时记录,在连上服务器后会自动上传,以便管理员审计。
q 所有研发人员的笔记本都进行了强制加密保护,即使研发人员离职时想带走几年下来大量重要的资料,也无法打开;
q 研发人员在新建、编辑代码文件时,系统自动对代码文件备份到服务器指定隐藏目录下保存,避免研发人员离职时有意删除或格式化电脑,给企业带来损失;
q 防范离职人员泄密,除了技术措施,更需要企业拥有完善的保密制度。
USB移动存储介质是造成内网机密信息流失和引入病毒的主要途径,一个小小的U盘便能在不被人察觉的情况下将企业内部重要资料拷走。然而由于工作的需要,企业内部不能封闭U口。因此,将在企业内部使用的移动存储介质变为可管理的移动存储介质,是保障企业内部信息安全的首选。针对以上需求,提供以下管控措施:
1)USB存储设备限制
根据软件开发企业的实际情况,可限制哪些电脑的USB接口能够使用。分别有允许使用、禁止使用、USB设备只读和断网使用(即插入USB存储设备时终端断网)四种限制方式。
2)USB存储设备认证
即:在禁止使用的前提下,允许指定终端用户可以使用经过服务器认证的USB存储设备,没经过认证的USB存储设备将不能被识别。
对于软件开发企业来说,内部网络环境的稳定至关重要。而U盘是引入病毒的主要途径,轻则破坏计算机文件或者系统,重则还可以破坏和瘫痪计算网络。所以必须对U盘的使用行为进行严格管控。可以对所有研发人员电脑上的USB接口设置设备只读,即只能够从U盘上拷出数据,不能往U盘内部考入数据。或者进一步严格限制禁止U盘随意接入,所有能在内部使用的U盘、移动硬盘必需经过授权认证。
对于研发企业来说,研发人员承载着企业未来在商品市场上的科技地位,如何防止研发人员盗窃公司机密资料,并对研发工作进行一个客观的评价,是每个研发企业管理者所重视的。
1) 应用程序使用统计
可以针对计算机研发每天的工作情况和应用程序使用的情况进行人性化统计和分析,记录用户使用应用程序的名称、事件、活动时长、各应用程序活动时长百分比等等,为管理者评估员工工作效率提供了可靠的依据。
2) 文件操作日志审计
记录研发人员终端电脑的文件操作情况。文件操作记录信息包括操作文件时间、终端名称、操作用户、进程名称、操作类型(文件复制、打开文档、文件删除、目录删除、编辑文档等)、操作对象(操作的文件名)、源路径(操作对象的路径)、目的路径(如果是复制文件则显示复制到的目的路径)。还可以记录文件在U盘、网上邻居的复制、删除、新建等操作行为。管理员可在后台下载查看用户操作的文件内容。
3) 其他日志审计
安全审计的目的不仅在于提供安全事件的事后取证机制,还在于未雨绸缪、防患于未然远比简单的亡羊补牢重要。能够全面记录企业研发人员的各项操作行为,及时发现并控制违规操作行为,从而进一步保证公司内部源代码等核心数据的安全。
(1)用户体验零感觉
强制加密方式透明化,不影响软件的正常编译,不改变开发人员日常操作习惯,不影响工作效率。加密文档未经授权许可,离开指定环境无法使用,确保企业源代码安全无忧。
目前,在windows平台上支持的源代码软件如下:
软件类型 | 软件名称 |
开发编译工具 | Eclipse、MyEclipse、Visual C++、SourceInsight、Keil、delphi、 Visual Studio、Android Studio、MPLAB IDE、 IntelliJ IDEA等 |
代码比较工具 | Beyond Compare 、compare it、Araxis Merge等 |
代码管理工具 | SVN、VSS 、CVS、TFS、GIT等 |
(2) 实现Windows平台与Linu、MAC平台的完美兼容
能够实现对Linux、MAC平台完美兼容,方便与Windows平台之间数据交互等操作,有效保护Linux和MAC平台上的源代码安全。
(3) 与应用服务器无缝结合
与现有的文件共享服务器,文档服务器,ERP服务器,PDM服务器,OA等B/S架构系统,C/S架构系统,VSS,CVS,SVN版本服务器等无缝结合。服务器代码在被客户端使用过程中,落地即加密,传回服务器自动解密;代码在客户端受管控,不能通过邮件,文件另存,复制粘贴,网络存储,U盘等方式泄密。
(4) 高安全性
采用独有的三重密钥管理,并支持对密钥配置信息的备份及恢复。当系统进行透明加密文件时,会自动获取主密钥和企业密钥,然后根据随机因子产生一个随机密钥,再利用杂凑算法规则,对这三个密钥进行杂凑获得该文件的加密密钥,完成对受控程序文件进行加密处理。其中:
Ø 主密钥:全球唯一,保证不能搭建出两套一样的加密环境,即保证任何两家使用的客户文件无法相互打开。
Ø 企业密钥:企业自行设置,保证厂家获取到密文,也无法解密。
Ø 文件密钥:每个文件加密时会随机生成一个文件密钥,以提高加密的安全性。
(5) 高稳定性
l 采用驱动层动态加解密技术,通过十年的优化改进,加解密性能更稳定、兼容性更好、运行速度更快,对于大文件的加解密操作和代码编译等支持更稳定。
l 自主研发的数据库,存取速度快,兼容性好,安全稳定,同时降低企业投资成本,在安装、升级、维护上面都非常简单快捷。
l 经过上万家大并发、复杂应用环境的企事业单位验证,加密软件在系统架构及加密性能上有优良的兼容性和稳定性。
(6) 高可靠性
l 客户端支持所有WINDOWS 32位、64位系统,支持主流LINUX系统、MAC系统,兼容现有主流杀毒软件。
l 在未被管理员授权的情况下,不论客户端在线或者离线(包括系统安全模式),客户端程序都不会被用户私自卸载或者非法终止。
l 短期离线策略能够确保在服务器关机或发生故障导致终端不能与服务器通信时,终端还可以在一段时间内正常进行文件的加解密,确保重要文件办公不会因此中断,从而给IT管理员足够的时间修复服务器。