在软件开发领域,保护知识产权是一项至关重要的任务。.NET应用程序在设计上存在一个天生的缺陷,那就是难以在易于理解、灵活和可扩展的同时隐藏其关键细节。这种设计使得程序的知识产权保护变得尤为困难。
.NET应用程序使用一种称为MSIL(Microsoft Intermediate Language)的表达性文件语法来交付可执行代码。MSIL是一种比二进制机器码更高级的中间代码,它包含了大量可以立即观察到的标识符和算法,最终也是可以理解的。
一旦软件程序发布,黑客和竞争对手就会使用最新的代码分析工具对其进行分析。混淆技术可以迅速结束他们成功的可能性,从而加强安全性并保护知识产权。
公司的源代码包含了关键数据:关于数据库的信息、关键算法和内部系统的工作原理。在一个良好控制的环境中,只有开发人员应该能够访问这些源代码,而最终用户则获得二进制文件来运行。
然而,由于.NET程序集的特性,分发未受保护或未混淆的二进制文件本质上等同于分发源代码。这是因为免费的反编译器可以在几秒钟内轻松地从可执行文件中重新创建源代码,除非采取措施防止这种情况发生。
通过混淆技术,可以为黑客提供另一层防护,防止他们理解应用程序的内部工作机制及其底层网络。攻击者理解的代码越多,他们发现安全漏洞的可能性就越大。
如果不采取一些快速步骤来保护应用程序,软件许可代码、复制保护机制和专有业务逻辑将更容易被所有人看到——无论是合法还是非法。任何人都可以出于任何原因查看软件的详细信息。他们可以搜索安全漏洞以利用、窃取独特的想法、破解程序、识别关键信息的位置等。
公司应该只向需要知道应用程序内部细节的群体披露这些细节。通过向所有最终用户公开这些细节,公司为攻击者提供了大量可以利用的信息。
有了未混淆程序的访问权限,怀恨在心的员工或黑客可以反编译应用程序并模拟恶意修改。一旦识别出修改,内部人员可能会寻找机会运行修改后的版本。在极端情况下,这种修改后的可执行文件可能会导致重要记录被删除、秘密破坏关键数据或以其他方式破坏公司运营。
当微软寻找.NET混淆器来保护其客户的.NET代码时,他们选择了Dotfuscator。PreEmptive Solutions很自豪地在微软的Visual Studio.NET 2003和Visual Studio 2005中包含了其.NET混淆器的轻量级版本。对于企业级保护,微软在其.NET代码上使用Dotfuscator Professional Edition。
Dotfuscator Professional Edition有助于保护程序免受试图窃取知识产权或在程序中寻找安全漏洞的黑客的侵害。它包含许多重要功能,如控制流混淆、字符串加密、增量混淆、增强重载诱导、软件水印和修剪。专业版在保留原始运行时逻辑的同时重新排列代码指令。它移除了反编译器用来识别(和重建)更高级程序代码结构的明显模式。
为此,Dotfuscator Professional Edition的输出包含了运行应用程序所需的精确代码的更精简版本,不多也不少。它的好处包括更优越的知识产权保护、减小应用程序大小和提高程序性能。
PreEmptive的Dotfuscator为Secure .NET软件开发生命周期增加了新的保护层和应用程序效率。
设计基于软件需求分析和威胁建模的系统
使用安全编码原则进行开发/构建
使用Dotfuscator保护和增强.NET代码
测试安全漏洞
部署并监控违规行为