科技信息SCIENCE&TECHNOLOGYINFORMATION2011年第29期
1什么是计算机网络安全问题
国际标准化组织将计算机安全定义为:为数据处理系统建立和采
取的技术和管理的安全保护,保护计算机硬件、软件数据不因偶然和
恶意的原因而遭到破坏、更改和泄漏。上述计算机安全的定义包含物
理安全和逻辑安全两方面的内容,其逻辑安全的内容可理解为我们常
说的信息安全,是指对信息的保密性、完整性和可用性的保护,而网络
安全性的含义是信息安全的引申,即网络安全是对网络信息保密性、
完整性和可用性的保护。完整性,即保证非授权操作不能修改数据。有
效性,即保证非授权操作不能破坏信息或计算机数资源。
网络系统安全包括网络安全和信息安全。那么网络安全指基于网
络运作和网络间的互联互通造成的物理线路和连接的安全、网络系统
安全、操作系统安全、应用服务安全、人员管理安全等几个方面。信息
安全指数据的保密性、完整性、真实性、可用性、不可否认性及可控性
等安全。
2目前计算机网络安全问题的提出和现状
计算机网络的开放性和安全性本身就是一种不可调和的矛盾,在
计算机网络开放性与日俱增的今天,计算机网络引发的安全性问题也
日益突出,究其原因,主要源自以下几个方面:
2.1计算机病毒的威胁
随着计算机技术的迅猛发展,计算机病毒技术也在快速发展变化
之中,而且在某种程度上还超前于计算机网络安全技术。
2.2木马程序和黑客攻击
黑客攻击总体来说有两种方式:一种方式是网络攻击,它以各种
手段破坏对方数据的可用性和完整性,造成对方数据丢失和系统瘫
痪。另一种方式是网络侦查,就是在对方毫不知情的情况下,进行截
获、窃取、破译对方重要的机密信息。
2.3内部威胁
内部威胁绝大部分都发生在企业用户中,由于企业用户对网络安
全的认识不足,采取的安全防范措施不够,结果导致了内部网络安全
事故频发,且呈逐年上升之势。
2.4.网络钓鱼
网络购物的兴起,给广大网民带来便利的同时,也给不法分子带
来了可乘之机,网络钓鱼攻击者经常利用伪造的WEB网站或欺骗性
的电子邮件来进行网络诈骗活动,诈骗者通常会将自己伪装成网络银
行、某著名品牌网站或网络交易网站等进行诈骗活动,使受骗者不知
不觉地泄露自己的银行卡号、信用卡密码、身份证号等私人信息。
2.5系统漏洞
几乎所有网络系统都存在着漏洞,这些漏洞有的是系统本身所有
的,如Windows、UNIX等操作系统都有一定数量的漏洞。另外,局域网
内的用户使用盗版软件以及网管的疏忽也容易造成网络系统漏洞。
网络攻击的破坏性强、影响范围大、难以断定,是威胁网络质量和
安全的头号杀手。由于TCP/IP协议的不完善、UDP协议的不可靠以
及计算机程序的错误,造成了网络上的许多漏洞,但这并不是说,面
对这些我们束手无测。借助完善严密的管理制度、科学有效的技术
方法,可以尽可能降低危险,做到防患于未然。一个管理不严,没有
安全措施的网络就等于是为居心叵测的人虚掩着网络的大门,一旦出
现问题网络将全然没有抵御能力。
3对计算机网络安全问题采取的几点防范措施
3.1加大投入,培养网络人才,开发网络先进技术
国家加大对网络人才培养方面以及对网络技术开发方面的投资
是十分有必要的,强大的技术力量不仅是和谐网络环境的保障,同时
也是对不法分子的一种威慑。
3.2强化安全意识,加强内部管理
人们常说网络安全是七分管理三分技术,说明了管理对安全的重
要性。加强管理可以从下几个方面入手:设置密码,所有设备和主机
能设置密码的都要设置,而且要足够长,不易被破解,并定期更换。控
制路由器的访问权限,应设置几种权限的密码,超级管理密码知道的
人越少越好,普通维护人员仅限于使用监测级登陆设备。控制对路由
器的访问权限不仅仅是保护路由器本身,也保护拓扑结构和所有计算
机系统的操作、配置以及权限。设置可信任地址段,对访问的主机IP
设置可信任地址段,防止非法IP登陆系统。
3.3了解网络攻击的途径,才能对症下药
只有了解网络攻击的一般途径,才能从根源上消除不安全因素。
网络遭受攻击可能的原因不外乎以下几种:利用协议,采集信息。不速
之客可能会利用下列公开协议或工具,收集驻留在网络系统中的各个
主机系统的相关信息。
3.4从设备入手,采取层层防范网络安全应是一个立体防御体系
通过层层防范,尽可能将攻击拦截在最外端。交换机上划分
VLAN将用户与系统进行隔离;路由器或三层交换机上划分网段,将
用户与系统隔离;配置防火墙,杜绝DOS攻击。技术上的安全防护措
施主要包括:防火墙技术、身份验证、入侵检测技术、杀毒技术加密技
术、访问控制等内容。
3.5管理上的安全防护措施
首先,网络设备科学合理的管理。对网络设备进行合理的管理,必
定能增加网络的安全性。比如将一些重要的设备尽量进行集中管理,
如主干交换机、各种服务器等;对各种通信线路尽量进行架空、穿线或
者深埋,并做好相应的标记;对终端设备实行落实到人,进行严格管
理,如工作站以及其他转接设备等。
其次,是对网络的安全管理。制定一套安全管理制度,此外还必须
对管理人员进行安全管理意识培训,加强对管理员安全技术和用户安
全意识的培训工作。再者,建立安全实时响应和应急恢复的整体防护。
设备坏了可以换,但是数据一旦丢失或被破坏是很难被修复或恢复
的,从而造成的损失也是无法估计和弥补的。因此,必须建立一套完整
的数据备分和恢复措施。
4结论
网络安全不仅仅是技术问题,同时也是一个安全管理问题。我们
必须综合考虑安全因素,制定合理的目标、技术方案和相关的配套法
规等。世界上不存在绝对安全的网络系统,随着计算机网络技术的进
一步发展,网络安全防护技术也必然随着网络应用的(下转第93页)
浅析计算机网络安全防范措施
杨光李非非杨洋
(天津大学软件学院中国天津300072)
【摘要】网络安全问题和网络犯罪的不断出现使网络使用者对关于网络安全的探讨也越来越重视,本文基于对计算机网络安全方面存在
的问题,通过对信息泄露的途径、网络攻击手段的分析,探讨了计算机网络的安全管理,提出了网络安全防范的措施。
【关键词】计算机;网络安全;防范
【Abstract】Thenetworksecurityproblemandthecybercrimeappearunceasinglycausethenetworkusertoalsomoreandmoretotakeseriously
aboutthenetworksecuritydiscussion,thisarticlebasedonthequestionwhichexiststothecomputernetworksecurityaspect,throughtothe
informationrevelation''sway,thenetworkattackmethod''sanalysis,hasdiscussedcomputernetwork''ssafetycontrol,proposedthenetworksecurity
guardmeasure.
【Keywords】Computer;Networksecurity;Guard
○IT论坛○
70
科技信息2011年第29期SCIENCE&TECHNOLOGYINFORMATION
●
科
●
1格式化串攻击的定义
格式化串读写越界攻击是通过发生格式化串读写越界窥视进程
堆栈布局进而控制程序执行的恶意行为。格式化串攻击主要是利用由
于格式化函数的微妙程序设计错误造成的安全的漏洞,通过传递精心
编制的含有格式化指令的文本字符串,以使目标程序执行任意命令。
格式化字符串漏洞同其他许多安全漏洞一样是由于程序员的懒惰造
成的。如代码:printf("%s",str);为了节约时间和提高效率,并在源码
中少输入6个字节,有时候写成printf(str);此时写虽然程序正确,但可
能造成格式化串攻击
2格式化串读写越界攻击的利用
2.1使进程崩溃
攻击者如果能够构造格式化串,就能利用这个格式化串读写越界
漏洞使进程崩溃。构造类似printf("%s%s%s%s%s%s%s%s%s%s%s%
s")的语句能很容易地产生无效的指针,因为"%s"按堆栈提供的地址
去显示相应的内容,使用尽可能多的"%s"就极有可能遇到无效地址,
从而使进程遇到无效地址使进程崩溃。
2.2任意读
在格式串函数中,"%x"等格式符可以显示对应变量的值,但格式
化函数没有机制去检查是否真的有对应的变量存在,也不管对应的变
量地址是用户数据还是系统数据。利用该格式化串读写越界漏洞,攻
击者如果能够构造格式串,就能实现读内存任意地址的目的。例如构
造printf("%08x%08x%08x%08x\n");可显示从当前进程栈底向栈顶的
部分内容,当输入多个%x时,攻击者甚至能够获取整个进程栈的内
容。栈中存放着程序流、局部函数变量等重要信息,攻击者能利用这些
信息获得正确的攻击代码的偏移值。攻击者如果能将要读的地址放在
合适的栈位置,就能够读任意地址的内容,例如,要显示自
0x08204810开始的内容,可以把\x10\x48\x20\x08作为格式化串的开
始部分,然后通过构造字符串(通过查看进程栈中内容,决定显示地址
和%s间有多少个%x),通过%s显示自0x08204810开始的内容。
2.3任意写
在格式化串中,可以包括"%n"等写内存的格式符,而格式化函数
没有机制保证要写的地址是当前进程的合法地址。利用该格式化串读
写越界漏洞,攻击者如果能够构造格式化串,就能实现写内存任意地
址的目的。例如,格式符"%n"将格式串函数在遇到该格式符前已经打
印的字符的个数写到相应整数指针所指示的地址里,下面的语句将
16写到变量printf("1a2a3a4a5a6a7a8a%n",&x);利用该技巧构造下面
的语句printf("\x10\x48\x20\x08%08x%08x%08x%08x%n");%08x格式
移动格式化串指针,当移动到按低位字节在前的字节顺序,就是
0x08204810。最后的%n格式将0x08204810当着整数指针,因为
\x10\x48\x20\x08是4个字符,4个%08x是32个字符,所以36被写
到0x08204810。通过构造合适的字符串,就可以构造合适的数字。然
而,当数字很大时,要构造的字符串就可能很长,以至于无法实现。改
进的办法是在每次写时保证低位字节是想要写的数值,这样每次要写
的数值不会超过255,然后将指针向前移动一个字节,通过4次的连
续写操作来达到目的。为了精确的定位,还可以使用%u格式符。
2.4高级攻击
利用格式化串读写越界漏洞,攻击者能够使进程崩溃和读写任意
地址。综合利用这些基本技术,还能够实现更复杂的攻击。如覆盖当前
执行函数的返回地址,当这个函数执行完毕返回的时候,就可以按照攻
击者的意愿改变程序的流程了。使用这种技术的时候需要知道以下两
个信息:堆栈中存储函数的返回地址的那个存储单元的地址以及
shellcode的首地址。格式化串读写越界攻击覆盖函数返回地址通常有
两种选择:①覆盖邻近的一个函数(调用该函数的函数)的返回地址,这
是与普通缓冲区溢出攻击相类似的方法。②覆盖格式化函数自身的返
回地址,该方法具有更高的精确度,即使是在条件较为苛刻的情况下也
可以使用。
3动态防御技术
基于进程的格式化串读写越界动态防御技术,基本思想就是在进
程运行时系统执行执行过程中进行格式化串读写越界防御,从运行时
系统各组成部分进行防御,程序内存布局、处理机执行、系统调用的处
理以及输入输出的控制,都是格式化串读写越界动态防御技术所关心
的问题。例如通过监控进程的外界输入,凡是输入内容为格式化参数,
都认为会产生格式化串读写越界;通过在处理机执行期间加强对格式
化函数的写操作指令进行边界检查,动态防御格式化串写越界;在程
序内存布局上,通过开辟另外一段内存来保存起始和终止地址的内容
来判断当前内存写入是否发生格式化串读写越界;通过保存紧邻最后
一个格式参数之后的内容来比较写入是否发生格式化串读写越界;通
过保存紧邻格式化函数输入参数边界之后的数据,当格式化串读写越
界发生时恢复被破坏的数据。
4结论
通过对格式化串攻击的分析,提出了一种动态防御技术,该技术
能够在程序运行过程中动态防御格式化串读写越界攻击。
【参考文献】
[1]叶焰峰.数组越界的故障模型及其检测方法研究[J].微计算机信息,2007,23
卷:145-146.
[2]高传平.数组越界的静态测试分析[J].计算机工程,2006,32卷:70-71.
作者简介:殷超(1984—),菏泽学院计算机与信息工程系,助教,在读硕士
研究生,主要研究方向为软件工程、网络安全。
[责任编辑:常鹏飞]
格式化串读写攻击的利用和动态防御技术
殷超
(菏泽学院计算机与信息工程系山东菏泽274000)
【摘要】首先给出了格式化串读写越界的定义,然后给出了格式化串攻击的利用,最后提出了一种动态防御格式化串攻击的技术。
【关键词】格式化串;攻击;动态防御;高级攻击
(上接第70页)发展而不断发展。
【参考文献】
[1]翁葵阳.关于当前高校计算机网络安全管理的思考[J].湖南医学高等专科学
校学报,2001(4):57.
[2]潘水湘,杨延西,赵跃.过程控制与自动化仪表[M].机械工业出版社,2006.
[3]孙亮.MATLAB语言与控制系统仿真[M].北京工业大学出版社,2004.
[责任编辑:江广霞]
科
●
○IT论坛○
93
|
|