异常检测之浅谈入侵检测


这里写图片描述
打开微信扫一扫,关注微信公众号【数据与算法联盟】

转载请注明出处:http://blog.csdn.net/gamer_gyt
博主微博:http://weibo.com/234654758
Github:https://github.com/thinkgamer


前言

由于业务关系,最近一段时间一直在关注入侵检测技术方面的知识,经过了最近一天的学习与调研,在大体上还是有了一定的了解与研究,下面就分享一下我得学习成果,当然大部分知识都是从网上进行收集和整理的,当然加上了自己的一些想法

本文永久地址:http://blog.csdn.net/gamer_gyt/article/details/53876659


什么是入侵检测

      入侵检测(Intrusion Detection )是对入侵行为的检测。它通过收集和分析计算机网络或计算机系统中若于关键点的信息,检查网络或系统中是否存在违反安全策略的行为和被攻击的迹象。入侵检测作为一种积极主动的安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵入侵检测技术虽然也能够对网络攻击进行识另拼作出反应,但其侧重点还是在于发现,而不能代替防火墙系统执行整个网络的访问控制策略。
      入侵检测系统(intrusion Detection System ,IDS)是对计算机和网络资源的恶意使用为进行识别的系统;它的目的是监测和发现可能存在的攻击行为,包括来自系统外部的入侵行为和来自内部用户的非授权行为,并且采取相应的防护手段。


入侵检测系统的分类

一:按检测分析方法分类

1:异常检测

      基于异常的入侵检测方法主要来源于这样的思想,任何人的正常行为都是有一定的规律的,并且可以通过分析这些行为的日志信息型总结出这些规律,而入侵和滥用行为规则通常和正常的行为存在严重的差异,通过检查这些差异就可以判断是否为入侵。总之,一场检测基于这样的假设和前提:用户活动是有规律的,而且这种规律是可以通过数据有效的描述和反映;入侵时异常活动的子集和用户的正常活动有着可以描述的明显的区别。
      异常监测系统首先经过一个学习阶段,总结正常的行为的轮廓成为自己的先验知识,系统运行时将信息采集子系统获得并预处理后的数据与正常行为模式比较,如果差异不超出预设阀值,则认为是正常的,出现较大差异即超过阀值则判定为入侵。

这里写图片描述

      异常检测系统有如下特点:
      1):检测的效率取决于用户轮过的完备性和监控的频率,因为不需要对每种入侵行为进行定义,而能有效检测未知的入侵,因此也称为一个研究热点
      2):系统能针对用户行为的改变进行自我调整和优化,但随着检测模型的逐步精确,异常检测会消耗更多的系统资源

2:误用检测

       又称为基于特征的检测,基于误用的入侵检测系统通过使用某种模式或者信号标示表示攻击,进而发现同类型的攻击,其实现过程是:先收集非正常操作的行为特征,系统就认为这种行为是入侵,系统处理过程如同:

这里写图片描述

      这种方法可以检测到许多甚至是全部已知的攻击行为,如果入侵特征与正常的用户行为能匹配,则系统会发生误报,如果没有特征能与某种新的攻击行为匹配,则系统会发生漏报。
      特点:采用特征匹配模式能明显降低错报率,但漏报率随之增加,攻击特征的细微变化,会使得滥用检测无能为力。

二:按数据源分为

1:基于主机的入侵检测

      基于主机的入侵检测是入侵检测的最初期形式,这种入侵检测系统通常运行在被检测的主机或者服务器上,实时检测检测系统的运行,通常从主机的审计记录和日志文件中获得所需的主要数据源,并辅之以主机上的其他信息,在此基础上完成检测攻击行为的任务。特别的,从主机入侵检测技术中还可以单独分离出基于应用的入侵检测模型,这是特别针对于某个特定任务的应用程序而设计的入侵检测技术,采用的输入数据源是应用程序的日志信息。
      基于主机的入侵检测悉尼型来源主要包括:
      1):系统信息,几乎所有的操作系统都提供一组命令,获得本机当前激活的进程的状态信息,他们直接检查内核程序的内存信息。
      2):记账,通常指由操作系统或操作员所执行的特定操作,记录计算机资源的使用情况,例如CPU占用时间,内存,硬盘,网络使用情况。在计算机未普及之前,记账是为了向用户收费的。
       3):系统日志,可分为操作系统日志和应用程序日志两部分。操作系统日志从不同方面记录了系统中发生的事情,对于入侵检测而言,具备重要的价值,当一个进程终止时,系统内核为每个进程在进程日志文件中写入一条记录。
       4):C2安全审计,记录所有可能与安全性有关的发生在系统上的事情。

     基于主机的入侵检测能够较为准确的检测到发生在主机系统高层的复杂攻击行为,其中,许多发生在应用进程级别的攻击行为是无法依靠基于网络的入侵检测来完成的,基于主机的入侵检测系统巨头检测效率高,分析代价小,分析速度快的特点,能够迅速并准确的定为入侵者,并可以结合操作系统和应用程序的行为特征对入侵进行进一步的分析,响应。比如,一旦检测到有入侵行为,我们可以立即使该用户的账号失效,用户的进程中断。他可以帮助发现基于网络的入侵检测无法检测的加密攻击。基于主机的入侵检测系统尤其对于独立的服务器及应用构造简单,易于理解,也只有这种检测方式能检测出通过控制台的入侵活动。目前许多是基于主机日志分析的。

       同时,基于主机的入侵检测系统也有若干显而易见的缺点,由于他一定程度上依赖于特定的操作系统平台,管理困难,必须按照每一台机器的环境配置管理。同时主机的日志提供的信息有限,有的入侵手段和途径不会在日志中有所反映,日志系统对网络层的入侵行为无能为力。在数据提取的实时性,充分性,可靠性方面基于主机日志的入侵检测系统不如基于网络的入侵检测系统。他通常无法对网络环境下发生的大量攻击行为作出及时的反应,他在所保护主机上运行,这也会影响宿主机的运行性能。

2:基于网络的入侵检测系统

      通过监听网络中的数据包,既抓包技术来获取必要的数据来源,并通过协议分析,特征匹配,统计分析等手段当前发生的攻击行为。
       基于网络的入侵检测的优点是:一个安装在网络合适位置NIDS系统可以监视一个很大范围的网络,他的运行丝毫不影响主机或者服务器的运行效率,因为基于网络的入侵检测系统通常采取独立主机和被动监听的工作模式,他对网络的性能影响也很小。NIDS能够实时监控网络中的数据流量,并发现潜在的攻击行为和作为迅速的响应,而使攻击者难以发现自己已被监视,另外,他的分析对象是网络协议,一般没有移植性的问题。
       同事基于网络的入侵检测系统的主要问题是监视数据量过于庞大并且他不结合操作系统特征来对网络行为进行准确的判断,在网络通讯的高峰时刻,难以检查所有数据包;如果网络数据被加密,NIDS就不能扫描协议或内容NIDS不能判断一个攻击是否已经成功,对于渐进式,合作式的攻击难以防范。


常用的入侵检测技术

1:基于统计分析技术的入侵检测

      他试图建立一个对应”正常活动”的特征原型,然后把与所建立的特征原型中差别”很大”的所有行为都标志为异常。显而易见,当入侵集合与异常活动集合不完全相等时,一定会存在漏 报或者误报的问题,为了使漏报和误报的概率较为符合实际需要,必须选择一个区分异常事件的阀值,而调整和更新某些系统特征度量值的方法非常复杂,开销巨大,在实际情况下,试图用逻辑方法明确划分正常行为和异常行为两个集合非常困难,统计手段的主要优点是可以自适应学习用户的行为,主要问题是其可能被入侵者逐渐训练以致最终将入侵事件误认为是正常,并且阀值设置不会当导致大比例的误报与漏报,此外,由于统计量度对事件顺序的不敏感性,事件间的关系会漏掉。

2:基于模式预测异常检测

       基于模式预测异常检测方法的假设条件是:事件序列不是随机的,而是遵循可辨别的模式,这种检测方法的特点是考虑了事件的序列和相互关系。而基于时间的推理方法则利用时间规则识别用户行为正常模式的特征,通过归纳学习产生这些规则集,能动态的修改系统中的规则,使之具有高的预测性,准确性和可信度。如果规则大部分时间是正确的,并能够成功的运用预测所观察到的数据,那么规则就具有高的可信度,根据观察到用户的行为,归纳产生出一套规则集来构建用户的轮廓框架,如果观测到的事件序列匹配规则的左边,而后续事件显著的背离根据规则预测到的事件,那么系统就可以检测出这种偏离,这就表明用户操作是异常。如果能预测出不着呢刚才的后继事件的片段,则一定程度上断定用户行为的异常性,这种方法的主要优点是:
       1):能较好地处理变化多样的用户行为,具有很强的时序模式。
       2):能够集中考察少数几个相关的安全事件,而不是关注可疑的整个登录会话过程
       3):对发现检测系统遭受攻击,具有良好的灵敏度,因为根据规则的蕴含语义,在系统学习阶段,能够更容易的辨别出欺骗者训练系统的企图
       预测模式生成技术的问题在于未被这些规则描述的入侵会被漏检

3:基于神经网络技术的入侵检测

      神经网络用给定的n个动作训练神经网络去预测用户的下一步行为。训练结束之后,神经网络使用已出现在网中的用户特征匹配实际的用户行为,标志统计差异较大的事件为异常或者非法。使用神经网络的优点是可以很好的处理噪声数据,因为他只与用户行为相关,而不依赖于任何底层数据特性的统计,但同样有入侵者能够在其徐诶阶段训练网络的问题。

4:基于机器学习异常检测

      这种异常检测方法通过机器学习实现入侵检测,其主要的方法有死记硬背式、监督、学习、归纳学习、类比学习等。

5:基于数据挖掘异常检测

      数据挖掘,也称知识发现,通常记录系统运行日志得数据库都非常大,如何从大量数据中“浓缩”出一个值或者一组值来表示对象得概貌,并以此进行行为的异常分析和检测,这就是数据挖掘技术在入侵检测系统的应用,数据挖掘中一般会用到数据聚类技术。

6:专家系统

      用专家系统对入侵进行检测,经常时针对具有明显特征的入侵行为,即所谓的规则,即时知识,专家系统的建立依赖于知识库的完备性,知识库的完备性又取决于审计记录的完备性和实时性。
       基于专家系统无用入侵检测方法是通过将安全专家的知识表示城IF-THEN规则形成专家知识库,然后,运用推理算法进行入侵检测,编码规则说明攻击的必需条件作为IF的组成部分,当规则的左边的全部条件都满足时,规则的右边的动作才会执行,入侵检测专家系统应用的实际问题时要处理大量的数据和依赖于审计跟踪的次序,其推理方式主要又以下两种:
       1):根据给定的数据,应用符号推理出入侵的发生情况,需要解决的主要问题时处理序列数据和知识库的维护,不足之处就是只能检测已知。
       2):根绝其他的入侵证据,进行不确定性推理,这种推理的局限性就是推理证据的不精确和专家知识的不精确。


入侵检测的技术关键

      入侵检测技术对于网络安全方面来说是一项重要的技术而提高入侵检查的一项根本方法就是提高模式匹配效率,提高模式匹配的效率也就是等于提升了网络安全。

一:模式匹配技术

1:模式匹配

      入侵检测系统对重要的网段进行监控,对网段中没个数据包进行模式匹配和分析。如果数据包内容和入侵检测系统规律相符,就会发出警报,并切断网络,由此可见模式匹配是影响入侵检测的关键技术。
       模式匹配定义为:设有给定的连哥哥串T和P,则在T中寻找P的子串的经过成为模式匹配。T称为正文,P称为模式,通常T的长度远远大于P的长度,若在T中找到等于P的子串,则匹配成功,否则匹配失败。

2:模式匹配的原理

      在入侵检测中,模式匹配可以理解为:给定入侵规则库中的一个特定的模式字符串P,在网络数据包T中进行查找,确定P是否在T中出现。

3:模式匹配的规则

      网络入侵检测以网络中采集的数据包为数据源,使用模式匹配方法对数据包进行检测从而发现网络中可能存在的入侵事件,其中对数据包的检测就是要在网络数据包中检测是否存在可以代表入侵行为或者入侵企图的一些字符串,即查找出某些入侵规则中规则选项中所标识的字符串,由于规则数较多,模式匹配过程是入侵检测系统中时间小号最大的环节之一。如果没有高效的模式匹配算法作为保障,检测过程中就会产生超时溢出错误,此时为了保证正常工作状态,系统将主动的丢弃一些数据包,形成漏检。
       所以,一个好的高效的模式皮匹配算法对入侵检测效率的提升至关重要。

二:模式匹配算法

参考:http://dsqiu.iteye.com/blog/1700312


案例说明

1:介绍

      以企业入侵日志为例,假设攻击者要攻击某个企业,那么必需使用进入到该企业的网络,已知该企业的网络分为内部用户和访客,每次登陆都会产生一系列的日志,那么如何根据这些wlan的访问日志来进行登陆用户的异常行为检测呢?

2:分析

      根据访问日志,我们并不能确定使用网络的用户哪个是进行入侵的,即我们没有一个明确的结果来判断入侵者和非入侵者,那么这里我们可以采用的入侵检测技术便可以是:基于统计的入侵检测技术

3:实现

       首先我们可以对访问者进行比例划分,例如9:1,利用90%的数据进行构建用户肖像,统计分析出用户肖像数据,继而利用10%的数据进行数据测试,主要依据的便是90%数据构建的用户模型。统计处测试用户产生的异常值。并可以根据实际情况设置一个阀值,来判定是否是入侵用户。

      其次,如果我们能明确知道哪些是入侵者,即数据产生方已经积累了一定的入侵用户,那么我们可以针对入侵者的入侵手段进行建模,比如说,这些入侵者都喜欢在凌晨3点,进行网络认证,且他们在线的时间较短,那么我们便可以收集这两个特征作为入侵者的特征,继而针对网络认证用户进行判断。

      当然我们也可以结合其他的一些辅助手段进行异常用户的检测,比如说黑名单,可以根据入侵者的行为模式构建哥规则列表,即符合该规则库中的任意一条规则几位入侵者。

文章推荐:以企业入侵检测日志分析为场景谈大数据安全



个人微信公众号,欢迎关注
这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业知识库在跨地域团队协作中的价值

随着全球化进程的不断加速,越来越多的企业开始面临跨地域协作的挑战。在这种背景下,企业知识库作为一种重要的知识管理工具,对于提高团队协作效率、促进知识共享与创新具有不可替代的价值。接下来就说一下知识库在跨地域团队协作中的重要性及…

Asp-Net-Core开发笔记:接口返回json对象出现套娃递归问题

前言看了下推送记录,一个月前,OK,我又变成月更了o(╯□╰)o,这绝对不行![○・`Д・ ○]所以今天来更新了其实不是我懒得更新或者是太忙,其实是最近在写一篇很长的博客&…

spring之二——使用maven创建一个java project

2019独角兽企业重金招聘Python工程师标准>>> maven的安装及Eclipse maven插件安装这里不再说了,安装可以看这篇博客: http://www.blogjava.net/fancydeepin/archive/2012/07/13/eclipse_maven3_plugin.html 需要注意的是,maven在w…

自从装了windows神器,再也不用羡慕mac了

1. 命令行神器 1.1 GOW Gow(Gnu On Windows)是Cygwin的轻量级替代品。 它使用一个方便的NSIS安装程序,安装超过100个非常有用的开源UNIX应用程序,编译为本机win32二进制文件。 它被设计为尽可能小,大约18 MB&#xff…

第1章 绪论

《数据结构》学习笔记 第1章 绪论 1.1 数据结构的研究内容 计算机计算数值时,一般经过一下步骤: 1.从具体问题抽象出数学模型(实质是分析问题)。 2.设计一个解次数学模型的算法。 3.编写程序,进行测试、调试&#xf…

C#中泛型约束的具体用法

前言上一篇博文简单介绍了泛型的约束&#xff0c;说是通过where<>来实现具体委托占位符的约束。那么约束又有什么类型和次序呢。这篇文章咱们一起看看。目前共5种类型的约束。类名&#xff1a;只有这个类型的类或从它继承的类才能用作类型实参class&#xff1a;任何引用类…

系统架构:Web应用架构的新趋势 前后端分离的想法

最近研究servlet&#xff0c;看书时候书里讲到了c/s架构到b/s架构的演变&#xff0c;讲servlet的书都很老了&#xff0c;现在的b/s架构已经不是几年前的b/s架构&#xff0c;其实b/s架构就是web应用开发&#xff0c;对于这样的架构我们现在应该考虑的是前端和后端的分离&#xf…

Asp-Net-Core学习笔记:身份认证入门

前言过年前我又来更新了~我就说了最近不是在偷懒吧&#xff0c;其实这段时间还是有积累一些东西的&#xff0c;不过还没去整理……所以只能发以前没写完的一些笔记出来就当做是温习一下啦PS&#xff1a;之前说的红包封面我还没搞&#xff0c;得抓紧时间了最近在准备搞一个我之前…

第1章 大数据挖掘及应用概论

《大数据挖掘及应用》学习笔记。 第1章 大数据挖掘及应用概论 数据挖掘是数据分析的提升。 1.1 大数据智能分析处理的普及和应用 1.1.1 云计算(cloud computing) 云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c;进入可配…

浮点型数据的输出格式

2019独角兽企业重金招聘Python工程师标准>>> float的占位符为f%,默认输出六位小数&#xff0c;如果要限制位数的输出&#xff0c;可以用%.2f这样的格式&#xff0c;double同上。 如果是浮点型转换成整型不会进行四舍五入&#xff0c;浮点型的输出如果截取了位数进行…

linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)

一、介绍基于TCP协议通过socket实现网络编程常用API 1、读者如果不是很熟悉,可以先看我之前写的几篇博客,有socket,地址结构的理解,更加方便读者理解 地址分别是: 1)、http://blog.csdn.net/u011068702/article/details/56479927 2)、http://blog.csdn.net/u01106870…

VS2010下Boost1.55.0配置

为什么80%的码农都做不了架构师&#xff1f;>>> 打开程序菜单&#xff0c;选择Visual Studio Tools里面的 Visual Studio 命令提示。转到解压后的Boost所在目录&#xff0c;输入Bootstrap&#xff0c;执行完毕会生成b2.exe。输入&#xff08;目录下的bjam.exe和b2.…

Linux信号实践(3) --信号内核表示

信号在内核中的表示执行信号的处理动作称为信号递达&#xff08;Delivery&#xff09;&#xff0c;信号从产生到递达之间的状态&#xff0c;称为信号未决&#xff08;Pending&#xff09;。进程可以选择阻塞&#xff08;Block&#xff09;某个信号。被阻塞的信号产生时将保持在…

第2章 数据认知与预处理

《大数据挖掘及应用》学习笔记。 第2章 数据认知与预处理 2.1 数据分析的定义和流程 数据分析(data analysis)是指用适当的统计分析方法对收集来的大量数据进行分析和解释&#xff0c;提取出有用的信息形成结论&#xff0c;从而对数据加以详细研究和概括总结的过程。 2.1.1 如…

9 C++ Boost 多线程,线程同步

线程的创建 boost_thread,boost_system 多线程的创建 线程的参数传递 线程的创建方式 线程的join 加入join,回收线程线程中断 线程中断2, 线程组 boost 线程的死锁 boost 线程递归锁 线程互斥锁,线程同步 unique_lock 锁,离开作用域自动释放 unique_lock 锁 示例 2,可以显式的释…

命令注入_命令注入绕过方式总结

前言命令注入是web中常见的漏洞之一&#xff0c;由于web应用程序未对用户提交的数据做严格的过滤&#xff0c;导致用户输入可以直接被linux或windows系统当成命令执行&#xff0c;一般都会造成严重的危害。常用符号分号(;)多条语句顺序执行时的分割符号。1cmd1;cmd2管道符(|)cm…

集合的结构示意图

转载于:https://blog.51cto.com/8467007/1364724

第1章 数据分析概述

《Python数据分析基础教程》学习笔记。 第1章 数据分析概述 1.1 数据的性质 1.1.1 数据的概念 所谓数据就是描述事物的符号&#xff0c;是对客观事物的性质、状态和相互关系等进行记载的物理符号或者是这些物理符号的组合。 在计算机系统中&#xff0c;各种文字、字母、数字符…

Android之通过adb shell getprop、netstat命令看dns、ip

1、查看dns 1)、输入adb shell 2 )、输入getprop ,查看配置 3)、getprop | grep dns 过滤dns 4) 、getprop | grep dns 输出dns 5) 、修改dns 需要root ,然后输入 adb shell 然后输

Cache占用过多内存导致Linux系统内存不足问题排查

问题描述Linux服务器内存使用量超过阈值&#xff0c;触发报警。问题排查首先&#xff0c;通过free命令观察系统的内存使用情况&#xff0c;显示如下&#xff1a;total used free shared buffers cached Mem: 24675796 24587144 88652 …