奇趣技术网 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 技术论坛
中华网络安全联盟 >> 安全技术 >> 入侵检测 >> 入侵检测技术剖析
安全技术
安全资讯
病毒预警
漏洞发布
安全教学
工具介绍
漏洞利用
病毒防范
入侵检测
防火墙
安全防范
汉化破解
攻击实例
加密解密
  • 主流入侵检测产品大比

  • 从漏洞及攻击分析到NI

  • 入侵检测及其对未来网

  • 向xp_cmdshell进军

  • 入侵检测(ID)FAQ(初级

  • Linux 9系统下构建小型

  • 无线入侵检测系统的应

  • 基于Windows的入门级I

  • 入侵检测技术剖析
    字体:

    中华网络安全联盟    作者:佚名    来源:网络    时间:2006-3-19

    来源:http://blog.yesky.com/Blog/redhorse/
    CNNIC发布的《中国互联网络发展状况统计报告》显示,中国现已有几千万上网用户。因此,越来越多的公司将其核心业务向互联网转移、服务成为当前IT业另一个生长点,但网络安全作为一个无法回避的问题呈现在人们面前。随着计算机网络知识的普及,攻击者越来越多,知识日趋成熟,攻击工具与手法日趋复杂多样,单纯的_blank">防火墙策略已经无法满足对安全高度敏感的部门的需要的,网络防卫必须采用一种纵深的、多样的手段。网络环境也变得越来越复杂,各式各样的复杂的设备,需要不断升级、补漏的系统使得网络管理员的工作不断加重,不经意的疏忽便有可能造成安全的重大隐患。于是,入侵检测系统成为了安全市场上新的热点,不仅愈来愈多的受到人们的关注,而且已经开始在各种不同的环境中发挥其关键作用。
      入侵检测系统(IDS)
      由于入侵检测系统的市场在近几年中飞速发展,许多公司投入到这一领域上来。Internet Security System(ISS)、思科、赛门铁克等公司都推出了自己的产品。
      系统组成
      IETF将一个入侵检测系统分为四个组件:事件产生器(Event generators);事件分析器(Event analyzers);响应单元(Response units );事件数据库(Event databases )。
      事件产生器的目的是从整个计算环境中获得事件,并向系统的其他部分提供此事件。事件分析器分析得到的数据,并产生分析结果。响应单元则是对分析结果作出作出反应的功能单元,它可以作出切断连接、改变文件属性等强烈反应,也可以只是简单的报警。事件数据库是存放各种中间和最终数据的地方的统称,它可以是复杂的数据库,也可以是简单的文本文件。
    系统分类
      根据检测对象的不同,入侵检测系统可分为主机型和网络型。
      基于主机的监测。主机型入侵检测系统就是以系统日志、应用程序日志等作为数据源,当然也可以通过其他手段(如监督系统调用)从所在的主机收集信息进行分析。主机型入侵检测系统保护的一般是所在的系统。这种系统经常运行在被监测的系统之上,用以监测系统上正在运行的进程是否合法。最近出现的一种ID(intrusion detection):位于操作系统的内核之中并监测系统的最底层行为。所有这些系统最近已经可以被用于多种平台。
      网络型入侵检测。它的数据源是网络上的数据包。往往将一台机子的网卡设于混杂模式(promisc mode),对所有本网段内的数据包并进行信息收集,并进行判断。一般网络型入侵检测系统担负着保护整个网段的任务。
      系统通信协议
      IDS系统内部各组件之间需要通信,不同厂商的IDS系统之间也需要通信。因此,有必要定义统一的协议。目前,IETF目前有一个专门的小组Intrusion Detection Working Group (idwg)负责定义这种通信格式,称作Intrusion Detection Exchange Format,但还没有统一的标准。
      以下是设计通信协议时应考虑的问题:1、系统与控制系统之间传输的信息是非常重要的信息,因此必须要保持数据的真实性和完整性。必须有一定的机制进行通信双方的身份验证和保密传输(同时防止主动和被动攻击)。2. 通信的双方均有可能因异常情况而导致通信中断,IDS系统必须有额外措施保证系统正常工作。
      入侵检测技术
      对各种事件进行分析,从中发现违反安全策略的行为是入侵检测系统的核心功能。从技术上,入侵检测分为两类:一种基于标志(signature-based),另一种基于异常情况(anomaly-based)。
      对于基于标识的检测技术来说,首先要定义违背安全策略的事件的特征,如网络数据包的某些头信息。检测主要判别这类特征是否在所收集到的数据中出现。此方法非常类似杀毒软件。
      而基于异常的检测技术则是先定义一组系统“正常”情况的数值,如CPU利用率、内存利用率、文件校验和等(这类数据可以人为定义,也可以通过观察系统、并用统计的办法得出),然后将系统运行时的数值与所定义的“正常”情况比较,得出是否有被攻击的迹象。这种检测方式的核心在于如何定义所谓的“正常”情况。
      两种检测技术的方法、所得出的结论有非常大的差异。基于异常的检测技术的核心是维护一个知识库。对于已知的攻击,它可以详细、准确的报告出攻击类型,但是对未知攻击却效果有限,而且知识库必须不断更新。基于异常的检测技术则无法准确判别出攻击的手法,但它可以(至少在理论上可以)判别更广范、甚至未发觉的攻击。
    入侵检测过程
      从总体来说,入侵检测系统可以分为两个部分:收集系统和非系统中的信息然后对收集到的数据进行分析,并采取相应措施。
      信息收集
      信息收集包括收集系统、网络、数据及用户活动的状态和行为。而且,需要在计算机网络系统中的若干不同关键点(不同网段和不同主机)收集信息,这除了尽可能扩大检测范围的因素外,还有一个就是对来自不同源的信息进行特征分析之后比较得出问题所在的因素。
      入侵检测很大程度上依赖于收集信息的可靠性和正确性,因此,很有必要只利用所知道的真正的和精确的软件来报告这些信息。因为黑客经常替换软件以搞混和移走这些信息,例如替换被程序调用的子程序、记录文件和其它工具。黑客对系统的修改可能使系统功能失常并看起来跟正常的一样。例如,unix系统的PS指令可以被替换为一个不显示侵入过程的指令,或者是编辑器被替换成一个读取不同于指定文件的文件(黑客隐藏了初试文件并用另一版本代替)。这需要保证用来检测网络系统的软件的完整性,特别是入侵检测系统软件本身应具有相当强的坚固性,防止被篡改而收集到错误的信息。入侵检测利用的信息一般来自以下三个方面(这里不包括物理形式的入侵信息):
      系统和网络日志文件
      黑客经常在系统日志文件中留下他们的踪迹,因此,可以充分利用系统和网络日志文件信息。日志中包含发生在系统和网络上的不寻常和不期望活动的证据,这些证据可以指出有人正在入侵或已成功入侵了系统。通过查看日志文件,能够发现成功的入侵或入侵企图,并很快地启动相应的应急响应程序。日志文件中记录了各种行为类型,每种类型又包含不同的信息,例如记录“用户活动”类型的日志,就包含登录、用户ID改变、用户对文件的访问、授权和认证信息等内容。很显然地,对用户活动来讲,不正常的或不期望的行为就是重复登录失败、登录到不期望的位置以及非授权的企图访问重要文件等等。
      非正常的目录和文件改变
      网络环境中的文件系统包含很多软件和数据文件,他们经常是黑客修改或破坏的目标。目录和文件中非正常改变(包括修改、创建和删除),特别是那些正常情况下限制访问的,很可能就是一种入侵产生的指示和信号。黑客经常替换、修改和破坏他们获得访问权的系统上的文件,同时为了隐藏系统中他们的表现及活动痕迹,都会尽力去替换系统程序或修改系统日志文件。
      非正常的程序执行
      网络系统上的程序执行一般包括操作系统、网络服务、用户启动的程序和特定目的的应用,例如WEB服务器。每个在系统上执行的程序由一到多个进程来实现。一个进程的执行行为由它运行时执行的操作来表现,操作执行的方式不同,它利用的系统资源也就不同。操作包括计算、文件传输、设备和其它进程,以及与网络间其它进程的通讯。
      一个进程出现了不期望的行为可能表明黑客正在入侵你的系统。黑客可能会将程序或服务的运行分解,从而导致它失败,或者是以非用户或管理员意图的方式操作。
    信号分析
      对收集到的有关系统、网络、数据及用户活动的状态和行为等信息,一般通过三种技术手段进行分析:模式匹配、统计分析和完整性分析。其中前两种方法用于实时的入侵检测,而完整性分析则用于事后分析。
      模式匹配
      模式匹配就是将收集到的信息与已知的网络入侵和系统已有模式数据库进行比较,从而发现违背安全策略的行为。该过程可以很简单(如通过字符串匹配以寻找一个简单的条目或指令),也可以很复杂(如利用正规的数学表达式来表示安全状态的变化)。一般来讲,一种进攻模式可以用一个过程(如执行一条指令)或一个输出(如获得权限)来表示。该方法的一大优点是只需收集相关的数据集合,显著减少系统负担,且技术已相当成熟。它与病毒_blank">防火墙采用的方法一样,检测准确率和效率都相当高。但是,该方法存在的弱点是需要不断的升级以对付不断出现的黑客攻击手法,不能检测到从未出现过的黑客攻击手段。
      统计分析
      统计分析方法首先给系统对象(如用户、文件、目录和设备等)创建一个统计描述,统计正常使用时的一些测量属性(如访问次数、操作失败次数和延时等)。在比较这一点上与模式匹配有些相象之处。测量属性的平均值将被用来与网络、系统的行为进行比较,任何观察值在正常值范围之外时,就认为有入侵发生。例如,本来都默认用GUEST帐号登录的,突然用ADMINI帐号登录。这样做的优点是可检测到未知的入侵和更为复杂的入侵,缺点是误报、漏报率高,且不适应用户正常行为的突然改变。具体的统计分析方法如基于专家系统的、基于模型推理的和基于神经网络的分析方法,目前正处于研究热点和迅速发展之中。
      完整性分析
      完整性分析主要关注某个文件或对象是否被更改,这经常包括文件和目录的内容及属性,它在发现被更改的、被特咯伊化的应用程序方面特别有效。完整性分析利用强有力的加密机制,称为消息摘要函数(例如MD5),它能识别哪怕是微小的变化。其优点是不管模式匹配方法和统计分析方法能否发现入侵,只要是成功的攻击导致了文件或其它对象的任何改变,它都能够发现。缺点是一般以批处理方式实现,用于事后分析而不用于实时响应。尽管如此,完整性检测方法还应该是网络安全产品的必要手段之一。例如,可以在每一天的某个特定时间内开启完整性分析模块,对网络系统进行全面地扫描检查。
    专家系统
      用专家系统对入侵进行检测,经常是针对有特征入侵行为,是较为智能的方法。专家系统主要是运用规则进行分析,规则即知识,不同的系统与设置具有不同的规则,且规则之间往往无通用性。专家系统的建立依赖于知识库的完备性,知识库的完备性又取决于审计记录的完备性与实时性。入侵的特征抽取与表达,是入侵检测专家系统的关键。在系统实现中,将有关入侵的知识转化为if-then结构(也可以是复合结构),条件部分为入侵特征,then部分是系统防范措施。运用专家系统防范有特征入侵行为的有效性完全取决于专家系统知识库的完备性。
      实现一例
      以下是在WINDOWS2000,VB6.0环境下测试通过的对本机的木马探测及常规扫描进行监听的简单程序。
      Dim tmpstr As String ’存放捕获的数据
      Dim NOW_OUT As Integer '总共出去连接的有几个Winsock
      Private Sub Command1_Click()
      ListPorts.AddItem txtADDPORT.Text ’把文本框中的端口增加到列表框中
      End Sub
      Private Sub Command2_Click()
      On Error Resume Next’如出错就在下一个端口重新开始监听
      If Command2.Caption = "监听" Then
      For i = 0 To ListPorts.ListCount – 1 ’如果命令框为‘监听’,则初始化要监听的端口数量I
      Load Winsock1(i + 1) ' 加载监听端口的winsock1数组控件
      Winsock1(i + 1).LocalPort = ListPorts.List(i) '使每一个WINSOCK数组变量对应一个端口
      Winsock1(i + 1).Listen '监听
      Next i
      Command2.Caption = "停止"
      Else
      For i = 1 To Winsock1.Count - 1
      Unload Winsock1(i)
      Next i ’假如caption 为停止,则卸载WINSOCK1数组控件
      For i2 = 1 To Winsock2.Count - 1
      Unload Winsock2(i2)
      Next i2
      Command2.Caption = "监听"
      End If
      End Sub
      Private Sub Command3_Click()
      Unload Me
      End Sub
    Private Sub Form_Load()
      txtLOG.Text = "日志:" & vbCrLf
      NOW_OUT = 1
      End Sub ’在窗体载入时初始化日志文件和连接变量
      Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
      Load Winsock2(NOW_OUT) '加载建立连接的Winsock2数组控件
      Winsock2(NOW_OUT).Accept requestID '建立连接
      Winsock1(Index).Close
      Winsock1(Index).Listen 'Winsock1继续监听
      NOW_OUT = NOW_OUT + 1 '连接的控件累加
      myAddLog "来自" & Winsock1(Index).RemoteHostIP & "连接到本地端口:" & Winsock1(Index).LocalPort'显示捕获的连接
      End Sub ’在WINSOCK2建立连接的同时,WINSOCK1进行监听远程扫描本地端口
      Private Sub Winsock2_DataArrival(Index As Integer, ByVal bytesTotal As Long)
      Winsock2(Index).GetData tmpstr '通过Getdata函数捕获数据
      myAddLog "来自" & Winsock2(Index).RemoteHostIP & "的数据:" & tmpstr '显示捕获的数据
      End Sub ’用WINSOCK2获取数据并加入到日志
      Sub myAddLog(tmptext As String) '加入日志
      tmptext = tmptext & vbCrLf
      txtLOG.SelStart = Len(txtLOG.Text)
      txtLOG.SelText = tmptext
      End Sub’自动增加日志内容,并高亮显示当前所捕捉到的数据
      程序说明:这是一个简单的监听程序,并不具有分析的功能,因此,它不是一个入侵检测系统,而是入侵检测系统的前半部分——数据收集。它是通过winsock(系统本身提供的组件)本身的功能,简单的实现对本地断口的监听和对到达本地的数据进行捕获。
      总结
      入侵检测作为一种积极主动地安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。入侵检测系统面临的最主要挑战有两个:一个是虚警率太高,一个是检测速度太慢。现有的入侵检测系统还有其他技术上的致命弱点。因此,可以这样说,入侵检测产品仍具有较大的发展空间,从技术途径来讲,除了完善常规的、传统的技术(模式识别和完整性检测)外,应重点加强统计分析的相关技术研究。
      但无论如何,入侵检测不是对所有的入侵都能够及时发现的,即使拥有当前最强大的入侵检测系统,如果不及时修补网络中的安全漏洞的话,安全也无从谈起。
    字体:
     
    设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
    Copyright©2006-2008 中华网络安全联盟 All rights reserved.