你对入侵检测了解多少呢?

Posted 别搞!好吗!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你对入侵检测了解多少呢?相关的知识,希望对你有一定的参考价值。

目录

一、什么是IDS(intrusion detection system)?       

入侵检测概述

二、IDS和防火墙有什么不同?

三、IDS工作原理?

四、IDS的主要检测方法有哪些详细说明?

异常入侵检测(Anomaly Detection)        白名单

误用入侵检测(Misuse Detection)        黑名单

五、IDS的部署方式有哪些?

六、IDS的签名是什么意思?签名过滤器有什么作用?例外签名配置作用是什么? 

IDS的签名:

签名过滤器作用:

签名过滤器的动作:

例外签名:

七、相关实验

1.实验拓扑

2. 自定义签名

3.添加例外签名

4.特征库升级

 5.在策略中配置签名


一、什么是IDS(intrusion detection system)?       

IDS(入侵检测系统):长时间的监测

  • 识别入侵者
  • 识别入侵行为
  • 检测和监视已成功的入侵
  • 为对抗入侵提供信息与依据,防止事态扩大

作用:对系统的运行状态进行监视,发现各种企图、过程、结果,来保证系统资源的安全(完整性、机密性、可用性)。是一个软件与硬件的组合系统。

异常:当某个时间与一个已知的攻击特征(信号)相匹配时。一个基于异常的IDS会记录一个正常主机的活动大致轮廓,当一个事件在这个轮廓以外发生,就认为是异常,IDS就会告警。

特征:IDS核心是特征库(签名)

入侵检测概述

  • 1980年James P. Aderson首先提出入侵检测概念,将入侵尝试或威胁定义为:潜在的,有预谋的,未经授权的访问信息和操作信息,致使系统不可靠或无法使用的企图。
  • 1987年,Dorothy Denning提出了入侵检测系统(Intrusion Detection System,IDS)的抽象模型,首次提出了入侵检测可作为一种计算机系统安全防御措施的概念,与传统的加密和访问控制技术相比,IDS是全新的计算机安全措施。
  • 1988年,Teresa Lunt等人进一步改进了Denning提出的入侵检测模型,创建了IDES(Intrusion Detection Expert System),该系统用于检测单一主机的入侵尝试,提出了与系统平台无关的实时检测思想。
  • 1995年开发的NIDES(Next-Generation Intrusion Detection Expert System)作为IDES完善后的版本可以检测出多个主机上的入侵。
  • 1990年,Heberlein等人提出基于网络的入侵检测—网络安全监视器(Network Security Monitor,NSM)。NSM与IDS系统的最大区别在于,它并不检查主机系统的审计记录,而是通过主动地监视局域网上的网络信息流量来追踪可疑的行为。
  • 1991年,NADIR(Network Anomaly Detection and Intrusion Reporter)与DIDS(Distribute Intrusion Detection System)提出了通过收集和合并处理来自多个主机的审计信息可以检测出一系列针对主机的协同攻击。
  • 1994年,Mark Crosbie和Gene Spafford建议使用自治代理(autonomous agents)以提高IDS的可伸缩性,可维护性,效率和容错性。
  • 1996年提出的GrIDS(Graph-based Intrusion Detection System),该系统可以方便地检测大规模自动或协同方式的网络攻击。

二、IDS和防火墙有什么不同?

1.IDS则是主动出击寻找潜在的攻击者,发现入侵行为;防火墙是针对黑客攻击的一种被动的防御,旨在保护。

2.IDS进行实时的检测,发现入侵行为即可做出反应,是对防火墙弱点的修补;防火墙只是防御为主,通过防火墙的数据便不再进行任何操作。

3.IDS则没有这些功能,只是监视和分析用户和系统活动;防火墙可以允许内部的一些主机被外部访问。

三、IDS工作原理?

        IDS扫描当前网络的活动,监视和记录网络的流量,根据定义好的规则来过滤从主机网卡到网线上的流量,提供实时报警。网络扫描器检测主机上先前设置的漏洞,而 IDS 监视和记录网络流量。如果在同一台主机上运行IDS和扫描器的话,配置合理的IDS会发出许多报警。

四、IDS的主要检测方法有哪些详细说明?

        入侵检测的原理,是从一组数据中检测出符合某一特点的数据。

异常入侵检测(Anomaly Detection)        白名单

        构筑异常检测原理的入侵检测系统,首先要建立系统或用户的正常行为模式库,不属于该库的行为被视为异常行为。但是,入侵性活动并不总是与异常活动相符合,而是存在下列4种可能性:入侵性非异常;非入侵性且异常;非入侵性非异常;入侵性且异常。       

        另外,设置异常的门槛值不当,往往会导致IDS许多误报警或者漏检的现象。IDS给安全管理员造成了系统安全假象,漏检对于重要的安全系统来说是相当危险的。

误用入侵检测(Misuse Detection)        黑名单

        误用入侵检测依赖于模式库。误用入侵检测能直接检测出模式库中已涵盖的入侵行为或不可接受的行为,而异常入侵检测是发现同正常行为相违背的行为。误用入侵检测的主要假设是具有能够被精确地按某种方式编码的攻击。通过捕获攻击及重新整理,可确认入侵活动是基于同一弱点进行攻击的入侵方法的变种。误用入侵检测主要的局限性是仅仅可检测已知的弱点.对检测未知的入侵可能用处不大。

五、IDS的部署方式有哪些?

  • 共享模式和交换模式:从 HUB 上的任意一个接口,或者在交换机上做端口镜像的端口上收集信息。
  • 隐蔽模式:在其他模式的基础上将探测器的探测口 IP 地址去除,使得 IDS 在对外界不可见的情况下正常工作。
  • Tap 模式:以双向监听全双工以太网连接中的网络通信信息,能捕捉到网络中的所有流量,能记录完整的状态信息使得与防火墙联动或发送 Reset 包更加容易。
  • In-line 模式:直接将 IDS 串接在通信线路中,位于交换机和路由器之间。这种模式可以将威胁通信包丢弃,以实时阻断网络攻击。
  • 混合模式:通过监听所有连接到防火墙的网段,全面了解网络状况。

六、IDS的签名是什么意思?签名过滤器有什么作用?例外签名配置作用是什么? 

IDS的签名:

        入侵防御签名用来描述网络中存在的攻击行为的特征,通过将数据流和入侵防御签名进行比较来检测和防范攻击。如果某个数据流匹配了某个签名中的特征项时,设备会按照签名的动作来处理数据流。入侵防御签名分为预定义和自定义签名。

签名过滤器作用:

        由于设备升级签名库后会存在大量签名,而这些签名没有进行分类,且有些签名所包含的特征本网络中不存在,需要设置签名过滤器对其进行管理,并过滤掉。

签名过滤器的动作:

  • 阻断:丢弃命中签名的报文,并记录日志
  • 告警:对命中签名的报文放行,但记录日志。
  • 采用签名的缺省动作,实际动作以签名的缺省动作为准

例外签名:

作用:由于签名过滤器会批量过滤出签名,且通常为了方便管理会设置为统一的动作。如果管理员需要将某些 签名设置为与过滤器不同的动作时,可将这些签名引入到例外签名中,并单独配置动作。

动作:

  • 阻断:丢弃命中签名的报文并记录日志
  • 告警:对命中签名的报文放行,但记录日志
  • 放行:对命中签名的报文放行,且不记录日志。

七、相关实验

1.实验拓扑

2. 自定义签名

 

3.添加例外签名

4.特征库升级

 5.在策略中配置签名

 

面试灵魂拷问:你对 JVM 的运行原理了解多少?

本文选自拉勾教育专栏:《深入浅出 Java 虚拟机》


你好,我是李国,今天要给大家分享的是 JVM 的学习。如果你是一名软件开发工程师,在日常工作中除了 Java 这个关键词外,还有一个名词也一定经常被提及,那就是 JVM 。提到 JVM 我们经常会在面试中遇到这样的问题:


  • 为什么 Java 研发系统需要 JVM?

  • 对 JVM 的运行原理了解多少?

  • 我们写的 Java 代码到底是如何运行起来的?


想要弄清楚这些问题,我们接下来从这三个维度去探讨:


  • JVM 和操作系统的关系?

  • JVM、JRE 、JDK的关系?

  • JVM 虚拟机规范和 Java 语言规范的关系?


JVM 和操作系统的关系

       

我们用一句话概括 JVM 与操作系统之间的关系:JVM 上承开发语言,下接操作系统,它的中间接口就是字节码。


而 Java 程序和我们通常使用的 C++ 程序有什么不同呢?这里用两张图进行说明。

       面试灵魂拷问:你对 JVM 的运行原理了解多少?              面试灵魂拷问:你对 JVM 的运行原理了解多少?       

对比这两张图可以看到 C++ 程序是编译成操作系统能够识别的 .exe 文件,而 Java 程序是编译成 JVM 能够识别的 .class 文件,然后由 JVM 负责调用系统函数执行程序。


JVM、JRE、JDK的关系

       面试灵魂拷问:你对 JVM 的运行原理了解多少?      

通过上面的学习我们了解到 JVM 是 Java 程序能够运行的核心。但是需要注意,JVM 自己什么也干不了,你需要给它提供生产原料(.class 文件)。俗语说的好,巧妇难为无米之炊。它虽然功能强大,但仍需要为它提供 .class 文件。


仅仅是 JVM,是无法完成一次编译,处处运行的。它需要一个基本的类库,比如怎么操作文件、怎么连接网络等。而 Java 体系很慷慨,会一次性将 JVM 运行所需的类库都传递给它。JVM 标准加上实现的一大堆基础类库,就组成了 Java 的运行时环境,也就是我们常说的 JRE(Java Runtime Environment)。


有了 JRE 之后,我们的 Java 程序便可以在浏览器中运行了。大家可以看一下自己装的 Java 目录,如果是只需要执行一些 Java 程序,只需要一个 JRE 就足够了。


对于 JDK 来说,就更庞大了一些。除了 JRE,JDK 还提供了一些非常好用的小工具,比如 javac、java、jar 等。它是 Java 开发的核心,让外行也可以炼剑!


我们也可以看下 JDK 的全拼,Java Development Kit 。我非常怕 kit(装备)这个单词,它就像一个无底洞,预示着你永无休止的对它进行研究。JVM、JRE、JDK 它们三者之间的关系,可以用一个包含关系表示。


JDK>JRE>JVM


       面试灵魂拷问:你对 JVM 的运行原理了解多少?      


JVM 虚拟机规范和 Java 语言规范的关系


我们通常谈到 JVM ,首先会想到它的垃圾回收器,其实它还有很多部分,比如对字节码进行解析的执行引擎等。广义上来讲,JVM 是一种规范,它是最为官方、最为准确的文档;狭义上来讲,由于我们使用 Hotspot 更多一些,我们一般在谈到这个概念时,会将它们等同起来。


如果再加上我们平常使用的 Java 语言的话,可以得出下面这样一张图。这是 Java 开发人员必须要搞懂的两个规范。

              


左半部分是 Java 虚拟机规范,其实就是为输入和执行字节码提供一个运行环境。右半部分是我们常说的 Java 语法规范,比如 switch、for、泛型、lambda 等相关的程序,最终都会编译成字节码。而连接左右两部分的桥梁依然是 Java 的字节码。


如果 .class 文件的规格是不变的,这两部分是可以独立进行优化的。但 Java 也会偶尔扩充一下 .class 文件的格式,增加一些字节码指令,以便支持更多的特性。


我们可以把 Java 虚拟机可以看作是一台抽象的计算机,它有自己的指令集以及各种运行时内存区域,学过《计算机组成结构》的同学会在课程的后面看到非常多的相似性。


那有的同学就说了,我不学习 JVM ,会影响我写 Java 代码么?理论上,这两者没有什么必然的联系。它们之间通过 .class 文件进行交互,即使你不了解 JVM,也能够写大多数的 Java 代码。就像是你写 C++ 代码一样,并不需要特别深入的了解操作系统的底层是如何实现的。


但是,如果你想要写一些比较精巧、效率比较高的代码,就需要了解一些执行层面的知识了。了解 JVM,主要用在调优以及故障排查上面,你会对运行中的各种资源分配,有一个比较全面的掌控。


小结


搞懂这些,我们再回头看上面的三个问题,自然迎刃而解了。


  • 为什么 Java 研发系统需要 JVM?


JVM 解释的是类似于汇编语言的字节码,需要一个抽象的运行时环境。同时,这个虚拟环境也需要解决字节码加载、自动垃圾回收、并发等一系列问题。JVM 其实是一个规范,定义了 .class 文件的结构、加载机制、数据存储、运行时栈等诸多内容,最常用的 JVM 实现就是Hotspot。


  • 对你 JVM 的运行原理了解多少?


JVM 的生命周期是和 Java 程序的运行一样的,当程序运行结束,JVM 实例也跟着消失了。JVM 处于整个体系中的核心位置,关于其具体运行原理,我们在下面的分享中详细介绍。


  • 我们写的 Java 代码到底是如何运行起来的? 


一个 Java 程序,首先经过 javac 编译成 .class 文件,然后 JVM 将其加载到`元数据`区,执行引擎将会通过`混合模式`执行这些字节码。执行时,会翻译成操作系统相关的函数。JVM 作为 .class 文件的黑盒存在,输入字节码,调用操作系统函数。过程如下:Java 文件->编译器>字节码->JVM->机器码。


总结


到这里本次分享的内容就全部讲完了,今天我们分别从三个角度,了解了 JVM 在 Java 研发体系中的位置。


下一次分享我将分享关于 JVM 内存管理相关的知识,记得持续关注 IT 技术思维哦。


版权声明:本文版权归属拉勾教育及该专栏作者,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表,违者必究。


“阅读原文”查看 深入浅出 Java 虚拟机

以上是关于你对入侵检测了解多少呢?的主要内容,如果未能解决你的问题,请参考以下文章

你对Appium了解多少?

你对HttpHttps了解到底有多少?

看看你对linux了解多少

红蓝对抗之常见网络安全事件研判了解网络安全设备Webshell入侵检测

红蓝对抗之常见网络安全事件研判了解网络安全设备Webshell入侵检测

我的第一篇博客