在网络安全领域,随着***应用技术的不断“傻瓜化”,***检测系统ids的地位正在逐渐增加。一个网络中,只有有效实施了ids,才能敏锐地察觉***者的侵犯行为,才能防患于未然!本文对ids的概念、行为及策略等方面内容以问答形式进行全面介绍,期望帮助管理者更快和更好地使用ids。

  问:都有哪些重要的ids系统?

  根据监测对象不同,ids系统分为很多种,以下是几种很重要的ids系统:

  1、nids

  nids是network intrusion detection system的缩写,即网络***检测系统,主要用于检测hacker或cracker通过网络进行的***行为。

  nids的运行方式有两种,一种是在目标主机上运行以监测其本身的通讯信息,另一种是在一台单独的机器上运行以监测所有网络设备的通讯信息,比如hub、路由器。

  2、siv

  siv是system integrity verifiers的缩写,即系统完整性检测,主要用于监视系统文件或者windows 注册表等重要信息是否被修改,以堵上***者日后来访的后门。siv更多的是以工具软件的形式出现,比如“tripwire”,它可以检测到重要系统组件的变换情况,但并不产生实时的报警信息。

  3、lfm

  lfm是log file m

  4、h

  蜜罐系统,也就是诱骗系统,它是一个包含漏洞的系统,通过模拟一个或多个易受***的主机,给***提供一个容易***的目标。由于蜜罐没有其它任务需要完成,因此所有连接的尝试都应被视为是可疑的。蜜罐的另一个用途是拖延***者对其真正目标的***,让***者在蜜罐上浪费时间。与此同时,最初的***目标受到了保护,真正有价值的内容将不受侵犯。蜜罐最初的目的之一是为起诉恶意***搜集证据,这看起来有“诱捕”的感觉。

  问:谁是***者?

  通常我们将***者称为hacker,但实际上这是不准确的。可以这么说:hacker是发现系统漏洞并修补漏洞的,cracker才是利用漏洞占山头搞破坏的***者。为了不混淆视听,在此干脆统一叫作***者吧。一般来说,***者分为两类:内部和外部。内部***者通常利用社会工程学盗用非授权帐户进行非法活动,比如使用其他人的机器、冒充是处长或局长;外部***者则要借助一定的***技术对***目标进行监测、查漏,然后采取破坏活动。

  有一点请牢记:统计表明,***行为有80%来自内部。

  问:***者如何进入系统?

  主要有三种方式:

  1、物理***

  指***者以物理方式访问一个机器进行破坏活动,例如趁人不备遛进机房重地赶紧敲打两下键盘试图闯入操作系统、拿着钳子改锥卸掉机器外壳“借”走硬盘装在另一台机器上进行深入研究。

  2、系统***

  指***者在拥有系统的一个低级账号权限下进行的破坏活动。通常,如果系统没有及时“打”最近的补丁程序,那么拥有低级权限的用户就可能利用系统漏洞获取更高的管理特权。

  3、远程***

  指***者通过网络***到一个系统中。这种情况下,***者通常不具备任何特殊权限,他们要通过漏洞扫描或端口扫描等技术发现***目标,再利用相关技术执行破坏活动。nids主要针对的就是这种***。

  问:***者为何能闯入系统?

  苍蝇不盯无缝的蛋,***者只要找到复杂的计算机网络中的一个缝,就能轻而易举地闯入系统。所以,了解这些缝都有可能在哪里,对于修补它们至关重要。通常,裂缝主要表现在软件编写存在bug、系统配置不当、口令失窃、明文通讯信息被监听以及初始设计存在缺陷等方面。

  1、软件编写存在bug

  无论是服务器程序、客户端软件还是操作系统,只要是用代码编写的东西,都会存在不同程度的bug。bug主要分为以下几类:

  缓冲区溢出:指***者在程序的有关输入项目中了输入了超过规定长度的字符串,超过的部分通常就是***者想要执行的***代码,而程序编写者又没有进行输入长度的检查,最终导致多出的***代码占据了输入缓冲区后的内存而执行。别以为为登录用户名留出了200个字符就够了而不再做长度检查,所谓防小人不防君子,***者会想尽一切办法尝试***的途径的。

  意料外的联合使用问题:一个程序经常由功能不同的多层代码组成,甚至会涉及到最底层的操作系统级别。***者通常会利用这个特点为不同的层输入不同的内容,以达到窃取信息的目的。例如:对于由perl编写的程序,***者可以在程序的输入项目中输入类似“  mail < /etc/passwd”的字符串,从而使perl让操作系统调用邮件程序,并发送出重要的密码文件给***者。借刀杀人、借mail送“信”,实在是高!

  不对输入内容进行预期检查:有些编程人员怕麻烦,对输入内容不进行预期的匹配检查,使***者输送×××的工作轻松简单。

  race c c

  2、系统配置不当

  默认配置的不足:许多系统安装后都有默认的安全配置信息,通常被称为easy to use。但遗憾的是,easy to use还意味着easy to break in。所以,一定对默认配置进行扬弃的工作。

  管理员懒散:懒散的表现之一就是系统安装后保持管理员口令的空值,而且随后不进行修改。要知道,***者首先要做的事情就是搜索网络上是否有这样的管理员为空口令的机器。

  临时端口:有时候为了测试之用,管理员会在机器上打开一个临时端口,但测试完后却忘记了禁止它,这样就会给***者有洞可寻、有漏可钻。通常的解决策略是:除非一个端口是必须使用的,否则禁止它!一般情况下,安全审计数据包可用于发现这样的端口并通知管理者。

  信任关系:网络间的系统经常建立信任关系以方便资源共享,但这也给***者带来借牛打力、间接***的可能,例如,只要攻破信任群中的一个机器,就有可能进一步***其他的机器。所以,要对信任关系严格审核、确保真正的安全联盟。

  3、口令失窃

  弱不禁破的口令:就是说虽然设置了口令,但却简单得再简单不过,狡猾的***者只需吹灰之力就可破解。

  字典***:就是指***者使用一个程序,该程序借助一个包含用户名和口令的字典数据库,不断地尝试登录系统,直到成功进入。毋庸置疑,这种方式的关键在于有一个好的字典。

  暴力***:与字典***类似,但这个字典却是动态的,就是说,字典包含了所有可能的字符组合。例如,一个包含大小写的4字符口令大约有50万个组合,1个包含大小写且标点符号的7字符口令大约有10万亿组合。对于后者,一般的计算机要花费大约几个月的时间才能试验一遍。看到了长口令的好处了吧,真正是一两拨千斤啊!

  4、嗅探未加密通讯数据

  共享介质:传统的以太网结构很便于***者在网络上放置一个嗅探器就可以查看该网段上的通讯数据,但是如果采用交换型以太网结构,嗅探行为将变得非常困难。

  服务器嗅探:交换型网络也有一个明显的不足,***者可以在服务器上特别是充当路由功能的服务器上安装一个嗅探器软件,然后就可以通过它收集到的信息闯进客户端机器以及信任的机器。例如,虽然不知道用户的口令,但当用户使用telnet软件登录时就可以嗅探到他输入的口令了。

  远程嗅探:许多设备都具有rmon(remote m community strings)进行远程调试。随着宽带的不断普及,***者对这个后门越来越感兴趣了。

  5、tcp/ip初始设计存在缺陷

  即使软件编写不出现bug,程序执行时也按照正确的步骤进行,但初始设计存在缺陷仍会导致***者的***。tcp/ip协议现在已经广为应用、大行其道了,但是它却是在***者猖狂肆虐的今天之很早以前设计出来的。因此,存在许多不足造成安全漏洞在所难免,例如smurf***、icmp unreachable数据包断开、ip地址欺骗以及syn湮没。然而,最大的问题在于ip协议是非常容易“轻信”的,就是说***者可以随意地伪造及修改ip数据包而不被发现。幸好,大救星ipsec协议已经开发出来以克服这个不足。

问:***者如何获取口令?

  1、监听明文口令信息

  大量的通讯协议比如telnet、ftp、基本http都使用明文口令,这意味着它们在网络上是赤裸裸地以未加密格式传输于服务器端和客户端,而***者只需使用协议分析器就能查看到这些信息,从而进一步分析出口令,成为真用户的克隆。

  2、监听加密口令信息

  当然,更多的通讯协议是使用加密信息传输口令的。这时,***者就需要借助字典或者采用暴力***法来解密了。注意,我们并不能察觉到***者的监听行为,因为他在暗处,是完全被动的,没有发送任何信息到网络上,***者的机器仅被用于分析这些口令信息。

  3、重放***(replay attack)

  这又是一种间接的***方式,就是说:***者不必对口令进行解密,需要的是重新编写客户端软件以使用加密口令实现系统登录。

  4、窃取口令文件

  口令文件通常都保存在一个单独的文件中,例如unix系统的口令文件是/etc/passwd(也可能是那个文件的镜像),winnt系统的口令文件是/winnt/system32/c

  5、观察

  用户可能由于设置的口令复杂难记而将它写在一张纸上压在键盘下随时查看,或者在输入口令的时候不管身后有没有站着一位“看客”。***者的搜索力与记忆力都非常好,这些操作习惯对他们来说简直就是轻松练兵。所以,别忽视***者的眼睛!

  6、社会工程

  前面提到过这个问题,社会工程就是指采用非隐蔽方法盗用非授权帐户进行的非法活动,比如使用其他人的机器、冒充是处长或局长骗取管理员信任得到口令等等。记住:如果有人想要你的口令,无论他说是为了什么,请记住他,一旦发生了关于口令的案件,那个人就是头号嫌疑犯!

  问:典型的***场景有哪些?

  所谓***场景,就是指***者都会从哪些方面采取哪些步骤尝试***系统。典型的***画面是这样一幕幕展开的:

  1、外部调研

  知己知彼,百战不殆。***者***的第一步就是尽一切可能对***目标进行调研以获取充足的资料。采取的方法包括:使用whois工具获取网络注册信息;使用nslookup或dig工具搜索dns表以确定机器名称;搜索关于公司的公开新闻。这一步对于被***者是完全不知的。

  2、内部分析

  确定了***目标的基本属性(站点地址、主机名称),***者将对它们进行深入剖析。方法有:遍历每个web页面搜索是否存在cgi漏洞;使用ping工具一一探寻“活”着的机器;对目标机器执行udp/tcp扫描以发现是否有可用服务。这些行为都属于正常的网络操作,还不能算作***行为,但是nids系统将能够告诉管理者“有人正在撼动门把手……”

  3、漏洞利用

  现在到了开始动手的时候了!破坏花样实在繁多,在此择优列举如下:通过在输入项目中写入壳命令字符串(shell command)来考验cgi脚本的安全性;通过发送大量数据以确定是否存在臭名昭著的缓冲区溢出漏洞;尝试使用简单口令破解登录障碍。当然,混合使用多种方式是攻占成功的不二法门。

  4、站稳脚跟

  对于***者而言,一旦成功地***了网络中的一台机器,就可以说是站稳脚跟了。***者现在要做的就是隐藏***痕迹并制造日后再攻的后门,这就需要对日志文件或其他系统文件进行改造,或者安装上***程序、或者替换系统文件为后门程序。这时,siv(系统完整性检测)系统会注意到这些文件的变化。由于内部网络中的安全措施通常都比较少,进一步地,***者将以这第一台机器作为跳板,***网络中的其他机器,寻找下一个安身之家。

  5、享受成果

  到此,***者可以说是完成了***任务,剩下的就是享受成果了:或者对窃取的秘密文件肆意使用、或者滥用系统资源、或者篡改web页面内容,甚至将你的机器作为跳板***其他机器。

  以上讨论是的有目的***者的通常行为。还有一种***场景通常被称为“birthday attack”,我想其含义是模拟生日时接收到许多熟人或者未知朋友的礼物吧,不过用在这里还要在礼物前加上“***”两字了。birthday attack的一般步骤是:随机搜索一个internet地址;搜索其上是否有指定的漏洞;如果有,根据已知的漏洞利用方法进行***。