安全基础知识IP的不安全性

被窃盗的信用卡号、遭受攻击的计算机系统以及其他一些著名的在线攻击已经引起了许多用户的警惕,使安全管理人员将注意力放在了高级入侵检测系统、防火墙和其他高水平防御上。然而,许多人忘了,无论他们如何努力地加强站点的安全,Internet结构中存在的脆弱性仍使他们处于危险之中。

像请求在两台计算机之间建立连接这种简单功能就会造成漏洞,而每年报告的攻击中有15%是由这种漏洞造成的,这是由于自TCP/IP被接受为Arpanet传输协议之日起,它就一直没有什么变化,而IP最初是在一个内部非常信任的具有内聚力的社区中编写的,因此缺省值是IP应用认为它们应当信任人。

利用TCP/IP功能的拒绝服务攻击和数据欺诈攻击可以使用多数服务器操作系统中能够被打开的安全功能、路由器或新版IP(IPv6)内置的过滤器来防范。但是,这些安全措施经常被忽视。

近期有公司受到了“重新发现”的TCP攻击,这是一种利用TCP存在的老问题的新途径:如果黑客可以猜出两台计算机用来启动发送数据包序列的随机初始序列号(ISN)的话,这位黑客就可以劫持一次会话。一旦攻击者猜出ISN,他就可以改变数据包的传送方向或向数据流中注入任何东西。人们认为软件厂商已经利用随机包序列发生器解决了这一问题。但结果是这种随机序列并不随机,它实际包含使ISN很容易猜到的模式。

另一种古老手段IP地址欺骗今天也很常见。像IP欺骗和利用缓冲区溢出的拒绝攻击这类古典的TCP/IP攻击仍在使用。以分布式拒绝攻击为例,将特洛伊木马植入到未受怀疑的服务器中。然后,这些服务器利用大量的包含虚假源IP地址的服务请求淹没了许多电子商务站点。攻击造成这些商务站点上的很多服务器崩溃。

非IP攻击一般寻找服务器软件或像地址簿和自动邮件程序这类功能中脆弱的端口和服务。

常见的针对TCP/IP的攻击

在八十年代中,有几十种针对TCP/IP的攻击袭击过Arpanet。其中的一些攻击今天依然存在。最常见的包括:

1. Smurf攻击:一种由有趣的卡通人物而得名的拒绝服务攻击。Smurf攻击利用多数服务器中具有的同时向许多计算机广播请求的功能。攻击者伪造一个合法的IP地址,然后由网络上所有的服务器广播要求向受害者地址做出回答的请求。由于这些数据包表面上看是来自已知地址的合法请求,因此网络中的所有系统向这个地址做出回答,回答淹没了这台合法的机器,造成拒绝服务。

2. SYN洪水:一种拒绝服务攻击,在这种攻击中,攻击者利用伪造的IP地址向目标发出多个连接(SYN)请求。目标系统然后发送确认信息,并等待回答。由于伪造的IP地址不属于任何实际的机器,因此,不会有回答,从而使连接保持开放并阻塞了合法的数据流。

3. 源路由篡改:一种拒绝服务和数据劫持攻击,在这种攻击中,攻击者篡改路由表表项(通常在边缘路由器上),使发送到某一站点的数据流改向传送到另一个站点上(在这个站点上信息可以被截获)或者什么地方都不发送。 
阻挡与过滤

关闭边缘路由器上的“广播”功能可以阻挡Smurf攻击。以三秒或更短的间隔中止不完整的SYN请求通常可以防止SYN洪水。IP路由包过滤功能可以捕获劫持企图。事实上,过滤功能正是TCP/IP保护所做的事。

例如,最近分布式拒绝服务攻击的许多受害者现在都在自己ISP的位置对数据流进行过滤,而不是等待“洪水”袭击自己的计算机。一些受害者还对自己的操作系统进行了配置,使其可以更快地中断SYN请求,并改变受到拒绝服务攻击的服务器的IP地址避免再受到攻击。

除了防火墙和入侵检测外,用户还可使用下列过滤技术以防止TCP/IP攻击:

·在边缘路由器上设置过滤阻挡假地址或SYN攻击。

·阻挡连接请求、防止高容量攻击的速率限制过滤器。

·检测符合攻击特征的进入连接或跟踪攻击发源地供起诉之用的数据流分析。

·通过过滤已知攻击类型,防止拒绝服务攻击的基于主机的防火墙。

由于这类安全特性不属于缺省配置,所以IT人员可能不知道这些特性,因此并没有开启这些特性,或者他们害怕过滤功能会降低他们的速度。但是实际上这些特性不会给性能造成太大的影响。

例如,Cisco公司的路由器包含一种叫做单播逆向路径转发检查的特性,这种逆向IP查找功能自三年前Cisco发布IOS第10版起就是该操作系统的一部分。这种功能可以通过检查上游路由表查看数据包是否来自它们自称的IP地址来检测伪造的数据流。尽管这类技术几乎无处不在,但是用户还是很少使用它们。

对性能问题的担心也是造成新的ISN猜测威胁的原因。1996年中,厂商有机会采用一种更强键的随机序列发生器,但多数厂商不愿意采用它,因为从CPU使用的角度看,它费用更高。

而且,IPSec也被大多数人所忽视,IPSec是IPv6的一个子集,它的设计目的是利用公共密钥在计算机进行连接前对计算机进行认证。这两种同是在1998年公布的安全特性可以帮助解决许多TCP/IP安全问题。

目前厂商产品真正支持IPSec的还不多。这是因为企业没有看到采用IPSec或IPv6的令人信服的理由,特别是VPN隧道技术具有与IPSec几乎相同的功能。

此外,升级到IPv6需要一定的时间,大家未来需要同时升级到IPv6。否则,由于兼容性问题,那些先升级的人将不能接入到Internet的很多部分中。随着无线Internet设备的出现,对地址空间的需求不久将会呈爆炸式增长。同时,对更强过滤功能和IP安全的需求也会出现爆炸。否则,总有一天,任何Internet连接的设备,甚至包括电冰箱,都会黑世界一把。  文章录入:csh    责任编辑:csh

(0)

相关推荐

  • 安全基础知识IP的不安全性

    被窃盗的信用卡号.遭受攻击的计算机系统以及其他一些著名的在线攻击已经引起了许多用户的警惕,使安全管理人员将注意力放在了高级入侵检测系统.防火墙和其他高水平防御上.然而,许多人忘了,无论他们如何努力地加强站点的安全,Internet结构中存在的脆弱性仍使他们处于危险之中. 像请求在两台计算机之间建立连接这种简单功能就会造成漏洞,而每年报告的攻击中有15%是由这种漏洞造成的,这是由于自TCP/IP被接受为Arpanet传输协议之日起,它就一直没有什么变化,而IP最初是在一个内部非常信任的具有内聚力的

  • Java基础知识汇总

    Java基础知识 1.Java语言的优点: 1)Java是纯面向对象语言 2)与平台无关性,一次编译到处运行 3)Java提供了狠多内置类库 4)提供了对web应用的支持 5)具有较好的安全性(数组边界检测.Bytecode检测)和健壮性(强制型机制.垃圾回收器.异常处理) 6)去除c++难以理解的一些特性(头文件 指针 运算符重载 多重继承) 2.java与c++的异同: 1)Java为解释型语言,c++为编译型语言,java会慢但是跨平台 2)Jave为纯面向对象,c++既面向对象又能面向过

  • Python 专题二 条件语句和循环语句的基础知识

    前面讲述了"专题一.函数的基础知识",而这篇文章讲述的Python的条件语句和循环语句的基础知识.主要内容包括: 1.条件语句:包括单分支.双分支和多分支语句,if-elif-else 2.循环语句:while的使用及简单网络刷博器爬虫 3.循环语句:for的使用及遍历列表.元组.文件和字符串 前言: 语句块 在讲诉条件语句.循环语句和其他语句之前,先来补充语句块知识.(前面讲函数时已经用到过) 语句块并非一种语句,它是在条件为真(条件语句)时执行或执行多次(循环语句)的一组语句.在代

  • Linux基础知识99问(三)

    三. 走进Linux殿堂:35问 20.安装Linux,对硬件有什么要求? Linux对硬件要求很低,可以运行在386以上CPU,8M以上内存的IBM PC机上.但由于设备厂商的支持力度不够,所以Linux倒是对很多新设备的支持不是很好,新设备的驱动程序总是慢一步. 21.安装Linux需要做哪些准备? 1) 收集系统资料:记录下内存大小,CDROM接口类型,SCSI卡型号,网卡型号,鼠标类型,显卡芯片组.时钟芯片.显存大小等相关信息: 2) 检查CMOS设置,关闭病毒开发,设置其从光驱启动:

  • Google关键词广告基础知识问答

    1.google关键词广告是什么?  答:google官方对这个广告的英文描述叫adwords,它是显示在搜索结果页面右侧的网站链接广告.它是属于CPC(cost-per-click)收费--按点击次数收费的网络广告类型. 2.google关键词广告和搜索结果页面左侧网站排名是否有关系?  答:没有任何关系,搜索结果页面左侧网站排名是完全按照google自身的算法而的出来的,无法进行人工干预的(当然,可以利用它的算法的规则来提高网站排名,这部分内容不在本文讨论范围之类):而关键词广告是人工添加的

  • java 基础知识之网络通信(TCP通信、UDP通信、多播以及NIO)总结

    java 基础知识之网路通信总结 在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础是Socket,在TCP连接中,我们会使用ServerSocket和Socket,当客户端和服务器建立连接以后,剩下的基本就是对I/O的控制了. 我们先来看一个简单的TCP通信,它分为客户端和服务器端. 客户端代码如下: 简单的TCP客户端 import java.net.*; import java.io.*; public class

  • Cisco路由技术基础知识详解之一

    Cisco路由技术基础知识详解 路由器 <一> 最简单的网络可以想象成单线的总线,各个计算机可以通过向总线发送分组以互相通信.但随着网络中的计算机数目增长,这就很不可行了,会产 生许多问题: 1.带宽资源耗尽.     2.每台计算机都浪费许多时间处理无关的广播数据.     3.网络变得无法管理,任何错误都可能导致整个网络瘫痪.     4.每台计算机都可以监听到其他计算机的通信. 把网络分段可以解决这些问题,但同时你必须提供一种机制使不同网段的计算机可以互相通信,这通常涉及到在一些ISO网

  • Cisco路由技术基础知识详解

    Cisco路由技术基础知识详解 路由器 <一> 最简单的网络可以想象成单线的总线,各个计算机可以通过向总线发送分组以互相通信.但随着网络中的计算机数目增长,这就很不可行了,会产 生许多问题: 1.带宽资源耗尽.     2.每台计算机都浪费许多时间处理无关的广播数据.     3.网络变得无法管理,任何错误都可能导致整个网络瘫痪.     4.每台计算机都可以监听到其他计算机的通信. 把网络分段可以解决这些问题,但同时你必须提供一种机制使不同网段的计算机可以互相通信,这通常涉及到在一些ISO网

  • java网络编程基础知识介绍

    网络基础知识 1.OSI分层模型和TCP/IP分层模型的对应关系 这里对于7层模型不展开来讲,只选择跟这次系列主题相关的知识点介绍. 2.七层模型与协议的对应关系 网络层 ------------ IP(网络之间的互联协议) 传输层 ------------ TCP(传输控制协议).UDP(用户数据报协议) 应用层 ------------ Telnet(Internet远程登录服务的标准协议和主要方式).FTP(文本传输协议).HTTP(超文本传送协议) 3.IP地址和端口号 1.ip地址用于

  • Java 网络爬虫基础知识入门解析

    前言 说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做网络爬虫而且还能做的非常好,在开源社区中有不少优秀的 Java 网络爬虫框架,例如 webmagic .我的第一份正式工作就是使用 webmagic 编写数据采集程序,当时参与了一个舆情分析系统的开发,这里面涉及到了大量网站的新闻采集,我们就使用了 webmagic 进行采集程序的编写,由于当时不知

随机推荐