深入浅出:嵌入式开发源代码加密解决方案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件研发或嵌入式研发行业,其核心部分往往就是源代码,如何做好源代码的管理至关重要。根据软件研发或嵌入式研发行业的从业者现状,总结出研发从业人员有以下特点:

1.学历较高,都非常聪明,非常懂电脑。

2.每个研发人员都有能力写程序,甚至可以通过写程序,进行各种数据变形。例如:文件读写(输出日志)、socket通信、内存映射,常驻服务等,

对于Web开发者,经由IIS或TomCat等web服务器的代码变形更是

轻而易举。

3.研发人员的个性较强,比较难管理

而我们软件研发或嵌入式行业特点要求必须对研发成果—源代码进行安全管理。但是现实的工作必须环境特点为:

1、大家必须有局域网,才能协同工作;

2、需要能访问互联网,方便查找资料;

3、必须通过U口串口网口等端口连接外部设备进行调试。

对于一些企业有的采用物理隔离,有的上虚拟化,有的上文档级加密软件,监控软件基本上都是形同虚设。例如常见的物理隔离,就是网络和外网断开,然后禁止使用U盘(软件或机箱),看上起很美好,但是对于懂电脑的研发人员来说,影响了工作效率,还是无法达到安全。

对于软件禁止U盘的,搞个U盘PE,然后直接从U盘启动绕开操作系统的管控做任何事。

插拔墙上的网线头直连自己的笔记本电脑进行数据传输。

对于不能封U口/串口的嵌入式调试环境更简单,直接可以把数据通过U口串口写出来。

……

另外,对于虚拟化,所有数在服务器端,看上去很完美,但是只要外网可用,外设可用,基本上没什么安全可言。

作为一个软件嵌入式研发公司的信息安全管理者,应该如何呢?

我们先了解一下,嵌入式开发的特性:

(1)连接外设,联网调试

手机品种繁多,不可能做到针对每种设备类型、品牌的兼容;

网口调试时,调试地址不断变更,无法锁定具体调试位置,数据很容易泄密;

数据不能以密文形式烧录至设备,否则设备无法识别,但这样往往最容易造成数据外泄。

(2)开发者水平较高,会各种破解

一个代码开发人员,可以轻松写一个把代码输出到日志或control的程序,类似这种研发场景还有研发设计人员自编socket,内存,管道,com,web解析器发布中转,内存映射,常驻服务等至少30多种。

(3)数据被各种变形,渗透外发

改变文件名称、后缀,压缩起来,跟随项目一起打包,很容易流失。

目前,市场上比较流行几种防泄密手段,均是从外表看来可以满足需求,但终究无法做到真正的防泄密。

1、内外网隔离

将涉密数据存储在公司内网,内网不允许连接互联网,看似数据只能保存在公司里,但任然有很多其他泄密风险,比如外设接口拷贝数据;重装OS时,U 盘PE绕开操作系统的管控从WinPE中拷贝数据;外带电脑直连内网中任意一台PC机,数据对拷。

也有人说直接将外设接口全部封掉,用一个铁箱子将电脑机箱锁起来。这样虽然是保障了机箱数据安全,但是不便连接需要外设调试的设备,而且对于开发人员来说,互联网是不可缺少的查资料资源,如果另外配备查资料的电脑,再加上之前的铁箱子成本,也是不小的开销。

2、虚拟化

虚拟化在最近几年越来越热,优点也越来越被人们发觉,比如减少服务器数量、简化服务器部署、提高服务器资源利用率等等。但是将虚拟化与数据安全(防

泄密)扯到一起,未免有些牵强。牵强在哪里,简单总结一下,就是通过互联网泄密和外设接口数据传输。而且,虚拟化的软硬成本,是一套加密软件的10倍左右。

虚拟化用于数据防泄密

3、文档透明加密

早在10年前,人们开始关注数据安全这一块时,文档加密的诞生帮助大多数的生产商,发展至今很多人对加密的见解就是:一个文件在公司内网打开正常,拿到外部打开乱码,效果明显直观。

我们也承认此项技术在业界发展至今,技术之成熟与优秀之处。但如今时代已然不同,更多的需求倾向于嵌入式开发、源代码型数据加密,而这就难倒文档级的透明加密,这种抓进程、绑后缀的加密方法终究止步于源代码开发防泄密需求。在众多开发人员面前,轰然倒塌,溃不成军。

我们来简单列举一些文档透明加密在源代码防泄密需求面前的一些不足之处。

1、U口数据线连手机:数据通过U口连接手机泄密。

2、U口数据线连设备:数据通过U口连接设备泄密。

3、串口数据线连设备:数据通过串口连接设备泄密。

4、网口数据线连设备:数据通过网口连接设备泄密。

5、控制台程输出内容保护:研发人员编写控制台程序,把涉密内容输出到控制台上然后另存。

6、日志内容保护:研发人员编写程序把代码等涉密内容保存到日志文件中然后把日志文件拷贝走。

7、内存保护:研发人员编写程序把代码等涉密内容保存制定内存中,然后再通过另一个程序等把内存内容读走。

8、web解析器保护:研发人员编写程序把代码等涉密内容文件修改成Html 文本样式,然后通过IIS或tomcat等web解析器发布成网页,然后用浏览器另存成明文拷贝走。

9、管道保护:研发人员编写管道程序把代码等涉密内容传走。

10、网络通信保护:研发人员编写socket通信程序把代码等涉密内容传走。

11、消息保护:研发人员编写发消息程序把涉密内容发走。

12、屏幕截图保护:由于截图插件等很多,只针对QQ进程是远远不够的。

13、开发进程追踪困难:开发软件在调试过程中,有些插件的进程在后台一闪而逝,无法捕捉添加到绑定进程,后期导致整个调试过程出错。

14、坏文件:文件透明加密发展至今无法逾越的沟渠,原理是加密软件在给源文件写密钥时突然断电或者程序崩溃,导致密钥只完成一半。最后计算机无法识别这个文件。

从加密的整个行业来看,最早的是APIhook应用层,发展至文件过滤驱动透明加密,一直到现如今智能手机、平板电脑普及率原来越广,APP开发者越来越多,嵌入式开发也越来越多,文件过滤驱动透明加密已渐渐不能满足开发商们的需求。开发商们需要一款真正能经得起技术员“推敲”的防泄密软件。而随着这种需求的越来越强烈,沙盒加密也开始在大家的视线里出现。

为什么说沙盒加密能满足源代码级别、嵌入式开发的防泄密需求?

相关文档
最新文档