基于可疑行为的主机入侵感知检测系统
相关学习资料
http://www.cnblogs.com/LittleHann/p/3632646.html http://www.bitscn.com/os/linux/200802/127983.html 构建Linux下软件入侵防护系统.pdf http://www.venustech.com.cn/NewsInfo/383/7335.Html http://www.venustech.com.cn/NewsInfo/383/7427.Html http://www.venustech.com.cn/NewsInfo/383/11814.Html http://www.tesun.cn/keji/shownews.asp?id=81 http://wenku.baidu.com/view/3699d30cba1aa8114431d948.html 基于完全虚拟化的进程监控方法.pdf 构建Linux下软件入侵防护系统.pdf eTrust Access Control for UNIX and Linux.pdf 一种基于行为的主机入侵防护系统设计与实现.pdf http://www.tesun.cn/keji/shownews.asp?id=81 基于系统调用的主机入侵检测系统的研究与实现.pdf
目录
1. 为什么要进行可疑行为的入侵检测 2. 入侵检测系统简介 3. 入侵检测方案调研 4. 数据挖掘算法简介 5. 可疑行为入侵检测系统方案设想
1. 为什么要进行可疑行为的入侵检测
入侵检测的观点
1. 要想完全避免安全事件的发生并不太现实,网络安全人员需要做的是尽力发现和察觉入侵及入侵企图(即具有高度的异常敏感性),从长远的角度来看,安全的问题本来就是一个互相攻防对抗的过 程。 1) 安全的攻防对抗没有一招解决所有问题的技术 2) 好的攻防思路是部署一种尽可能敏感的攻击事件捕获机制,当发生了已知、或者未知的攻击的事件时,我们能第一时间获取到关于本次攻击的尽可能多的元数据(强大的入侵检测机制) 3) 针对发生的攻击,采取针对性的防御,针对性地防御是最有效的方法(对CMS的漏洞进行针对性的代码修复、为系统的某个CVE漏洞打上补丁) 4) 在针对性防御的基础上,我们对一些解决方案进行归纳、总结,试图找到一种底层性的、归类性的安全解决方案(回想历史上微软的DEP、ASLR、SAFESEH技术) 2. 采取有效的措施来堵塞漏洞和修复系统 很多现有的入侵检测的技术都是基于一些对审计和日志文件的分析。主要思想是搜索整个系统的文件和参考列表来发现畸形的,不期望的系统配置的改变,例如 1) 有一个新的用户的用户ID是0 2) 系统的/bin/目录下的文件被修改(rkhunter的检测方法) 3) 周期性的执行一个程序来做系统文件的属性(属主、ACL权限、x等)和参考列表(标准安全属性配置)的比较。这些过程主要是来对付Trojan木马的
这种机制的最大问题就是滞后性,往往都是等实际的攻击行为已经发生了之后(普遍是1天之后),才感知到入侵行为并进行事后分析处理。本文的目标试图探索一种使用内核级Hook技术实现的实时的入侵感知、分析、阻断系统
2. 入侵检测系统简介
HIDS入侵检测系统基于这样一个前提基础: 入侵行为和合法行为是可区分的,也就是说可以通过提取行为的模式特征来判断该行为的性质。
入侵检测与传统的安全技术不同,它并不是设法建立安全、可靠的计算机系统或网络环境,而是对网络活动和系统用户信息进行分析处理来达到对非法行为的检测、报警和预报的目的,进而由有关安全组件(如防火墙)对非法行为进行控制,来保障系统的安全。其具体目的为
1. 监控和分析用户以及系统的活动; 2. 核查系统安全配置和漏洞; 3. 评估关键系统和数据文件的完整性; 4. 识别攻击的活动模式并向网管人员报警; 5. 统计分析异常活动,识别违反安全策略的用户活动
0x1: 入侵检测系统IDS的组成
对于面向主机的可疑行为侵检测系统,大致可以分成以下组件
1. 事件产生器(Event generators) 这里的事件产生器就是linux系统中所有能产生操作轨迹的模块,包括 1) 系统调用 2) 网络连接状态 3) 磁盘I/O信息 4) 进程信息 5) 安全控制状态 5.1) 文件ACL变化 5.2) 敏感文件属主 2. 事件分析器(Event analyzers) 3. 响应单元(Response units) 4. 事件数据库(Event databases)
0x2: 入侵检测技术分类
对各种事件进行分析,从中发现违反安全策略的行为是入侵检测系统的核心功能。从技术上,入侵检测分为两类:
1. 基于标志(signature-based) 对于基于标志的检测技术来说,首先要定义违背安全策略的事件的特征,如: 1) 网络数据包的某些头信息 2) 系统调用中的敏感信息 3) 异常的反向网络连接 检测主要判别这类特征是否在所收集到的数据中出现。此方法非常类似杀毒软件 2. 基于异常情况(anomaly-based) 基于异常情况的入侵检测,能够根据"异常行为"和"使用计算机资源情况"检测出来可疑的入侵行为,异常入侵检测试图用"定量方式"描述可接受的行为特征,以区分非正常的、潜在的入侵性行。 整个流程基本如下: 1.1) 建立威胁模型,包括: 1.1.1) 确定一个算法 1.1.2) 监控哪些事件的发生 1.1.3) 需要获取哪些数据 1.1.4) 对获取到的数据进行怎样的计算 1.1.5) 计算的结果的上线阈值是多少 1.1.6) 当超过这个阈值的时候,需要采取什么操作,是直接报警、还是采取权重打分的机制 1.2) 进行行为监控,并捕获数据 1.3) 对捕获的数据进行异步、或实时计算 1.4) 根据计算的结果采取相应的预设动作
0x3: 两种检测方法的优缺点
1. 基于标志 根据己知的攻击方法,预先定义入侵特征库,通过判断这此特征是否出现来完成检测任务 1.1 优点 对于已知得攻击,它可以详细、准确的报告报告出攻击类型 1.2 局限 对未知攻击却效果有限,而且知识库必须不断更新 2. 基于异常 检查当前系统行为与正常设定安全行为相违背的行为,异常入侵检测的核心就是对合法的行为和可疑的行为进行二值逻辑区分 2.1 判别更广范、甚至未发觉的攻击 2.2 局限 无法准确判别出攻击的手法
0x4: 现有有哪些入侵检测系统方案可以参考
为了解决传统IDS基于日志分析技术的时间滞后性以及局限性,人们开始将动态跟踪系统引入入侵检测领域。"动态跟踪系统"即"动态代码插桩系统(Dynamic Binary Instrumentation, DBI)(对关键系统调用进行Hook)"可以应用于系统开发时监测性能热点、捕获运行参数,同样也可以被用来进行安全方面的防御
1. PSAD+iptables/snort+fwsnort/AfterGlow/Gnuplot http://www.psadweb.org/ http://cipherdyne.org/psad/ 我们知道,任何入侵检测系统的一个关键方面是捕获并分析大量的数据,Psad是端口扫描攻击检测程序的简称,它作为一个新工具,可以与iptables和Snort等紧密合作,用来展示所有试图进入网络的恶意企图。它使用了许多snort工
具,它可以与fwsnort和iptables的日志结合使用,意味着你甚至可以深入到应用层并执行一些内容分析。它可以像Nmap一样执行数据包头部的分析,向用户发出警告,甚至可以对其进行配置以便于自动阻止可疑的IP地址。 我们可以将PSAD的数据导出到AfterGlow 和 中,从而可以知道到底是谁正在攻击防火墙,而且是以一种很友好的界面展示 2. Snort https://www.snort.org/ snort是一款轻量级且易于使用的工具,可以独立运行,也可以与psad和iptables一起使用。snort其规则的维护和更新十分方便和简单,使用oinkmaster可以轻松地进行 Snort可以收集大量的数据,因此需要添加BASE(基本分析和安全引擎),以便于获得一个友好的可视化的分析工具,它以较老的ACID(入侵数据库分析控制台)为基础 3. chkrootkit和rkhunter 他们可以搜索已知的rooktkit、后门和本地的漏洞利用程序,并且可以发现有限的一些可疑活动。我们需要运行这些工具的理由在于,它们可以查看文件系统上的/proc、ps和其它的一些重要的活动。虽然它们不是用于网络的,但却可以
快速扫描个人计算机 chkrootkit和rkhunter侧重于对rootkit的检测 4. Tripwire http://www.tripwire.com/ Tripwire是一款入侵检测和数据完整性产品,它允许用户构建一个表现最优设置的基本服务器状态(基础安全黄金标准)。它并不能阻止损害事件的发生,但它能够将目前的状态与理想的状态相比较,以决定是否发生了任何意外的或故意
的改变。如果检测到了任何变化,就会被降到运行障碍最少的状态 5. systemtap http://www.ibm.com/developerworks/cn/linux/l-systemtap/ https://www.sourceware.org/systemtap/ yum install systemtap kernel-devel uname -rm (保证你的内核版本>=下载的systemtap版本) wget http://debuginfo.centos.org/6/i386/.. 或者 yum install kernel-debug rpm -Uhv kernel-debuginfo-*rpm stap -ve 'probe begin { log("hello world") exit() }'
0x5: 入侵检测系统中的统一事件模型
IDS需要分析的数据统称为事件,它可以是网络中的数据包,也可以是从系统日志或系统调用监控等其他途径得到的信息,包括IETF在内的组织定义一套事件封装、上传、通信模型
1. 统一入侵检测对象(GIDO) GIDO是对事件进行编码的标准通用格式(由CIDF描述语言Common Intrusion Specification Language 简称CISL定义),它可以是发生在系统中的审计事件,也可以是对审计事件的分析结果 2. Intrusion Detection Exchange Protocol (IDXP) http://www.rfc-editor.org/rfc/rfc4767.txt http://www.rfc-editor.org/rfc/rfc4766.txt 3. Intrusion Detection Message Exchange Format (IDMEF) http://www.rfc-editor.org/rfc/rfc4765.txt
3. 入侵检测方案调研
目前,入侵检测系统主要可以分为"面向异常的入侵检测"以及"误用入侵检测",它们各有有点,我们在设计方案的时候应该取长补短
0x1: 基于统计分析的入侵检测
著名的入侵检测系统IDES (Intrusion Detection Expert System)以及它的后继版本NIDES (Next-generation Intrusion Detection Expert System)中所包含的异常检测模块都属于此类别。
统计异常检测方法通过异常检测器观察主体的活动,然后产生刻画这些活动的行为轮廓(面向统计特征的轮廓)。每个轮廓保存记录主体当前行为,并定时地将当前的轮廓与存储的轮廓合并。通过比较当前的轮廓与已存储的轮廓来判断异常行为,从而检测网络中是否存在入侵
在统计模型中常用的测量参数包括:
1. 审计事件的数量 2. 事件发生的间隔时间 3. 资源消耗情况等
常用的入侵检测5种统计模型为:
1. 操作模型 该模型假设异常可通过测量结果与一些固定指标相比较得到,固定指标可以根据经验值或一段时间内的统计平均得到,举例来说,在短时间内的多次ftp、mysql失败的登录很有可能是口令尝试攻击 2. 方差模型 计算参数的方差,设定其置信区间,当测量值超过置信区间的范围时表明有可能是异常 3. 多元模型 操作模型的扩展,通过同时分析多个参数实现检测; 4. 马尔柯夫过程模型 1) 隐马尔可夫模型是描述离散时间的数据样本序列的一种强有力的统计工具,具有处理非线性时变信号的能力,表示一种双随机过程,由于马尔可夫模型的这种特性,它非常适合于建立主机数据的动态时序模型,并且算法相对成熟,
比其他模型更具优势 2) 检测时采用动态时间窗调整技术,根据各类数据的特点,动态改变数据的观察时间窗,提高异常检测的准确性。实际中发生入侵时往往是在某时间段内异常序列集中出现,而在其它时间段上,其行为同正常运行时的行为差别较小,
因此,数据观察时间窗的智能调整可以提高检测效率及准确性 3) 将每种类型的事件定义为系统状态,用状态转移矩阵来表示状态的变化,当一个事件发生时,如果状态矩阵转移的概率较小则可能是异常事件 5. 时间序列分析 一个系统在正常的稳定运行中,一定会形成并保持一种相对较固定模式的事件统计分布,我们称之为"正常时间序列" 我们可以将事件计数与资源耗用根据时间排成序列,如果一个新事件在该时间发生的概率较低,则该事件可能是入侵
0x2: 基于规则的入侵检测
基于规则的检测技术要动态建立和维护一个规则库,如"树形规则库"以及"基于时间的规则推理库"等,利用规则对事件进行层层判别
"基于规则的检测模型"与"基于前提于统计异常检测"类似,其区别在:
1. 基于规则的入侵检测模型使用一系列的规则而不是统计出的系统度量来表示系统的使用模式,其代表系统是: 1) 由美国Los Alamos国家实验室和Oak Ridge国家实验室开发的Wisdom and Sense (W&S) 2) 由数字设备公司(DEC)的Teng, Chen 3) Lu提出的Time-Based Inductive Machine (TIM)TIM 2. 从事件序列的角度,而不是单个的事件来检查系统用户的行为模式是否偏离正常活动模式
0x3: 基于专家系统的入侵检测
专家系统是最早的误用检测方案之一,被许多经典的检测系统所采用,如
2. MIDAS(Multics Intrusion Detection and Alerting System) 2. IDES 3. NIDES(Next Generation IDES) 采用的专家系统是P-BEST(Production-Based Expert System Tool) 4. CMDS
使用了由美国国家航空和宇宙航行局开发的CLIPS系统
基于专家系统的入侵检测技术,就是根据网络安全专家对可疑行为的"分析经验"来形成一套推理规则,并在此基础之上构建入侵检测专家系统,由此专家系统自动进行对所涉及的入侵行为进行分析工作。
专家系统的建立依赖于知识库的完备性,入侵的特征抽取与表达,这也是实现入侵检测专家系统的关键。在系统实现中,将安全专家的知识表示成IF-THEN的形式形成专家知识库,然后用推理算法进行入侵检测。当IF条件全部满足,THEN动作才会执行,由专家系统自动进行所涉及的入侵行为的分析工作
专家系统推理的方法主要有两种:
1. 依据给定的数据,应用符号推理出入侵发生的情况,重点是解决处理序列数据和知识库的维护 2. 依据其他的入侵证据,进行不确定推理。该系统应当能够随着经验的积累而利用其自学习能力进行规则的扩充和修正
专家系统的优点在于把系统的控制推理过程从问题解决的描述中分离出来,用户不需要理解或干预专家系统内部的推理过程,而只需把专家系统看作是一个自治的黑盒子(Black Box)。
而且专家系统对历史数据的依赖性总的来说比基于统计模型的检测方法要少(不容易受到攻击者的恶意污染干扰),因此系统的适应性比较强,可以较灵活地适应广泛的安全策略和检测需求。
但是专家系统应用于入侵检测时,仍存在一些实际的问题,如:
1. 由于推理和决策模块通常使用解释型语言实现,在处理海量数据时存在效率问题 2. 缺乏处理序列数据的能力,即数据前后的相关性问题 3. 规则库的维护很困难,更改规则时必须考虑规则库中不同规则间的内部依赖性 4. 根据己知的安全漏洞来编写规则,因而不能检测出未知入侵
0x4: 基于状态迁移的入侵检测
状态迁移技术使用系统状态和状态转换表达式来描述和检测己知入侵,速度快,灵活性好
实现入侵检测状态转换最主要的模型有2种
1. 状态迁移分析模型 状态迁移分析模型使用高层状态迁移图来表示和检测己知入侵。 它将攻击表示成一系列被监控的系统状态迁移。攻击模式对应系统状态,并具有迁移到另外状态的条件。通过弧将连续的状态连接起来表示状态改变所需要的事件。采用这种方法的系统包括 1) STAT(State Transition Analysis Technique) 2) USTAT(State Transition Analysis Tool for UNIX) 状态迁移分析模型的优点在于: 1) 状态迁移图提供了一种直观的、高层次的、与审计记录无关的渗透概要描述。 2) 状态迁移图给出了攻击渗透的特征行为(signature actions)的最小子集,这使得检测器可以适应相同入侵模式的不同表现形式。 3) 基于状态的特征检测可以使攻击行为在尚未到达侵入状态(compromised state)之前被检测到,从而预先采取响应措施阻止攻击行为。但是它的攻击模式只能说明事件序列,困此不适合描述更复杂的事件 2. 有色Petri-Net状态迁移分析模型 http://en.wikipedia.org/wiki/Petri_net 该模型由Purdue University的Sandeep Kumar和Gene Spafford研制,IDIOT系统就是该模型的具体实现,它使用了CP-Nets的一个变种,用来表示和检测入侵模式 基于有色Petri网状态转移的误用检测系统具有检测效率高、能自动响应、可跨平台移植等优点,另外,事件的前后相关性和排列顺序可以直接体现出来
4. 数据挖掘算法简介
数据挖掘是针对特定应用的数据分析处理过程,如何选择输入数据、变换数据及对应的挖掘算法,取决于具体的数据挖掘目标,即期望从数据中发掘出何种类型的"知识"
对于应用到入侵异常检测系统中的数据挖掘算法,目前主要集中在
1. 关联分析 2. 序列分析 3. 分类分析 4. 聚类分析
目前数据挖掘技术在网络安全领域的主要应用有:
1. 对安全检测对象的海量的审计数据的分析 1) 网络连接流量的分析 2) 主机日志分析 2. 对安全检测对象的行为数据分析 1) 基于用户命令序列(系统调用)的行为分析 2) 对用户邮件模式的行为分析 3. 对安全系统报警事件的数据分析
http://wenku.baidu.com/view/3699d30cba1aa8114431d948.html
留待之后继续研究
5. 可疑行为入侵检测系统方案基本设想
undone..
Copyright (c) 2014 LittleHann All rights reserved