当前位置:文档之家› 浅谈计算机软件安全漏洞原理及防范措施

浅谈计算机软件安全漏洞原理及防范措施

2017年第4期信息通信2017(总第172 期)INFORMATION & COMMUNICATIONS (Sum. N o 172)浅谈计算机软件安全漏洞原理及防范措施罗超1j(1.广东科学技术职业学院;2.天津掌通无线科技有限公司珠海分公司,广东珠海5190卯2)摘要:计算机软件是计算机技术发展的重要元件。

随着计算机技术的飞速发展,软件安全问题随之受到越来越多的关注,提高软件安全性是保证计算机软件安全的重要措施。

文章分析了计算机软件安全漏洞攻击原理,对安全漏洞进行分类并指出了漏洞的原因。

根据安全漏洞的类型和原因,提出了出安全漏洞的防范策略。

关键词:计算机软件;安全漏洞;原理;措施中图分类号:TP393.08 文献标识码:A文章编号:1673-1131(2017)04-0134-02计算机的应用已经称为社会发展的重要工具,遍布于人们生活当中。

而计算机软件的发展是当前计算机发展的一大特点,并为计算机的发展提供了新的契机,同时,软件漏洞问题给用户带来困扰以致产生经济财产损失的案例也比比皆是。

入侵者或入侵软件在未经授权的情况下通过计算机软件安全漏洞进行攻击,会对系统形成较大的破坏,造成诸多的问题。

因此,有必要从源头入手,通过对计算机软件安全漏洞原理进行分析,找出应对策略。

1计算机软件安全及漏洞的类型1.1计算机软件安全一般来说,进入计算机系统访问信息时,需要经过授权的对象,以被授权对象名义才被允许进入系统,进行信息操作。

计算机软件的安全性对于计算机几乎有着决定性的作用,是信息资源和系统资源安全的主要保障。

对计算机软件安全进行维护是目前保障计算机用户信息安全的常用方式,也是比较有效的一种。

在提高网络信息保密性、完整性和可利用性方面,该方式具有良好的效果。

1.2计算机软件安全漏洞的类型对软件安全漏洞进行合理分类是有效提高漏洞检测效率和检测针对性的方式,也有助于工作人员对软件漏洞的共性进行合理把握。

C或C#是当前的操作系统和协议通信软件开发主要借助语言,对计算机软件的安全漏洞进行分类,也需要从以上两个层面出发。

(1)缓冲区溢出。

缓冲区溢出会造成较多的安全问题。

引起缓冲区溢出漏洞的原因主要是编程语言自身没有边界检查,造成数组或指针的访问经常性越界,导致语言不安全并引起漏洞。

计算机的每个程序都有其存储信息的内存空间,C或C++语言能够保证程序运行中使用两个不同的存储器:堆和采取逐个集中器厂家试点升级、调试、确认可靠后,再扩大实施范围。

参考文献:[1]GB 13955-2005剩余电流动作保护装置安装和运行[S].[2]李维,傅静.苏州供电试点推广居民漏电监测仪[N].江苏电力报,2015-2-10[3]钱立军,陆寒熹,尹建悦.基于智能电表的剩余电流监测功能研究[J].电气应用,2008, (S1):204-207.[4]Q / GDW376.1-2009•电力用户用电信息采集系统通信协议:主站与采集终端通信协议[S].栈。

在外部,缓冲区溢出问题的副作用没有特异表现,在测试期内也难以被发现,由此造成软件安全漏洞。

目标程序的执行古怪、崩溃是溢出漏洞导致的常见程序行为,而有时候溢出漏洞出现后并没有明显异常。

(2) 竞争条件。

这是系统中的反常现象,由于现代Linux 系统中大量使用并发编程,对资源进行共享,如果产生错误的访问模式,便可能产生内存泄露,系统崩溃,数据破坏,甚至安全问题。

竞争条件漏洞就是多个进程访问同一资源时产生的时间或者序列的冲突,并利用这个冲突来对系统进行攻击。

一个看起来无害的程序如果被恶意攻击者利用,将发生竞争条件漏洞。

竞争条件造成的漏洞是一种常见的软件BUG,竞争条件BUG的表现异常且具有不确定性,解决起来也相对棘手。

(3) 格式化字符串。

格式化字符串,也是一种比较常见的 漏洞类型。

会触发该漏洞的函数主要是p rin tf还有sprintf, Qnintf等等c库中print家族的函数。

该漏洞属于一种程序代码缺陷,目前有较多的软件产品存在格式化字符串漏洞。

攻击者利用该漏洞,通过打印内存、改写内存等方式,就能窃取和改写信息。

一旦存在格式化字符串漏洞,恶意攻击者就能够任意读写信息,造成较为日严重的危害。

(4) 随机数。

序列号或密钥的生成需要依靠随机数完成。

如果选用了不好的方法来给伪随机数播种,就可能会造成信息的泄漏。

这是因为该随机数播种的种子由机器时间、进程ID和父进程ID来决定的。

攻击者通过适用相同的浏览器就能够猜出ID,并借助Sniffer工具,对数据报文进行拦截,左后分析出系统时间。

攻击者可在几秒钟内获得随机种子,并立即完成实时地破解密码。

不好的随机数产生技术会导致数据报文序列号很容易就被猜到,攻击者欺骗报文并插入通信的难度较低。

[5]DLT645-2007,多功能电能表通信协议[S].[6]剩余电流动作保护器通信规约(报批稿)[S].作者简介:严永辉(1978-),男,中级工程师,从事用电信息采集系统的设计开发工作;李新家(1967-),男,正高级工程师,多年来在电力企业从事电力自动控制工程和信息化应用系统设计开发工作;周瑞雪(1980-),女,中级工程师,从事用电信息采集系统的运行监控工作;李平(1985-),男,中级工程师,从事用电信息采集系统的开发工作;赵勇(1980-),男,助理工程师,从事用电信息采集系统相关的通信规约设计开发工作。

134信息通信2产生软件安全漏洞的原因形成计算机软件安全漏洞的原因多种多样,究其根本,主 要有以下几点。

2.1互联性软件安全漏洞问题出现首要原因是由于计算机软件具有 显著的互联性。

计算机之间采用Internet互联,互联性是计算 机相互连接、资源共享的重要纽带。

但是,计算机软件也可能 随时都会遭受到恶意攻击。

远程协作作为互联网的另一项重 大好处,也具有其弊端,容易受到远程软件的攻击与侵害,增 加软件安全风险。

2.2可扩展性可扩展性也是是软件安全问题存在的原因。

通过接受更 新或扩展件,可扩展的系统就能够升级系统的功能,因此,扩 展功能大受欢迎。

系统货栈功能具有灵活方便的特点,能够 通过新的组间来适应新的要求,实现软件与现实之间的对接, 具有良好的运用效果。

但是,可扩展性可能会导致软件漏洞 阻止困难。

2.3复杂性软件系统复杂性是其主要特点,它具有很多的代码,运 行中读取代码出现缺陷是不可避免的。

且代码的行数越多 其中出现额缺陷也越多。

代码太多会影响到软件的运行效 率,也可能导致数据过多难以装下,造成数据溢出并致使软 件崩溃。

因此,复杂性也是影响家算计软件安全的一项重 要因素。

3应对计算机软件安全漏洞的策略针对当前计算机软件漏洞的常见类型,提出有必要对软 件形成安全漏洞进行预防和解决。

3.1防止缓冲区溢出仔细检查程序中的危险函数并采用安全版本对其中的不 安全版本进行替换,是当前防止缓冲区溢出漏洞的有效方式。

可以采用stm cat来替换strcat,采用fgets替换bPtS。

通过检 查以及安全替换,是防止缓冲区溢出漏洞的有效方式。

3.2防止竞争条件漏洞对于产生竞争的代码进行原子化操作是处理和预防竞争 条件漏洞的主要方式。

代码执行操作时,不能被其他任何事 情打断。

采用锁定方式是竞争条件漏洞预防的一种方式。

应 当采用文件句柄或者文件描述字,而可以直接使用文件名的 系统调用。

3.3防止格式化字符串漏洞可在代码中直接用格式常量,避免形成漏洞,特别是格式 化字符串漏洞。

使用那些会对参数进行类型和个数检验函数 时,需要保障参数的个数和类型的一一对应。

通过不可执行 堆栈程序,对于格式化字符串漏洞的被利用也具有一定的阻 止作用。

另外,数据的输入和输出使用窗口进行也是漏洞消 除的有效方式。

3.4防止随机数漏洞随机数发生器与随机数漏洞的产生具有直接的关系,在 以后的发生器选择方面,要做出严谨的选择,采用一个好的随 机数发生器,消除由此产生的随机数漏洞。

同时,采用好的密 码算法,提供安全的随机数流,能够让攻击者在知道全部算法 细节的情况下,难以猜出生成的数据流,提高计算机软件的安 全性。

3.5实行风险管理保障计算机软件安全,防范软件安全漏洞,并非是“亡羊补牢”式的有BUG就修补行为,而是必须进行有效的安全风险管理。

包括对软件本身的风险管理,也包括(1) 针对软件生命周期的风险管理。

软件安全风险管理方 法对软件的安全距有至关重要的作用。

软件的整个生命周期需要有安全保护,在风险管理中需要对数据进行收集,并从软件的弱点、威胁、影响以及概率等角度,对软件的生命周期和风险进行分析和评估。

以此为依据,对计算机软件的风险进行全面把握,并给出风险防范对策以提高软件的安全性,降低软件安全问题。

(2) 应用软件安全接触点的风险管理。

软件安全接触点 可以应用在软件开发过程中,以便对风险进行管理和控制。

例如软件安全的需求和使用案例分析、测试计划、代码编写以及测试等阶段。

同时需要得到应用领域的反馈,帮助软件从业人员充分了解安全接触点,掌握应用的对策,尽可能减少软件开发人员在开发过程中出现的错误,降低计算机软件安全问题。

(3) 提升软件从业人员素质的风险管理。

软件从业人员的 素质也是影响软件安全的主要因素。

不断完善从业人员软件安全知识,包括攻击程序、攻击模式、弱点、历史风险以及原则等等。

其中弱点和攻击程序是从业人员比较了解的,但是对于攻击的模式、历时风险、应对方针等知识的了解相对缺乏,导致他们维护软件的模式也是比较单一的。

通过培训、学习和交流等方式提高从业人员风险管理意识,丰富风险管理知识,提高风险管理素质以应对攻击者恶意攻击软件是降低软件安全漏洞问题的重要保障。

一般来说,加强软件安全管理,采用好的密码算法能够有效提高软件安全风险防范能力,使用优秀的软件安全方法,有助于实现软件工程目标。

但就其根本来看,提高软件从业人员素质,在软件编写早期阶段,全面考虑软件安全问题,构建主动抵御攻击软件更能够有效地保护软件安全。

参考文献:[1]崔丽红.浅谈计算机软件的漏洞与防范[J].电子制作,2013(I) :13-13,[2]裘锴,陶国武.计算机软件中安全漏洞检测技术应用研究[J].通讯世界,2016,(18):70-71.[3]陆万青.浅谈计算机网络安全漏洞及防范措施[J].电脑知识与技术,2016,(19):40-41.[4]辛东东.浅谈计算机网络安全漏洞及防范措施解析[J].网络安全技术与应用,2016,(07):15-17.[5]李萌.计算机网络安全漏洞及防范对策[J].智能城市,2016,(04) :100-101,[6]安晓光.计算机安全漏洞检测技术的应用探究[J].中外企业家,2016,(09):167-168.[7]许跃颖.计算机软件中安全漏洞检测技术及其应用[J].电子制作,2016,(02):32.作者简介:罗超(1985-),男,四川巴中人,硕士,广东科学技术职业学院计算机工程技术学院兼职教师,天津掌通无线科技有限公司珠海分公司总经理。

相关主题