软件源代码防泄漏解决方案 - 软件公司如何保障源代码不会被外泄?
源代码是软件开发企业最重要的资源,也是开发人员思想、经验和智慧的结晶。软件公司内部的全部核心代码文档以及程序文档都是绝对商业机密,因为这是软件企业的核心竞争力所在。
由于商业的激烈竞争,存在从业人员将企业核心源代码泄密给竞争对手的风险,或者不遵循“竞业禁止”约定而随意拷贝、利用、扩散及分发,为企业带来不可估量的损失。
研发数据是否安全,与企业内部有意或疏忽造成信息泄密息息相关。针对此种现象应使用源代码加密软件,亚讯数据加密软件,员工不用受一些限制,可以自由上网,在加密环境中办公,不对任何硬件做修改,企业内部的文件只能放在公司范围内打开,带不出加密环境,如若想带出去,则需要走严格审批流程。加密中的文件也不会改变文件类型和大小,更不会造成文件损坏、文件丢失等情况。
源代码程序文件透明加密
从数据泄密角度来看,只要是源代码程序文件以明文方式在硬盘上保存,无论是从访问控制、设备监控、安全审计等手段都无法从根源上彻底解决数据泄密隐患。最有效的手段就是对存储代码文件进行强制加密保护。
亚讯提供的数据防泄密系统采用国际最先进的Windows底层文件驱动过滤技术(同时也支持Linux、MacOS 操作系统),在不改变研发人员原有工作习惯和工作流程的情况下,对IntelliJ、java、android Studio、MPLAB IDE、my Eclipse、VS、Delphi 等源代码软件进行加密保护,员工在正常工作环境是无任何感应的。源代码文件加密后,不影响软件的正常编译调试,合法用户正常双击打开,在授权范围内使用,非法用户则无法使用,即时带出公司打开也是乱码,从而实现源代码文件安全防护目的。
加密保护的源代码软件部分列表
软件类型 |
常用软件名称(部分) |
代码开发语言 开发编译工具
|
C、C++、C#、Java、Vue、Php、Python 等所有软件开发语言 Eclipse、MyEclipse、Visual C++、Source Insight、Keil、Qt、Delphi、Python、ZendStudio、Visual Studio、Android Studio、MPLAB IDE、IntelliJ IDEA 等 |
代码比较工具 代码管理工具 |
Beyond Compare、Compare it、Araxis Merge 等 SVN、GIT、VSS、CVS、TFS 等 |
源代码文件内容安全保护
除了管控源代码文件安全外,还需要对源代码文件内容进行安全管控,防止用户通过剪切板、截录屏等途径进行泄密。亚讯提供的数据防泄密系统通过以下保护措施实现对源代码文件内容的安全防护:
① 受控程序之间可以进行内容的复制、粘贴、剪切等操作,但是受控程序的内容不允许粘贴至非受控程序中,防止用户从密文文件向明文文件拷贝文件内容;
② 当终端受控程序改名为假冒的进程时,假冒的进程会被结束掉;
③ 用户发起截屏请求时(比如键盘Print Screen、QQ、微信截屏以及其他截屏工具等),系统会自动拦截截屏请求,实现屏幕黑屏保护;
④ 在禁止截屏的情况下,为了用户使用方便,可通过加密客户端自带的截屏功能进行截屏,且截取图片自动加密,在安全保护的前提下提高工作效率。
虚拟化技术安全保护
除了上述的代码加密外,防止源代码外泄的技术手段还包括虚拟化技术或云桌面技术,比如VDI(Virtual Desktop Infrastructure 虚拟桌面基础设施)。技术实质是程序运行在后台的服务器端,客户端(使用者的电脑)呈现的只是一个画面,终端根本就不保存代码,程序代码只存在服务端,终端通过虚拟桌面技术直接操作,直接体现在服务端。虚拟桌面或云桌面技术的好处是:源代码集中保存在服务器端,代码根本不在研发人员的电脑中落地,这样可以防止代码本地非法复制拷贝,或者被本地病毒侵袭,还可以防止屏幕拷贝等非法操作;另外采用这种技术后代码的拷贝、修改等行为都是可审计的,如果有恶意拷贝行为也可以及时发现。
这种虚拟桌面或云桌面技术其实已经存在多年,现在算是比较成熟了,对软件公司而言面临的挑战主要是成本(一套新架构,服务器、存储、网络成本都可能增加),以及用户体验。尤其是用户体验,因为计算不在本地电脑而是后台服务器,所以开发人员可能感觉反应比较慢。
云桌面技术对网络带宽和延迟有着较高的要求。如果网络不稳定或者带宽不足,将会极大地影响用户的使用体验。此外,还需要专业人员进行维护和管理,这需要付出较高的人力成本,同时,服务商的服务费用通常也比较昂贵。
其他常见安全保护措施
1、建立分层制度和分层权限,为工作场所划分保护级别(分层权限),这是重中之重!
源代码可以划分核心代码和非核心代码,分别制定保护级别和保护策略;按照项目的需要把技术人员按照职责和权限进行划分,能接触核心代码的人一定是可以信任的人,一般程序员只能接触到自己所负责的模块代码,不能查看其它开发者的源码;底层和核心代码打包封装,通过混淆加密后给程序员调用,尽可能的降低核心代码泄露的风险。
2、网络隔离,公司外网与内网物理隔离,开发者电脑只能访问内部网络,如需访问外网,通过公司公共电脑来访问。
3、硬件隔离,比如封闭计算机的外部接口,包括USB接口、软驱、光驱刻录、蓝牙等,禁止计算机与U盘、手机等外设进行数据交互。
4、对外数据交互统一由责任人来负责审核,专人负责发送和接收。
5、禁止研发技术人员携带任何个人手持设备、存储设备、拍摄设备进入工作区域。为了进一步防止员工偷偷携带设备进入保密区域,甚至可以配备一些检测探测设备。
6、办公区域安装录像设备,同时对计算机后台软件进行监控和审计,推荐终端安全与桌面管理系统。
7、签署保密协议和竞业禁止协议。
更多关于源代码安全与加密详情,请点击如下链接查看详情: