网络漏洞扫描原理分析

2024-05-09

网络漏洞扫描原理分析(精选4篇)

网络漏洞扫描原理分析 第1篇

在互联网卷席世界各个角落的同时,伴随着网络病毒的肆意横为, 而近几年随着网络安全意识的提高、黑客市场交易的发展等多方面因素影响,病毒似乎淡出演出台,而各种漏洞却成为信息安全的主角,在2014年上演着一出 出重头戏 :Gotofail、 心脏流血 、POODLE 、Bad USB、“破壳 ” 漏洞如一枚枚重型炮弹轰炸着整个信息安全领域。

“破壳 ” 漏洞是2014年9月发现在著名Shell软件GNU Bash中的一个严重的漏洞 (CVE-2014-6271)。 在Red Hat、Cent OS、Ubuntu 、Fedora 、Amazon Linux 、OS X10.10中均拥有存在此漏洞的Bash版本 ,同时由于Bash在各主流操作系统的广泛应用,此漏洞的影响范围包括但不限于大多数应用Bash的Unix、Linux、Mac OS X,而针对这些操作系统管理下的数据均存在高危威胁。

“破壳 ”漏洞一发现 ,便震惊了整个安全界 ,人们都以为新的“心脏流血”来了,但是它与“心脏流血”漏洞不同,“心脏流血”只能窃取用户电脑信息,而”破壳”漏洞允许黑客远程控制电脑,拿到系统最高权限,而要达到这一目的只需要复制 / 粘贴一行命令代码即可。

“破壳 ”漏洞是如何产生的 ,黑客又是如何利用这一漏洞对网络进行致命威胁。 本文将对”破壳”漏洞产生的原理进行深入分析, 对黑客利用漏洞进行技术的解剖,最后对如何检查”破壳”漏洞的存在及如何应对该漏洞给出解决办法。

2 “破壳”漏洞产生的原理

要了解“破壳”漏洞产生的原理,首先要了解Bash如何处理其变量、环境变量与环境变量函数。

1)Bash处理变量

GNU Bash为提高用户的操作性 ,在其Shell接口下提供变量的定义。 变量定义的格式为:“变量名称 = 值”。父进程的Bash变量是否可以传递给其子进程呢? 这里父进程是当前的Shell接口,在当前接口输入Bash命令时将创建子Bash进程,输入exit可退出子进程。 如图1所示为Bash处理变量的结果。

说明一下:在Bash中echo命令将输出其后所带的参数,当输出的是一个变量时要在其前加上“$”标识符。从图1可知,在Bash中定义一个参数test它的值为“test bash”,然后使用echo输出test变量 , 接着使用Bash命令创建一个子进程,尝试输出$test变量,没有返回值,其不能够读出变量值的原因是开启了一个Bash子进程,但变量中的值,仍存在父进程中。 如何才能读出变量呢,接下来看Bash如何处理环境变量。

2)Bash处理环境变量

当读者开启一个shell会话时, 一些变量已经准备好可供使用了,这些变量称为环境变量。 当读者想在子进程中访问$test变量的话,可以使用export命令将变量变成环境变量。 如图2所示。

从图2可知,子进程可以访问环境变量。 通过将变量变成环境变量使得可以在子进程中访问$test变量。

3)Bash函数与环境变量

下面看看Bash处理函数与环境变量,在Bash中函数创建是一个十分方便的特性,读者可以利用该特性创造出非常优美的Shell脚本。 那么在父进程中,Bash创建的函数是否可以在子进程中被继承呢,通过图3可知如同变量一样,父进程的函数是无法被子进程继承的。

在图3基础上做变化,先将x声明为环境变量,然后看结果有何变化,如图4所示。

从图4可知, 建立一个名为x的函数, 并将函数x存放在环境变量中,则在子程序Bash中仍可执行名为x的函数。

4) 让字符串变成函数并执行

先看一条命令:newfunction=' (){echo ‘testbash’;}',这条命令看似是要定义一个变量newfunction,但是它的值是一个字符串参数,特别的是这个字符串参数刚好是定义了一个函数的结构。 通过图5测试一下它在父进程与子进程中输出会有怎样的结果。

将图5做变动,使得这段略复杂的字符串变成环境变量,并重新开启一个新的Bash进程后,如图6,结果发现newfunction像函数一样执行了echo 'testbash'。

接着输入如图7的指令。

从图7可知, 当特殊的字符串变成环境变量后,环境变量又解析成函数, 新的Bash进程在启动后又解析了环境变量并可以执行命令,结果如图8。

总结以上过程,Bash除了可以将shell变量导出为环境变量,还可以将shell函数导出为环境变量,当版本小于或等于4.3时,Bash通过以函 数名作为环 境变量名,以“(){”开头的字符串作为环境变量的值来将函数定义导出为环境变量。 此次爆出的漏洞在于Bash处理这样的“函数环境变量”的时候,并没有以函数结尾“}”为结束, 而是一直执行其后的shell命令。 简单地说就是,Bash脚本在解析某些特殊字符串时出现逻辑错误导致可以执行后面的命令。

3 “破壳”漏洞对Web领域的威胁

“破壳 ”漏洞的发现很快在Web网络服务中被黑客们充分地利用,他们通过Web服务暴露出的CGI接口,将一个原本的内部漏洞摇身升级成一个瞬间获取服务器Shell的极有利用价值的漏洞。

3.1通过CGI对“破壳”漏洞的利用

通过CGI如何对“破壳”漏洞进行利用呢?

首先要找到Web上的CGI脚本。 例如下面这样的脚本:

最简单的方式读者可以利用Google搜索, 输入:“filetype:cgi inurl:cgi-bin site:jp” 来批量获取Web上的CGI脚本。 曾有人测试每500个搜索到的CGI脚本中有6-8个存在该漏洞。

正如前面介绍CGI所讲, 服务器后台使用python、Perl等解释器来解释执行并反馈给客户端Response,当然还可以 换做Bash脚本解释 执行提交 上来的GET/POST请求。 所以,理论上,读者在HTTP请求中插入一个Bash命令,比如:

如果服务器的Bash解释器具有这个漏洞, 那么在解释上面这句话的时候就会执行WGET请求, 将一个恶意的testvul.sh文件下载到这个服务器。 完整的的测试请求如下:

其执行的过程如图9所示。

·黑客发送GET请求到目标服务器CGI路径;

·目标服务器解析这个GET请求 ,碰到User-Agent后面的参数,Bash解释器就执行了后面的命令;

· 目标服务器WGET到黑客的服务器下载脚本文件;

·黑客的服务器会记录下这个访问的IP地址;

· 黑客通过查看他的服务器访问记录 ,确定目标有没有去访问,如果访问了,那么就可以确认该IP下的服务器存在漏洞。 当然这个脚本可以是一个webshell,这样黑客就轻松的利用“破壳”漏洞获取了大批服务器的远程控制权。

3.2绕过SSH无密码登录限制脚本

SSH无密码登录的方式常常用于程序登录操作系统,例如在设置Hadoop(Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 ) 前要进行无密码SSH登录。 该登录方式的原理是利用密码学中的非对称密钥进行对登录用户的认证。 先在登录的用户系统中生成一对公私钥, 然后将公钥传输到被登录服务器上,当用户使用SSH进行登录时被登录系统将自动匹配公私钥进行认证。

下面通过一个具体的实例来演示及讲解如何利用Bash漏洞绕过SSH无密码登录限制。

3.2.1环境搭建

首先搭建两台Linux服务器, 其中一台作为服务器,一台作为SSH客户端,假设已经知道该服务器存在“破壳 ”漏洞 ,保证服务器与客户端的互联 ,并且在客户端可以使用SSH登录(输入密码的形式)服务器。

本实验在服务器上建立了一个名为phc的用户:

其中:/home/phc是该用户的‘home’目录,/bin/bash为Bash shell的绝对目录, 此参数的意义在于指定phc用户的SHELL解释器。 查看passwd来确认用户被添加到系统中:

确定ssh服务开启:

另外 , 在开始配 置之前要 确定服务 器端的sshd_config配置是否允许无密码登录 :

若在sshd_config中发现上图中的三句前有“#”要删除“#”并保存sshd_config文件。

3.2.2配置授权密钥

通常用户使用用户名和密码登录开放的SSH服务器,为了成功实现这个实验,读者需要配置授权密钥,使得登录时无须输入用户名和密码。 SSH公钥验证使用的是非对称加密算法以产生一对密钥。 其中私钥储存在客户端(本文为攻击端),公钥储存在运行SSH的服务器上(本文为受害端)。

在攻击端 生成配置 需要的公 私钥 , 输入命令 ”ssh-keygen -t rsa”,回车后 ,会提示读者存放位置和是否使用保护密码,全部一路回车即可。

公钥和私 钥创建后 , 私钥存放 在 /home/phc/.ssh/id_rsa文件中 , 公钥存放在 /home/phc/.ssh/id_rsa.pub文件中。

接下来要将公钥传输到受害端也就是服务器上。 这里有很多种方式, 比如可以使用FTP将公钥传到SSH服务端,或直接是用SSH进行传送,本文选择相对简单的SSH将公钥传输到服务端。

以上命令可直接将公钥写入到SSH认证时需要查找的authorized_keys文件中。 当然, 需要输入登录phc用户的密码。 如图10为在服务器上的authorized_keys文件。

为符合Linux严格的权限机制, 实验要适当修改.ssh目录与authorized_keys文件的权限,如图11所示。

在攻击端测试登录,如图12所示。

从图12可知成功登录受害端, 读者还可以改变一下命令,如图13所示。

从图13可知 ,SSH还允许将 命令作为 参数跟在SSH登录的命令后面执行 。

3.2.3用“破壳”漏洞绕过脆弱的验证

使用这种无需输入用户名和密码的方式设置SSH登录十分方便,但也同样带来一些安全问题,为限制客户端通过这种方式登录服务器的操作,SSH允许使用一些脚本命令来限制登录用户端的操作。

比如在验证密钥中添加一段脚本,如图14所示。

脚本内容:

该脚本只允许SSH输入 “date”命令 ,若输入其他命 令则提示 “you naughty,youcannnot execute it”。

创建完该 脚本后执 行该脚本 , 命令为 :chmod +x script.sh。

执行限制 脚本后 , 读者再用ssh shellshock@192.168.1.105 uname登录 , 如图15所示。

从图15可知, 用户登录行为受到限制。

但是通过利用”破壳”漏洞依然能够绕过控制脚本,使用的命令如图16所示。

从图16可知 ,uname命令再一 次执行了,用户绕过了控制脚本,执行了原本被限制的命令。

4 “破壳”漏洞的检测和解决办法

4.1如何测试计算机是否存在“破壳”漏洞

1) 本地命令检测

当用户的GNU Bash版本小于等于4.3或出现输如图17所示命令,并返回如图17回显时则可以证明存在此漏洞。

2) 通过CGI检测

如何检测,请读者查阅3.1节中的完整测试请求, 其测试过程也是检测过程。

4.2解决办法

针对不同的系统, 厂家提供了不同的解决方案, 大部分是针对原版的Bash对命令中出现的 '(){:;}; 字符串进行过滤,从而屏蔽该漏洞。 不同系统具体的实现命令如表1所示。

4结束语

近几年越来越多的基础软件被发现有漏洞, 很多漏洞一发现便是致命的, 似乎已经没有软件不存在漏洞, 而是漏洞什么时候被发现,面对这一现状,如何完善漏洞处理机制, 在尽可能短的时间内补漏洞,减少因漏洞造成的损失将是作者下一个关注的问题。

网络安全漏洞的现状及面临问题分析 第2篇

关键词:漏洞网络安全

中图分类号:TP393文献标识码:A文章编号:1674-098X(2011)05(c)-0021-01

如今,越来越多的安全漏洞被发现,使得利用这些的安全事件数量日益上升。Gartner研究机构曾经预测:到2008年90%成功的黑客攻击都会使用众所周知的软件漏洞。CNCERT/CC也始终认为,信息系统的安全漏洞是各种安全事件发生的主要根源之一。因此,在安全事件层出不穷的今天,漏洞问题更需要被特别关注。做好漏洞管理工作,也是用户在构建信息安全体系时,需要重点考虑甚至优先考虑的问题。

那么,如何做好漏洞管理工作呢?唯一有效途径是:在漏洞被利用以及信息系统遭受危害之前,正确识别并修复漏洞和错误配置,预防安全事件发生。但是,信息系统复杂性和安全漏洞的多样性给漏洞管理实践带来更大挑战,将如何应对?

1 遭遇漏洞危机

随着技术进步,漏洞发掘水平和速度一直在提高,而其利用技术也在不断发展。目前正在遭遇一场前所未有漏洞危机,主要表现:

(1)全球漏洞数量在持续快速增加。据CERT/CC统计,该组织2006年收到报告并确认信息系统安全漏洞8064个,平均每天超过22个,与2005年相比增长34.6%。1995年到2008Q3,报告安全漏洞总数达到44,074个,具体结果如图1:

(2)应用软件漏洞增势明显。在所有发现漏洞中,基于应用系统尤其是Web应用漏洞所占比重明显上升,已占到70%左右。另外浏览器漏洞也在不断增加,微软IE和Mozilla Firefox浏览器是用户常用网页浏览器,其漏洞数量也位居所有浏览器之首。

(3)从发现漏洞到攻击程序出现时间在不断缩短。据权威机构统计,从发现漏洞到发布相关攻击程序所需平均時间越来越短,现在仅为一周,“零日攻击”现象也显著增多。从另一方面统计来看,厂商在发现漏洞后,平均要50天发布相关修补程序。一旦漏洞公布但没有被及时修补,用户系统遭受攻击可能性大大增加。

(4)漏洞可以被购买。漏洞可以被购买的报道并不少见,甚至在有些网站上公开叫卖。这表明漏洞已经跟利益集团联系到一起,作为获取非法收益的工具。一旦一个重要业务系统漏洞被非法分子利用,造成的损失难以估量。

综上所述,漏洞数量在快速增加,种类越来越多,受到漏洞影响信息系统也越来越易遭受攻击——我们正在遭受的漏洞危机在日益加剧。

2 面临的挑战

据一项“全球信息安全调查”数据,当前企业面临的最大安全挑战是“预防安全漏洞的出现”。信息系统管理员通常要借助漏洞管理工具来识别和修补漏洞,但在漏洞危机日益严峻形势下,使用漏洞管理工具能否应对如下挑战:

(1)在漏洞数量每日剧增情况下,如何全面、准确识别各种信息系统漏洞?(2)在分析漏洞信息进行时,是否能够保证内容完整性和权威性,并能够有效指导漏洞修复?(3)在面临种类繁多的各种漏洞时,如何对漏洞进行统一客观评级,合理安排修复工作优先级,以保证最危险漏洞最先被修复?(4)在企业进行风险监控要求下,如何评估漏洞带来脆弱性风险?(5)在阶段性漏洞修复工作完成后,如何对修复工作成果进行检验进而对漏洞管理策略调整提供依据?(6)在面对具有多个网络域、分布在不同地区大规模的信息系统,如何实现全网扫描部署和统一管理,并实施有效监管?

3 结语

因此,在选用漏洞管理产品时,必须考虑以下方面:(1)厂商是否具备持续性的漏洞跟踪及研究能力,以确保产品中漏洞知识库的全面性、准确性和权威性,并且能够做到及时更新,甚至能够对重大突发漏洞事件应急;(2)厂商是否在漏洞检测领域有长期积累,以保证产品应用成熟度;(3)产品是否能够对不同软件、系统类别的漏洞进行统一评级,并保证评级开放性和客观性,为修复工作的优先级提供指导,为漏洞评级的交流提供方便;(4)产品是否能够实现对扫描资产的管理,并能够结合漏洞评价,计算主机和网络的脆弱性风险,为风险评估和风险监控提供必要支撑;(5)产品是否能够对历次扫描结果中的漏洞情况、脆弱性风险的变化趋势进行分析,以检验修复工作有效性,并为漏洞管理策略合理化调整提供决策依据;(6)产品的部署应用是否足够灵活,是否能够适合各种规模的网络,突破逻辑网络域的界限,形成统一的漏洞管理体系。

参考文献

网络漏洞扫描原理分析 第3篇

关键词:新形势,计算机网络安全,漏洞扫描技术

我国科学技术不断进步, 计算机技术发展尤为迅速, 并且在我国社会生活中起着极为重要的作用, 给我们的现实生活带来了很多的变化, 使得我们与社会的联系越来越密切。然而, 在运用电子计算机网络技术的过程中, 由于计算机网络的开放性, 给计算机用户带来很大的安全问题, 用户的个人信息可能会泄漏, 甚至会给人们的财产安全造成一定的威胁, 所以, 一定要对计算机网络安全问题有所重视, 而且要采取相关措施来提高网络运用的安全性。我国相关部门一定要对计算机网络安全采取一定的行动, 让网民可以安心上网。本文就是分析了在我国互联网技术不断发展的前提下, 如何保障人民计算机网络运用的安全, 提出了相关的建议和意见, 希望可以减少网络带来的风险, 更好的促进人们幸福生活。并对漏洞扫描技术进行了一定的分析, 充分发挥其对网络病毒的抵制作用而且还能够修复相关的漏洞, 从而保障网络安全。

1 新形势下计算机网络安全发展现状

这几年, 我国计算机网络技术不断发展, 计算机的信息处理能力是越来越强, 更好地促进人们生活、学习、工作。我国人们在日常生活中也喜欢通过计算机网络来完成相关的工作, 搜集相关信息。计算机网络有较强的开放性和便利性, 人们可以在网上进行购物、联系沟通、工作, 足不出户可通晓天下事, 人们与世界的联系越来越密切。计算机网络技术在给人们带来便利的同时, 也给人们带来了一定的风险和威胁。比如人们在网上购物或信息搜集时, 会填写一些个人信息, 这些个人信息一旦没有得到很好的保密, 泄漏出去就会对人们的隐私安全和财产安全造成一定影响。甚至, 有时会有新闻爆出相关人员因为个人信息泄漏, 导致存款被盗。因此, 当前我国计算机网络安全问题频出, 这需要我国相关部门引起重视, 采取一定措施维护计算机网络系统安全, 使得人们可以安心、放心上网。除此之外, 还有计算机网络病毒给人们上网带来极大地安全困扰, 计算机网络病毒的入侵会使得电脑程序混乱, 造成系统内部瘫痪, 有时还会造成人们本身已经准备好的相关数据的丢失, 给人们工作、生活带来麻烦。而且, 现在还有一些恶意软件会给计算机网络带来一定的危害, 破坏电脑系统内部正常运行, 使得计算机内部混乱, 无法正常工作, 造成计算机系统死机等。总之, 我国当前计算机网络安全问题非常多, 这些问题已经严重影响了人们的正常生活, 还给人们带来了非常多的负面影响。

2 计算机网络存在的主要安全问题

第一, 计算机内部的每一种安全机制都有一定的适用范围, 而且这种机制在运用的过程中还需要满足一定的条件, 所以计算机内部机制的不完善给用户带来了很大的安全隐患。在计算机内部程序当中, 防火墙是其中一种比较有效的安全工具, 可以给电脑用户提供一些安全保障。防火墙在计算机网络系统运作的过程中, 它能够隐蔽计算机内部网络结构, 使电脑网络结构不会轻易被识别。防火墙在内部网络与外部网络的联系过程中制造了一些障碍, 使得外部网络不能够轻易地访问内部网络。但是, 防火墙这一工具的功能还是有限的, 它不能够阻止内部网络之间的联系, 这样电脑系统内部网络之间就可以随便往来。防火墙对于内部网络与内部网络之间的入侵行为是很难发觉的, 这样也会给电脑系统造成破坏。还有就是系统的后门不是电脑内部传统的工具所能够考虑到的地方, 这也是防火墙所不能够顾及的一个方面。系统后门容易被入侵, 防火墙也很难发觉, 并采取相关的措施。

第二, 电脑内部安全工具的使用存在一定的缺陷, 在电脑用户的使用过程中, 电脑内部的安全工具能不能实现功能最大化, 能不能使得安全工具使用效果的最优化, 很大程度上受到了人为因素的制约。在这个使用的过程中受到了系统管理者和普通用户的影响, 在使用安全工具的过程中要是没有使用正当设置, 会产生不安全因素。

第三, 网络黑客泛滥, 黑客攻击电脑手段不断更新, 每天都会有不同的电脑问题出现。我国网络的不断发展, 电脑安全工具也在不停地创新, 但是, 电脑安全工具更新速度远远跟不上黑客攻击手段的更新速度。通常黑客对用户的电脑进行了攻击, 然而, 电脑的安全工具却不能够发现, 更不用说采取相关的地质措施。总之, 目前我国电脑的安全工具反应太慢, 根本不能够及时处理入侵的病毒。

3加强网络用户安全措施探讨及漏洞扫描技术分析

第一, 加强电脑内部安全工具的完善, 不断提高防火墙的功能。在电脑系统内部设置高性能的防火墙, 充分发挥防火墙的作用, 在电脑运行的过程中设置网络通讯访问尺度, 仅仅允许已经被防火墙允许的人或数据对电脑内部进行访问。除此之外, 还不能够允许被防火墙拒绝的用户进行电脑内部访问。一定要使防火墙在最大程度上限制黑客对电脑进行访问, 阻止他们随意改变电脑内部的信息或者是阻止他们随意删除电脑内部的信息。

第二, 加强对网络病毒的防范措施, 提高电脑的警惕性, 及时预防和发现网络病毒。现在, 互联网病毒扩散和传播的速度越来越快, 如果仅仅依靠单机防病毒是远远不够的, 很难清除网络病毒, 所以一定要运用适合局域网的防病毒产品。

第三, 充分利用漏洞扫描系统来解决网络安全问题。在电脑用户使用的过程中, 一定要定期对电脑漏洞进行扫描, 只有发现电脑内部存在哪些问题, 才可以修复漏洞, 解决问题, 在不断完善电脑内部系统的前提下, 更好地预防外部病毒的入侵。

4 结语

计算机网络运用非常广泛, 给人们生活带来很多的便利, 但是, 计算机网络安全问题也变得越来越多, 因此, 为了让计算机更好的为我们所用, 我们一定充分利用漏洞扫描技术对计算机网络系统进行修复, 使得我们可以更加安全的运用计算机网络。

参考文献

[1]付南华, 邵慧甫, 王群, 等.分布式漏洞扫描与入侵检测协作系统的研究[J].电脑与信息技术, 2008 (5) .

[2]段丹青, 陈松乔, 杨卫平.融合漏洞扫描的入侵检测系统模型的研究[J].计算机技术与发展, 2006 (5) .

[3]陈东红, 王震宇, 邓承志.分布式漏洞扫描系统的设计[J].信息工程大学学报, 2006 (2) .

[4]夏洁武, 郭晨.一个基于漏洞扫描的安全中间件架构设计[J].微计算机信息, 2007 (12) .

网络漏洞扫描原理分析 第4篇

关键词:计算机软件;安全漏洞;防范方法

中图分类号:TP309文献标识码:A文章编号:1007-9599 (2013) 06-0000-02

1引言

计算机发明至今,经历了迅速的发展壮大。目前计算机已深入到各行各业,已然成为当今社会不可或缺的。随着各式各样的应用软件的出现,更是使计算机焕发着第二春,但是计算机软件存在的漏洞往往会给使用者带来财产损失。计算机软件属于高科技产品,其研发费用往往是硬件设备的几倍,甚至几十倍,但是计算机软件却是易复制的产品,这就给那些利益追求者们可乘之机,给产品的产权维护造成困难,同时扰乱了国家的税收秩序,造成恶劣的社会影响;出于非人为因素,计算机软件存在一些问题和缺陷是不可避免的,这给软件的安全造成严重的威胁,一些黑客可以发现这些漏洞,并有目的得对用户进行攻击;计算机软件一经问世,必然有人对软件进行破译,窃取软件源代码或者取消加密以获取利益。计算机软件的安全漏洞是其特性,入侵者或者入侵软件针对这种特性,在未经授权的情况下进行非法访问,给系统造成损害。很多人认为安装了防火墙或杀毒软件就安全了,其实对于计算机软件漏洞的破坏并没有多大的用处,甚至带来更多问题。目前情况看来,人们很容易忽视以下五种安全漏洞:JBOSS应用服务器、LIBTIFF开源软件库、NET—SNMP、ZLIB。

Geronimo2.0这个漏洞可以使访问者通过插入恶意软件代码非法获取访问权限;JBOSS服务器3.2.4至4.0.5版本存在目录遍历漏洞;LIBTIFF开源软件库是读写标签图像文件格式的文件;NET或者SNMP中的协议文件导致NET-SNMP存在安全漏洞;ZLIB是数据压缩软件库,由于代码解释不当导致存在漏洞。

2提高软件安全性的对策

首先要提高软件的开发水平,减少软件本身存在的漏洞。开发软件的企业可以通过一些技术的革新来提高软甲的研发水平,将软件开发过程中存在的漏洞以及安全隐患降至最低。另外可以应用一些加密技术,严格制止盗版软件的滋生,通过设置访问关卡等安全措施对软件进行安全维护。加强反跟踪技术,是软件的到双重保护;建立专门的反跟踪技术小组,相关部门根据实际需要严密管理和监督软件从研发到投入使用整个过程。对一些非法的盗取软件源代码情况给予法律制裁;国家应该制定健全的法律法规,对软件开发行业给予规范,对盗版现象进行严厉打击,使其树立法律意识,在法律允许范围内进行软件的开发销售工作。

针对容易被忽视软件安全漏洞问题,需要采用一些检测手段来进行预防,动态检测法和静态检测法是其中主要的两种方法。

静态检测法,通过对应用程序的二进制代码进行分析。对软件进行完全检测的方法是不存在的,即便能检测到很多漏洞,其中可能存在很多误报现象。静态检测方法不需要运行软件,方便于检测。同时,不需要专业人员进行分析处理。静态检测方法主要包括:元编译法、变异语法、词法检测法、程序评注法、约束解算器法和类推断法。元编译法,利用编译器达到检测目,它将程序的安全性当作低级别的编译器进行拓展,然后建立模型进行检测。这类技术可以对所有需要检测的代码安全性进行检测和判断,然后编译相应的拓展。变异语法,是通过对一些不安全的操作进行限制达到目的,由于一般的软件都是通过C或C++编写,所以通过C或C++安全程序改变,达到限制例如指针算术运算、setjmp与longjmp等不安全的操作。词法检测法,对源代码中的不安全的C库和系统进行调用,易产生误报,不存在兼容性问题。程序评注法,通过注释程序的方式,不存在兼容性问题,也不会增加代码长度。通过注释的信息来进行分析查找漏洞。约束解算器法,对目标程序程序的属性进行建模分析,不用对源代码进行注释,会产生大量的误报现象,需要专职工作人员分析,耗费人力。类推断法,利用一种新型的修饰,将特殊的指针或输入增加安全性能,达到检测漏洞的目的,适合较大程序的检测,具有效率高的优点,但是存在兼容问题。

动态检测法,对不同运行环境进行分析总结提高程序保密性能,与静态不同之处在于不修改目标程序的源代码而进行漏洞的检测,达到提高软件安全性能的目的。动态检测法包括:非执行堆与数据法、非执行栈法、内存映射法、安全共享库法、沙箱法和程序解释法。非执行堆与数据法,当软件处于非正常运行时,执行禁止命令,来检测和禁止内存中存在的恶意代码,但是有局限性,不能修改函数指针和参数,并且兼容性较低。非执行栈法,不法入侵者通过往栈中注入恶意代码来破坏程序运行,用非执行栈法可以对栈执行代码进行限制,对攻击者的入侵起到一定作用。内存映射法,映射代码页,使攻击者很难通过NULL尾部字符串抵达低端内存区,与此同时,将代码页映射到随机的地址,能给攻击者制造很大困难,但是无法对新攻击进行检测和阻止。安全共享库法,运用动态链接技术,对不安全的函数进行检测和制止,阻止它的调用。该方法没有兼容性问题,但是对代码段数据和数据段溢出无法提供保护。沙箱法,限制进程资源的访问来达到预防目的,在应用程序中设定资源访问策略,策略安全与否不需该变操作系统的内核以及应用程序。该方法主要应用在系统调用的过程,全面且无兼容性问题。程序解释法,对正在运行的程序额监控进行强制检查,用程序监视器对非原始代码、绕过安全检测、无限制转移和控制等攻击进行检测。可以对动态代码进行检测,但会损失一定的兼容性和其他性能。

3小结

计算机在高速发展的今天,在各个领域都有非常重要的作用。软件研发企业非常重视相应软件的开发工作,软件的功能用途越来越多,随之而来的是安全漏洞问题。由于软件开发水准较低,使计算机容易出现很多安全隐患—计算机软件容易被跟踪而丢失源代码、容易复制假冒伪劣产品增多,这些都影响着计算机软件的发展。可以通过提高开发水平、建立反跟踪小组、依法打击假冒产品等手段来为软件提供安全的应用环境。针对容易被人们忽视的五个安全漏洞,需要加强安全检查来达到预防的目的。检查方法包括静态检测法和动态检测法,能有效的检测并防止攻击者入侵,从而保障软件安全。

参考文献:

[1]王雨晨.系统漏洞原理与常见攻击方法[J].计算机工程与应用,2001.37(3):62-63.

[2]马海涛.计算机软件安全漏洞原理及防范方法[J].科协论坛(下半月),2009(06).

[3]胡宇.浅析计算机软件安全问题及其防护策略[J].科技资讯,2011(32).

[4]郑晶.计算机软件漏洞与防范措施的研究[J].吉林农业科技学院学报,2010(02).

[作者简介]周亚峰(1982-),男,山东滕州人,研究生毕业,硕士学位,主要从事计算机及通信相关工作。

上一篇:三段式就业指导模式下一篇:保险资金运用的瓶颈