入侵检测(IntrusionDetection)是对入侵行为的检测。它通过收集和分析计算机网络或计算机系统中若于关键点的信息，检查网络或系统中是否存在违反安全策略的行为和被攻击的迹象。入侵检测作为一种积极主动的安全防护技术，提供了对内部攻击、外部攻击和误操作的实时保护，在网络系统受到危害之前拦截和响应入侵入侵检测技术虽然也能够对网络攻击进行识另拼作出反应，但其侧重点还是在于发现，而不能代替防火墙系统执行整个网络的访问控制策略。
入侵检测系统（intrusionDetectionSystem,IDS）是对计算机和网络资源的恶意使用为进行识别的系统；它的目的是监测和发现可能存在的攻击行为，包括来自系统外部的入侵行为和来自内部用户的非授权行为，并且采取相应的防护手段。
基于异常的入侵检测方法主要来源于这样的思想，任何人的正常行为都是有一定的规律的，并且可以通过分析这些行为的日志信息型总结出这些规律，而入侵和滥用行为规则通常和正常的行为存在严重的差异，通过检查这些差异就可以判断是否为入侵。总之，一场检测基于这样的假设和前提：用户活动是有规律的，而且这种规律是可以通过数据有效的描述和反映；入侵时异常活动的子集和用户的正常活动有着可以描述的明显的区别。
异常监测系统首先经过一个学习阶段，总结正常的行为的轮廓成为自己的先验知识，系统运行时将信息采集子系统获得并预处理后的数据与正常行为模式比较，如果差异不超出预设阀值，则认为是正常的，出现较大差异即超过阀值则判定为入侵。
异常检测系统有如下特点：
又称为基于特征的检测，基于误用的入侵检测系统通过使用某种模式或者信号标示表示攻击，进而发现同类型的攻击，其实现过程是：先收集非正常操作的行为特征，系统就认为这种行为是入侵，系统处理过程如同：
这种方法可以检测到许多甚至是全部已知的攻击行为，如果入侵特征与正常的用户行为能匹配，则系统会发生误报，如果没有特征能与某种新的攻击行为匹配，则系统会发生漏报。
特点：采用特征匹配模式能明显降低错报率，但漏报率随之增加，攻击特征的细微变化，会使得滥用检测无能为力。
基于主机的入侵检测是入侵检测的最初期形式，这种入侵检测系统通常运行在被检测的主机或者服务器上，实时检测检测系统的运行，通常从主机的审计记录和日志文件中获得所需的主要数据源，并辅之以主机上的其他信息，在此基础上完成检测攻击行为的任务。特别的，从主机入侵检测技术中还可以单独分离出基于应用的入侵检测模型，这是特别针对于某个特定任务的应用程序而设计的入侵检测技术，采用的输入数据源是应用程序的日志信息。
2）：记账，通常指由操作系统或操作员所执行的特定操作，记录计算机资源的使用情况，例如CPU占用时间，内存，硬盘，网络使用情况。在计算机未普及之前，记账是为了向用户收费的。
3）：系统日志，可分为操作系统日志和应用程序日志两部分。操作系统日志从不同方面记录了系统中发生的事情，对于入侵检测而言，具备重要的价值，当一个进程终止时，系统内核为每个进程在进程日志文件中写入一条记录。
4）：C2安全审计，记录所有可能与安全性有关的发生在系统上的事情。
基于主机的入侵检测能够较为准确的检测到发生在主机系统高层的复杂攻击行为，其中，许多发生在应用进程级别的攻击行为是无法依靠基于网络的入侵检测来完成的，基于主机的入侵检测系统巨头检测效率高，分析代价小，分析速度快的特点，能够迅速并准确的定为入侵者，并可以结合操作系统和应用程序的行为特征对入侵进行进一步的分析，响应。比如，一旦检测到有入侵行为，我们可以立即使该用户的账号失效，用户的进程中断。他可以帮助发现基于网络的入侵检测无法检测的加密攻击。基于主机的入侵检测系统尤其对于独立的服务器及应用构造简单，易于理解，也只有这种检测方式能检测出通过控制台的入侵活动。目前许多是基于主机日志分析的。
同时，基于主机的入侵检测系统也有若干显而易见的缺点，由于他一定程度上依赖于特定的操作系统平台，管理困难，必须按照每一台机器的环境配置管理。同时主机的日志提供的信息有限，有的入侵手段和途径不会在日志中有所反映，日志系统对网络层的入侵行为无能为力。在数据提取的实时性，充分性，可靠性方面基于主机日志的入侵检测系统不如基于网络的入侵检测系统。他通常无法对网络环境下发生的大量攻击行为作出及时的反应，他在所保护主机上运行，这也会影响宿主机的运行性能。
通过监听网络中的数据包，既抓包技术来获取必要的数据来源，并通过协议分析，特征匹配，统计分析等手段当前发生的攻击行为。
基于网络的入侵检测的优点是：一个安装在网络合适位置NIDS系统可以监视一个很大范围的网络，他的运行丝毫不影响主机或者服务器的运行效率，因为基于网络的入侵检测系统通常采取独立主机和被动监听的工作模式，他对网络的性能影响也很小。NIDS能够实时监控网络中的数据流量，并发现潜在的攻击行为和作为迅速的响应，而使攻击者难以发现自己已被监视，另外，他的分析对象是网络协议，一般没有移植性的问题。
同事基于网络的入侵检测系统的主要问题是监视数据量过于庞大并且他不结合操作系统特征来对网络行为进行准确的判断，在网络通讯的高峰时刻，难以检查所有数据包；如果网络数据被加密，NIDS就不能扫描协议或内容NIDS不能判断一个攻击是否已经成功，对于渐进式，合作式的攻击难以防范。
他试图建立一个对应”正常活动”的特征原型，然后把与所建立的特征原型中差别”很大”的所有行为都标志为异常。显而易见，当入侵集合与异常活动集合不完全相等时，一定会存在漏报或者误报的问题，为了使漏报和误报的概率较为符合实际需要，必须选择一个区分异常事件的阀值，而调整和更新某些系统特征度量值的方法非常复杂，开销巨大，在实际情况下，试图用逻辑方法明确划分正常行为和异常行为两个集合非常困难，统计手段的主要优点是可以自适应学习用户的行为，主要问题是其可能被入侵者逐渐训练以致最终将入侵事件误认为是正常，并且阀值设置不会当导致大比例的误报与漏报，此外，由于统计量度对事件顺序的不敏感性，事件间的关系会漏掉。
基于模式预测异常检测方法的假设条件是：事件序列不是随机的，而是遵循可辨别的模式，这种检测方法的特点是考虑了事件的序列和相互关系。而基于时间的推理方法则利用时间规则识别用户行为正常模式的特征，通过归纳学习产生这些规则集，能动态的修改系统中的规则，使之具有高的预测性，准确性和可信度。如果规则大部分时间是正确的，并能够成功的运用预测所观察到的数据，那么规则就具有高的可信度，根据观察到用户的行为，归纳产生出一套规则集来构建用户的轮廓框架，如果观测到的事件序列匹配规则的左边，而后续事件显着的背离根据规则预测到的事件，那么系统就可以检测出这种偏离，这就表明用户操作是异常。如果能预测出不着呢刚才的后继事件的片段，则一定程度上断定用户行为的异常性，这种方法的主要优点是：
1）：能较好地处理变化多样的用户行为，具有很强的时序模式。
神经网络用给定的n个动作训练神经网络去预测用户的下一步行为。训练结束之后，神经网络使用已出现在网中的用户特征匹配实际的用户行为，标志统计差异较大的事件为异常或者非法。使用神经网络的优点是可以很好的处理噪声数据，因为他只与用户行为相关，而不依赖于任何底层数据特性的统计，但同样有入侵者能够在其徐诶阶段训练网络的问题。
这种异常检测方法通过机器学习实现入侵检测，其主要的方法有死记硬背式、监督、学习、归纳学习、类比学习等。
数据挖掘，也称知识发现，通常记录系统运行日志得数据库都非常大，如何从大量数据中“浓缩”出一个值或者一组值来表示对象得概貌，并以此进行行为的异常分析和检测，这就是数据挖掘技术在入侵检测系统的应用，数据挖掘中一般会用到数据聚类技术。
用专家系统对入侵进行检测，经常时针对具有明显特征的入侵行为，即所谓的规则，即时知识，专家系统的建立依赖于知识库的完备性，知识库的完备性又取决于审计记录的完备性和实时性。
基于专家系统无用入侵检测方法是通过将安全专家的知识表示城IF-THEN规则形成专家知识库，然后，运用推理算法进行入侵检测，编码规则说明攻击的必需条件作为IF的组成部分，当规则的左边的全部条件都满足时，规则的右边的动作才会执行，入侵检测专家系统应用的实际问题时要处理大量的数据和依赖于审计跟踪的次序，其推理方式主要又以下两种：
1)：根据给定的数据，应用符号推理出入侵的发生情况，需要解决的主要问题时处理序列数据和知识库的维护，不足之处就是只能检测已知。
2)：根绝其他的入侵证据，进行不确定性推理，这种推理的局限性就是推理证据的不精确和专家知识的不精确。
入侵检测技术对于网络安全方面来说是一项重要的技术而提高入侵检查的一项根本方法就是提高模式匹配效率，提高模式匹配的效率也就是等于提升了网络安全。
入侵检测系统对重要的网段进行监控，对网段中没个数据包进行模式匹配和分析。如果数据包内容和入侵检测系统规律相符，就会发出警报，并切断网络，由此可见模式匹配是影响入侵检测的关键技术。
模式匹配定义为：设有给定的连哥哥串T和P，则在T中寻找P的子串的经过成为模式匹配。T称为正文，P称为模式，通常T的长度远远大于P的长度，若在T中找到等于P的子串，则匹配成功，否则匹配失败。
在入侵检测中，模式匹配可以理解为：给定入侵规则库中的一个特定的模式字符串P，在网络数据包T中进行查找，确定P是否在T中出现。
网络入侵检测以网络中采集的数据包为数据源，使用模式匹配方法对数据包进行检测从而发现网络中可能存在的入侵事件，其中对数据包的检测就是要在网络数据包中检测是否存在可以代表入侵行为或者入侵企图的一些字符串，即查找出某些入侵规则中规则选项中所标识的字符串，由于规则数较多，模式匹配过程是入侵检测系统中时间小号最大的环节之一。如果没有高效的模式匹配算法作为保障，检测过程中就会产生超时溢出错误，此时为了保证正常工作状态，系统将主动的丢弃一些数据包，形成漏检。
所以，一个好的高效的模式皮匹配算法对入侵检测效率的提升至关重要。
以企业入侵日志为例，假设攻击者要攻击某个企业，那么必需使用进入到该企业的网络，已知该企业的网络分为内部用户和访客，每次登陆都会产生一系列的日志，那么如何根据这些wlan的访问日志来进行登陆用户的异常行为检测呢？
其次，如果我们能明确知道哪些是入侵者，即数据产生方已经积累了一定的入侵用户，那么我们可以针对入侵者的入侵手段进行建模，比如说，这些入侵者都喜欢在凌晨3点，进行网络认证，且他们在线的时间较短，那么我们便可以收集这两个特征作为入侵者的特征，继而针对网络认证用户进行判断。
心灵鸡汤：只要努力，你就是下一个大牛
别了青春与流年，遇见下一个自己
ZyManTou:@Gamer_gyt:大哥你把github上的源码也改一下啊，可把我这萌新坑死了我看的是你这篇的转