1、网络攻击与防护论文6江西理工大学应用科学学院网络攻击与防御课程作业论文 题 目:网络攻击与防范措施 系 别:_信息工程系_ 班 级: 网络091 姓 名:_颜长江_ 成 绩:_二一二年四月 网络攻击与防范措施摘要:随着互联网的发展,在计算机网络安全领域里,存在一些非法用户利用各种手段和系统的漏洞攻击计算机网络.网络安全已经成为人们日益关注的焦点问题网络中的安全漏洞无处不在,即便旧的安全漏洞补上了补丁,新的安全漏洞又将不断涌现.网络攻击是造成网络不安全的主要原因.单纯掌握攻击技术或者单纯掌握防御技术都不能适应网络安全技术的发展为了提高计算机网络的安全性,必须了解计算机网络的不安全因素和网络攻击的
2、方法同时采取相应的防御措施。关键字:特洛伊木马网络监听缓冲区溢出攻击特洛伊木马是一种恶意程序,它们悄悄地在宿主机器上运行,就在用户毫无察觉的情况下,让攻击者获得了远程访问和控制系统的权限.黑客的特洛伊木马程序事先已经以某种方式潜入你的机器,并在适当的时候激活,潜伏在后台监视系统的运行,它同一般程序一样,能实现任何软件的任何功能.例如拷贝、删除文件、格式化硬盘、甚至发电子邮件,典型的特洛伊木马是窃取别人在网络上的账号和口令,它有时在用户合法的登录前伪造一登录现场,提示用户输入账号和口令,然后将账号和口令保存至一个文件中,显示登录错误,退出特洛伊木马程序。完整的木马程序一般由两个部份组成:一个是服
3、务器程序,一个是控制器程序.“中了木马”就是指安装了木马的服务器程序,若你的电脑被安装了服务器程序,则拥有控制器程序的人就可以通过网络控制你的电脑、为所欲为。1.1 特洛伊木马程序的检测(1)通过网络连接检测:扫描端口是检测木马的常用方法.在不打开任何网络软件的前提下,接入互联网的计算机打开的只有139端口.因此可以关闭所有的网络软件。进行139端口的扫描。(2)通过进程检测:Win/XP中按下“CTL+ALT+DEL”进入任务管理器,就可以看到系统正在运行的全部进程,清查可能发现的木马程序。(3)通过软件检测:用户运行杀毒、防火墙软件和专用木马查杀软件等都可以检测系统中是否存在已知的木马程序
4、。1.2 特洛伊木马程序的预防(1)不执行任何来历不明的软件(2)不随意打开邮件附件(3)将资源管理器配置成始终显示扩展名(4)尽量少用共享文件夹(5)运行反木马实时监控程序(6)经常升级系统2 网络监听网络监听技术本来是提供给网络安全管理人员进行管理的工具,可以用来监视网络的状态、数据流动情况以及网络上传输的信息等.当信息以明文的形式在网络上传输时,使用监听技术进行攻击并不是一件难事,只要将网络接口设置成监听模式,便可以源源不断地将网上传输的信息截获。在因特网上有很多使用以太网协议的局域网,许多主机通过电缆、集线器连在一起。当同一网络中的两台主机通信的时候,源主机将写有目的的主机地址的数据包
5、直接发向目的主机。但这种数据包不能在IP层直接发送,必须从TCP/IP协议的IP层交给网络接口,也就是数据链路层,而网络接口是不会识别IP地址的,因此在网络接口数据包又增加了一部分以太帧头的信息。在帧头中有两个域,分别为只有网络接口才能识别的源主机和目的主机的物理地址,这是一个与IP地址相对应的48位的地址。当主机工作在监听模式下,所有的数据帧都将被交给上层协议软件处理。而且,当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于监听模式下,它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的数据包。即在同一条物理信道上传输的所有信息都可以被接收到
6、。正确的使用网络监听技术也可以发现入侵并对入侵者进行追踪定位,在对网络犯罪进行侦查取证时获取有关犯罪行为的重要信息,成为打击网络犯罪的有力手段。2.1 如何检测并防范网络监听(1)对于怀疑运行监听程序的机器,用正确的IP地址和错误的物理地址ping,运行监听程序的机器会有响应。这是因为正常的机器不接收错误的物理地址,处理监听状态的机器能接收,但如果他的IPstack不再次反向检查的话,就会响应。(2)观测DNS许多的网络监听都会进行址反向解析,在怀疑有网络监听发生时可以在DNS系统上观测有没有明显增多的解析请求。(3)向网上发大量不存在的物理地址的包,由于监听程序要分析和处理大量的数据包会占用
7、很多的CPU资源,这将导致性能下降。通过比较前后该机器性能加以判断。这种方法难度比较大。(4)反应时间向怀疑有网络监听行为的网络发出大量垃圾数据包,根据各个主机回应的情况进行判断,正常的系统回应的时间应该没有太明显的变化,而处于混杂模式的系统由于对大量的垃圾信息照单全收,所以很有可能回应时间会发生较大的变化。(5)利用arp数据包进行监测这种方法是ping方式的一种变体,使用arp数据包替代了ICMP数据包,向主机发送非广播式的arp包,如果主机响应了这个arp请求,就可以判断它很可能就处于网络监听模式了,这是目前相对比较好的监测模式。3 缓冲区溢出攻击缓冲区溢出是指当一个超长的数据进入到缓冲
8、进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针或者是其他程序的输出内容,这些内容都被覆盖或被破坏掉。缓冲区溢出有时又称为堆栈溢出攻击,是过去的十多年里,网络安全漏洞常用的一种形式并且易于扩充。相比于其他因素,缓冲区溢出是网络受到攻击的主要原因。(1)编写正确的代码由于缓冲区溢出是一个编程问题,所以只能通过修复被破坏的程序的代码而解决问题。开放程序时仔细检查溢出情况,不允许数据溢出缓冲区。(2)非执行的缓冲区使被攻击程序的数据段址空间不可执行,从而使得攻击都不可能执行被植入的攻击程序输入缓冲共代码。(3)数组边界检查数组边界检查完且没有缓冲共溢出的产生
9、和攻击。这样,只要数组不能被溢出,溢出攻击也就无从谈起。为了实现数组边界检查,则所有的对数组的读写操作都应当被检查以确保对数组的操作在正确的范围内。(4)堆栈溢出检查使用检查堆栈溢出的编译器或者在程序中加入某些记号,以便程序运行时确认禁止黑客有意造成的溢出。问题是无法针对已有程序,对新程序来讲,需要修改编译器。(5)操作系统和应用程序检查经常检查你的操作系统和应用程序提供商的站点,一旦发现他们提供的补丁程序,就马上下载并且应用在系统上,这是最好的方法。二、加密技术加密技术:即是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解码)。加密技
10、术的要点是加密算法,加密算法可以分为对称加密、非对称加密和不可逆加密三类算法。2.1对称加密算法在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。如图所示:在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是:算法公开;计算量小;加密速度快;加密效率高。不足之处是:交易双方都使用同样的密钥,安全性得不到保证;每对用户每次使用对称加
11、密算法时,都需要使用其他人不知道的惟一密钥,这会使得发收信双方所拥有的密钥数量成几何级数增长,密钥管理成为用户的负担。对称算法的加密和解密表示为:EK (M) =CDK(C) =M2.2非对称加密算法(公开密钥算法) 非对称加密算法使用两把完全不同但又是完全匹配的一对钥匙公钥和私钥。在使用非对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。公钥和私钥:公钥就是公布出来,所有人都知道的密钥,它的作用是供公众使用。私钥则是只有拥有者才知道的密钥。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是惟一
12、知道自己私钥的人。如下图:非对称加密算法的基本原理是:(1)如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文。(2)收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用非对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。非对称算法的公开密钥K1加密表示为:EK1(M)=C。公开密钥和私人密钥是不同的,用相应的私人密钥K2解密可表示为:DK2(C)=M。广泛应用的非对称加密算法有RSA算法和美国国家标准局提出的数字签名算法DSA。由于非对称算法拥有两个密钥,因而特别适用于分布式系统
13、中的数据加密。DES(Data Encryption Standard)算法,是一种用56位密钥来加密64位数据的方法。RSA算法是第一个能同时用于加密和数字签名的算法。根据RSA算法的原理,可以利用C语言实现其加密和解密算法。RSA算法比DES算法复杂,加解密的所需要的时间也比较长。2.3不可逆加密算法不可逆加密算法的特征是:加密过程中不需要使用密钥,输入明文后,由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。 显然,在这类加密过程中,加密是自己,解密还得是自己,而所谓
14、解密,实际上就是重新加一次密,所应用的“密码”也就是输入的明文。 不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用,如广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。2.4 PGP加密技术本例介绍目前常用的加密工具PGP,使用PGP产生密钥,加密文件和邮件。PGP加密技术是一个基于RSA公钥加密体系的邮件加密软件,提出了公共钥匙或不对称文件的加密技术。由于RSA算法计算量极大,在速度上不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用传统加密算法IDEA,IDEA加解密的速度
15、比RSA快得多。PGP随机生成一个密钥,用IDEA算法对明文加密,然后用RSA算法对密钥加密。收件人同样是用RSA解出随机密钥,再用IEDA解出原文。2.4.1.使用PGP加密文件使用PGP可以加密本地文件,右击要加密的文件,选择PGP菜单项的菜单“Encrypt”,如下图所示:系统自动出现对话框,让用户选择要使用的加密密钥,选中一个密钥,点击按钮“OK”,如下图所示:目标文件被加密了,在当前目录下自动产生一个新的文件,如图所示:打开加密后的文件时,程序自动要求输入密码,输入建立该密钥时的密码。如图:2.4.2使用PGP加密邮件PGP的主要功能是加密邮件,安装完毕后,PGP自动和Outlook
16、或者Outlook Express关联。和Outlook Express关联如图所示:利用Outlook建立邮件,可以选择利用PGP进行加密和签名,如图所示:三、网络防御在当今网络系统开发中,不注意网络防范问题,就会遭到黑客的攻击,甚至会使整个系统崩溃。因此,在开发中我们注意网络攻击问题,以免让黑客有机可趁。虽然黑客攻击的手段防不胜防,但我们应该把所知道的防范措施做好,例如:防范SQL注入式攻击,验证码技术等。3.1防范SQL注入攻击Sql注入式攻击是指利用设计上的漏洞,在目标服务器上运行Sql 命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主
17、要原因。3.1.1 SQL的注入式攻击比如以在线书店为例,用户只有登陆后才能察看自己的帐户信息,这样做是无可置疑的,然而用户验证的代码如下/id和password直接来自用户的输入。未做处理string id = GetUserInput(UserID);string password = GetUserInput(UserPassword);tring script = select * from table_user where User_ID = + id? + and User_Password? = + password? + ;RunSql(script);如果用户输入的passw
18、ord为“ or = ”,那么生成的script就为select * from table_user where User_ID = UserID and User_Password? = or = 这样一来,即使不知道用户的密码也可以察看该用户的帐户信息了从上面的这些例子可以看出,使用SQL注入式攻击可以得到用户的账户信息,不过SQL注入式攻击不只是那么简单,黑客还可能利用其它系统设计漏洞。比如黑客设计一些SQL语句诱导系统程序把数据库返回的错误信息显示出来。还有对数据库访问权限的设计不当,给与每一个数据库连接太多的权限,甚至dbo或sa的权限,也是sql注入式攻击利用的主要漏洞之一。3.1
19、.2 防范sql注入式攻击第一点 最小权限原则特别是不要用dbo或者sa账户,为不同的类型的动作或者组建使用不同的账户,最小权限原则适用于所有与安全有关的场合。第二点 对用户输入进行检查对一些特殊字符,比如单引号,双引号,分号,逗号,冒号,连接号等进行转换或者过滤;使用强数据类型,比如你需要用户输入一个整数,就要把用户输入的数据转换成整数形式;限制用户输入的长度等等。这些检查要放在server运行,client提交的任何东西都是不可信的。第三点 使用存储过程如果一定要使用sq语句,那么用标准的方式组建sql语句,比如可以利用parameters对象,避免用字符串直接拼sq命令。当sql运行出错
20、时,不要把数据库返回的错误信息全部显示给用户,错误信息经常会透露一些数据库设计的细节针对常用的sql注入式攻击方式对症下药3.2 验证码技术 所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素,由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。3.2.1为什么使用验证码技术 防止不法用户用软件频繁注册,频繁发送不良信息。例如:普遍的客户端交互如留言本、会员注册等仅是按照要求输入内容,但网上有很多攻击软件,如注册机,可以通过浏览WEB,扫描表单,然后在系统上频繁注册,频繁发送不良信息,造成不良的影响,或者通过软件不断的尝试,盗取你的密
21、码。而我们使用通过使用验证码技术,使客户端输入的信息都必须经过验证。3.2.2 测试验证码是否完善 必须保证所有客户端交互部分都输入验证码,测试提交信息时不输入验证码,或者故意输入错误的验证码,如果信息都不能交,说明验证码有效,同时在验证码输入正确下提交信息,如果能提交,说明验证码功能已完善。 上面仅介绍了两种必须注意的安全问题,在开发系统中无论你使用ASP、JSP或者其它技术,都要注意网络攻击问题,然后进行防御。四、网络攻击对网络信息系统的攻击来自很多方面,这些攻击可以宏观地为人为攻击和自然灾害攻击。他们都会对通信安全构成威胁,但是精心设计的人为攻击威胁最大,也最难防备。4.1 社会工程学攻
22、击社交工程是使用计谋和假情报去获得密码和其他敏感信息的科学,研究一个站点的策略其中之一就是尽可能多的了解这个组织的个体,因此黑客不断试图寻找更加精妙的方法从他们希望渗透的组织那里获得信息。举个例子:一组高中学生曾经想要进入一个当地的公司的计算机网络,他们拟定了一个表格,调查看上去显得是无害的个人信息,例如所有秘书和行政人员和他们的配偶、孩子的名字,这些从学生转变成的黑客说这种简单的调查是他们社会研究工作的一部分。利用这份表格这些学生能够快速的进入系统,因为网络上的大多数人是使用宠物和他们配偶名字作为密码。4.1.2 攻击方式(1)打电话请求密码。尽管这个方式很普通,但打电话询问密码也经常奏效。
23、在社会工程中那些黑客冒充失去密码的合法雇员,经常通过这种简单的方法重新获得密码。(2)伪造Email使用telnet,一个黑客可以截取任何一个身份证发送Email的全部信息,这样的Email消息是真,因为它发自于一个合法的用户。在这种情形下这些信息显得是绝对的真实。黑客可以伪造这些。一个冒充系统管理员或经理的黑客就能较为轻松的获得大量的信息,黑客就能实施他们的恶意阴谋。4.2. Ping of death 攻击 Ping是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中ping是一个十分好用的TCP/IP工具。它主要的功能是用来检测网络的连通情况和分析网路速度。Ping有善的一面也有恶的一面
24、。4.2.1攻击方式 对目标IP不停地Ping探测从而致使目标主机TCP/IP堆栈崩溃导致网络瘫痪。 Ping t l 655504.3 Unicode漏洞攻击4.3.1 Unicode漏洞描述 攻击者可通过IE浏览器远程运行被攻击计算机的cmd.exe文件,从而使该计算机的文件暴露,且可随意执行和更改文件。 Unicode标准被很多软件开发者所采用,无论何种平台、程序或开发语言,Unicode均为每个字符提供独一无二的序号,如向IIS服务器发出包括非法Unicode UTF-8序列的URL,攻击者可使服务器逐字“进入或退出”目录并执行任意程序,该攻击即称为目录转换攻击。Unicode用“%2
25、f”和“%5c”分别代表“/”和“”字符,但也可用“超长”序列来代替这些字符。“超长”序列是非法的Unicode表示符,如用“%c0%af”代表“/”字符。由于IIS不对超长序列进行检查,因此在URL中添加超长的Unicode序列后,可绕过微软的安全检查,如在一个标记为可执行的文件夹发出该请求,攻击者即可在服务器上运行可执行文件。4.3.2 利用Unicode漏洞进行攻击此漏洞从中文IIS4.0+SP6开始,还影响中文WIN2000+IIS5.0、中文WIN2000+IIS5.0+SP1,台湾繁体中文也同样存在这样的漏洞。在NT4中/编码为“%c1%9c”或者“%c1%9c”,WIN2000英
26、文版是“%c0%af”。但从国外某些站点得来的资料显示,还有以下的编码可以实现对该漏洞的检测,该编码存在于日文版、韩文版等操作系统。 %c1%pc %c0%9v %c0%qf %c1%8s %e0%80%af4.3.3 利用Unicode漏洞读取系统盘目录利用该漏洞读取出计算机上目录列表,比如读取C盘的目录,只要在浏览器中输入 “http:/172.18.25.109/scripts/.%c0%2f./winnt/system32/cmd.exe?/c+dir+c:”4.3.4利用Unicode漏洞读取系统文件利用语句得到对方计算机上装了几个操作系统以及操作系统的类型,只要读取C盘下的boot
27、.ini文件就可以了。使用的语句是:http:/172.18.25.109/scripts/.%c0%2f./winnt/system32/cmd.exe?/c+type+c:boot.ini执行的结果如图所示:4.3.5 利用Unicode漏洞拷贝文件为了是使用方便,利用语句将cmd.exe文件拷贝到scripts目录,并改名为c.exe,使用的语句是:http:/172.18.25.109/scripts/.%c0%2f./winnt/system32/cmd.exe?/c+copy+C:winntsystem32cmd.exe+c.exe执行结果如图所示:五、防火墙技术5.1防火墙的定义
28、在互联网上,防火墙是一种非常有效的网络安全系统,通过它可以隔离风险区域(Internet或有一定风险的网络)与安全区域(局域网)的连接,同时不会妨碍安全区域对风险区域的访问,网络防火墙结构如图所示。5.2 防火墙的功能根据不同的需要,防火墙的功能有比较大差异,但是一般都包含以下三种基本功能。(1)可以限制未授权的用户进入内部网络,过滤掉不安全的服务和非法用户(2)防止入侵者接近网络防御设施(3)限制内部用户访问特殊站点由于防火墙假设了网络边界和服务,因此适合于相对独立的网络,例如Intranet等种类相对集中的网络。Internet上的Web网站中,超过三分之一的站点都是有某种防火墙保护的,任
29、何关键性的服务器,都应该放在防火墙之后。5.3 防火墙的必要性随着世界各国信息基础设施的逐渐形成,国与国之间变得“近在咫尺”。Internet已经成为信息化社会发展的重要保证。已深入到国家的政治、军事、经济、文教等诸多领域。许多重要的政府宏观调控决策、商业经济信息、银行资金转账、股票证券、能源资源数据、科研数据等重要信息都通过网络存贮、传输和处理。因此,难免会遭遇各种主动或被动的攻击。例如信息泄漏、信息窃取、数据篡改、数据删除和计算机病毒等。因此,网络安全已经成为迫在眉睫的重要问题,没有网络安全就没有社会信息化.5.4 防火墙的分类 常见的放火墙有三种类型:1、分组过滤防火墙;2、应用代理防火
30、墙;3、状态检测防火墙。分组过滤(Packet Filtering):作用在协议组的网络层和传输层,根据分组包头源地址、目的地址和端口号、协议类型等标志确定是否允许数据包通过,只有满足过滤逻辑的数据包才被转发到相应的目的地的出口端,其余的数据包则从数据流中丢弃。应用代理(Application Proxy):也叫应用网关(Application Gateway),它作用在应用层,其特点是完全“阻隔”网络通信流,通过对每种应用服务编制专门的代理程序,实现监视和控制应用层通信流的作用。实际中的应用网关通常由专用工作站实现。状态检测(Status Detection):直接对分组里的数据进行处理,并
31、且结合前后分组的数据进行综合判断,然后决定是否允许该数据包通过。应用代理防火墙 应用代理(Application Proxy)是运行在防火墙上的一种服务器程序,防火墙主机可以是一个具有两个网络接口的双重宿主主机,也可以是一个堡垒主机。代理服务器被放置在内部服务器和外部服务器之间,用于转接内外主机之间的通信,它可以根据安全策略来决定是否为用户进行代理服务。代理服务器运行在应用层,因此又被称为“应用网关”。5.4 防火墙的优缺点防火墙的优点:(1) 防火墙能强化安全策略 因为因特网上每天都有上百万人在那里收集信息。交换信息,不可避免的会发生个别品的不良的人,或违反规则的人,防火墙就是为了防止不良现象发生的“交通警察”,他执行站点的安全策略,仅仅容许“认可”和符合规则的请求通过。(2) 防火墙能有效
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1