对软件供应商而言,保护知识产权(IP)和防止盗版已经不是个新话题,但如何有效抗击这些威胁,相关的策略和建议仍需要不断推陈出新。
每一家成功的独立软件供应商都是盗版活动的瞄准目标。事实上,盗版团伙公然宣扬他们的.NFO文件成果,大肆向Secure FTP、P2P、IRC 和 Web等各种分销渠道提供盗版软件或“破解”版本。
黑客们利用反向工程工具、现有的知识库及其机器代码专业技术来破坏软件授权机制。相同的伎俩还可能用来窃取软件内包含的机密IP。
目前抗击IP窃取和盗版的主要方案包括软件保护技术和商业智能技术。
软件保护技术
软件保护技术使得软件具有抗御反向工程和篡改的能力,但它只能保护软件在被编译后不易被反汇编及被修改,而并非绝对安全的措施。这种技术的常用保护功能包括反调试和代码加密。
反调试技术旨在防止调试器或反汇编程序连接运行应用程序。反调试逻辑可寻找调试器为了控制应用程序所使用的特殊的签名、陷阱和API。这类方案虽已广获应用,但虚拟机方面取得的进步使其相形见绌。
代码混淆技术主要用于.NET 和 Java等中间语言架构,它试图通过重新命名变量、加密字符串,以及使用更先进的技术改变代码流等手段迷惑反向工程师。不过,单独个体仍然能够轻易对应用程序进行反编译,从这个意义上来说,这种迷惑技术是十分消极且被动的。
代码加密是另一种方法。软件保护初期采用的Packer 或Wrapping方法,在运行时会把整个应用程序解码释放到存储器中,因而保护能力很有限。随着保护技术的不断演进,保护方案的重点策略改为通过采用准时制(just-in-time)代码解密,尽量减小存储器中解密代码的可用性。在需要的时候才对功能进行解密,然后再重新加密,这样,任一时刻的解密代码存储量都能保持最少。
为了提高软件保护功能,开发人员开始瞄准内核级集成,比如器件驱动器。这种级别的集成能够更好地防御复杂的调试器。不过,它也引入了有害的依赖性,并对诚实用户造成干扰。
最终,一些先进的保护工具转向嵌入式定制化虚拟机,该技术可保证这些工具的运行时间保护流程的安全性,并将应用程序代码转换为供应商独有的格式。这种方法有效地隐藏了保护流程,但有可能妨碍应用程序性能。
商业智能技术
鉴于软件保护功能的局限性,一些开发人员在自己的应用中添加了一个“phone home”功能,来收集软件使用数据。反盗版商业智能技术提供有phone-home系统,用以识别侵权公司。一旦检测到盗版软件的使用,这类方案就会启动;商业智能技术可收集到足够的信息来识别侵权机构。供应商因此得以直接追踪侵权机构,追回受损的授权收入,并充分利用这些商业智能,拓展与那些盗版活动猖獗地区之间的合作关系,乃至采取法律措施挽回损失。
在设计一个反盗版商业智能系统时,各项功能都应该到位。软件盗版常常是利用嵌入在软件中的授权实施失效或窃取。主要有三种方法:二进制补丁、密钥生成器以及利用授权执行的漏洞进行盗版。每种方法都有其独特的签名,这有利于盗版检测,进而激活非法使用报告机制。
盗版检测正如其名:通过检测这些签名,报告只集中在供应商软件所发生的非法使用情况,而不影响获授权的用户。为了确定哪种方案与供应商的软件一起使用,需要下载并分析软件当前及过去的破解版。
反盗版商业智能技术的关键在于,在盗版破解期间潜伏,直到某个机构开始使用软件才激活报告机制。如果这项功能是在授权功能内部实现,并对盗版团伙可视,则会失效。避免被发现的最好方法之一是激活盗版检测机制,并基于软件中某个可显示使用者IP的功能集进行报告。
数据收集是反盗版商业智能技术的另一关键因素。发送报告的重点应该放在识别盗版软件机构而非个体用户上。因为从某个机构追回损失的可能性比从某个终端用户处追回要大得多。从注册、API和环境变量方面收集到的信息有助于识别盗版机构。
收集数据对反盗版商业智能至关重要,同样重要的还有这些数据如何被组织、筛选,并被关联进可起诉的线索中。以此为目标创建一个盗版指示图。尽管你可以从头开始搭建这种功能,但现在已经有软件即服务(software-as-a-service)应用平台,它可提供用于报告和线索管理的构件。
鉴于新兴市场的风险以及软件盗版日益猖獗的境况,保护软件IP及授权收入至为关键。不过,开发人员在自己的应用软件中添加保护措施之前,务必考虑到对其客户的潜在影响,以及可能引入到开发流程的复杂性,然后再作出明智决策。
若你的应用软件中包含了价值重大的IP,并是基于C#和微软.NET平台开发的,保护或许是必不可少。这类应用程序对反向工程师而言可谓易如反掌,需要一定级别的保护,以尽量避免它们成为黑客或者好奇的终端用户的攻击目标。
如果目的是预防或阻止盗版,则反盗版商业智能系统可以提供一个较好的解决方案。这种方案有助于量化特定市场或应用软件的盗版速度,它收集到的数据足以证明反盗版投资是值得的。
对软件供应商而言,授权收入至关重要。在制定反盗版策略之前,软件供应商必须首先对其问题的规模和涉及范围进行估算和量化。反盗版商业智能方案为应对软件IP侵权提供一种更快捷的方法,可以产生有关非法使用的可起诉线索,并尽量减小对产品开发的影响。
7/6/2009
|