10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

不只是盗版:软件厂商正面临着知识产权保护方面的更加严重的威胁

2014 年 5 月 16 日

从我们开的汽车到我们所使用的移动设备,软件产品已经被应用到了我们生活中的方方面面。随着世界全面步入数字化时代,新的安全威胁也随之产生。软件产品的盗版问题首次出现在上个世纪的八十年代,但是现在看来它已经不再是软件行业所面临的唯一的威胁了。而现如今,对于软件产品的更大的威胁则是来自逆向工程和代码篡改,而不仅仅只是直接的窃取。

对于一个典型的软件公司而言,其所拥有的知识产权占了整个公司市场价值中的绝大部分。而对于智能设备生产商而言,由于他们所做的其实就是不断地在商业硬件上面以软件产品的形式开发知识产权,所以这里的情况与典型的软件公司是一样的。软件的开发人员倾注了大量的时间和资金来开发和创造出他们的独一无二的产品,但是如果没有使用合适的策略以及有效的安全保障手段的话,他们就可能在诸如营业收入、顾客数量、企业竞争力以及品牌的总体价值这些方面遭受巨大的损失。

来自 SafeNet 的一份最近的调查中指出有 33% 的软件厂商认为逆向工程和窃取对他们的业务已经造成了明显的影响,并且还有多达 63% 的受访者都认为以代码保护的方式来防止逆向工程是一项非常困难的任务。

由于逆向工程可能会导致竞争对手通过效仿市面上已有的产品而快速地开发出另外一款具有竞争性的产品,因此在如今的市场当中,如何能够通过保护那些具有创新性和唯一性的产品不受逆向工程侵害的方法来巩固企业的竞争优势对软件厂商而言是至关重要的。

随着商业间谍活动变得越来越普遍,包括代码、算法、应用的数据文件和行业机密在内的那些具有很高价值的软件知识产权会面临着来自竞争对手的窥探、逆向工程、窃取以及山寨等等的威胁。

举个例子,假设一家印刷公司发明了一种新方法可以在复杂基材上面(例如玻璃)使用廉价墨水进行打印,而市场上的其它竞争对手都还无法做到这一点。但是由于运行打印机的软件系统没有经过保护,所以竞争对手就可以很容易地通过分析代码来搞清楚该方法的实现原理,并且很快地就会推出一款山寨的版本。这样最先发明该方法的印刷公司的竞争优势就会变得荡然无存了,其结果就是导致市场份额的丢失。

最佳实践案例:防范攻击,保护软件系统免受逆向工程和窃取的侵害

一个开发在多站点上运行的数字视频监控系统的小厂商最初建立了他们自己内部使用的拷贝保护机制。但问题是,这种他们自己的保护机制使得把软件许可证移动或者拷贝到另外一台机器上面这项工作变得非常困难。更糟的情况是,如果有些人冒用了别人网卡的 MAC 地址的话,他们就可以继续使用同一个软件序列号。

这家公司最担心的事情最终还是发生了,他们发现了一个安全漏洞,并且发现一些人正在尝试着对他们的硬件和软件产品进行逆向工程。这样的攻击使得该公司最终采用了 SafeNet 的一款名为 Sentinel HASP 的软件许可安全解决方案。

该公司的视频监控系统由众多不同的应用组成,其中每个应用都依赖着一个用于媒体共享(例如视频或快照映像)的 ASP.Net 上构建的 web 服务。这样的方法可以使得媒体文件能够在不同的机器和用户中间进行同步,并且可以通过一个访问代码来获得所需要的信息。出于对这些应用的安全方面的考虑,使用一个封闭的网络环境在这里是非常必要的。

使用 Sentinel 所提供的硬件密钥来构建整个系统能够对 ASP.Net 的 web 服务进行保护,并且能够为该公司的所有应用产生一个单点失败,进而使得所有的其他应用都变得无效。在每个请求中,Web 服务都会对 Sentinel 的硬件密钥进行实时的检查。如果硬件密钥不存在的话,就会为客户端应用返回一个错误信息,而不会再继续执行所需要的请求。

考虑到眼前的侵入活动所带来的威胁,整个安全机制的实施速度是成功的关键。由于该企业是一家为快速变化的高端市场提供专业化整体解决方案的小型公司,因此对于他们所拥有的资产的保护工作势在必行。

SafeNet 提供了简单易懂的操作指南,并且还配有示例代码,这样使得该公司可以通过对示例代码进行简单修改的方法来部署他们所需的安全策略。凭借着 Sentinel 所带来的帮助,该公司现在可以防微杜渐,在实际的知识产权窃取发生之前就快速地部署好安全机制,对他们的软件系统进行保护。

如同行业机密的窃取可能会给企业带来灾难性的后果一样,对于许多软件系统和智能设备的厂商而言,代码篡改也会构成同样巨大的威胁。代码篡改实际上就是一些人通过某种方法获得了我们软件系统源代码的访问权,并且改变了产品的工作方式。代码篡改可能是某些人出于恶意而故意为之,但也可能是一些人原本是出于好意但是不小心所造成的。而由于终端用户造成的意外的代码篡改经常很难被发现,直到它们对产品造成了无法挽回的损失。

这里再举个例子,一台医用诊断设备使用了一套内部的软件系统来控制如何运行对病人的检查。一位系统管理员则认为该系统运行得太过缓慢,并且决定对软件系统代码中的标准设置进行一些“调整”从而使得检测的计算速度比以前快了 20%。任务完成了,而且在“调整”后确实医院能够每天检查更多的病人了。虽然这里并不存在主观恶意,但是由于这种对诊断过程的加速使得该设备现在不能满足多项医药行业的规章,并且这种不符合规定的设备现在反而变成了设备或者软件系统厂商的责任。

缺少了合适的加密以及代码混淆技术,软件系统的开发人员在不知不觉中就会使他们的代码暴露于代码篡改和逆向工程这些安全威胁之下。通过对软件系统源代码的访问权限进行有效的控制,软件系统的发行商以及智能设备的生产商一方面可以保障收入,另一方面还可以保护自己产品的完整性和品牌的形象。

虽然据有关调查显示,大量的软件系统发行商担心他们的业务会由于知识产权保护的缺失而受到负面影响,但调查中还显示了只有很少一部分软件系统发行商真正采取了所需的主动防御措施来保证其知识产权得到恰当的保护。

这里我们不禁想问,为什么没有更多的软件厂商愿意投入更多的精力来保护他们自己的知识产权呢?实际上,有些时候他们在所面临的挑战面前退缩了,有些时候他们可能无法得到来自高层的支持来开发出一套值得信赖的安全保障机制。或者也可能是因为他们干脆就还没有经历过一场知识产权灾难,因此还没有意识到这个威胁对于他们整体业务影响的严重性。

最佳实践案例:包装行业领先的生产商

有一家业内领先的生产商,他们负责开发软件驱动的设备来处理液体的食品消费类产品(例如牛奶和橙汁)。他们利用软件系统来运行他们的包装设备,使之能够满足几十项公共健康和安全方面的规章制度。

该公司的知识产权保护方面的关注点主要在于如何对运行设备的软件系统的访问权进行控制以及如何限制对于一些关键流程(例如加热杀菌)中的关键参数的修改能力。

这个包装行业的生产商结合使用了 SafeNet Sentinel RMS 和 EMS 软件货币化解决方案来对他们软件系统的源代码的访问和修改进行保护,并且严格控制能够调整用于控制包装设备运行的参数的人员名单。

软件的盗版随着时间的推移会造成收入流失,而相比之下逆向工程和代码篡改所造成的影响则是毁灭性的,它们可以在一夜之间改变市场格局,而这种损失几乎是不可能再恢复的。

因此如果能够找到一些方法来减少或者杜绝软件系统的盗版、逆向工程和代码篡改则将会使多方受益。一方面,终端用户可以放心地使用来自发行商的、真实反映发行商意图的应用程序,并且能够享受所提供的售后支持和保修服务。另一方面对于整个软件行业而言,这样做会鼓励厂商生产高质量的产品,促进市场竞争以及更好的产品的研发。

对于软件系统发行商而言,采取积极主动的措施,通过部署针对软件系统的保护策略来保护他们的知识产权免受那些由于不法的使用、拷贝、窃取和篡改所造成的侵害是至关重要的。对于大多数企业来说,采用一个商业的软件版权管理解决方案能够为他们提供足够的安全保障功能,并且还不用为如何开发内部的安全保障措施而头疼,毕竟大多数企业并不擅长做这些事情。这种商业的解决方案主要由自动的文件封装技术组成,能够通过文件加密、代码混淆以及系统级的反调试等等这些手段来对知识产权进行强有力的保护,确保编写在软件中的那些算法、行业机密以及专有技术不会被没有取得授权的人员所访问。

通过对软件系统源代码的访问权限进行主动且有效的控制,软件系统的发行商可以保护他们自己免受逆向工程和代码篡改的侵害,还能增加企业的收入以及维护品牌的整体形象。

关于作者

Michelle Nerlinger是 SafeNet 公司市场部的 VP。SafeNet 公司是专注于提供软件货币化及数据保护解决方案的全球领先的供应商。她在软件许可和授权管理、软件配置、知识产权控制以及使用监控方面有着丰富的经验,而这些恰恰就是有效地实施软件货币化所需的关键因素。Michelle 以优异的成绩毕业于位于 Baltimore 的 Towson 大学,并获得了市场营销和大众传媒专业的双学位。

查看英文原文 Beyond Piracy: Software Publishers Battle Greater Threats to Their Intellectual Property


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014 年 5 月 16 日 04:041206

评论

发布
暂无评论
发现更多内容

趣店容器进化史

ZoaChou

k8s 容器化

程序员如何让自己更快的废掉?

冰河

程序员 程序人生 规划 职业生涯

Java并发包源码学习:CLH同步队列及同步资源获取与释放

程序员小毕

Java 源码 jdk 多线程 并发

技术人小故事-团队愿景篇-第1段

Ian哥

28天写作

手把手教你如何巧用Github的Action功能

flutter android 持续集成

区块链食品溯源系统开发,区块链助力食品溯源升级

135深圳3055源中瑞8032

聚焦产业链供应链 拓展数字经济新空间

CECBC区块链专委会

数字经济 企业融资

Junit4 Rules 使用

hungxy

Java JUnit

公安一体化警务,合成指挥作战平台搭建

t13823115967

智慧公安

爱了! Alibaba技术官甩出的“阿里内部Java成长笔记”,差距对比真的是不止一点点

Java架构之路

Java 程序员 架构 面试 编程语言

MySQL慢查询(上):为啥会这么慢?

架构精进之路

MySQL MySQL优化 MySQL使用 28天写作

使用 Jenkins + Docker 构建与部署 Serverless 应用

donghui

Docker Serverless jenkins

感谢 Gridea,让我有动力写作

和牛

程序员

喜提offer!支付宝Java研发岗四面,从基础到项目在到架构与业务

Java架构之路

Java 程序员 架构 面试 编程语言

关于拼多多价值的思考

.

28天写作

三无小区整改,平安小区智能化管理平台搭建

t13823115967

智慧社区管理平台开发

[架构师训练营第 1 期] 大作业(一):通达系统概要设计图

猫切切切切切

架构师训练营第七周课后作业

万有引力

网络工程师职业指南

用户体验提升计划:前端性能检测清单2021

知识乞丐

前端 28天写作

架构师必会知识大合集:五位架构师手写于西溪园区的技术使用心得

Java架构之路

Java 程序员 架构 面试 编程语言

牛啤了!阿里技术官整理的这份《Java面试手册5000题》已经成功让数百名社招生“圆梦BATJ”

云流

Java 编程 面试

智慧社区系统建设把城市管理从“大动脉”拓展到“毛细血管”

135深圳3055源中瑞8032

MySQL中的哥哥表、妹妹字段,是什么鬼?

云流

Java MySQL 数据库

架构师第 3 课作业及学习总结

小诗

「架构师训练营第 1 期」

芯片破壁者(二十四):1987战役启示录

脑极体

精选算法面试-链表(反转)

李孟

算法 链表 28天写作

[架构师训练营第 1 期] 大作业(二):架构师技术知识导图

猫切切切切切

极客大学架构师训练营大作业

Meow

智能电车小白从入门到了解(Day1/28)

mtfelix

自动驾驶 28天写作 智能电车 电动汽车

极客大学架构师训练营大作业

Meow

不只是盗版:软件厂商正面临着知识产权保护方面的更加严重的威胁-InfoQ