返回列表 发帖

[转帖]剖析来自Internet的攻击-重要!

[这个贴子最后由绝对倾情在 2003/03/30 12:40pm 第 1 次编辑]

只要有网络连接,就会有被入侵的风险存在!但现在使用Internet查询数据已经是大势所趋,现代人的生活已经离不开Internet。因此如何在连上Internet的同时确保数据的安全,成为网络时代最重要的课题。

一、Internet攻击者需要了解的资料
在Internet上,攻击你电脑的人必须知道下列信息:
1.IP地址
无论你用电话拨号接入还是在公司使用专线,你一定会有个IP地址,才能连上Internet。这个IP地址是你和Internet连接的桥梁,通过这个地址Internet才能识别你的电脑,不过,如果有人要对你的电脑动歪脑筋的话,你电脑所使用的IP地址也是他首先所必须知道的数据。
现在由于IP地址数量已经不多,所以除非你是使用专线上网,否则IP地址每次上网时都由ISP(互联网服务供应商,如数据通信局、263等)动态分配而不同,这也提供了一些安全性,让你的电脑不会被特定人士“盯上”
2.可供入侵的漏洞
知道IP地址以后,如果你的电脑上没有什么漏洞供入侵者渗透,那么入侵者是拿你没法子的。要抓到某电脑上的安全漏洞,不外乎是判别攻击目标采用的是什么“操作系统”与“网络应用程序”,才能决定攻击的方式。
如果你想知道那些Internet上的应用程序有安全性的顾虑,建议你不妨到http://www.cert.org.tw/逛逛,可以获得一些安全性参考数据,他们也有免费电子杂志可以让你随时得知最新的安全信息,而且还有个新的测试程序可以帮你检测你的电脑是否藏了什么后门程序以及可能的系统漏洞,Try It!

二、系统内常见的服务及其采用的端口
有些Internet服务程序是很常见的,通常这些服务程序也成为入侵者的箭靶。现在我们从Windows 9x的Windows目录中找一个services文件。然后用记事本看看里面的内容。
(以下内容为避免占用篇幅,只列出常见的服务,中文部分为服务功能说明)
这个文件的格式很简单:服务名称/端口号码/通讯协议,以及服务的说明,这个文件几乎可以在所有支持TCP/IP的操作系统中找到,UNIX系统拿它作服务的对应,但在Windows系统中这个文件几乎是没有什么作用。因为Windows下的Internet应用程序一般是自己指定端口而不是参照系统的指示,因此删掉它你的电脑还是照样上Internet。但在UNIX中,如果你拿掉/ect/services,就要遇上大麻烦了。
此文件还有一个特性:不管在什么操作系统上。长得几乎都一模一样,你可以把Windows上的services文件拷贝到UNIX上,一样可以工作得很好。(不过建议你不要这样做,因为虽然services文件大家都一样,但Microsoft说他们的services文件是有版权的,看看文件的第一行吧)。:-)
你的Windows 9x虽然有这么多服务,但不是所有的服务都用上,例如,你只是单纯的拨号上网,你就不会需要装个SMTP或POP3服务(Mail Server上的服务程序)。又如果你的电脑没有接上网卡,不需要用局域网和别人互传数据。那么就别装上太多,除了可能会拖慢系统的速度,还增加了别人入侵你电脑的渠道——没有设定密码或密码太少的网上邻居可是相当容易入侵的。

三、常见的Internet攻击方式
来自网络的攻击,一般可以分为两类:积极性的服务程序攻击和消极性的网络连线攻击。

1.服务程序攻击
对于服务程序的攻击,首先要锁定攻击的目标程序。通常入侵者会对目标主机上的所有服务程序作一次扫描,测试一下目标主机上究竟运行了哪些程序?以及这个程序是否有漏洞可供攻击?
扫描的动作是很容易辨认的,如果有人不断地开启你的主机上的端口,那么你就有理由怀疑有人正对你的主机进行剌探!有很多程序就是专门在做这件事情。一个称为Port Scanner(端口扫描器)的程序可以去自动连接某个IP地址上的所有端口,并且将这些端口上所传回的讯息显示出来。
一个有经验的网络工程师可以马上由几个端口看出这个IP地址上的电脑运行的是什么操作系统,以及所搭配的服务程序。在互联网上有许多端口扫描及刺探程序,利用这些程序任何人都可轻易得知对方的讯息,从而获得入侵的方向。
如果你的电脑是通过专线上网,一般都会有个固定的IP地址,这让入侵者更有充裕的时间去剌探并得知你电脑上的各项数据,对入侵者来说,入侵一台使用拨号上网的电脑比专线上网的电脑难多了。因为拨号使用者的连线时间不固定,IP地址也不固定,入侵者可能没有足够的时间去收集到足够的数据供判断该使用的入侵方式。
当有人对你的网络作扫描时,你会很明显地看到有某个IP地址不断地对你的电脑开启端口,然后再关掉,通常对方侦测程序会依照顺序开启端口,例如对方可能从端口1一直扫描到端口1023之类的……几乎没有什么应用程序会需要不断地开启某一范围内的端口,因此可以很轻易地断定这时有人在对你的网络进行刺探。
对于单一电脑或是整个网络的刺探活动。由于并不见得会占用多少带宽(除非原本的对外连线速度就不快),几乎不会有什么征兆让使用者察觉,(除非用户没事就不断地去查看目前网络的状态)。因此,如果要自动保护一个网络,比较好的方式是装上一个防火墙(关于防火墙的常识见《计算机应用文摘》2001年第1期),现在一般的防火墙系统都可以抵御一些常见攻击,例如端口扫描。很多防火墙系统会把发出扫描的IP地址“冷冻”一段时间,让该IP地址无法再和本地网络连接,以避免让对方收集到太多内部网络的数据。对于一般的个人用户,可以安装比如Lockdown 2000、Norton Personal Firewall之类的程序,来监测目前是否有不正当的网络活动在进行中。
当然,如果没有什么特别的需要,个人使用的电脑没事不要装太多服务程序是最好的,多一些服务程序,就多一些被攻击的风险!

2.网络连接攻击
入侵者如果没有办法找到你的主机上是否有些可供入侵的服务程序,那么他也可以很消极地通过不断地对你的主机开启许多连接来干扰你的主机正常工作。
网络连接攻击又可以分为大量数据流攻击(Mass-Data Attack)和大量服务要求攻击(Mass-Request Attack),这两种攻击方式都是不断发送出数据给受攻击对象并要求其作出回应来达到击倒对方主机的目的。
无论是IBM PC、Macintosh或是高端的工作站和服务器,不管速度或价格的差异有多少,基本上各种电脑的架构都一模一样:有CPU、内存和硬盘,一般CPU的运算都在内存中进行,但由于价格因素,一台电脑不能安装上容量巨大的内存,于是就有磁盘交换空间(Disk-Swap)的设计概念出现。操作系统可以将内存中的数据转放到硬盘上,空出内存空间给其他程序使用。等到程序又再次需要内存时,会把原先放进硬盘的内存数据内容重新读回内存。这种设计理念可以解决内存不够的问题,因为内存总是比硬盘贵得多。
拿硬盘空间当作内存不足的暂时交换空间是个无奈的权宜之计,其缺点就是硬盘虚拟内存慢太多了!所以只要实体内存用完,开始向硬盘交换数据时,系统速度就会明显地变慢。
网络连接攻击就是要利用此特点,消耗目标主机的系统资源,使目标主机变慢或死机,而且不管对什么电脑主机都有用!唯一的一个条件就是攻击者也必须要有相当的网络带宽,才能有足够的数据流量向目标主机攻击。

3.大量数据流攻击
系统上的某些服务如POP3这类让使用者收取电子邮件的服务,是必须经过使用者身份的认证才能让他人使用,所以不会有让任何人都可以随意开启连接的问题。
但有些服务是测试性的,不管任何人都可以使用,以用来测试网络连线状况。读者请参阅上面所附近的常用端口列表,有一个服务是echo(端口7),这个服务是只要有人连上这个端口以后,对方对这个端口输入任何字符,本地主机都要回应一样的字符。此端口一般用作测试网络连接速度。这个端口并不会对开启连接的人作任何身分确认,只要一连上就会开始作这个动作。因此,如果“居心叵测之人”开启了这个端口,则可以不断地塞入大量数据要求被攻击的目标回应一样的数据,进而将对方的网络带宽耗尽造成系统死机。由于这个问题,echo端口在最近的操作系统上几乎都已不再开放。
ping(Packet Internet Groper)这个命令也是一个有问题的地方,由于ping是用来测试网络连接状况与速度,而受测主机一定要回应一个数据包才能让测试者知道网络的状况,因此如果有人把ping的测试数据包加大,就会造成受测者也得回应一个一样大的数据包,同样导致受测端系统失误而导致系统停止回应。在某些系统上还存有更恐怖的Flood ping程序(洪水数据包测试程序),一般的ping程序每次送出一个数据包,都会暂停一秒,但此种程序却是连续不断的送出数据包,像洪水一样完全不停顿,不让受测主机有休息的机会,更容易导致系统失误。

4.大量服务要求攻击
Internet上有很多提供数据查询的主机,如各种搜索引擎的数据库,这类主机和单纯的网页主机不同,一般主机只是单纯地将使用者要求的网页传送出去,而数据查询主机可能要在一个庞大的数据库中作出各种搜索、比较以及排序的动作。因此此类主机的CPU运算速度,内存容量,以及硬盘周边外设的I/O动作都必须非常快速,也必须能同时承载相当多数的使用者连接要求。
当有使用者连上该类站点时,服务主机就必须要向数据库系统查询,再作出使用者所要求的各种数据处理(排序,关键字过滤……)每一个动作都需要耗费许多的CPU、内存与硬盘的工作时间,这类主机都相当重视反应速度,如果某位使用者今天连上yahoo.com查询某某字串却很久没有回应,搞不好他就会因为等不耐烦而转向lycos.com或者其他网站上查询数据;更糟糕的是,如果服务主机干脆死掉了,那肯定是会招来用户的严重抗议并导致大量用户的流失。
一个典型例子是:当有人对某查询主机提出一个查询要求,必然会耗掉该查询主机的系统资源:CPU必须要处理使用者的查询要求,并作排序等后续动作,系统也必须挪出内存空间来暂存使用者的查询要求与结果,而硬盘也必须要移动磁头去读取数据。
如果有人故意向某台主机发出了一大堆查询要求,企图耗尽对方的系统资源,那么当服务主机的内存耗之后,服务主机就只好开始使用硬盘虚拟内存来交换数据,于是开始出现反应缓慢甚至接近无反应的情形,如果连硬盘空间都耗尽了,或是系统因为无法处理如此庞大的数据流量,那么系统就会死掉,一切服务停止!
还有一点很重要的是,不管网络连线式攻击有没有成功,都会消耗相当多的带宽。因此,就算攻击没有打垮目标主机,也会让目标主机对外的连线速度变的缓慢,而影响到该主机对Inernet连接的速度,照样会引起使用者的抱怨,从而达到破坏此网站声誉的目的!

返回列表 回复 发帖