入侵检测模型
摘要:描述了一个实时入侵检测专家系统的模型,该系统能够检测入侵、渗透和其他形式的计算机滥用。该模型基于这样一个假设,即可以通过监视系统的审计记录来检测系统使用的异常模式,从而检测到安全违规行为。该模型包括用指标和统计模型表示受试者相对于对象的行为的配置文件,以及从审计记录中获取有关该行为的知识和检测异常行为的规则。该模型独立于任何特定的系统、应用程序环境、系统漏洞或入侵类型,从而为通用入侵检测专家系统提供了一个框架。
关键词:异常行为、审计、入侵、监控、配置文件、安全、统计方法。
Denning D E. An intrusion-detection model[J]. IEEE Transactions on software engineering, 1987 (2): 222-232.
CCF A
引用量:5861次
美国 海军研究生院
本文描述了一个实时入侵检测专家系统的模型,该系统旨在检测范围广泛的安全违规行为,从外部人员试图入侵到内部人员的系统渗透和滥用。开发实时入侵检测系统的动机有四个:
1)大多数现有系统都有安全缺陷,容易受到入侵、渗透和其他形式的滥用;由于技术和经济原因,发现并修复所有这些缺陷是不可行的;
2) 具有已知缺陷的现有系统不容易被更安全的系统所取代,主要是因为这些系统具有更安全的系统所缺少的吸引人的功能,或者由于经济原因无法被取代;
3) 开发绝对安全的系统是极其困难的,如果不是通常不可能的话;
4)即使是最安全的系统也容易受到内部人员滥用特权的侵害。
该模型基于这样一个假设,即系统漏洞的利用涉及系统的异常使用;因此,可以从系统使用的异常模式中检测到安全违规。以下示例说明:
当然,上述形式的异常使用也可能与与安全无关的操作相关联。它们可能是用户改变工作任务、获得新技能或犯打字错误的迹象;软件更新;或更改系统上的工作负载。我们当前研究的一个重要目标是确定哪些活动和统计指标提供了最佳的辨别能力;也就是说,具有高检测率和低误报率。
该模型独立于任何特定的系统、应用程序环境、系统漏洞或入侵类型,从而为通用入侵检测专家系统(我们称之为IDES)提供了一个框架。我们的最终报告【1】中给出了IDES设计和应用的更详细描述。
模型有六个主要的组件:
该模型可以看作是一个基于规则的模式匹配系统。生成审计记录时,会将其与配置文件进行匹配。在匹配的配置文件中键入信息,然后确定应用哪些规则来更新配置文件、检查异常行为和报告检测到的异常。安保干事协助为要监控的活动建立概要模板,但规则和概要结构在很大程度上是独立于系统的。
其基本思想是监视目标系统上的标准操作:登录、命令和程序执行、文件和设备访问等,只查找使用中的偏差。该模型不包含任何用于处理利用目标系统中已知或可疑安全漏洞的复杂操作的特殊功能;事实上,它对目标系统的安全机制或其缺陷一无所知。尽管基于缺陷的检测机制可能有一定的价值,但它将相当复杂,无法应对利用未被怀疑的缺陷或与人员相关的漏洞进行入侵的情况。然而,通过检测入侵,安全官员可以更好地定位漏洞。
主体是目标系统中活动的发起者。主体通常是终端用户,但也可能是代表用户或用户组的进程,也可能是系统本身。所有活动都是通过主体发出的命令而产生的。为了控制对系统中客体的访问,可以将主体分为不同的类别(例如,用户组)。用户组可能重叠。
客体是活动的受体,通常包括文件、程序、消息、记录、终端、打印机和用户或程序创建的结构等实体。当主体是活动的接收者(例如电子邮件)时,这些主体也被视为模型中的客体。客体按类型(程序、文本文件等)分组为类。还可以施加额外的结构,例如,记录可以分组到文件或数据库关系中;文件可以分组到目录中。不同的环境可能需要不同的对象粒度;e、 例如,对于某些数据库应用程序,可能需要记录级别的粒度,而对于大多数应用程序,文件或目录级别的粒度可能就足够了。
审计记录是6元组,表示主体对客体执行的操作:
<主体、活动、客体、异常条件、资源使用情况、时间戳>
我们假设每个字段都是自识别的,无论是隐式的还是显式的,例如,action字段要么暗示预期对象字段的类型,要么对象字段本身指定其类型。如果收集了多个系统的审计记录,则需要为系统标识符添加一个额外字段。
由于每个审核记录都指定了一个主题和对象,因此它在概念上与
“审计矩阵”,其行对应主题,列对应对象。审计矩阵类似于“访问矩阵”保护模型,该模型规定了主体访问对象的权利;也就是说,每个主体被授权对每个对象执行的操作。我们的入侵检测模型不同于访问矩阵模型,它将“执行的操作”(由与矩阵中的单元格相关联的审计记录证明)的概念替换为“授权的操作”(由矩阵单元格中的访问权指定)。实际上,由于观察活动时不考虑授权,因此存在一种隐含的假设,即系统中的访问控制允许发生操作。入侵检测的任务是确定活动是否异常到足以怀疑入侵。用于此目的的每个统计度量都是根据与矩阵中一个或多个单元格相关的审计记录计算的。
系统上的大多数操作都涉及多个对象。例如,文件复制涉及复制程序、原始文件和副本。编译涉及编译器、源程序文件、目标程序文件,以及可能的中间文件和通过“include”引用的其他源文件
声明。发送电子邮件涉及邮件程序、“收件人”和“抄送”字段中可能有多个目的地,还可能有“包含”文件。
我们的模型将所有活动分解为单个对象操作,以便每个审计记录只引用一个对象。例如,文件复制被分解为对copy命令的执行操作、对源文件的读取操作和对目标文件的写入操作。以下说明了响应命令生成的审核记录:
分解复杂动作有三个优点。首先,由于对象是系统的可保护实体,因此分解与系统的保护机制一致。因此,IDE可以潜在地发现试图破坏访问控制(通过注意返回的异常条件数量的异常)和成功破坏(通过注意主体可访问的对象集的异常)。其次,单对象审计记录大大简化了模型及其应用。第三,现有系统生成的审计记录通常包含单个对象,尽管有些系统提供了一种将与“作业步骤”相关的审计记录链接在一起的方法
(例如,复制或编译),以便可以识别程序执行期间访问的所有文件。
目标系统负责审核并将审核记录传输到入侵检测系统进行分析(它还可以保留独立的审核跟踪)。生成审核记录的时间决定了可用的数据类型。如果在请求某个操作时生成了某个操作的审核记录,则可以衡量执行该活动的成功尝试和失败尝试,即使该操作应该中止(例如,由于违反保护)或导致系统崩溃。如果在操作完成时生成,则可以测量操作消耗的资源以及可能导致操作异常终止的异常情况(例如,由于资源溢出)。因此,在活动完成后进行审计的优点是提供更多信息,但缺点是不允许立即检测异常,尤其是与入侵和系统崩溃相关的异常。因此,诸如登录、,执行高风险命令(例如,获取特殊的“超级用户”权限),或在尝试访问敏感数据时,应对其进行审核,以便可以立即检测到渗透;如果还需要资源使用数据,也可以在完成时执行其他审核。例如,对包含高度敏感数据的数据库的访问可能会在尝试访问时进行监控,然后在访问完成时再次进行监控,以报告检索或更新的记录数。大多数现有审计系统都会在启动(登录)和终止(注销)时监控会话活动,启动(登录)时记录登录的时间和位置,终止(注销)时记录会话期间消耗的资源。但是,它们不监视命令和程序执行或文件访问的开始和完成。例如,IBM的系统管理设施(SMF)[2]只审核这些活动的完成情况。
虽然现有系统的审计机制近似于该模型,但它们通常在监测的活动和生成的记录结构方面存在缺陷。例如,Berkeley 4.2 UNIX[3]监视命令使用情况,但不监视文件访问或文件保护冲突。某些系统不会记录所有登录失败。在命令级别以下调用的程序(包括系统程序)不受明确监控(它们的活动包含在主程序的活动中)。
记录结构也存在缺陷。例如,大多数SMF审核记录不包含主题字段;必须通过将与给定作业关联的记录链接在一起来重建主题。保护违规有时通过单独的记录格式提供,而不是作为通用记录中的例外情况;例如,登录时的VM密码失败就是这样处理的(成功登录和密码失败有单独的记录)。
现有审计记录的另一个问题是,它们包含很少或没有描述性信息来识别其中包含的值。每个记录类型都有自己的结构,必须知道每个记录类型的确切格式才能解释值。最好采用具有自识别数据的统一记录格式,以便入侵检测软件能够独立于系统。这可以通过修改在目标系统中生成审计记录的软件,或者通过编写将记录转换为标准格式的过滤器来实现。
活动profiles 描述了给定主体(或一组主体)相对于给定对象(或一组对象)的行为,从而作为其各自主体和对象的正常活动的签名或描述。观察到的行为以统计指标和模型为特征。度量是一个随机变量x,表示一段时间内累积的定量度量。周期可以是固定的时间间隔(分钟、小时、天、周等),也可以是两个审计相关事件之间的时间间隔(即登录和注销、程序启动和程序终止、文件打开和文件关闭等)。从审计记录中获得的观察值(样本点)xi(共x个)与统计模型一起使用,以确定新观察值是否异常。统计模型不对x的潜在分布作出假设;关于x的所有知识都是从观察中获得的。
在描述概要文件的结构、生成和应用之前,我们将首先讨论统计指标和模型。
三种类型:
给定随机变量x和n观测值x1,…,xn的度量,x的统计模型的目的是确定新观测值xn+1相对于先前观测值是否异常。
IDES中可能出现的模型:
1) 运行模型:该模型基于运行假设,即可以通过比较x的新观测值与固定限值来确定异常。虽然未使用之前的x采样点,但可能是根据之前对同一类型变量的观察结果确定限值。运营模型最适用于经验表明某些值经常与入侵相关的指标。例如,一个事件计数器用于显示短时间内密码失败的次数,例如,超过10次表示有人试图闯入。
2) 均值和标准差模型:该模型基于以下假设,即我们所知道的关于x1,…xn的所有信息都是从其前两个矩确定的均值和标准差:
根据切比雪夫不等式,值落在此区间之外的概率最多为1/d2
; 对于d=
4,例如,它最多为0.0625。请注意,应包括0(或null)次,以免使数据产生偏差。
此模型适用于在固定时间间隔内或两个相关事件之间累积的事件计数器、间隔计时器和资源度量。与运营模式相比,它有两个优势。首先,它不需要关于正常活动的先验知识来设定限制;相反,它从观察中了解什么是正常活动,置信区间自动反映了这种增加的知识。其次,由于置信区间取决于观测数据,因此对于一个用户来说,正常值可能与另一个用户有很大不同。
均值和标准差模型的一个微小变化是对计算进行加权,对较新的值进行更大的加权。
3) 多元模型:该模型与均值和标准差模型相似,只是它基于两个或多个指标之间的相关性。如果实验数据表明,可以通过相关度量的组合而不是单独获得更好的辨别能力,例如CPU时间和程序使用的1/0单位、登录频率和会话运行时间(可能是反向相关的),则该模型将非常有用。
4) 马尔可夫过程模型:该模型仅适用于事件计数器,将每种不同类型的事件(审计记录)视为一个状态变量,并使用状态转移矩阵来描述状态之间的转移频率(而不仅仅是单个状态的频率,即审计记录单独存在)。如果新观测值的概率由以前的状态和转移矩阵太低。此模型可能有助于查看某些命令之间的转换,其中命令序列很重要。
5) 时间序列模型:该模型使用间隔计时器和事件计数器或资源度量,考虑了观测值x1、…、xn的顺序和间隔时间及其值。如果一个新的观测在当时发生的概率太低,那么它就是不正常的。时间序列的优点是可以测量行为随时间的变化趋势,可以检测出行为的渐进但显著的变化,但缺点是成本高于平均值和标准差。
活动概要文件包含标识随机变量的统计模型和度量的信息,以及由该变量度量的审计事件集。档案结构包含10个组成部分,前7个组成部分独立于特定的被测对象:
<变量名称、操作模式、异常模式、资源使用模式、期间、变量类型、阈值、主题模式、对象模式、值>
与主题和对象无关的组件:
•变量名称:变量名称。
•操作模式:与审核记录中的零个或多个操作相匹配的模式,例如“登录”
“读取”“执行。”
•异常模式:与审核记录的异常条件字段匹配的模式。
•资源使用模式:与审核记录的资源使用字段相匹配的模式。
•周期:测量的时间间隔,例如天、小时、分钟(以10纳秒的时钟单位表示)。如果没有固定的时间间隔,则此组件为空;周期是活动的持续时间。
•变量类型:定义特定类型度量和统计模型的抽象数据类型的名称,例如,具有平均值和标准偏差模型的事件计数器。
•阈值:定义统计测试中用于确定异常的限值的参数。该字段及其解释由统计模型(变量类型)确定。对于操作模型,它是观测值的上限(可能是下限);对于平均值和标准偏差模型,它是平均值的标准偏差数。
与主题和对象相关的组件:
•主题模式:与审计记录主题字段匹配的模式。
•对象模式:与审核记录的对象字段相匹配的模式。
•值:当前(最近)观测值和统计模型用于表示先前值分布的参数。对于平均值和标准偏差模型,这些参数是计数、和和平方和(前两个矩)。操作模型不需要参数。
概要文件由变量名、主题模式和对象模式唯一标识。除值外,轮廓的所有组件都是不变的。
虽然该模型没有指定模式的确切格式,但我们已经确定以下类似SNOBOL的构造非常有用:
以下是一个示例配置文件,用于在会话基础上测量用户Smith终端的输出量。变量类型ResourceByActivity表示使用均值和标准差模型的资源度量。
每当入侵检测系统收到与变量模式匹配的审计记录时,它就会更新变量的分布并检查异常情况。由此导出变量值的分布,即在处理与概要模式匹配的审计记录时进行学习。
可以为单独的主客体对(即,主客体模式匹配特定名称,例如,主题“Smith”和对象“Foo”)或为主客体集合(即,主客体模式匹配名称集)定义配置文件,如图1所示[编辑:不包括]。
例如,可以为成对的个人用户和文件、针对特定文件的用户组、针对文件类的个人用户或针对文件类的用户组创建文件活动配置文件。晶格中的节点解释如下:
主题对象:单个主题对单个对象执行的操作,例如,用户Smith文件Foo。
•Subject-Object类:单个Subject对类中所有对象执行的聚合操作。对象类可以表示为对象字段子字段上的模式匹配,该子字段指定对象的类型(类),直接表示为对象名称上的模式匹配(例如,所有可执行文件的模式“*.EXE”),或表示为测试@对象是否在某个列表中的模式匹配(例如,“in(hit list)”)。
•Subject类对象:对聚合在类中所有主题上的单个对象执行的操作,例如,特权用户目录文件<库>,非特权用户目录文件<库>。
•主题类对象类:在类中的所有主题和类特权用户系统文件、非特权用户系统文件中的对象上聚合的操作。
•主题:单个主题在所有对象上执行的操作,例如,用户会话活动。
•对象:在所有主题上聚合的单个对象上执行的操作,例如密码文件活动。
•主题类:在类中所有主题上聚合的操作,例如,特权用户活动、非特权用户活动。
•0对象类:在类中所有对象上聚合的操作,例如,可执行文件活动。
•系统:在所有主体和对象上聚合的动作。
由类的概要文件表示的随机变量可以通过两种方式聚合类的活动:
•课堂整体活动:课堂上所有主体或对象的集合被视为一个单一实体,对随机变量的每次观察代表该实体的聚合活动。
例如,所有用户类别的配置文件表示每天登录系统的平均次数,其中所有用户都被视为单个实体。
•聚合个人活动:班级中的主体或对象被视为不同的实体,每个随机变量的观察代表班级中某些成员的活动。例如,所有用户类别的配置文件描述了任何一个用户每天的平均登录次数。因此,概要文件表示类的“典型”成员。
虽然类作为整体活动可以由类的事件计数器、间隔计时器或资源度量来定义,但聚合单个活动需要对类的每个成员使用单独的度量。因此,它是根据单个类成员的较低级别剖面(在晶格的意义上)定义的。
例如,每日平均登录频率定义为单个用户登录配置文件中每日总频率的平均值。还可以根据较低级别的概要文件来定义整体类的度量,但这不是必需的。
这两种聚合方法在入侵检测方面有不同的用途。类作为一个整体活动揭示了对于一个类来说,某些一般的行为模式是否正常。例如,提供每天在系统中更新可执行程序文件类的频率的变量可能有助于检测病毒注入系统的情况(这会导致在病毒传播时重写可执行文件)。远程登录拨号线路类的频率分布可能有助于检测尝试的入侵。
聚合单个活动显示给定用户(或对象)的行为是否与其他用户(或对象)的行为一致。这对于检测从一开始就有异常行为的新用户的入侵可能很有用。
当可以动态创建用户帐户和对象时,需要一种机制来为新的主题和对象生成活动概要文件。有三种可能的方法:
(1)手动创建:安全官员显式创建所有配置文件.
(2)自动显式创建:生成新用户或对象的所有配置文件以响应“创建”
记录在审计跟踪中。
(3)首次使用:当主题(新的或旧的)首次使用对象(新的或旧的)时,会自动生成配置文件。
第一种方法有一个明显的缺点,即需要安全官员手动干预。第二种方法克服了这一缺点,但引入了另外两种方法。首先,它不会自动处理启动条件,因为在启动条件下,将存在许多现有的主题和对象。第二个问题是,它需要为任何一对候选的监控对象生成一个主题-对象概要文件,即使主题从未使用特定的对象。这可能会导致生成更多的配置文件。例如,假设在单个用户和文件级别监视文件访问。考虑一个有1000个用户的系统,其中每个用户平均有200个文件,总共有200000个文件,200000个可能的用户文件对组合。但是,如果每个用户最多访问300个文件,则只需要300000个概要文件。
IDES模型遵循第三种方法,它克服了其他方法的缺点,在需要模板时生成概要文件。概要文件模板的结构与它生成的概要文件相同,只是主题和对象模式定义了匹配模式(在审计记录上)和替换模式(放置在生成的概要文件中)。因此,SubjectPattern和Object Pattern字段的格式为:
主题模式将匹配任何用户名,并生成具有该名称的替换模式。
类似地,对象模式将匹配列表特殊文件中的任何文件,并生成具有该名称的替换模式。现在,假设特殊文件列表包含文件名、密码和帐户。以下显示了具有这些匹配和替换模式的模板将生成的一系列审核记录和概要文件:
将新用户(和对象)引入目标系统可能会带来两个问题。第一种是由于缺乏关于用户行为的概要信息以及用户自身对系统的缺乏经验而导致的,它正在生成过多的异常记录。如果不是第二个问题:无法检测到新用户的入侵,那么可以通过忽略新用户的异常情况来解决此问题。我们希望找到一种能够在不忽略实际入侵的情况下最大限度地减少错误警报的解决方案。
可以通过为引起警报的活动选择适当的统计模型和选择适当的配置文件来控制假警报。例如,对于均值和标准差模型,置信区间最初较大,因此在收集有关用户行为的数据时可以容忍更多的多样性;随着观察次数的增加,间隔会缩小。这减少了由单个用户配置文件引起的错误警报,但不能保护系统免受行为不正常的新用户(或不经常使用的用户)或从一开始就建立异常行为的用户的影响。为了解决这个问题,可以将当前活动与聚合的单个概要文件或所有用户或某个组中的所有用户的概要文件集进行比较。
虽然操作模型不会自动适应单个用户(因为它使用固定阈值来确定异常),但可以通过对新用户使用更宽松的边界,以及随着用户获得体验而调整边界来解决问题。
现在,我们将描述用于测量登录和会话活动、命令和程序使用以及文件访问的候选概要文件。对于每个概要文件,我们建议使用度量和统计模型来衡量活动。IDES最终报告【1】中给出了更完整的概要规范。
1) 登录和会话活动:登录和会话活动在主题所在的审核记录中表示;i user,对象是用户的登录位置(终端、工作站、网络、远程主机、端口等,或某些组合),操作是“登录”或“注销”位置可以按连接类型(硬接线、拨号、网络等)或位置类型(哑终端、智能工作站、网络主机等)等属性分组。以下是可能的配置文件列表:
•登录频率(LoginFrequency):事件计数器,使用平均值和标准偏差模型按天和时间测量登录频率。由于用户的登录行为在一个工作周内可能会有很大的变化,因此登录事件可能由一系列事件计数器表示,这些计数器按星期几(特定的一天或工作日与周末)和时间(小时或班次)参数化(另一种可能的细分是:工作日、晚上、周末、晚上)登录频率的配置文件对于检测伪装者可能特别有用,伪装者可能会在非工作时间登录到未经授权的帐户,而合法用户预计不会使用该帐户。可以为单个用户(和用户组)定义登录配置文件,但位置类别可以是所有位置的集合,也可以是按位置或连接类型聚合的。
•LocationFrequency:事件计数器,使用均值和标准差模型测量不同位置的登录频率。由于用户可以在正常工作时间从一个位置登录,而在非工作时间从另一个位置登录,因此该度量可以按星期和时间进行细分。由于变量与特定对象相关,因此应为各个位置或位置类型定义该变量。它可能有助于检测伪装者。g、 ,如果有人从合法用户从未使用过的位置登录帐户,或者合法用户试图进行渗透,例如,如果通常从非特权本地终端工作的人从高度特权终端登录。
•LastLogin:使用操作模型测量自上次登录以来的时间间隔计时器。这种类型的配置文件可以为单个用户定义,但可以为位置类别定义,因为确切的位置似乎不如时间的推移那么重要。它对于检测
“死亡”账户
•SessioneLassedTime:使用平均值和标准偏差模型对每个会话的运行时间进行资源度量。可以为单个用户或组定义这种类型的概要文件,但不能为对象类定义。偏差可能意味着伪装者。
•会话输出(SessionOutput):使用均值和标准差模型对每个会话向终端输出的数量进行资源度量(输出也可以每天测量。为各个位置或其类别定义这种类型的配置文件可能有助于检测传输到远程位置的大量数据,这可能意味着敏感数据的泄漏。
•sessionpu、SessionIO、SessionPages等:使用平均值和标准差模型每日(或每次)累积的资源度量。这些配置文件可能有助于检测伪装者。
•PasswordFails:使用操作模型测量登录时密码失败的事件计数器。这种类型的配置文件对于检测试图闯入的用户非常有用,应该为单个用户和所有用户一起定义。针对单个帐户(用户)的配置文件,涉及特定帐户上多个试用密码的攻击将显示为密码失败次数异常多;针对所有用户的配置文件,涉及多个帐户上的单个试用密码的攻击将显示为密码失败次数异常多。密码失败可能会在相当短的时间内记录下来,比如最多几分钟,因为通常会在突发活动中尝试入侵。
•LocationFails:事件计数器,根据操作模型测量从指定终端登录的失败。这种类型的配置文件可能是为单个用户定义的,但由于确切的位置不如未经授权的位置重要,因此是位置的集合。它可用于检测试图闯入或试图登录特权终端的情况。
2) 命令或程序执行:命令或程序执行活动在审计记录中表示,其中主题是用户,对象是程序的名称(为简单起见,我们假设所有命令都是程序,不区分两者),操作是“执行”程序可以根据其是特权(仅由特权用户或在特权模式下可执行)还是非特权、是系统程序还是用户程序或某些其他属性进行分类和聚合。
•执行频率(ExecutionFrequency):事件计数器,使用平均值和标准偏差模型测量某个时间段内程序的执行次数。可以为单个用户和程序或其类定义这种类型的概要文件。个人用户和命令的配置文件可用于检测伪装者,伪装者可能使用来自合法用户的不同命令;或者检测到合法用户成功渗透,然后合法用户可以访问以前不允许的特权命令。单个程序(但所有用户)的配置文件可能有助于检测在标准库之前搜索的实验库中特洛伊木马的替换,因为执行原始程序的频率会下降。
•ProgramCPU、ProgramIO等:使用平均值和标准偏差模型衡量程序每次执行的资源。可以为单个用户和程序或其类定义这种类型的概要文件。应用于所有用户聚合的其中一个度量值的异常值可能表明在原始程序中注入了特洛伊木马或病毒,这会产生副作用,增加其1/0或CPU使用率。
•ExecutionDenied:事件计数器,用于计算一天内使用操作模型执行未经授权程序的尝试次数。定义个人用户的这种类型的概要文件可能有助于检测某个特定用户的渗透尝试。也可以为高度敏感的单个程序定义这种类型的配置文件,在这种情况下,阈值1可能是合适的。
•ProgramResourceExpeation:事件计数器,用于计算一天中由于使用操作模型的资源不足而导致程序异常终止的次数。可以为单个程序或程序类定义这种类型的配置文件,以检测持续中止的程序(例如,因为它通过基于资源使用情况的隐蔽通道向用户泄漏数据)。
3) 文件访问活动:文件访问活动在审核记录中表示,其中主题是用户,对象是文件名,操作是“读取”、“写入”、“创建”、“删除”或“附加”。“文件可以按类型分类:文本、可执行程序、目录等;根据它们是系统文件还是用户文件;
或者其他财产。由于程序是一个文件,因此可以对其执行活动和文件访问活动进行监控。
IDE通过其活动规则(下一节)更新活动配置文件,并在生成审计记录或周期终止时检查异常行为。如果检测到异常行为,将生成包含三个组件的异常记录:
<事件,时间戳,配置文件>
哪里
•事件:表示导致异常的事件,或者是“审计”,即发现审计记录中的数据异常,或者是“期间”,即发现当前间隔内累积的数据异常。
•时间戳:审计记录中的时间戳或间隔停止时间(因为我们假设审计记录具有唯一的时间戳,这提供了一种将异常绑定回审计记录的方法)。
•概要文件:检测到异常的活动概要文件(IDE可能包括一个“键”字段,用于标识数据库中的概要文件和值字段的当前状态,而不是包括完整的概要文件)。
活动规则指定在生成审核记录或异常记录或时间段结束时要采取的操作。它由两部分组成:一个条件,当满足时,会导致规则被“触发”
还有一具尸体。我们将使用术语“body”而不是“action”,以避免与IDE监控的操作混淆。该条件指定为事件的模式匹配。有四种类型的规则:
•审核记录规则由新审核记录和活动配置文件之间的匹配触发,更新配置文件并检查异常行为。
•定期活动更新规则,由与活动配置文件的周期组件匹配的间隔结束时触发,更新配置文件并检查异常行为。
•由异常记录的生成触发的异常记录规则会立即引起安全官员的注意。
•间隔结束时触发的定期异常分析规则生成当前期间异常的汇总报告。
我们相信IDES模型为开发强大的实时入侵检测提供了良好的基础,该检测能够检测与入侵企图、伪装(成功入侵)、系统渗透、特洛伊木马、病毒、泄漏和合法用户的其他滥用以及某些隐蔽通道相关的各种入侵。此外,该模型允许检测入侵,而无需知道目标系统中允许入侵发生的缺陷,也无需观察利用该缺陷的特定操作。
有几个悬而未决的问题:
•方法的可靠性-该方法是否实际检测到入侵?有没有可能。区分与侵入相关的异常和与其他因素相关的异常?
•方法的完整性:该方法是否检测到大多数(如果不是全部)入侵,或者是否有很大一部分入侵无法通过该方法检测到?
•方法的及时性:我们能否在造成重大损害之前检测到大多数入侵?
•指标、统计模型和概要文件的选择:哪些指标、模型和概要文件提供了最佳的鉴别能力?哪些是经济有效的?某些类型的异常和不同的入侵方法之间有什么关系?
•系统设计:应如何设计和实施基于模型的系统?
•反馈:入侵检测应该对目标系统产生什么影响?IDE是否应该自动指示系统采取某些操作?
•社会影响:入侵检测系统将如何影响其监控的用户社区?它会阻止入侵吗?用户的数据是否会得到更好的保护?这会被视为迈向“老大哥”的一步吗?其能力是否会被滥用?
虽然我们相信该方法可以检测到大多数入侵,但通过逐渐改变行为或通过使用未受监控的目标系统的低级功能(因为它们会产生太多)的微妙入侵形式,一个人可能会逃避检测数据)。例如,由于无法监控单个页面错误,通过控制页面错误秘密泄漏数据的程序至少不会被其页面错误活动检测到。
然而,重要的是要区分检测利用系统中特定缺陷的低级操作和检测相关入侵。例如,考虑一种操作系统渗透,其基础是尝试使用调用参数的细微变化进行主管调用,直到找到允许用户在主管模式下运行自己程序的参数。如果不监视所有主管的呼叫,就不可能检测到实际的渗透,这通常是不实际的。然而,如果入侵者开始访问之前无法访问的对象,则一旦入侵成功,可能会检测到入侵。因此,重要的问题不是我们是否能够检测到利用系统缺陷的特定低级别操作,而是入侵是否通过可以实际监控的活动表现出来。
即使我们可以检测到大多数入侵,我们也不打算用IDE取代任何安全控制。
这样做可能会使目标系统容易受到此类攻击,例如快速的一次性渗透,利用系统缺陷,然后使用单个“全部删除”命令销毁所有文件。我们的IDE概念是一个额外的保护层,可以增强目标系统的整体安全性。