四川应用型自考 四川自考【课程】【书籍】订购入口
您当前位置:四川自考网 > 毕业论文> 网络信息安全> 浏览文章

网络信息安全

发布日期:2018-05-24 14:20:36 编辑整理:四川自考网 【字体:


目录
前言
摘要
第1章 计算机网络的概述
1.1  计算机网络系统的定义,功能,组成与主要用途
第2章 网络信息安全概述
2.1  网络信息安全的定义
2.2  网络信息安全问题的产生与网络信息安全的威胁
第3章 实例
3.1  网络信息应用中字符引发的信息安全问题
参考
结束语
前言
 

随着计算机技术的不断发展,计算机网络已经成为信息时代的重要特征,人们称它为信息高速公路。网络是计算机技术和通信技术的产物,是应社会对信息共享和信息传递的要求发展起来的,各国都在建设自己的信息高速公路。我国近年来计算机网络发展的速度也很快,在国防、电信、银行、广播等方面都有广泛的应用。我相信在不长的时间里,计算机网络一定会得到极大的发展,那时将全面进入信息时代。 

正因为网络应用的如此广泛,又在生活中扮演很重要的角色,所以其安全性是不容忽视的,它是网络能否经历考验的关键,如果安全性不好会给人们带来很多麻烦。网络信息交流现已是生活中必不可少的一个环节,然而信息安全却得不到相应的重视。本文就网络信息的发展,组成,与安全问题的危害做一个简单的探讨

 

第1章
1.1计算机网络系统的定义,功能,组成与主要用途

  计算机网络源于计算机与通信技术的结合,其发展历史按年代划分经历了以下几个时期。

  50-60年代,出现了以批处理为运行特征的主机系统和远程终端之间的数据通信。 

  60-70年代,出现分时系统。主机运行分时操作系统,主机和主机之间、主机和远程终端之间通过前置机通信。美国国防高级计划局开发的ARPA网投入使用,计算机网处于兴起时期。

  70-80年代是计算机网络发展最快的阶段,网络开始商品化和实用化,通信技术和计算机技术互相促进,结合更加紧密。网络技术飞速发展,特别是微型计算机局域网的发展和应用十分广泛。

  进入90年代后,局域网成为计算机网络结构的基本单元。网络间互连的要求越来越强,真正达到资源共享、数据通信和分布处理的目标。

  迅速崛起的Internet是人们向往的"信息高速公路"的一个雏形,从它目前发展的广度和应用的深度来看,其潜力还远远没有发挥出来,随着21世纪的到来,Internet必将在人类的社会、政治和经济生活中扮演着越来越重要的角色。

计算机网络的发展过程是从简单到复杂,从单机到多机,从终端与计算机之间的通信发展到计算机与计算机之间的直接通信的演变过程。其发展经历了具有通信功能的批处理系统、具有通信功能的多机系统和计算机网络系统三个阶段。

  1.具有通信功能的批处理系统

  在具有通信功能的批处理系统中,计算机既要进行数据处理,又要承担终端间的通信,主机负荷加重,实际工作效率下降;分散的终端单独占用一条通信线路,通信线路利用率低,费用高。

  2.具有通信功能的多机系统

  具有通信功能的多机系统的主机前增设一个前端处理机,用来专门负责通信工作,而且在终端比较集中的地方设置集中器。集中器实际也是一台计算机,它把终端发来的信息收集起来,装配成用户的作业信息,然后再用高速线路传给前端处理机。当主机把信息发给用户时,集中器先接收由前端处理机传来的信息,经预处理分发给用户,从而实现了数据处理与数据通信的分工。

  3.计算机网络系统

  在计算机网络系统中,服务器负责处理网络上各主机(或称为工作站)之间通信控制和通信处理的任务,网络上各主机负责数据和用户作业的处理,是计算机网络的资源拥有者。在网络系统中,各主机之间没有主次关系,它们各自相互独立,但通过通信控制设备和通信介质实现系统中各计算机之间的数据和系统软、硬件资源的共享。

随着网络技术的不断发展和完善,网络结构、网络系统日趋成熟,计算机网络已逐步渗透到当今信息社会的各个领域,其应用前景是十分广阔的。

  计算机网络是把一定地理范围内的计算机通过通信线路互连起来,在相应通信协议和网络系统软件的支持下,彼此互相通信并共享资源的系统。因此,可以把计算机网络定义为:凡将地理位置不同,并具有独立功能的多台计算机系统通过通信设备和线路连接起来,以功能完善的网络软件实现在网络中资源共享的系统,称之为计算机网络系统。

网络系统是由网络操作系统和用以组成计算机网络的多台计算机,以及各种通信设备构成的。在计算机网络系统中,每台计算机是独立的,任何一台计算机都不能干预其它计算机的工作,任何两台计算机之间没有主从关系。计算机网络系统由网络硬件和网络软件两部分组成。在网络系统中,硬件对网络的性能起着决定的作用,是网络运行的实体,而网络软件则是支持网络运行、提高效益和开发网络资源的工具。


  1.网络硬件

  网络硬件是计算机网络系统的物质基础。构成一个计算机网络系统,首先要将计算机及其附属硬件设备与网络中的其它计算机系统连接起来,实现物理连接。

  常见的网络硬件有:计算机、网络接口卡、通信介质以及各种网络互连设备等。网络中的计算机又分为服务器和网络工作站两类。

  2.网络软件

  网络软件是实现网络功能所不可缺少的软环境。网络软件通常包括网络操作系统(Network Operating System)和网络协议软件。

  网络操作系统

  网络操作系统是运行在网络硬件基础之上的,为网络用户提供共享资源管理服务、基本通信服务、网络系统安全服务及其他网络服务的软件系统。网络操作系统是网络的核心,其他应用软件系统需要网络操作系统的支持才能运行。

  在网络系统中,每个用户都可享用系统中的各种资源,所以,网络操作系统必须对用户进行控制,否则,就会造成系统混乱,造成信息数据的破坏和丢失。为了协调系统资源,网络操作系统需要通过软件工具对网络资源进行全面的管理,进行合理的调度和分配。

  网络协议

  连入网络的计算机依靠网络协议实现互相通信,而网络协议是靠具体的网络协议软件的运行支持才能工作。凡是连入计算机网络的服务器和工作站上都运行着相应的网络协议软件,比如最常用的互联网协议TCP/IP,网间互连协议IPX/netbois,等等


  随着网络技术的发展,其应用领域越来越广泛。通过网络系统,人们可以坐在家里预订去世界各地的飞机票、火车票、船票,预订客房等。通过远程通信可了解全世界各地证券、股市行情,在任何地方的银行存取货币等。通过网络信息系统对企业生产、销售、财务、储运、固定资产等各方面进行管理,还可以对企业进行辅助计划、辅助决策,对企业进行宏观控制。另外,计算机网络系统在信息业、办公自动化、军事、航天航空、教育、气象、图书馆管理等方面都有广泛的应用。

  

计算机网络的应用领域十分广泛,主要有以下几种用途。


  1.共享资源

  建立计算机网络的主要目的在于实现"资源共享",所以其功能主要体现在通过资源共享而实现。

  利用计算机网络可以共享主机设备,如,中型机、小型机、工作站等;也可以共享较高级和昂贵的外部设备,如:激光打印机、绘图仪、数字化仪、扫描仪等。使不拥有大型计算机的用户也可以通过网络使用大型机资源,分享到拥有大型机的优势,避免系统建设中的重复劳动和投资。

  计算机网络系统可将分散在各地的计算机中的数据信息收集起来,进行综合分析处理。并把分析结果反馈给相关的各个计算机中,使数据信息得到充分的共享。更重要的是,利用计算机网络共享软件、数据等信息资源,以最大限度地降低成本,提高效率。

  通过计算机网络系统可以缓解用户资源缺乏的矛盾,并可对各资源的忙与闲进行合理调节。


  2.数据通信

  利用计算机网络可以实现计算机用户相互间的通信。通过网络上的文件服务器交换信息和报文、收发电子邮件、相互协同工作等。这些对办公室自动化、提高生产率起着十分重要的作用。随着Internet在世界各地的风行,传统的电话、电报、邮递等通信方式受到很大冲击,电子邮件、BBS已为世人广泛接受,IP电话、视频会议等各种通信方式. 

第2章网络安全概述
2.1网络安全的定义

网络安全的具体含义会随着"角度"的变化而变化。比如:从用户(个人、企业等)的角度来说,他们希望涉及个人隐私或商业利益的信息在网络上传输时受到机密性、完整性和真实性的保护,避免其他人或对手利用窃听、冒充、篡改、抵赖等手段侵犯用户的利益和隐,同时也避免其它用户的非授权访问和破坏。


 从网络运行和管理者角度说,他们希望对本地网络信息的访问、读写等操作受到保护和控制,避免出现"陷门"、病毒、非法存取、拒绝服务和网络资源非法占用和非法控制等威胁,制止和防御网络黑客的攻击。

  对安全保密部门来说,他们希望对非法的、有害的或涉及国家机密的信息进行过滤和防堵,避免机要信息泄露,避免对社会产生危害,对国家造成巨大损失。

  从社会教育和意识形态角度来讲,网络上不健康的内容,会对社会的稳定和人类的发展造成阻碍,必须对其进行控制。

从本质上来讲,网络安全就是网络上的信息安全,是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全所要研究的领域。网络安全涉及的内容既有技术方面的问题,也有管理方面的问题,两方面相互补充,缺一不可。技术方面主要侧重于防范外部非法用户的攻击,管理方面则侧重于内部人为因素的管理。如何更有效地保护重要的信息数据、提高计算机网络系统的安全性已经成为所有计算机网络应用必须考虑和必须解决的一个重要问题。


不同环境和应用中的网络安全

  运行系统安全:即保证信息处理和传输系统的安全。它侧重于保证系统正常运行,避免因为系统的崩溃和损坏而对系统存贮、处理和传输的信息造成破坏和损失,避免由于电磁泄漏,产生信息泄露,干扰他人,受他人干扰。

  网络上系统信息的安全:包括用户口令鉴别,用户存取权限控制,数据存取权限、方式控制,安全审计,安全问题跟踪,计算机病毒防治,数据加密。

  网络上信息传播安全:即信息传播后果的安全。包括信息过滤等。它侧重于防止和控制非法、有害的信息进行传播后的后果。避免公用网络上大量自由传输的信息失控。
  网络上信息内容的安全:它侧重于保护信息的保密性、真实性和完整性。避免攻击者利用系统的安全漏洞进行窃听、冒充、诈骗等有损于合法用户的行为。本质上是保护用户的利益和隐私
2.2  网络信息安全问题的产生与网络信息安全的威胁

  可以从不同角度对网络安全作出不同的解释。一般意义上,网络安全是指信息安全和控制安全两部分。国际标准化组织把信息安全定义为"信息的完整性、可用性、保密性和可靠性";控制安全则指身份认证、不可否认性、授权和访问控制。

  互联网与生俱有的开放性、交互性和分散性特征使人类所憧憬的信息共享、开放、灵活和快速等需求得到满足。网络环境为信息共享、信息交流、信息服务创造了理想空间,网络技术的迅速发展和广泛应用,为人类社会的进步提供了巨大推动力。然而,正是由于互联网的上述特性,产生了许多安全问题:

  a)信息泄漏、信息污染、信息不易受控。例如,资源未授权侵用、未授权信息流出现、系统拒绝信息流和系统否认等,这些都是信息安全的技术难点。

  b)在网络环境中,一些组织或个人出于某种特殊目的,进行信息泄密、信息破坏、信息侵权和意识形态的信息渗透,甚至通过网络进行政治颠覆等活动,使国家利益、社会公共利益和各类主体的合法权益受到威胁。

  C)网络运用的趋势是全社会广泛参与,随之而来的是控制权分散的管理问题。由于人们利益、目标、价值的分歧,使信息资源的保护和管理出现脱节和真空,从而使信息安全问题变得广泛而复杂。

  d)随着社会重要基础设施的高度信息化,社会的"命脉"和核心控制系统有可能面临恶意攻击而导致损坏和瘫痪,包括国防通信设施、动力控制网、金融系统和政府网站等。


随着人类社会生活对Internet需求的日益增长,网络安全逐渐成为Internet及各项网络服务和应用进一步发展的关键问题,特别是1993年以后Internet开始商用化,通过Internet进行的各种电子商务业务日益增多,加之Internet/Intranet技术日趋成熟,很多组织和企业都建立了自己的内部网络并将之与Internet联通。上述上电子商务应用和企业网络中的商业秘密均成为攻击者的目标。据统计,目前网络攻击手段有数千种之多,使网络安全问题变得极其严峻,据美国商业杂志《信息周刊》公布的一项调查报告称,黑客攻击和病毒等安全问题在2000年造成了上万亿美元的经济损失,在全球范围内每数秒钟就发生一起网络攻击事件。

  随着Internet的发展,网络安全技术也在与网络攻击的对抗中不断发展。从总体上看,经历了从静态到动态、从被动防范到主动防范的发展过程

  当人们访问他们不应访问的信息时,或他们企图对网络或其资源作希望做的事时,我们成这样的企图为攻击。攻击是一种你不想遇到的行为或一种企图的行为。

  

第3章 实例
3.1  网络信息应用中字符引发的信息安全问题


说到字符,很多用户也许会不以为然:小小的字符,不过是个非常基础的人机交互表达形式,它能产生什么威胁?但是,威胁偏偏就来自最原始的方面,并且这种威胁往往是最危险的,也是最难以防范的。

正如世界上有各种表达形式和书写格式不同的语言一样,在计算机的世界里同样存在类似的问题:在计算机发展初期,不同的计算机系统对字符的处理方式不同,这导致了各个系统之间不能互相交流。为了解决这个问题,人们制订了多种标准以便不同系统之间也能正确进行字符交互,这就是字符编码的由来。

由于字符可以通过多种途径进行表达,所以它们的编码也多种多样,常见的英文字符编码有ASCII、ANSI、Unicode、UTF、ISO等,对于非英文字符,常见的字符编码有GBK、BIG5、JIS等。可能有的读者已经开始不耐烦了:说了半天"编码",到底什么才是编码?!

这里,我们用一个小例子帮助大家理解什么是"编码"。我们可以这样理解:一杯水无论放进什么形状的杯子里都还是水,而不会变成老虎之类的,这个道理很简单,对不对?那么同样的法则也适用于字符。对一个字符来说,无论系统内部怎么处理,只要最终显示出来的是原来的字符,那就没错。例如"小"字,Unicode编码把它作为"%D0%A1"存放,而ASCII编码里,它可以用"-12127"来表示,但是无论它怎么变,只要还能还原回"小"字,系统的处理工作就不会出问题

 

多种编码的产生本来是为了解决字符信息的交互问题,然而正是这些多种多样的编码导致了让人意想不到的后果。字符,这个不起眼的小东西在编码的世界里举起了"大刀",这使得上面提到的"水变成老虎"成为可能。


字符威胁实录


在接触计算机不久的时候你听说了一个词"ASCII";到了Windows 2000开始流行的时候,你知道"Unicode"帮你解决了不少乱码问题;当你成为计算机高手以后,你常常会跟"SQL"玩个不亦乐乎,可是你知道吗?在这些你所熟知的字符或编码背后,隐藏着什么样的危险吗?你知道这样的危险就在你身边吗?


控制符:想说爱你不容易


ASCII全称American Standard Code for Information Interchange(美国信息互换标准代码),是最基础的字符表达方式,它能完整表示26个英文字母、10个数字以及通用的格式符号等。ASCII又分为控制字符和可显示字符(也称为"Printable",即可打印字符),通常情况下,控制字符只能由特殊按键和系统自己产生,而且这些字符中的大部分是我们看不见的。但是你千万不要以为看不见即不存在,恰恰相反,它们时刻存在!例如,在你保存一个文本的时候,系统就会自动在文件结尾添加一个你看不见的结束符号,这个符号的作用就是用来告诉处理程序,读取到这里的时候:停!专业说法可以称之为文件结束符。

不幸的是,上面提到,ASCII控制编码并非只有系统自身可以产生,用户也可以通过特殊的输入方式成功地输出一个键盘上打不出来的特殊字符,这就可能会造成极其严重的后果。老一辈的管理员也许还记得国内那次恐怖攻击事件:很多论坛的帖子在一夜之间全部丢失!可是论坛却没有被入侵过的痕迹,服务器也完好无损,难道见鬼了?!后来,有人仔细查看了论坛日志文件,原来是入侵者用一个特殊符号发了一个帖子,这个符号让处理程序读取文件时误认为文件到这里就结束了,而控制符号是不会显示出来的,所以论坛程序只能认为这"惟一"的帖子格式不对,于是论坛停止了文件读取,在我们看来,即很多论坛帖子被删除了。但是事情仅仅是这样就结束了吗?入侵者只是发了一个控制符号导致了论坛读取错误,然而数据还是在的,只要去掉这个字符就可以恢复了。有人会笑了:小儿科的把戏!不过,别急着下结论,如果那么轻易就结束游戏,管理员就不会哭了:由于这个控制符号的存在,一旦有人写入新的数据,那么在这个帖子后面的所有数据将被清空!因为系统认为文件到这里已经结束了,那么后面的数据将会怎么样?结局只有一个:被全部清空!这时候,破坏论坛的就不再是入侵者了,而是那些热心过头急着发帖问"啊!论坛被黑了!"的成员们了,这个游戏好玩吗?一个字符,歼灭论坛


Unicode:管理员的噩梦


许多人对Unicode的认识是从著名的"IIS Unicode"二次编码漏洞开始的。但是具体什么是Unicode,这就不是所有人都知道的了。Unicode常常被翻译为"万国码"或者"唯独码",后者也许是来自Unicode发明者的宗旨:"推进多文种的统一编码"。Unicode同现在流行的代码页最显著不同点在于:Unicode是两字节的全编码,对于ASCII字符它也使用两字节表示。普通代码页是通过高字节的取值范围来确定字符是ASCII码,还是汉字的高字节。如果发生数据损坏,当整篇文字某处内容被破坏,则会引起其后汉字的混乱。Unicode则一律使用两个字节表示一个字符,最明显的好处是它简化了汉字的处理过程。

Unicode编码标准的出现让各种系统之间的交流变得简单,然而正如爱情是把双刃剑那样,Unicode也会伤人的。

问题出在Unicode对字符的解码上,它的算法让一个字符可以通过多种编码格式产生,于是入侵者可以采用"旁门左道"产生一个非标准编码的路径符号。例如"%c1%1c",通过Unicode解码公式解析出来的字串为:%c1%1c->(0xc1-0xc0)*0x40+0x1c=0x5c="/"。我们知道,IIS在打开文件时,如果该文件名包含Unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将可能导致IIS错误地打开或者执行Web根目录以外的文件。在这里,IIS并不知道这个是路径符,就直接发出了处理请求。于是,入侵者攻击者利用这个漏洞绕过了IIS的路径检查,进入了系统(图3),这就是著名的"IIS Unicode"二次编码漏洞攻击原理。

论坛:天生和字符有仇


如果有人专门去阅读一些论坛的文件内容,会发现它们里面都会有一些代码专门用来处理字符,这部分代码的工作叫做"字符过滤"。为什么呢?因为有太多字符都能对论坛造成伤害,这些字符不一定需要特殊编码,甚至我们正常敲出的文字里都有可能包含被论坛作者定义为"危险"的字符。究其原因,就是因为论坛程序的特殊性,因为它们工作在服务器和外界的接口处,而且自身也是由纯字符组成的,但是一些看似正常的字符会"不小心"改变了它们的逻辑,这是连论坛作者自己可能都没想到的。例如,一些论坛的功能设置部分会涉及文件读写,因此有必要加上权限盘查。但是如果作者编写的权限检查代码忽略了某些特殊字符的输入,结果就会让入侵者成功地往系统中写入一个文件。LB5000论坛就曾经出现过一个重大漏洞:它的界面设置模块对用户权限的盘查不严谨,其中一个字符输入没有经过身份验证,而这个设置会产生一个可以让论坛程序执行的文件用于临时保存界面配置数据,于是入侵者通过以下格式写入一个简单的内容:setskin.cgi?membercode= ad&action=process&printme=use%20CGI%20qw(:standard)%3bopen(HBU,param('a'))%3bprint%20HBU%20param('b')%3b,这样就能完成对论坛的写操作。让我们简单地看看这段代码。这个代码产生了一个包含以下有用内容的leoskin.cgi文件:

use CGI qw(:standard);

open(HBU,param('a'));

print HBU param('b');


懂Perl语法的用户一眼就能看出来,这是一段简单的写入文件代码,入侵者只要用"leoskin.cgi?a=>[文件名]&b=[内容]"格式的语句就可以向论坛写入文件。


到这里也许有人还不明白:写个文件有什么了不起?别忘了,LB5000论坛是基于文件的,它的所有东西都是文件,包括管理员账号。既然我们能写文件,那么只要想办法写入一个管理员账号文件,这下了不起没有?利用这一点,入侵者还可以写入一个执行命令的文件——WebShell,进而控制整个服务器!

近期DVBBS论坛最热的一个漏洞就是UPFILE漏洞,这个漏洞为什么得以成功呢?是简单的字符起的作用!有谁不能用十六进制处理工具把里面那个关键的空格改为结束符而成功入侵这类论坛呢?!这又是一个"小"字符摧跨"大"堤坝的典型案例。


SQL:你的"针管"在哪里


说到字符就不能不提一下大名鼎鼎的SQL了,其实很多论坛过滤字符最大的原因也是因为SQL,这个不能称之为漏洞的"结构化查询语言"让"AND"、"OR"等最为简单的字符成了危险的代号。

由于ASP的特性,入侵者在一个连接数据库操作的URL里加入" AND SQL语句"会让IIS执行这个URL里的SQL语句,于是服务器的噩梦又来了。通过SQL能做什么呢?最简单的是猜测密码(比如免费下载电影或者享用付费用户才拥有的服务),如果服务器的权限设置不好,入侵者能直接用SQL执行任何系统命令!包括清空整个数据库的全部资料


奇怪的编码:格式化字符


如今,"溢出攻击"已经成为攻击的主要方式之一,广大用户或多或少都会听说过"Shell"这个名词,有兴趣的人可能还看过一些溢出程序的代码。很多人都会产生出这样的疑问:每个溢出程序代码里都会发现的那一串甚至几串用路径符和类似十六进制代码表示的字符串,那是什么?

要说明这个问题,必须先知道C语言对字符的处理方法。在C语言中,写一行代码向屏幕打印字符并不是简单地向屏幕输出字符串,能在屏幕显示的字符实际上是经过函数转换的"打印格式"字符,C语言提供了一种格式化字符,它允许程序员控制显示文本的样式,我们可以通过代替特殊的格式字符来显示值或数据。例如"printf("The value is %s",sVal)",其中"%s"就是格式化字符,它自身不能用做显示,而是告诉系统,按照"字符串"的格式把sVal的值放进整个字符串,这就像一个蛋糕模子,它固定了一种样式,你做出的蛋糕就只能是这种样式了。

然而问题又来了,"格式化字符"的存在,让溢出攻击成了现实。攻击者用十六进制编码向内存写入攻击代码,并按照一定格式编排格式化字符,让系统执行到这些字符的时候不再按照原本的程序思路执行,而是扭转到攻击代码所在的内存位置,这就导致了"溢出"(Overflow)。程序就有可能执行到攻击者写入的命令,这像什么呢?就像一块过分膨胀的蛋糕,虽然你的模子是没有问题的,但是蛋糕烘烤的时候,它涨出了原有的空间,这样出来的蛋糕自然不会是你喜欢的样子。同样的情形发生在计算机内存里,就是一组指令涨出了它的"模子",并且有一部分流入烤箱底部被烤糊了。例如,类似于"\x55\x8B\xEC\ x33\xFF\x57\xC6......"的攻击代码,它是一组用十六进制格式符隔开的指令,当它写入内存后,实际上是产生了一组可以让系统执行的"正常"代码,像是运行CMD.EXE,但是这组指令并没有指向它们的执行代码,所以通常情况下,它们即使被写入内存也只能是废物一堆(烤糊的蛋糕,你能吃吗?),如果要让它们起作用,怎么办呢?这时候就需要格式化字符的帮助了,通过执行一段特殊的包含格式化字符的代码,程序指向了包含攻击指令的内存位置,于是攻击指令生效了


防御字符威胁


由于字符问题由系统内部产生,我们无法把它消灭,只能通过"后天"的修补来解决问题。最安全的方法就是在我们的程序里加入防护代码,并给系统打上补丁,这样才能尽量避免来自字符的攻击。

很多公司都有因为电脑被入侵而遭受严重经济损失的惨痛经历,不少普通用户也未能避免电脑被破坏的厄运,造成如此大损失的并不一定都是技术高超的入侵者所为,小小的字符串带给我们的损失已经太多。因此,如果你是数据库程序开发人员、如果你是系统级应用程序开发人员、如果你是高级计算机用户、如果你是论坛管理人员......请密切注意有关字符漏洞以及其他各类漏洞的最新消息及其补丁,及时在你的程序中写入防范最新字符漏洞攻击的安全检查代码并为你的系统安装最新的补丁会让你远离字符带来的危险。

 


 参考
1黄叔武 刘建新  计算机网络教程  清华大学出版社  2004年11月
2 戴红 王海泉 黄坚  计算机网络安全  电子工业出版社  2004年9月

 

结束语

经过一段时间的收集资料,我的终于完成,看着自己的成果,有说不出的感触。

通过这段时间的努力,对我这3年半来的学习有了系统的总结,对我自己感兴趣的知识也有了一些进步。

网络这个时代的主流已经发展的越来越快了,应用也越来越广泛,组建的再好的网站都需要有很要的安全性才行,才可靠。所以安全是成功设计好组网方式后的最重要的因素,是保障整个网络稳定的安全的关键。

 

本文标签:四川自考 毕业论文 网络信息安全

转载请注明:文章转载自(http://www.sczk.sc.cn

本文地址:http://www.sczk.sc.cn/lw/15233.html


《四川自考网》免责声明:

(一)由于考试政策等各方面情况的不断调整与变化,本网站所提供的考试信息仅供参考,请以省考试院及院校官方发布公布的正式信息为准。

(二)本站文章内容信息来源出处标注为其他平台的稿件均为转载稿,免费转载出于非商业性学习目的,版权归原作者所有。如您对内容、版权等问题存在异议请与本站联系,我们会及时进行处理解决。联系邮箱:812379481@qq.com

相关《网络信息安全》的文章
nav

网络信息安全

编辑:四川自考网 日期:2018-05-24 阅读:
课程购买

《自考课程》名师讲解,轻松易懂,助您轻松上岸!低至39.9元/科!



目录
前言
摘要
第1章 计算机网络的概述
1.1  计算机网络系统的定义,功能,组成与主要用途
第2章 网络信息安全概述
2.1  网络信息安全的定义
2.2  网络信息安全问题的产生与网络信息安全的威胁
第3章 实例
3.1  网络信息应用中字符引发的信息安全问题
参考
结束语
前言
 

随着计算机技术的不断发展,计算机网络已经成为信息时代的重要特征,人们称它为信息高速公路。网络是计算机技术和通信技术的产物,是应社会对信息共享和信息传递的要求发展起来的,各国都在建设自己的信息高速公路。我国近年来计算机网络发展的速度也很快,在国防、电信、银行、广播等方面都有广泛的应用。我相信在不长的时间里,计算机网络一定会得到极大的发展,那时将全面进入信息时代。 

正因为网络应用的如此广泛,又在生活中扮演很重要的角色,所以其安全性是不容忽视的,它是网络能否经历考验的关键,如果安全性不好会给人们带来很多麻烦。网络信息交流现已是生活中必不可少的一个环节,然而信息安全却得不到相应的重视。本文就网络信息的发展,组成,与安全问题的危害做一个简单的探讨

 

第1章
1.1计算机网络系统的定义,功能,组成与主要用途

  计算机网络源于计算机与通信技术的结合,其发展历史按年代划分经历了以下几个时期。

  50-60年代,出现了以批处理为运行特征的主机系统和远程终端之间的数据通信。 

  60-70年代,出现分时系统。主机运行分时操作系统,主机和主机之间、主机和远程终端之间通过前置机通信。美国国防高级计划局开发的ARPA网投入使用,计算机网处于兴起时期。

  70-80年代是计算机网络发展最快的阶段,网络开始商品化和实用化,通信技术和计算机技术互相促进,结合更加紧密。网络技术飞速发展,特别是微型计算机局域网的发展和应用十分广泛。

  进入90年代后,局域网成为计算机网络结构的基本单元。网络间互连的要求越来越强,真正达到资源共享、数据通信和分布处理的目标。

  迅速崛起的Internet是人们向往的"信息高速公路"的一个雏形,从它目前发展的广度和应用的深度来看,其潜力还远远没有发挥出来,随着21世纪的到来,Internet必将在人类的社会、政治和经济生活中扮演着越来越重要的角色。

计算机网络的发展过程是从简单到复杂,从单机到多机,从终端与计算机之间的通信发展到计算机与计算机之间的直接通信的演变过程。其发展经历了具有通信功能的批处理系统、具有通信功能的多机系统和计算机网络系统三个阶段。

  1.具有通信功能的批处理系统

  在具有通信功能的批处理系统中,计算机既要进行数据处理,又要承担终端间的通信,主机负荷加重,实际工作效率下降;分散的终端单独占用一条通信线路,通信线路利用率低,费用高。

  2.具有通信功能的多机系统

  具有通信功能的多机系统的主机前增设一个前端处理机,用来专门负责通信工作,而且在终端比较集中的地方设置集中器。集中器实际也是一台计算机,它把终端发来的信息收集起来,装配成用户的作业信息,然后再用高速线路传给前端处理机。当主机把信息发给用户时,集中器先接收由前端处理机传来的信息,经预处理分发给用户,从而实现了数据处理与数据通信的分工。

  3.计算机网络系统

  在计算机网络系统中,服务器负责处理网络上各主机(或称为工作站)之间通信控制和通信处理的任务,网络上各主机负责数据和用户作业的处理,是计算机网络的资源拥有者。在网络系统中,各主机之间没有主次关系,它们各自相互独立,但通过通信控制设备和通信介质实现系统中各计算机之间的数据和系统软、硬件资源的共享。

随着网络技术的不断发展和完善,网络结构、网络系统日趋成熟,计算机网络已逐步渗透到当今信息社会的各个领域,其应用前景是十分广阔的。

  计算机网络是把一定地理范围内的计算机通过通信线路互连起来,在相应通信协议和网络系统软件的支持下,彼此互相通信并共享资源的系统。因此,可以把计算机网络定义为:凡将地理位置不同,并具有独立功能的多台计算机系统通过通信设备和线路连接起来,以功能完善的网络软件实现在网络中资源共享的系统,称之为计算机网络系统。

网络系统是由网络操作系统和用以组成计算机网络的多台计算机,以及各种通信设备构成的。在计算机网络系统中,每台计算机是独立的,任何一台计算机都不能干预其它计算机的工作,任何两台计算机之间没有主从关系。计算机网络系统由网络硬件和网络软件两部分组成。在网络系统中,硬件对网络的性能起着决定的作用,是网络运行的实体,而网络软件则是支持网络运行、提高效益和开发网络资源的工具。


  1.网络硬件

  网络硬件是计算机网络系统的物质基础。构成一个计算机网络系统,首先要将计算机及其附属硬件设备与网络中的其它计算机系统连接起来,实现物理连接。

  常见的网络硬件有:计算机、网络接口卡、通信介质以及各种网络互连设备等。网络中的计算机又分为服务器和网络工作站两类。

  2.网络软件

  网络软件是实现网络功能所不可缺少的软环境。网络软件通常包括网络操作系统(Network Operating System)和网络协议软件。

  网络操作系统

  网络操作系统是运行在网络硬件基础之上的,为网络用户提供共享资源管理服务、基本通信服务、网络系统安全服务及其他网络服务的软件系统。网络操作系统是网络的核心,其他应用软件系统需要网络操作系统的支持才能运行。

  在网络系统中,每个用户都可享用系统中的各种资源,所以,网络操作系统必须对用户进行控制,否则,就会造成系统混乱,造成信息数据的破坏和丢失。为了协调系统资源,网络操作系统需要通过软件工具对网络资源进行全面的管理,进行合理的调度和分配。

  网络协议

  连入网络的计算机依靠网络协议实现互相通信,而网络协议是靠具体的网络协议软件的运行支持才能工作。凡是连入计算机网络的服务器和工作站上都运行着相应的网络协议软件,比如最常用的互联网协议TCP/IP,网间互连协议IPX/netbois,等等


  随着网络技术的发展,其应用领域越来越广泛。通过网络系统,人们可以坐在家里预订去世界各地的飞机票、火车票、船票,预订客房等。通过远程通信可了解全世界各地证券、股市行情,在任何地方的银行存取货币等。通过网络信息系统对企业生产、销售、财务、储运、固定资产等各方面进行管理,还可以对企业进行辅助计划、辅助决策,对企业进行宏观控制。另外,计算机网络系统在信息业、办公自动化、军事、航天航空、教育、气象、图书馆管理等方面都有广泛的应用。

  

计算机网络的应用领域十分广泛,主要有以下几种用途。


  1.共享资源

  建立计算机网络的主要目的在于实现"资源共享",所以其功能主要体现在通过资源共享而实现。

  利用计算机网络可以共享主机设备,如,中型机、小型机、工作站等;也可以共享较高级和昂贵的外部设备,如:激光打印机、绘图仪、数字化仪、扫描仪等。使不拥有大型计算机的用户也可以通过网络使用大型机资源,分享到拥有大型机的优势,避免系统建设中的重复劳动和投资。

  计算机网络系统可将分散在各地的计算机中的数据信息收集起来,进行综合分析处理。并把分析结果反馈给相关的各个计算机中,使数据信息得到充分的共享。更重要的是,利用计算机网络共享软件、数据等信息资源,以最大限度地降低成本,提高效率。

  通过计算机网络系统可以缓解用户资源缺乏的矛盾,并可对各资源的忙与闲进行合理调节。


  2.数据通信

  利用计算机网络可以实现计算机用户相互间的通信。通过网络上的文件服务器交换信息和报文、收发电子邮件、相互协同工作等。这些对办公室自动化、提高生产率起着十分重要的作用。随着Internet在世界各地的风行,传统的电话、电报、邮递等通信方式受到很大冲击,电子邮件、BBS已为世人广泛接受,IP电话、视频会议等各种通信方式. 

第2章网络安全概述
2.1网络安全的定义

网络安全的具体含义会随着"角度"的变化而变化。比如:从用户(个人、企业等)的角度来说,他们希望涉及个人隐私或商业利益的信息在网络上传输时受到机密性、完整性和真实性的保护,避免其他人或对手利用窃听、冒充、篡改、抵赖等手段侵犯用户的利益和隐,同时也避免其它用户的非授权访问和破坏。


 从网络运行和管理者角度说,他们希望对本地网络信息的访问、读写等操作受到保护和控制,避免出现"陷门"、病毒、非法存取、拒绝服务和网络资源非法占用和非法控制等威胁,制止和防御网络黑客的攻击。

  对安全保密部门来说,他们希望对非法的、有害的或涉及国家机密的信息进行过滤和防堵,避免机要信息泄露,避免对社会产生危害,对国家造成巨大损失。

  从社会教育和意识形态角度来讲,网络上不健康的内容,会对社会的稳定和人类的发展造成阻碍,必须对其进行控制。

从本质上来讲,网络安全就是网络上的信息安全,是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全所要研究的领域。网络安全涉及的内容既有技术方面的问题,也有管理方面的问题,两方面相互补充,缺一不可。技术方面主要侧重于防范外部非法用户的攻击,管理方面则侧重于内部人为因素的管理。如何更有效地保护重要的信息数据、提高计算机网络系统的安全性已经成为所有计算机网络应用必须考虑和必须解决的一个重要问题。


不同环境和应用中的网络安全

  运行系统安全:即保证信息处理和传输系统的安全。它侧重于保证系统正常运行,避免因为系统的崩溃和损坏而对系统存贮、处理和传输的信息造成破坏和损失,避免由于电磁泄漏,产生信息泄露,干扰他人,受他人干扰。

  网络上系统信息的安全:包括用户口令鉴别,用户存取权限控制,数据存取权限、方式控制,安全审计,安全问题跟踪,计算机病毒防治,数据加密。

  网络上信息传播安全:即信息传播后果的安全。包括信息过滤等。它侧重于防止和控制非法、有害的信息进行传播后的后果。避免公用网络上大量自由传输的信息失控。
  网络上信息内容的安全:它侧重于保护信息的保密性、真实性和完整性。避免攻击者利用系统的安全漏洞进行窃听、冒充、诈骗等有损于合法用户的行为。本质上是保护用户的利益和隐私
2.2  网络信息安全问题的产生与网络信息安全的威胁

  可以从不同角度对网络安全作出不同的解释。一般意义上,网络安全是指信息安全和控制安全两部分。国际标准化组织把信息安全定义为"信息的完整性、可用性、保密性和可靠性";控制安全则指身份认证、不可否认性、授权和访问控制。

  互联网与生俱有的开放性、交互性和分散性特征使人类所憧憬的信息共享、开放、灵活和快速等需求得到满足。网络环境为信息共享、信息交流、信息服务创造了理想空间,网络技术的迅速发展和广泛应用,为人类社会的进步提供了巨大推动力。然而,正是由于互联网的上述特性,产生了许多安全问题:

  a)信息泄漏、信息污染、信息不易受控。例如,资源未授权侵用、未授权信息流出现、系统拒绝信息流和系统否认等,这些都是信息安全的技术难点。

  b)在网络环境中,一些组织或个人出于某种特殊目的,进行信息泄密、信息破坏、信息侵权和意识形态的信息渗透,甚至通过网络进行政治颠覆等活动,使国家利益、社会公共利益和各类主体的合法权益受到威胁。

  C)网络运用的趋势是全社会广泛参与,随之而来的是控制权分散的管理问题。由于人们利益、目标、价值的分歧,使信息资源的保护和管理出现脱节和真空,从而使信息安全问题变得广泛而复杂。

  d)随着社会重要基础设施的高度信息化,社会的"命脉"和核心控制系统有可能面临恶意攻击而导致损坏和瘫痪,包括国防通信设施、动力控制网、金融系统和政府网站等。


随着人类社会生活对Internet需求的日益增长,网络安全逐渐成为Internet及各项网络服务和应用进一步发展的关键问题,特别是1993年以后Internet开始商用化,通过Internet进行的各种电子商务业务日益增多,加之Internet/Intranet技术日趋成熟,很多组织和企业都建立了自己的内部网络并将之与Internet联通。上述上电子商务应用和企业网络中的商业秘密均成为攻击者的目标。据统计,目前网络攻击手段有数千种之多,使网络安全问题变得极其严峻,据美国商业杂志《信息周刊》公布的一项调查报告称,黑客攻击和病毒等安全问题在2000年造成了上万亿美元的经济损失,在全球范围内每数秒钟就发生一起网络攻击事件。

  随着Internet的发展,网络安全技术也在与网络攻击的对抗中不断发展。从总体上看,经历了从静态到动态、从被动防范到主动防范的发展过程

  当人们访问他们不应访问的信息时,或他们企图对网络或其资源作希望做的事时,我们成这样的企图为攻击。攻击是一种你不想遇到的行为或一种企图的行为。

  

第3章 实例
3.1  网络信息应用中字符引发的信息安全问题


说到字符,很多用户也许会不以为然:小小的字符,不过是个非常基础的人机交互表达形式,它能产生什么威胁?但是,威胁偏偏就来自最原始的方面,并且这种威胁往往是最危险的,也是最难以防范的。

正如世界上有各种表达形式和书写格式不同的语言一样,在计算机的世界里同样存在类似的问题:在计算机发展初期,不同的计算机系统对字符的处理方式不同,这导致了各个系统之间不能互相交流。为了解决这个问题,人们制订了多种标准以便不同系统之间也能正确进行字符交互,这就是字符编码的由来。

由于字符可以通过多种途径进行表达,所以它们的编码也多种多样,常见的英文字符编码有ASCII、ANSI、Unicode、UTF、ISO等,对于非英文字符,常见的字符编码有GBK、BIG5、JIS等。可能有的读者已经开始不耐烦了:说了半天"编码",到底什么才是编码?!

这里,我们用一个小例子帮助大家理解什么是"编码"。我们可以这样理解:一杯水无论放进什么形状的杯子里都还是水,而不会变成老虎之类的,这个道理很简单,对不对?那么同样的法则也适用于字符。对一个字符来说,无论系统内部怎么处理,只要最终显示出来的是原来的字符,那就没错。例如"小"字,Unicode编码把它作为"%D0%A1"存放,而ASCII编码里,它可以用"-12127"来表示,但是无论它怎么变,只要还能还原回"小"字,系统的处理工作就不会出问题

 

多种编码的产生本来是为了解决字符信息的交互问题,然而正是这些多种多样的编码导致了让人意想不到的后果。字符,这个不起眼的小东西在编码的世界里举起了"大刀",这使得上面提到的"水变成老虎"成为可能。


字符威胁实录


在接触计算机不久的时候你听说了一个词"ASCII";到了Windows 2000开始流行的时候,你知道"Unicode"帮你解决了不少乱码问题;当你成为计算机高手以后,你常常会跟"SQL"玩个不亦乐乎,可是你知道吗?在这些你所熟知的字符或编码背后,隐藏着什么样的危险吗?你知道这样的危险就在你身边吗?


控制符:想说爱你不容易


ASCII全称American Standard Code for Information Interchange(美国信息互换标准代码),是最基础的字符表达方式,它能完整表示26个英文字母、10个数字以及通用的格式符号等。ASCII又分为控制字符和可显示字符(也称为"Printable",即可打印字符),通常情况下,控制字符只能由特殊按键和系统自己产生,而且这些字符中的大部分是我们看不见的。但是你千万不要以为看不见即不存在,恰恰相反,它们时刻存在!例如,在你保存一个文本的时候,系统就会自动在文件结尾添加一个你看不见的结束符号,这个符号的作用就是用来告诉处理程序,读取到这里的时候:停!专业说法可以称之为文件结束符。

不幸的是,上面提到,ASCII控制编码并非只有系统自身可以产生,用户也可以通过特殊的输入方式成功地输出一个键盘上打不出来的特殊字符,这就可能会造成极其严重的后果。老一辈的管理员也许还记得国内那次恐怖攻击事件:很多论坛的帖子在一夜之间全部丢失!可是论坛却没有被入侵过的痕迹,服务器也完好无损,难道见鬼了?!后来,有人仔细查看了论坛日志文件,原来是入侵者用一个特殊符号发了一个帖子,这个符号让处理程序读取文件时误认为文件到这里就结束了,而控制符号是不会显示出来的,所以论坛程序只能认为这"惟一"的帖子格式不对,于是论坛停止了文件读取,在我们看来,即很多论坛帖子被删除了。但是事情仅仅是这样就结束了吗?入侵者只是发了一个控制符号导致了论坛读取错误,然而数据还是在的,只要去掉这个字符就可以恢复了。有人会笑了:小儿科的把戏!不过,别急着下结论,如果那么轻易就结束游戏,管理员就不会哭了:由于这个控制符号的存在,一旦有人写入新的数据,那么在这个帖子后面的所有数据将被清空!因为系统认为文件到这里已经结束了,那么后面的数据将会怎么样?结局只有一个:被全部清空!这时候,破坏论坛的就不再是入侵者了,而是那些热心过头急着发帖问"啊!论坛被黑了!"的成员们了,这个游戏好玩吗?一个字符,歼灭论坛


Unicode:管理员的噩梦


许多人对Unicode的认识是从著名的"IIS Unicode"二次编码漏洞开始的。但是具体什么是Unicode,这就不是所有人都知道的了。Unicode常常被翻译为"万国码"或者"唯独码",后者也许是来自Unicode发明者的宗旨:"推进多文种的统一编码"。Unicode同现在流行的代码页最显著不同点在于:Unicode是两字节的全编码,对于ASCII字符它也使用两字节表示。普通代码页是通过高字节的取值范围来确定字符是ASCII码,还是汉字的高字节。如果发生数据损坏,当整篇文字某处内容被破坏,则会引起其后汉字的混乱。Unicode则一律使用两个字节表示一个字符,最明显的好处是它简化了汉字的处理过程。

Unicode编码标准的出现让各种系统之间的交流变得简单,然而正如爱情是把双刃剑那样,Unicode也会伤人的。

问题出在Unicode对字符的解码上,它的算法让一个字符可以通过多种编码格式产生,于是入侵者可以采用"旁门左道"产生一个非标准编码的路径符号。例如"%c1%1c",通过Unicode解码公式解析出来的字串为:%c1%1c->(0xc1-0xc0)*0x40+0x1c=0x5c="/"。我们知道,IIS在打开文件时,如果该文件名包含Unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将可能导致IIS错误地打开或者执行Web根目录以外的文件。在这里,IIS并不知道这个是路径符,就直接发出了处理请求。于是,入侵者攻击者利用这个漏洞绕过了IIS的路径检查,进入了系统(图3),这就是著名的"IIS Unicode"二次编码漏洞攻击原理。

论坛:天生和字符有仇


如果有人专门去阅读一些论坛的文件内容,会发现它们里面都会有一些代码专门用来处理字符,这部分代码的工作叫做"字符过滤"。为什么呢?因为有太多字符都能对论坛造成伤害,这些字符不一定需要特殊编码,甚至我们正常敲出的文字里都有可能包含被论坛作者定义为"危险"的字符。究其原因,就是因为论坛程序的特殊性,因为它们工作在服务器和外界的接口处,而且自身也是由纯字符组成的,但是一些看似正常的字符会"不小心"改变了它们的逻辑,这是连论坛作者自己可能都没想到的。例如,一些论坛的功能设置部分会涉及文件读写,因此有必要加上权限盘查。但是如果作者编写的权限检查代码忽略了某些特殊字符的输入,结果就会让入侵者成功地往系统中写入一个文件。LB5000论坛就曾经出现过一个重大漏洞:它的界面设置模块对用户权限的盘查不严谨,其中一个字符输入没有经过身份验证,而这个设置会产生一个可以让论坛程序执行的文件用于临时保存界面配置数据,于是入侵者通过以下格式写入一个简单的内容:setskin.cgi?membercode= ad&action=process&printme=use%20CGI%20qw(:standard)%3bopen(HBU,param('a'))%3bprint%20HBU%20param('b')%3b,这样就能完成对论坛的写操作。让我们简单地看看这段代码。这个代码产生了一个包含以下有用内容的leoskin.cgi文件:

use CGI qw(:standard);

open(HBU,param('a'));

print HBU param('b');


懂Perl语法的用户一眼就能看出来,这是一段简单的写入文件代码,入侵者只要用"leoskin.cgi?a=>[文件名]&b=[内容]"格式的语句就可以向论坛写入文件。


到这里也许有人还不明白:写个文件有什么了不起?别忘了,LB5000论坛是基于文件的,它的所有东西都是文件,包括管理员账号。既然我们能写文件,那么只要想办法写入一个管理员账号文件,这下了不起没有?利用这一点,入侵者还可以写入一个执行命令的文件——WebShell,进而控制整个服务器!

近期DVBBS论坛最热的一个漏洞就是UPFILE漏洞,这个漏洞为什么得以成功呢?是简单的字符起的作用!有谁不能用十六进制处理工具把里面那个关键的空格改为结束符而成功入侵这类论坛呢?!这又是一个"小"字符摧跨"大"堤坝的典型案例。


SQL:你的"针管"在哪里


说到字符就不能不提一下大名鼎鼎的SQL了,其实很多论坛过滤字符最大的原因也是因为SQL,这个不能称之为漏洞的"结构化查询语言"让"AND"、"OR"等最为简单的字符成了危险的代号。

由于ASP的特性,入侵者在一个连接数据库操作的URL里加入" AND SQL语句"会让IIS执行这个URL里的SQL语句,于是服务器的噩梦又来了。通过SQL能做什么呢?最简单的是猜测密码(比如免费下载电影或者享用付费用户才拥有的服务),如果服务器的权限设置不好,入侵者能直接用SQL执行任何系统命令!包括清空整个数据库的全部资料


奇怪的编码:格式化字符


如今,"溢出攻击"已经成为攻击的主要方式之一,广大用户或多或少都会听说过"Shell"这个名词,有兴趣的人可能还看过一些溢出程序的代码。很多人都会产生出这样的疑问:每个溢出程序代码里都会发现的那一串甚至几串用路径符和类似十六进制代码表示的字符串,那是什么?

要说明这个问题,必须先知道C语言对字符的处理方法。在C语言中,写一行代码向屏幕打印字符并不是简单地向屏幕输出字符串,能在屏幕显示的字符实际上是经过函数转换的"打印格式"字符,C语言提供了一种格式化字符,它允许程序员控制显示文本的样式,我们可以通过代替特殊的格式字符来显示值或数据。例如"printf("The value is %s",sVal)",其中"%s"就是格式化字符,它自身不能用做显示,而是告诉系统,按照"字符串"的格式把sVal的值放进整个字符串,这就像一个蛋糕模子,它固定了一种样式,你做出的蛋糕就只能是这种样式了。

然而问题又来了,"格式化字符"的存在,让溢出攻击成了现实。攻击者用十六进制编码向内存写入攻击代码,并按照一定格式编排格式化字符,让系统执行到这些字符的时候不再按照原本的程序思路执行,而是扭转到攻击代码所在的内存位置,这就导致了"溢出"(Overflow)。程序就有可能执行到攻击者写入的命令,这像什么呢?就像一块过分膨胀的蛋糕,虽然你的模子是没有问题的,但是蛋糕烘烤的时候,它涨出了原有的空间,这样出来的蛋糕自然不会是你喜欢的样子。同样的情形发生在计算机内存里,就是一组指令涨出了它的"模子",并且有一部分流入烤箱底部被烤糊了。例如,类似于"\x55\x8B\xEC\ x33\xFF\x57\xC6......"的攻击代码,它是一组用十六进制格式符隔开的指令,当它写入内存后,实际上是产生了一组可以让系统执行的"正常"代码,像是运行CMD.EXE,但是这组指令并没有指向它们的执行代码,所以通常情况下,它们即使被写入内存也只能是废物一堆(烤糊的蛋糕,你能吃吗?),如果要让它们起作用,怎么办呢?这时候就需要格式化字符的帮助了,通过执行一段特殊的包含格式化字符的代码,程序指向了包含攻击指令的内存位置,于是攻击指令生效了


防御字符威胁


由于字符问题由系统内部产生,我们无法把它消灭,只能通过"后天"的修补来解决问题。最安全的方法就是在我们的程序里加入防护代码,并给系统打上补丁,这样才能尽量避免来自字符的攻击。

很多公司都有因为电脑被入侵而遭受严重经济损失的惨痛经历,不少普通用户也未能避免电脑被破坏的厄运,造成如此大损失的并不一定都是技术高超的入侵者所为,小小的字符串带给我们的损失已经太多。因此,如果你是数据库程序开发人员、如果你是系统级应用程序开发人员、如果你是高级计算机用户、如果你是论坛管理人员......请密切注意有关字符漏洞以及其他各类漏洞的最新消息及其补丁,及时在你的程序中写入防范最新字符漏洞攻击的安全检查代码并为你的系统安装最新的补丁会让你远离字符带来的危险。

 


 参考
1黄叔武 刘建新  计算机网络教程  清华大学出版社  2004年11月
2 戴红 王海泉 黄坚  计算机网络安全  电子工业出版社  2004年9月

 

结束语

经过一段时间的收集资料,我的终于完成,看着自己的成果,有说不出的感触。

通过这段时间的努力,对我这3年半来的学习有了系统的总结,对我自己感兴趣的知识也有了一些进步。

网络这个时代的主流已经发展的越来越快了,应用也越来越广泛,组建的再好的网站都需要有很要的安全性才行,才可靠。所以安全是成功设计好组网方式后的最重要的因素,是保障整个网络稳定的安全的关键。

 

微信扫一扫,进群领取资料!

    微信咨询老师
  • (扫码加入[四川自考交流群])
    历年真题、复习资料、备考方案》,马上领取!
最新真题、复习资料、模拟试题 | 一键领取 >>
【四川自考网声明】:

1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。

2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:812379481@qq.com。