草庐IT

安全防御之入侵检测篇

一根木棍 2024-03-15 原文

目录

1.什么是IDS?

2.IDS和防火墙有什么不同?3.IDS的工作原理?

4.IDS的主要检测方法有哪些?请详细说明

5.IDS的部署方式有哪些?

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

7.IPS配置实验


1.什么是IDS?

IDS ---- 入侵检测系统。IDS 主要检测系统内部,运行在被监控的主机上,对主机的网络行为、系统日志、进程和内存等指标进行监控。IPS 是检测在系统的防火墙和外网之间,针对流向内部的流量进行分析。监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。
做一个形象的比喻:假如防火墙是一幢大楼的门锁,那么 IDS 就是这幢大楼里的监视系统。一旦小偷爬窗进入大楼,或内部人员有越界行为,实时监视系统会发现情况并发出警告

2.IDS和防火墙有什么不同?

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

  • 防火墙是在本地网络和外部网络也就是互联网之间的一道防御屏障,IDS 是对攻击作出反击的技术;

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

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

3.IDS的工作原理?

防火墙主要是针对流量进行管控的一种防御设备,在安全策略,会话表等的情况下决定可以通过防火墙的流量 ;而入侵检测系统不仅针对已经通过防火墙的流量进行监控和检测,也会对防火墙内部的流量进行监控和检测。IDS提升了内部区域的安全性,是对防火墙的一个有力补充。

IDS作用:

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

4.IDS的主要检测方法有哪些?请详细说明

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

  • 特征检测:IDS核心是特征库(签名)。签名用来描述网络入侵行为的特征,通过比较报文特征和签名来检测入侵行为。

异常检测模型**(Anomaly Detection)

首先总结正常操作应该具有的特征(用户轮廓),当用户活动与正常行为有重大偏离时即被认为是入侵。

误用检测模型**(Misuse Detection)收集非正常操作的行为特征,建立相关的特征库,当检测的用户或系统行为与库中的记录相匹配时,系统就认为这种行为是入侵,误用检测模型也称为特征检测(Signature-based detection)。

5.IDS的部署方式有哪些?

旁挂:需要在部署旁挂设备上使用端口镜像的功能,把需要采集的端口流量镜像到IDS旁挂口。也可以使用集线器、分光器实现流量复制。

集线器最主要的功能就是当一个接口有流量通过,就回对剩余接口进行洪泛;分光器的主要作用就是在物理方面将光再复制一份。

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

IDS中签名就是某种入侵行为所具备的特征,IDS特征检测就是使用特征库与数据特征进行比对,判断是否为入侵行为。

签名过滤器的场景:IPS特征库中包含了针对各种攻击行为的海量签名信息,但是在实际网络环境中,业务类型可能比较简单,不需要使用所有的签名,大量无用的签名也容易影响对常用签名的调测。此时我们可以使用签名过滤器将常用的签名过滤出来。

签名过滤器是若干签名的集合,我们根据特定的条件如严重性、协议、威胁类型等,将IPS特征库中适用于当前业务的签名筛选到签名过滤器中,后续就可以重点关注这些签名的防御效果。通常情况下,对于筛选出来的这些签名,在签名过滤器中会沿用签名本身的缺省动作。特殊情况下,我们也可以在签名过滤器中为这些签名统一设置新的动作,操作非常便捷。

签名过滤器的动作分为:

  • 阻断:丢弃命中签名的报文,并记录日志。

  • 告警:对命中签名的报文放行,但记录日志。

  • 采用签名的缺省动作,实际动作以签名的缺省动作为准。

签名过滤器的动作优先级高于签名缺省动作,当签名过滤器动作不采用缺省动作时以签名过滤器中的动作为准。

例外签名

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

例外签名的动作分为:

  • 阻断:丢弃命中签名的报文并记录日志。

  • 告警:对命中签名的报文放行,但记录日志。

  • 放行:对命中签名的报文放行,且不记录日志。添加黑名单:是指丢弃命中签名的报文,阻断报文所在的数据流,记录日志,并可将报文的源地址或目的地址添加至黑名单。

7.IPS配置实验

防火墙针对不同协议的入侵检测,已经内置了相应的入侵配置文件;我们可以选择新建,针对新协议的入侵检测,也可以选择修改已有的配置文件,来达到所需的入侵检测的需求。 

 在配置安全策略时,可以针对内容安全进行选择相应的配置文件。

 查看IPS特征库

查看具体签名信息

 

有关安全防御之入侵检测篇的更多相关文章

  1. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  2. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  3. ruby - 如何安全地删除文件? - 2

    在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?

  4. ruby - 用 YAML.load 解析 json 安全吗? - 2

    我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("

  5. ruby-on-rails - 安全地显示使用回形针 gem 上传的图像 - 2

    默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同

  6. ruby - 检测由 RSpec、Ruby 运行的代码 - 2

    我想知道我的代码是否在rspec下运行。这可能吗?原因是我正在加载一些错误记录器,这些记录器在测试期间会被故意错误(expect{x}.toraise_error)弄得乱七八糟。我查看了我的ENV变量,没有(明显的)测试环境变量的迹象。 最佳答案 在spec_helper.rb的开头添加:ENV['RACK_ENV']='test'现在您可以在代码中检查RACK_ENV是否经过测试。 关于ruby-检测由RSpec、Ruby运行的代码,我们在StackOverflow上找到一个类似的问题

  7. ruby - 使用 Ruby Daemons gem 检测停止 - 2

    我正在使用rubydaemongem。想知道如何向停止操作添加一些额外的步骤?希望我能检测到停止被调用,并向其添加一些额外的代码。任何人都知道我如何才能做到这一点? 最佳答案 查看守护程序gem代码,它似乎没有用于此目的的明显扩展点。但是,我想知道(在守护进程中)您是否可以捕获守护进程在发生“停止”时发送的KILL/TERM信号...?trap("TERM")do#executeyourextracodehereend或者你可以安装一个at_exit钩子(Hook):-at_exitdo#executeyourextracodehe

  8. ruby - 使写入文件线程安全 - 2

    我在一个ruby​​文件中有一个函数可以像这样写入一个文件File.open("myfile",'a'){|f|f.puts("#{sometext}")}这个函数在不同的线程中被调用,使得像上面这样的文件写入不是线程安全的。有谁知道如何以最简单的方式使这个文件写入线程安全?更多信息:如果重要的话,我正在使用rspec框架。 最佳答案 您可以通过File#flock给锁File.open("myfile",'a'){|f|f.flock(File::LOCK_EX)f.puts("#{sometext}")}

  9. ruby - Ruby 脚本如何检测到它正在 irb 中运行? - 2

    我有一个定义类的Ruby脚本。我希望脚本执行语句BoolParser.generate:file_base=>'bool_parser'仅当脚本作为可执行文件被调用时,而不是当它被irbrequire(或通过-r在命令行上传递)时。我可以用什么来包装上面的语句,以防止它在我的Ruby文件加载时执行? 最佳答案 条件$0==__FILE__...!/usr/bin/ruby1.8classBoolParserdefself.generate(args)p['BoolParser.generate',args]endendif$0==_

  10. Ruby 无法检测字符串中的换行符 - 2

    我有以下字符串,我想检测那里的换行符。但是Ruby的字符串方法include?检测不到它。我正在运行Ruby1.9.2p290。我哪里出错了?"/'ædres/\nYour".include?('\n')=>false 最佳答案 \n需要在双引号内,否则无法转义。>>"\n".include?'\n'=>false>>"\n".include?"\n"=>true 关于Ruby无法检测字符串中的换行符,我们在StackOverflow上找到一个类似的问题: h

随机推荐