基于计算机软件安全开发关键技术的研究
2017-03-21熊永亮
熊永亮
摘 要:随着计算机技术的快速发展,计算机在人们日常生活中的地位越来越重要,其对人们生活和工作的影响越来越大,改變了人们的生活模式。特别是随着信息时代的到来,网络的普及越发迅速,人们在享受计算机便利的同时,也遭受着软件带来的不同风险。在这样的社会背景下,笔者结合自身研究成果,阐述当下软件使用所面临的风险,探讨软件安全开发关键技术,从而让整个软件的使用阶段都能实现网络安全覆盖,这对于加强软件的安全使用和长远发展都有着重要影响。
关键词:软件安全 关键技术 开发 研究
中图分类号:TP30 文献标识码:A 文章编号:1674-098X(2017)01(a)-0113-02
随着信息技术的不断进步,计算机在人们日常生活中的地位越来越重要,无论是生活还是工作都离不开对计算机软件的使用。相比蒸汽时代和工业时代,信息时代极大地加快了生产力的发展,软件的发明和使用更是直接转变了我们的生活方式。从日常的娱乐再到每个人都不得不面对的交通、医疗等方面,都在大规模地使用软件。随着软件使用的不断推广,其给用户和开发商带来的风险我们也必须加以重视。目前,大多数的软件开发商都缺少安全意识,在软件构件过程中对于安全漏洞都不重视,其关注的重点主要是维护软件使用,为其开发补丁并升级,实际上这是舍本逐末的做法。因为开发商从完善安全漏洞中并不能得到多少经济收益,这对于以追逐利益为天性的商人来说没有吸引力,使得他们还是将业务转移到其他高利润的地方。所以,笔者将在该文中就软件安全开发的关键技术等方面进行阐述。
1 软件所带来的风险
在笔者调查和查阅资料后发现,目前对软件安全造成威胁的原因有两点:首先是正版软件费用太高,个人或团体因不愿付费使用软件而对其进行破解,违法传播赚取利益;其次则是大多数软件中都存在安全漏洞,被技术高超的黑客盯上进行攻击,来满足自己的私欲。上述情况中,不管出现哪种都会对企业造成难以挽回的利益损失。
一般来说,软件的版权保护问题主要表现为软件被非法破解、违法传播和使用,也就是国内屡禁不止的盗版问题,不仅会损害软件开发者利益,更会给软件使用带来高风险,使其更容易遭受攻击。
随着互联网的普及,使得越来越多的人能够享受到网络服务,特别是云计算概念的研发,极大地方便了用户的网络操作。对于用户而言,往往只需要一台计算机,接上互联网,就能享受网络给他带来的便利。不过,在软件给人们带来便利的同时,却面临着安全漏洞遭受攻击的巨大风险,攻击者利用对数据的篡改、窃取来获取利益,使得用户或服务商的个人隐私或经济利益受到威胁。
2 软件安全开发的关键技术探讨
2.1 基于硬件的版权保护技术
该技术指的是在软件授权加密过程中在计算机上连接外部硬件,通过硬件技术的安全性来避免软件受到攻击或是被恶意复制。这些外接于计算机上的硬件设备以加密狗或加密卡为主,而这些设备中基本都内置了CPU和一定容量的存储空间,软件开发时都会把一些关键性模块存储在该硬件里。只有程序在执行时由硬件中的CPU先对关键模块实施解密,接着软件再开始继续工作。所以,只有当计算机接入硬件准确,同时成功解密模块后,软件才会继续工作,由此来防止软件被恶意盗取的情况。
2.2 动态软件水印技术
目前,随着人类社会的不断进步,对于知识产权的保护也愈加关注,在软件知识产权保护领域也是如此,特别是随着互联网技术的成熟,软件传播的不断加快,使得软件知识产权被侵权的现象更加普遍。过去由于技术限制,基本上对软件知识产权保护的措施以加密为主,尽管这些手段对于软件保护有着短期保护作用,但从长远来看,并不能进行长期保护。
所以,随着软件技术水平的提高,研究人员研发了一种新的保护技术——动态水印技术。从技术原理来看,该技术并不像加密等技术手段对软件本身进行保护,而是把开发商的信息隐藏起来,存储到软件中,这样这些信息就难以被黑客发现,同时,这些信息能够有效地标识出作者、所有者等信息,在提取后,能够对产品实施鉴定。经过笔者的调查和确认,该技术对于软件产品的保护是卓有成效的。
2.3 软件静态源代码分析技术
随着网络技术的快速发展和互联网的迅速普及,人们对软件的使用频率也在不断提高,软件安全漏洞也愈发严重。对于众多的用户和开发商而言,想要发现软件漏洞是比较困难的,那么要想快速便捷地查找软件漏洞,避免因为软件漏洞而对用户造成的利益损害,就需要使用软件静态源代码分析技术。
该技术在目前属于最为有效的安全漏洞检测技术。从技术原理上看其优势在于,对待要检测的软件直接检查并分析其源代码就行了,不需要像其他安全漏洞检测技术那样要先运行软件再检测,从而提高了检测效率。该软件目前被广大用户和开发商广泛使用,主要原因是其优点较为突出,包括对源码分析的速度较快、还能同时对其系统展开检测。不过,该检测手段还是有着不小的弊端,像是需要花费许多时间对所得的检测结果分析然后得到结果,尽管能够发现漏洞但却无力修复。所以,笔者提出了一种对类进行度量来对静态分析工具的扫面结果展开优先级排序的算法,从而处理其弊端。
2.4 动态数据依赖安全分析与动态软件保护
当下,随着人们使用软件的频率不断提高,越来越多的黑客盯上了这块蛋糕,通过攻击用户或开发商来获取不当利益,使得软件的安全问题越来越严重。软件的不断研发和更新,使得其中存在的安全漏洞数量快速增长,新种类的安全漏洞被不断发现,同时,来自外界的软件破解也愈加频繁。因此,怎样快速地找出软件中存在的安全漏洞,对其及时修补从而加强软件的安全水平就成了极为重要的问题。笔者针对该问题,提出了一种动态数据依赖安全分析的办法,该办法能够准确地找出安全漏洞,并提出动态软件保护算法,可以及时地寻找出软件中隐藏的安全漏洞并确保软件安全。
当我们在程序的动态执行过程中发现了从某个输入函数到关键性函数之间有着一条不通过校验方法的数据流路径的话,那么我们就能确定程序中有着一个安全漏洞。如此,我们就能利用对程序在执行过程中展示的动态数据依赖图完成分析工作,我们利用检测数据流路径能否通过校验方法,来查看程序在不同执行路径下是否存在着安全漏洞。这种通过对程序的动态数据依赖图展开分析同时检测安全漏洞的方法我们称之为动态数据依赖安全分析。
动态数据依赖安全的工作原理就是对程序正常工作实施分析,查看程序在不同运行路径下是否有安全漏洞的存在,由此来实现检测的目的,相比静态源代码分析技术其检测安全漏洞准确率明显高了许多。当然该技术也不是绝对完美的,漏报也是时有发生。在某条程序中存在的路径在程序执行过程中没有覆盖到时,若是该路径中含有安全问题,就无法有效检测到。所以,利用该技术手段进行分析时,需要尽量彻底地对程序的执行路径实施覆盖,从而避免漏报的情况出现。
3 结语
目前,随着互联网的普及,计算机网络安全问题也愈加重要,来自黑客的攻击、病毒、甚至是网络犯罪等,时刻威胁着网络使用的个体户或开发商的合法利益。所以,为了提高软件的安全性能,保护使用者的隐私和经济利益,就需要开发人员在软件开发时减少安全漏洞的产生,避免软件被黑客攻击或是破解,从而有效解决软件的安全问题,推动软件行业发展。
参考文献
[1] 汪普庆.计算机软件安全及其防范探讨[J].数字技术与应用,2016(1):219.
[2] 潘博.浅谈计算机软件安全检测方法[J].电脑知识与技术,2013(13):2996-2997.
[3] 张凌云.浅谈计算机软件安全检测方法[J].信息通信,2014(1):140.