入侵检测技术可实时监控网络传输,自动检测可疑行为,分析来自网络外部入侵信号和内部的非法活动,在系统受到危害前发出警告,对攻击做出实时的响应,并提供补救措施,最大程度地保障系统安全。

6.1 入侵检测概述

所谓入侵检测是指试图监视和尽可能阻止有害信息的入侵,或其他能够对用户的系统和网络资源产生危害的行为。简单地 说,它是这样工作的:用户有一个计算机系统,它与网络连接着,也许也同互联网连接。由于一些原因,允许网络上的授权用户访问该计算机。比如说,有一个连接 着互联网的Web服务器,允许自己的客户、员工和一些潜在的客户,访问存放在该Web服务器上的Web页面。

入侵检测可以采取更多的措施,大致有以下几种。

①放置在防火墙和一个安全系统之间,基于网络的入侵检测系统,就能够给该系统提供另外层次的保护。

②监视从互联网上来的对安全系统的敏感数据端口的访问,可以判断防火墙是否被攻破,或是否采取一种未知的技巧来绕过防火墙的安全机制,从而访问被保护的网络。

入侵检测系统分为基于网络的入侵检测系统、基于主机的入侵检测系统、基于漏洞的入侵检测系统等3种类型。

6.2 基于网络的入侵检测系统

基于网络的入侵检测结构

基于网络的入侵检测,这种类型一般安装在需要保护的网段中,利用网络侦听技术实时监视网段中传输的各种数据包, 并对这些数据包的内容、源地址、目的地址等进行分析和检测。如果发现入侵行为或可疑事件,入侵检测系统就会发出警报甚至切断网络连接,其整个入侵检测结构 如右图所示。网络接口卡(NIC)可以在如下2种模式下工作。

·正常模式。需要发送向计算机(通过包的以太网或MAC地址进行判断)的数据包,通过该主机系统进行中继转发。

·混杂模式。此时以太网上所能见到的数据包都向该主机系统中继。

一块网卡可以从正常模式向混杂模式转换,通过使用操作系统的底层功能就能直接告诉网卡进行改变。通常,基于网络的入侵检测系统要求网卡处于混杂模式。

6.2.1 包嗅探器和网络监视器

包嗅探器和网络监视器的最初设计目的是帮助监视以太网络的通信。最早有2种产品:Novell LANalyser和[M$]Network Monitor。这些产品可以抓获所有网络上能够看到的包,一旦抓获了这些数据包,就可以进行如下工作。

·可以对包进行统计。统计通过的数据包,并统计该时期内通过的数据包的总的大小(包括总的开销,例如包的报头),可很好地知道网络的负载状况。LANalyser和[M$]Network Monitor都提供了网络相关负载的图形化或图表表现形式。

·可以详细地检查包。如可抓获一系列到达Web服务器的数据包来诊断服务器的问题。

近年来,包嗅探产品已经成了独立的产品。程序(例如Ethereal和Network Monitor的最新版本)可以对内部各种类型的包进行拆分,从而可以知道包内部发生了什么类型的通信。这些工具同时也能被用来进行破坏活动。

6.2.2 包嗅探器和混杂模式

所有的包嗅探器都要求网络接口运行在混杂模式下。只有运行在混杂模式下,包嗅探器才能接收通过网络接口卡的每个包。在安装包嗅探器的机器上运行包嗅探器通常需要管理员的权限,这样,网卡的硬件才能被设置为混杂模式。

另外一点需要考虑的是:在交换机上使用。在一个网络中,它比集线器使用得更多。注意,在交换机的一个接口上收到的数据包不总是被送向交换机的其他接口。由于这种原因,使用交换机多的环境(比都使用集线器的环境)通常可以击败包嗅探器的使用。

6.2.3 基于网络的入侵检测

从安全的观点来看,包嗅探器所带来的好处很少。抓获网络上的每个数据包,拆分该包,然后再根据包的内容手工采取相应的反应,太浪费时间,有什么软件可以自动为我们执行这些程序呢(毕竟,这是计算机所做的第一个方面)?

这就是基于网络的入侵检测系统主要做的。有两种类型的软件包可以用来进行这类的入侵检测,那就是:ISS Real Secure Engine和Network Flight Recorder。

识别各种各样有可能是欺骗攻击的IP。将IP地址转化为MAC地址的ARP协议通常就是一个攻击目标。如果在一个以 太网上发送伪造的ARP数据包,一个已经获得系统访问权限的入侵者就可以假装是一个不同的系统在进行操作。这将会导致各种各样的拒绝服务攻击,也叫系统劫 持。入侵者可以使用欺骗攻击将数据包重定向到自己的系统中,同时在一个安全的网络上进行中间类型的攻击来进行欺骗的。

通过对ARP数据包的纪录,基于网络的入侵检测系统就能识别出受害的源以太网地址和判断是否是一个破坏者。当检测到 一个不希望看到的活动时,基于网络的入侵检测系统将会采取行动,包括干涉从入侵者处发来的通信或重新配置附近的防火墙策略,来封锁从入侵者的计算机或网络 发来的所有的通信。

6.3 基于主机的入侵检测系统

基于主机的入侵检测系统运行在需要监视的系统上。它们监视系统并判断系统上的活动是否可接受。如果一个网络数据 包已经到达它要试图进入的主机,要想准确地检测出来并进行阻止,除防火墙和网络监视器外,还可用第三道防线来阻止,即“基于主机的入侵检测”,其入侵检测 结构如右图所示。

2种基于主机的入侵检测类型如下。

基于主机的入侵检测结构

·网络监视器。它监视进来的主机的网络连接,并试图判断这些连接是否是一个威胁。并可检查出网络连接表达 的一些试图进行的入侵类型。记住,这与基于网络的入侵检测不同,因为它只监视它所运行的主机上的网络通信,而不是通过网络的所有通信。基于此种原因,它不 需要网络接口处于混杂模式。

·主机监视器。它监视文件、文件系统、日志或主机其他部分,查找特定类型的活动,进而判断是否是一个入侵企图(或一个成功的入侵)之后,通知系统管理员。

1.监视进来的连接

在数据包到达主机系统的网络层之前,检查试图访问主机的数据包是可以的。这种机制试图在到达的数据包能够对主机造成破坏之前,截获该数据包而保护该主机。

可以采取的活动主要如下。

·检测试图与未授权的TCP或UDP端口进行的连接。如果试图连接没有服务的端口,这通常表明入侵者在搜索查找漏洞。

·检测进来的端口扫描。再一次,这是个一定要对付的问题,并给防火墙发警告或修改本地的IP配置以拒绝从可能的入侵者主机来的访问。

可以执行这种监视类型的2种软件产品分别是ISS公司的Real Secure和Port Sentry。

2.监视登录活动

尽管管理员已经进了最大努力,同时刚刚配置并不断检查入侵检测软件,但仍然可能有某些入侵者采取目前不知道的入侵攻击方法来进入系统。一个攻击者可以通过各种方法(包嗅探器或其他)获得一个网络密码,从而有可能进入该系统。

查找系统上的不一般的活动是一个如Host Sentry软件的工作。这种类型的包监视器尝试登录或退出,从而给系统管理员发送警告,该活动是不一般的或不希望的。

3.监视Root的活动

获得要进行破坏的系统超级用户(Root)或管理员的访问权限,是所有入侵者的目标。除了在特定的时间内对系统 进行定期维护外,对如Web服务器或数据库服务器,进行良好的维护和在可靠的系统上对超级用户进行维护,通常是几乎没有或很少进行的活动。但入侵者不信任 系统维护,他们很少在定期的维护时间工作,而经常是在上面进行很长时间的活动。他们在该系统上执行很多不一般的操作,有时候比系统管理员的都多。

4.监视文件系统

一旦一个入侵者侵入了一个系统(虽然已尽最大努力使得入侵检测系统发挥最佳效果,但也不能完全排除入侵者侵入系 统的可能性),就要改变系统的文件。如:一个成功入侵者可能想要安装一个包嗅探器或者端口扫描检测器,或修改一些系统文件或程序,使得不能检测出他们在周 围进行的入侵活动。在一个系统上安装软件通常包括修改系统的某些部分,这些修改通常是要修改系统上的文件或库。

6.4 基于漏洞的入侵检测系统

黑客利用漏洞进入系统,再悄然离开,整个过程可能系统管理员毫无察觉,等黑客在系统内胡作非为后再发现已为时已晚。 为防患于未然,应对系统进行扫描,发现漏洞及时补救。流光在国内的安全爱好者心中可以说是无人不晓,它不仅仅是一个安全漏洞扫描工具,更是一个功能强大的 透渗测试工具。流光以其独特的C/S结构设计的扫描设计颇得好评。

6.4.1 运用流光进行批量主机扫描

因为流光的使用功能较多,所以对初学者来说显得稍微有点儿烦琐,不过幸好这个过程需要的时间不会太久。下面将为大家详细讲述用流光扫描主机漏洞的方法,具体操作步骤如下。

STEP01:运行“流光”软件

STEP02:打开“设置”对话框

STEP03:打开“PORTS”对话框

STEP04:依次打开“POP3”、“FTP”、“SMTP”、“IMAP”对话框

STEP05:打开“TELNET”对话框

STEP06:打开“CGI Rules”对话框

STEP07:依次打开“SQL”、“IPC”、“IIS”、“MISC”的话框

STEP08:打开“PLUGINS”对话框“MISC”对话框

STEP09:打开“选择流光主机”对话框

STEP10:程序开始进行扫描

提示

流光的扫描引擎既可以安装在不同的主机上,也可以直接从本地启动。如果没有安装过任何扫描引擎,流光将使用默认的本地扫描引擎。

STEP11:当扫描到安全漏洞时,流光会弹出一个“探测结果”窗口,在其中可以看到能够连接成功的主机和其扫描到的安全漏洞信息。

6.4.2 运用流光进行指定漏洞扫描

很多时候并不需要对指定主机进行全面扫描,而是根据需要对指定的主机漏洞进行扫描。比方说只想扫描指定主机是否具有FTP方面的漏洞,是否有CGI方面的漏洞等。具体的操作步骤如下。

STEP01:加入需要破解的站点名称

STEP02:打开“添加主机”对话框

STEP03:在流光中添加用户和密码的字典

STEP04:打开“打开”对话框

STEP05:双击“显示所有项目”项

STEP06:选用用户名

STEP07:按“Ctrl+F7”组合键,即可令流光开始FTP的弱口令探测。当流光探测到弱口令后,在主窗口下方将会出现探测出的用户名、密码和FTP地址。

6.5 萨客嘶入侵检测系统

萨客嘶入侵检测系统是基于协议分析,采用了快速的多模式匹配算法,能对当前复杂高速的网络进行快速精确分析。在网络安全和网络性能方面可以提供全面和深入的数据依据,是企业、政府、学校等机构进行多层次防御的重要产品。具体的操作步骤如下。

STEP01:运行萨客嘶入侵检测系统

STEP02:打开“设置”对话框

提示

因为该检测系统是通过适配器来捕捉网络中正在传输的数据,并对其进行分析,所以正确选择网卡是能够捕捉到入侵的关键一步。

STEP03:对本机所在的局域网所有的主机进行监控

可以看到检测到主机的IP地址、对应的MAC地址、本机的运行状态以及数据包统计、TCP连接情况、FTP分析等信息。

STEP04:切换至“会话”选项卡

可看到在监控时,进行会话的源IP地址、源端口、目标IP地址、目标端口、使用到的协议类型、状态、事件、数据包、字节等信息。

STEP05:分类查看会话信息

STEP06:打开“增加别名”对话框

STEP07:自定义的物理地址名称

查看该物理地址刚自定义的名称。

STEP08:在“入侵”选项卡下查看事件

STEP09:切换至“日志”选项卡

STEP10:打开“表格显示定义”对话框

STEP11:返回主界面

STEP12:打开“详细设置”对话框

STEP13:选择“入侵分析器”选项

STEP14:返回主界面

STEP15:打开“别名设置”对话框

STEP16:返回主界面

STEP17:打开“入侵规则设置”对话框

对各种入侵规则进行添加规则、删除规则、增加选项、删除选项等。

该检测系统可检测出用户网络中存在的黑客入侵、网络资源滥用、蠕虫攻击、后门木马、ARP欺骗、拒绝服务攻击等各种威胁。同时,可以根据策略配置主动切断危险行为,对目标网络进行保护。

6.6 Snort入侵检测系统

Snort是一个基于libpcap的轻量级网络入侵检测系统,可记录所有可能的入侵企图。记录信息的文件可以是文本、XML、libpcap格式,也可以把信息记录到syslog或数据库中。

6.6.1 Snort的系统组成

Snort运行在一个“传感器(sensor)”主机上,可监听网络数据。Snort还是一个自由、简洁、快速、易 于扩展的入侵检测系统,已经被移植到各种平台中,如Windows平台、UNIX平台等。Snort的主要功能有3种:数据包嗅探器、数据包记录器、网络 入侵检测。

Snort主要由如下部分组成。

1.数据包解码器

数据包解码器主要是对各种协议栈上的数据包进行解析、预处理,以便提交给检测引擎进行规则匹配。

2.检测引擎

Snort用一个二维链表存储其检测规则,一维称为规则头,另一维称为规则选项。规则匹配查找采用递归法进行,检测机制只针对当前已经建立的链表选项进行检测。

3.日志子系统

Snort可供选择的日志形式有文本形式、二进制形式、关闭日志服务3种。

4.报警子系统

报警形式有5种:报警信息可发往系统日志、用文本形式记录到报警文件中去、用二进制形式记录到报警文件中去、通过Samba发送WinPopup信息和关闭报警。其中关闭报警什么也不做。

6.6.2 Snort命令介绍

虽然已出现了Windows平台基于Snort.exe程序的图形窗口控制程序idscenter.exe,但还是不可避免还需要使用命令,下面详细介绍Snort命令及其参数的作用。

Snort的命令行的通用形式为:Snort-[options]

各个参数功能如下。

·-A:选择设置警报的模式为full、fast、unsock和none。full模式是默认警报模 式,它记录标准的alert模式到alert文件中;fast模式只记录时间戳、消息、IP地址、端口到文件中;unsock是发送到Unix socket;none模式是关闭报警。

·-a:显示ARP包。

·-b:以Tcpdump格式记录LOG的信息包,所有信息包都被记录为二进制形式。用这个选项记录速度相对较快,因为它不需要把信息转化为文本的时间。

·-c:使用配置文件,这个规则文件是告诉系统什么样的信息要LOG,或报警或通过。

·-C:只用ASCII码来显示数据报文负载,不用十六进制。

·-d:显示应用层数据。

·-D:使snort以守护进程形式运行,警报将默认被发送到/var/log/snort.alert文件中去。

·-e:显示并记录第二层信息包头数据。

·-F:从文件中读BPF过滤器(filter)。

·-g:snort初始化后使用用户组标志(group ID),这种转换使得Snort放弃了在初始化必须使用Root用户权限从而更安全。

·-h:使用这个选项Snort会用箭头的方式表示数据进出的方向。

·-i:在网络接口上监听。

·-I:添加第一个网络接口名字到警报输出。

·-l:把日志信息记录到目录中去。

·-L:设置二进制输出的文件名。

·-m:设置所有Snort输出文件的访问掩码。

·-M:发送WinPopup信息到包含文件存在的工作站列表中,该选项需Samba支持。

·-n:是指定在处理数据包后退出。

·-N:关闭日志记录,但ALERT功能仍旧正常工作。

·-o:改变规则应用到数据包上的顺序。正常情况下采用Alert→Pass→Log order,而采用此选项的顺序是Pass→Alert→Log order。其中Pass是那些允许通过的规则,ALERT是不允许通过的规则,LOG指日志记录。

·-O:使用ASCII码输出模式时本地网IP地址被代替成非本地网IP地址。

·-p:关闭混杂(Promiscuous)嗅探方式,一般用来更安全地调试网络。

·-P:设置Snort的抓包截断长度。

·-r:读取tcpdump格式的文件。

·-s:把日志警报记录到syslog文件,在Linux中警告信息会记录在/var/log/secure,在其他平台上将出现在/var/log/message中。

·-S:设置变量n=v的值,用来在命令行中定义Snort rules文件中的变量,如要在Snort rules文件中定义变量HOME_NET,用户可以在命令行中给它预定义值。

·-t:初始化后改变Snort的根目录到目录。

·-T:进入自检模式,Snort将检查所有的命令行和规则文件是否正确。

·-u:初始化后改变Snort的用户ID。

·-v:显示TCP/IP数据报头信息。

·-V:显示Snort版本并退出。

·-y:在记录的数据包信息的时间戳上加上年份。

·-?:显示Snort简要的使用说明并退出。

6.6.3 Snort的工作模式

Snort拥有3种工作模式,分别为:嗅探器模式、分组日志模式与网络入侵检测模式。

1.嗅探器模式

Snort使用Libpcap包捕获库,即TCPDUMP使用的库。在这种模式下,Snort使用网络接口的混杂模式读取并解析共享信道中的网络分组。该模式的命令如下。

·./snort-v:显示TCP/IP等的网络数据包头信息在屏幕上。

·./snort-vd:显示较详细的包括应用层的数据传输信息。

·./snort-vde:显示更详细的包括数据链路层的数据信息。

2.分组日志模式

如果要把这些数据信息记录到硬盘上并指定到一个目录中,就需要使用Packet Logger模式。该模式的命令如下。

·./snort-vde-l./log:把snort抓到的数据链路层、TCP/IP报头、应用层的所有信息存入当前文件夹的“log”目录中(如果“log”目录存在),这里的“log”目录用户可以位置而更换。

·./snort-vde-l./log-h 192.168.1.0/24:记录192.168.1.0/24这个C类网络的所有进站数据包信息到“log”目录中去,其“log”目录中的子目录名按计算机的IP地址为名以相互区别。

·./snort-l./log-b:记录Snort抓到的数据包并以TCPDUMP二进制的格式存放 到"log"目录中,而Snort一般默认的日志形式是ASCII文本格式。ASCII文本格式便于阅读,二进制的格式转化为ASCII文本格式无疑会加 重工作量,所以在高速的网络中,由于数据流量太大,应该采用二进制的格式。

·./snort-dvr packet.log:此命令是读取“packet.log”日志中的信息到屏幕上。

3.网络入侵检测模式(NIDS)

网络入侵检测模式是用户最常用到的模式,是用户需要掌握的重点。这种模式其实混合了嗅探器模式和分组日志模式,且需要载入规则库才能工作。

该模式的命令格式为:./snort-vde-l./log-h 192.168.1.0/24-c snort.conf

该命令表示载入“snort.conf”配置文件,并将192.168.1.0/24此网络的报警信息记录到. /log中去。这里的“snort.conf”文件可以换成用户自己的配置文件,载入snort.conf配置文件后Snort将会应用设置在 snort.conf中的规则去判断每一个数据包以及性质。如果没有用参数–l指定日志存放目录,系统默认将报警信息放入/var/log/snort目 录下。还有如果用户没有记录链路层数据的需要或要保持Snort的快速运行,可以把-v和-e关掉。

关于网络入侵检测模式还需要注意它的警报输出选项,Snort有多种警报的输出选项,其命令格式 为:./snort-A fast-l./log-h 192.168.1.0/24-c snort.conf。它表示载入“snort.conf”配置文件,启用fast警报模式,以默认ASCII格式将192.168.1.0/24此网络 的报警信息记录到./log中去。这里的fast可以换成full、none等,但在大规模高速网络中最好用fast模式。

若命令格式为:./snort-s-b-l./log-h 192.168.1.0/24-c snort.conf,表示以二进制格式将警报发送给syslog,其余的与上面的命令一样。需要注意的是,警报的输出模式虽然有6种,但用参数-A设置 的只有4种,其余的syslog用参数s,smb模式用参数M。

posted on 2015-11-02 18:07  黑白程序  阅读(3554)  评论(1编辑  收藏  举报