浅谈计算机软件的安全问题及其防护
2023-11-19江诗敏
江诗敏
(湖北闪云信息科技有限公司 湖北 武汉 430070)
0 引言
随着社会经济的不断发展以及科学技术的飞速进步,计算机行业也迎来蓬勃发展时期。计算机的普及,在给人们生活工作带来方便的同时,也出现了很多安全问题,小到个人隐私被窥探,大到公司机密被盗取,不仅破坏了整个行业的风气,也给国家法治社会的建设造成影响。因此在计算机为社会带来巨大便捷的同时,还应冷静思考其安全问题。本文中的计算机软件安全性主要是指计算机软件系统在得到保护的情况下可以正常地运转。计算机用户需要计算机软件具有多功能、低成本等优点,这也是计算机软件开发者追求的方向,在满足用户实际需求的过程中实现利益最大化。当前计算机软件安全问题的根本是在利润的驱使下,部分商家放弃高成本的自主研发渠道,通过模仿、抄袭等方式来降低成本提高利益[1];另外,很多黑客通过攻击其他计算机来获取信息,侵犯被害人的权益。在计算机软件的安全性问题上,使用者较多关注的是,自己在使用过程中遭遇到安全问题时的防护性能;而对于开发者来说,要想满足用户对安全性能的要求,他们需要综合考虑计算机软件各个方面的安全问题,来保证计算机软件在运行过程中能够有较强的稳定性,及时察觉问题并解决,因此软件安全性的检查非常重要。通过对软件安全性检查的阐述,指出存在的问题并提出相应的解决办法,以期对提高安全性起到促进作用。
1 计算机软件安全重要性
从国家层面来看,计算机软件是实现信息化国家的灵魂,同时也是当今各国争夺的科技制高点,是信息化战争中的武器,而计算机软件的安全性也直接影响到了国家的安全[2]。随着信息化技术在国民经济发展中占据的地位越来越重要,软件安全性能也必须有相应的提升,软件自身存在的任何漏洞、功能缺失或者是代码修改都可能对整个系统造成极大的影响。从公司、个人层面来看,计算机软件的安全问题会对计算机的性能产生直接的影响,特别是在电子商务快速发展的背景下,进一步提高企业、个人对计算机的安全管理水平,既是对公司企业负责的表现,也是促进行业健康发展的必然要求。同时还对用户和企业的信息等方面的安全具有一定的保障意义。
计算机软件安全标准指的是保证计算机在运行的过程中,自身与软件系统可以有序地进行工作而不受到外来非法因素的干扰。对用户来讲计算机软件的安全性是使用过程的可靠性和操作的快捷性,而对于计算机软件研发商来讲,除了要满足用户对系统安全的需求外,还要保护计算机软件研发人员的知识产权,其主要目的是防止不法分子利用软件系统来牟取暴利[3-4]。总之,计算机软件安全并不只是指系统运行上的安全,还针对软件自身以及开发权益不受到侵害等问题。
2 计算机软件安全检测含义
计算机软件的设计工作具有复杂性和综合性,而安全检查又是贯穿整个过程的关键环节。计算机软件技术作为高科技产品,其安全隐患更容易被利用,因此必须给予软件安全检测工作足够的重视。另外,国内知识产权保护的概念没有深入人心,企业自主创新的氛围也还没有形成,在高额利润的诱导下,很多软件开发公司会放弃安全检测工作,这样很容易导致产品的安全性测试不及格,留下安全隐患。软件安全检测的目的是保障用户的信息安全,提升软件的品质,使软件的适用范围更广。从目前的技术分类来看,计算机软件的安全检测技术可以分为静态安全检查和动态安全检测,根据不同的环境来结合两种检测方式,提高软件的安全性,保障用户的权益[5]。具体的软件安全检测是一项复杂的工作,要想达到为软件保驾护航的目的,就需要各部门精诚合作,共同提高软件行业的质量。目前我国仍是世界上最大的发展中国家,尽管软件技术正在飞速发展,但无论是软件开发的技术还是安全检测的技术,都与发达国家还存在较大的差距。因此,在大力推进软件开发行业发展的同时,应当同等重视软件安全检测技术的研究,还要在解决安全问题方面下功夫,只有方方面面兼顾,才能促进计算机软件业平稳发展。
3 计算机软件安全测试过程中的注意事项
计算机软件的安全性是困扰全球的一个难题,由于软件在使用过程中具有开放性,使用环境也很复杂,所以要想其安全性取得突破性进展,还需要不断加大研发力度[6]。总体来看,在对计算机软件安全性检测过程中应当注意以下问题:第一,计算机软件的安全性测试手段多种多样,要保证测试的可靠性和安全性,必须针对软件的种类选择合适的测试手段。软件开发部门应根据计算机软件的不同种类制定不同的检测方式,同时软件开发部门应配备专门的软件分析人员,并与本岗位的工作人员密切合作,以保证计算机软件的安全检测质量;第二,在软件进行安全测试的过程中,首先是对软件的结构进行综合的剖析和审视。然后检测人员能够及时、准确地应对各种突发情况,只有检测人员对软件的结构和性能有充分的认识,才能促使计算机软件的安全检测工作得以顺利地进行。
4 计算机软件安全的检测措施
4.1 利用动态检测技术进行软件检测
较为常用的一种安全性测试方法就是动态安全性测试法。动态检测技术以计算机软件运行环境为媒介,在运行过程中对安全性进行分析。动态检测方法的优点在于无需查看源代码,避免出现软件源代码泄露的问题,但也存在着操作烦琐、程序烦琐等劣势。每种测试方式都有自己的优势和劣势,在实际应用的时候,需要按照软件具体情况来进行选择。不管采用什么测试方式,最终的目标都是为了让软件能够更好地为人们所用,给人们的生活带来便利[7-8]。
4.2 对软件开展形式化安全测试
除动态监测技术外还有一些应用较为广泛的技术,例如形式安全测试、语法安全测试,以及基于软件属性的安全测试和错误导入的安全测试。其中形式化安全检测是以数学模型为基础的,对计算机软件的形式利用规范语言进行检查。
4.3 利用编程语言对计算机软件开展测试工作
电脑软件安全检查还可以用编程语言进行。任何一种电脑软件都是通过语言编程设计而成,而程序编写的规则称为电脑编程语法。软件之所以能为用户提供便利,供人使用,也要归功于编程语法。通过编程语言对计算机软件开展安全检查的主要原理是通过反复切换输入编程语法,观察不同编程语法规则下计算机软件是否还能持续稳定地运行,以此判断该软件的安全性。
4.4 利用计算机软件属性开展测试
测试工作是通过计算机软件的特性来进行的。这种检测方法,首先需要对软件编程中的安全属性有所了解,之后通过输入计算机软件编程语法来检验是否与计算机软件的属性相匹配,从而确定该计算机软件的安全性。
4.5 利用静态检测技术开展计算机软件检测工作
计算机软件检测的基本方法有两种,静态安全检测技术和动态安全检测技术。而静态检查技术是通过程序分析技术来分析和检查程序的源代码,从而实现对程序的安全检查。静态检测技术的工作主要有两个方面,一个是数据流,另一个是约束因素。该方法的优点是操作方便,缺点是无法对计算机软件中的全部问题进行排查。
4.6 利用故障导入方式开展安全性检测工作
采用故障导入的方法对计算机软件进行安全检查主要是通过分析计算机软件的故障来判断其安全性。因为绝大多数情况都无法准确地判断出故障的发生时间和原因,所以对计算机软件进行故障分析是一件十分烦琐的工作,给故障导入方式检测工作造成了困难。更重要的是,由于故障导入检测法的专业程度很高,而且流程复杂,因此,该方法的使用率也比较低。
5 加强计算机软件安全的防护对策
5.1 加强计算机软件安全的设计
加强计算机软件的安全防护,必须对软件设计环节的相关管理给予足够的重视。首先设计人员要将用户信息安全视为信息开发和设计的重要依据,软件进入市场前应该进行反复测试,找出并修复漏洞,防止技术不成熟的软件流入市场,给用户的财产带来较大的安全隐患。其次增强软件及电脑自身的防御能力,为电脑提供有效的安全防护,增加软件的安全性。
5.2 加强计算机软件防火墙拦截功能
计算机软件在运行的过程中是最容易被攻击的,因此,可以利用防火墙技术拦截运行过程中的不法入侵,该方法应用简单、有效性较高,也是目前应用范围最广的一种防护方式。它的主要作用是在计算机内外的网络之间建立一个拦截保护程序,可以及时地检测到任何想要对该计算机进行入侵的数据信息,从而保证计算机中的网络系统不会因为外界的影响而遭受不法分子的攻击等。目前市面上应用最广的一种防火墙技术就是状态检测防火墙,它的技术原理是在电脑运行的时候,对电脑中的某个接口上的数据包进行拦截,之后再对该数据包是否具有危险性质进行观察,最后由检测的结果来判断该数据包是否能够进入电脑系统。使用较为广泛的个人计算机防火墙是天网防火墙,这种防火墙技术不仅功能强大、运行稳定,而且操作简便,现在,它也被逐步地应用到了各行各业之中。
5.3 加强加密技术的研发
(1)密码方式
软件运行过程中,通过在某些关键的位置询问密码,然后用户按照密码列表输入密码,校对正确后程序就可以继续运行。这种方法虽然实施起来比较方便,但是它也有一些不足之处:会干扰人与人之间的正常交流,引起使用者的反感;口令是比较固定的,不法分子只要拷贝口令就可以不受限制地使用;加密点相对固定,易于破译。
(2)软件自校验方式
当软件被安装到用户的电脑中时,软件会自动地记录下电脑硬件的奇偶校验和、软件安装的磁道位置等信息,还会在硬盘的特殊磁道、 CMOS中做一些标记,之后会自动对安装的程序进行改写。完成上述操作之后,后续运行过程中可以自动对安装过程中的详细信息进行分析。此方法在正常运行情况下,使用者不会知道加密密码,密码非常稳定。因此许多开发机构都会采用这种方法。但是,如果使用者增加或者是减少计算机的硬件,原来的加密就会失去效果,需要重新设置才能正常运行。
(3)硬加密方式
硬加密指的是将计算机硬件与软件进行组合实现加密,具体来看,加密后运行软件时首先需要访问指定的硬件,与硬件进行数据交换,如果发现计算机没有安装特定的硬件而没有完成数据交换,软件也就无法启动。当前具有代表性的产品有加密卡、软件锁/狗、智能化软件锁/狗。其中加密卡法的加密力度很大,防追踪措施也很完善。如果要在其他计算机上重新安装该软件,则需要将加密卡换插,并且其加密成本相对较高,因此,一般用于集成系统上。
5.4 反跟踪技术
软件追踪技术可以悄无声息地实现软件盗取的目的,为了有效防止软件追踪技术的破坏,需要利用反追踪技术来切断不法分子的追踪途径,以及防止不法分子对计算机软件进行复制或加密等非法操作。计算机软件在运行时都要依赖于CPU,如果此时受到外部不法分子的监视,就等于是将该计算机系统程序的真实情况直接反映给了追踪者,进而可以轻而易举地复制该计算机中的软件,给计算机软件上的性能带来了安全隐患。因此必须要以计算机软件为目标,严格规避反追踪技术中可能出现的安全隐患、漏洞等问题,进一步强化对计算机软件反追踪技术的健全与完善,使其在使用过程中,能够最大限度地发挥出反追踪技术的保护效果[10-12]。
5.5 对计算机做到实时监控
计算机防火墙对病毒的防御能力比较低,为减少使用过程中的安全问题,可以采取实时监控方式。在用户和软件以及系统的电脑专家之间建立起联系,当计算机在运行中发生异常情况时,可以由电脑专家展开故障分析功能,并开启软件检测程序,及时遏制病毒传播避免造成重大损失。除此之外,通过对计算机实时监控进行周期性的安全检查,发生问题时,可以由计算机管家进行及时分析和引导,不仅可以保障使用者的安全,还可以提高计算机软件的安全性和可靠性[13]。
6 结语
综上所述,人们在享受信息技术带来便利的同时,也面临着多重网络威胁。对于用户来说,计算机以及软件的安全性是考虑的第一要素,即使软件存在漏洞,也希望能够有效阻止外来入侵的破坏。而对于计算机软件的开发者来说,希望尽可能地清除软件中的漏洞,一旦发现漏洞,立刻采取相应的措施来进行补救,尽可能地把用户的损失降低到最小。计算机软件的管理是一项比较复杂的工程,而且软件的漏洞问题也无法根除,因此,计算机软件设计者应该采取一系列有效的预防措施来强化软件市场的安全性能,站在用户的角度来考虑,切实保证软件使用过程中的安全,才能促进计算机软件行业得到持续发展。