欢迎来到天天文库
浏览记录
ID:43946648
大小:26.50 KB
页数:5页
时间:2019-10-17
《计算机软件中安全漏洞概述及防范方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机软件中安全漏洞概述及防范方法摘要:随着科技进步与信息化的迅猛发展,软件安全问题越来越受到研究者们的重视,尤其是在计算机软件中,这些安全漏洞会带类很大的安全问题,有时是那些被证实可以攻击的软件弱点,这些漏洞需要我们有着较为清晰的认识,只有在了解的基础上才能有有效的防范方法。关键词:计算机软件;安全漏洞;防范方法中图分类号:F123.1文献标识码:A软件安全弱点就是可能会带來安全问题的计算机软件中的代码。软件安全弱点和软件安全漏洞不同,只有被证实可以引起攻击的弱点才是漏洞。弱点不一定都是漏洞,但漏洞一定是弱点。软件安全弱点信息披露的三个比较著名的地方是:Bugtraq.CERT与
2、RISKSDigesto每个计算机系统中都存在着安全脆弱点,而且现在软件安全性问题比过去更大,更加严重。其中的原因有三:第一个原因就是计算机网络的无所不在,这给攻击者寻求弱点提供了途径和方便性;第二个原因是现代信息系统及其相应程序的庞大和复朵,而且广泛使用的低级语言更加剧了弱点的存在;第三个原因就是软件的可扩展性。软件安全弱点随着上述因素的存在而在H益增加,这使得软件安全性问题比以往任何时候都更紧迫。了解软件中存在哪些可能的漏洞就显得很重要了。,软件安全漏洞分类软件安全漏洞可以从不同的如度和层次进行分类,分类的目的是有助于更好的把握漏洞的共性,使漏洞的检测效率更高、针对性更强。操作
3、系统和绝大多数的协议通信软件都是使用C或C++开发的,该语言拥有简洁、使用方便、灵活、运算能力好、硕件访问能力强、可移植性好和程序执行效率高等诸多的优点,所以使用也是最为广泛的。本论文对漏洞的分类也主要从C或C++语台一的特点出发。软件安全漏洞从语言的角度说就是那些已经成功通过了编译器的编译,但编译器发现不了的,潜藏在程序源代码屮的能引起安全故障的编程错误或遗漏。这些软件安全漏洞主耍分为如下的几类:(-)缓冲区溢出引起缓冲区溢出漏洞的原因也很简单。从大的方面说就是使用了不安全的编程语言,比如C语言或C+十语言等,再加上程序员拙劣的编程技巧。从小的方面说就是语言自身没冇边界检查,使得
4、数组或指针的访问常常越界。溢出漏洞导致的程序行为有:目标程序的执行很占怪;目标程序的执行完全崩溃;目标程序可以继续,而口没有任何明显的不同。其中第三种情况是最棘手的,也是最坏的情况,它掩盖了可能发生的攻击,使得软件的测试人员也不能发现问题。(二)竞争条件竞争条件,是一种常见的软件BUG。特别是在多进程多任务的现在操作系统面前情况更是严重。这个问题比起缓冲区溢出漏洞來说更难解决,一个程序可能几年来都一直运行正常,但是突然间就因为竞争条件BUG而出现异常,而这种异常表现乂是不能确定的。即使发现了竞争条件问题的存在,想修正它也是十分困难,因为它们极少岀现。随着并行计算和分布式系统的开发和
5、扩展,竞争条件问题近年來愈演愈烈。其中基于文件的竞争条件问题在安全方面一直是最臭名昭著的。大多数基于文件的竞争条件问题都有一个共同的规律:在使用文件Z前都会对文件的屈性进行检查。但是这个检查存在缺陷。这个缺陷在安全界被称为检查时刻使用时刻,缩写就是TOCTOUo当然了,涉及安全性的竞争条件TOCTOU问题不仅仅在访问文件的时候发生,在其他的各式各样的复朵系统中也常常出现。比如电子商务中的多数据库同步就是一个典型的竞争条件问题。(三)格式化字符串格式化字符串,漏洞是另一类微妙的程序代码缺陷。这个漏洞在几年前就已经被发布了,但是现在的很多软件产甜仍然含冇这个漏洞。格式化字符串是程序函数
6、中特殊的一类字符串参数。除了可以利用格式化字符串漏洞显示重要信息外,最危险的就是它可以向内存中写入指定的数据。格式化字符串漏洞只要存在,就可以被用来在进程的内存空间中任意读写,其危害还是非常大的。所以这类漏洞是软件安全漏洞检测的一个重要方面。(四)随机数从事过安全研究的人都知道随机数在安全性应用中是很重要的。随机数可以用來生成序列号,甚至可以生成密钥。随机数被用在安全应用中就是一个安全弱点。所以在软件安全弱点中要把它也作为重要组成部分。二、软件安全漏洞防范方法(-)防止缓冲区溢出漏洞防止缓冲区溢出的最好办法就是对程序屮的危险函数进行详细检查。使用安全的版木来替换不安全的版木,例如使
7、用Strncat来替换stcrat等等。计算机软件中完全没有BUG,是根本不可能的,除非软件足够小。即使上面的程序源码检查中没有发现缓冲区溢出问题,还是不能掉以轻心,还是有其它方法可以使用的,比如在Linux操作系统上使用的不可执行堆栈补丁程序和stackguard工具等都对缓冲区溢出冇较好的保护。(二)防止竞争条件漏洞防止竞争条件漏洞的方法就是对能产生竞争的代码实行原子化操作。简单來说就是代码的执行是最小的单元,执行操作的时候,不会有其他的任何事情打断它的执行。原子
此文档下载收益归作者所有