软考-入侵检测技术原理与应用

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷)

本文为追加文章,后期慢慢追加

by 2023年10月

入侵检测技术概念

入侵检测技术是指一种计算机安全技术,旨在监测计算机系统、网络或应用程序的安全状态,以识别和响应任何未经授权的访问、使用、修改或破坏尝试。入侵检测技术主要分为两类:主机入侵检测和网络入侵检测。主机入侵检测系统在特定主机上运行,监视主机上的系统日志、文件系统和进程,识别可能的安全漏洞和攻击。网络入侵检测系统则通过监测网络数据包和流量,来识别可能的攻击或异常行为。入侵检测技术是计算机安全的重要组成部分,用于保护计算机系统和网络不受未授权访问和恶意攻击。

入侵检测模型

通用入侵检测框架模型CIDF 由事件产生器(event generators)、事件分析器(event analyzers)、响应单元response units)和事件数据库(event databases)组成。

  • 事件产生器从整个计算环境中获得事件,并向系统的其他部分提供事件
  • 事件分析器分析所得到的数据,并产生分析结果
  • 响应单元对分析结果做出反应,如切断网络连接、改变文件属性、简单报等应急响应。
  • 事件数据库存放各种中间和最终数据,数据存放的形式既可以是复杂的数据库,也可以是简单的文本文件。
入侵检测技术

基于误用的入侵检测技术

误用入侵检测通常称为基于特征的入侵检测方法,是指根据已知的入侵模式检测入侵行为。误用入侵检测依赖于攻击模式库。采用误用入侵检测技术的IDS 产品的检测能力取决于攻击模式库的大小以及攻击方法的覆盖面。

误用检测方法:

  • 基于条件概率的误用检测方法:是将入侵方式对应一个事件序列,然后观测事件发生序列,应用贝叶斯定理进行推理,推测入侵行为。
  • 基于状态迁移的误用检测方法:利用状态图表示攻击特征,通过检查系统的状态变化发现系统中的入侵行为。
  • 基于键盘监控的误用检测方法:监测用户的击键模式,并将其与入侵模式匹配,从而发现入侵行为。
  • 基于规则的误用检测方法:将攻击行为或入侵模式表示成一种规则,只要符合规则就认定它是一种入侵行为。

大部分IDS采用的是这种方法。Snort是典型的基于规则的误用检测方法的应用实例。

基于异常的入侵检测技术

异常检测方法是通过计算机或网络资源统计分析,建立系统正常行为的"轨迹",定义一组系统正常情况的数值然后将系统运行时的数值与所定义的"正常情况相比较,得出是否有被攻击的迹象。

入侵行为集合通常不等同于异常行为集合。异常检测方法的基本思路是构造异常行为集合,从中发现入侵行为。

几种常见的异常检测方法:

  • 基于统计的异常检测方法:利用数学统计理论技术,通过构建用户或系统正常行为的特征轮廓。
  • 基于模式预测的异常检测方法:根据观察到的用户行为归纳产生一套规则集,构成用户的行为轮廓框架。如果后续的事件显著地背离根据规则预测到的事件,那么系统就可以检测出这种偏离,表明用户操作异常。
  • 基于文本分类的异常检测方法:将程序的系统调用视为某个文档中的"字"而进程运行所产生的系统调用集合就产生一个"文档"。对于每个进程所产生的"文档",利用K 最近邻聚类文本分类算法,分析文档的相似性,发现异常的系统调用,从而检测入侵行为。
  • 基于贝叶斯推理的异常检测方法:在任意给定的时刻,测量A1 A2,...An 变量值,推理判断系统是否发生入侵行为。
入侵检测系统组成

入侵检测功能模块组成:数据采集模块、入侵分析引擎模块、应急处理模块、管理配置模块和相关的辅助模块

  • 数据采集模块:为入侵分析引擎模块提供分析用的数据,包括操作系统的审计日志、应用程序的运行日志和网络数据包等。
  • 入侵分析引擎模块:依据辅助模块提供的信息十如攻击模式),根据一定的算法对收集到的数据进行分析,从中判断是否有入侵行为出现,并产生入侵报警。该模块是入侵检测系统的核心模块。
  • 管理配置模块:为其他模块提供配置服务,是iDS 系统中的模块与用户的接口。
  • 应急处理模块:发生入侵后,提供紧急响应服务( 教材模棱两可 ),例如关闭网络服务、中断网络连接、启动备份系统等。
  • 辅助模块:协助入侵分析引擎模块工作,为它提供相应的信息,例如攻击特征库、漏洞信息等。

IDS分为三大类

第一类:是基于主机的入侵检测系统(简称HIDS)

第二类:是基于网络的入侵检测系统(简称NIDS)

第三类:是分布式入侵检测系统(简称DIDS),从多台主机、多个网段采集检测数据

HIDS优点和缺点

HIDS(Host-based Intrusion Detection System,基于主机的入侵检测系统)可以在主机上部署检测并防范恶意攻击和未经授权访问,相对于网络入侵检测系统(NIDS)具有以下优点和缺点:

优点:

  1. HIDS可以监测操作系统和应用程序在主机上的所有活动,能够更准确、详细地分析和识别入侵行为。NIDS则只能从网络流量中分析入侵行为,无法像HIDS一样深入到主机上。

  2. HIDS可以在主机上采集更加详细的日志和事件信息,对于入侵事件的排查和还原更为方便。

  3. HIDS可以发现消耗系统资源的应用或进程,及时报警,进一步保障系统稳定性。

缺点:

  1. HIDS需要在每台主机上部署代理程序或代理模块,管理和维护相对困难,尤其是大型企业中主机数量较多的情况下。

  2. HIDS可能会在主机上占用一定的系统资源,对性能和功能等方面可能会存在一定的影响。

  3. 由于HIDS部署在主机上,如果某些入侵行为已经成功地控制了主机,那么HIDS将无法检测到这类入侵行为。

综上所述,HIDS是一种有效的主机安全防护工具,但是在部署和维护过程中需要注意其不足之处,结合多种安全工具进行综合防御。

NIDS优点和缺点

NIDS(Network-based Intrusion Detection System,基于网络的入侵检测系统)可以监测网络流量,进行入侵检测和防范,相对于主机入侵检测系统(HIDS)具有以下优点和缺点:

  1. NIDS可以监测到整个网络中的入侵行为,比HIDS能够覆盖更广泛的系统范围,同时管理维护相对容易。

  2. NIDS可以利用专业的入侵检测规则库,实现自动化入侵检测、报警和防范,能够方便地处理大量数据和信息。

  3. NIDS能够快速地响应入侵事件,针对流量进行快速的分析和响应,减少系统遭到攻击的损失。

缺点:

  1. NIDS无法监测到指定主机本身的入侵行为,例如主机中的内部高危用户等。

  2. NIDS对网络带宽和性能会产生一定的影响。

  3. NIDS检测规则的准确性和先进性需要根据实际情况进行不断的维护和升级。

综上所述,NIDS可以有效地监测和防范网络威胁,但需要结合HIDS等其他安全工具进行综合防御,避免盲点和漏洞。

Snort开源网络入侵检测系统

Snort是一个基于规则的开源网络入侵检测系统,可以用于监控网络流量,检测和防御网络攻击。Snort使用轻量级网络检测引擎来分析数据包,并根据预定义的规则进行匹配,如果匹配到规则,则会触发相应的警报。

Snort的特点包括:

  1. 可扩展性:支持插件和自定义规则,可以根据所需的功能进行定制。

  2. 灵活性:能够监控多种网络协议,包括TCP、UDP、ICMP等,可以适应不同环境下的网络。

  3. 高性能:使用高效的规则引擎,能够快速地分析数据包并生成警报。

  4. 开放性:提供了丰富的API和插件接口,可以与其他系统集成使用。

Snort广泛应用于企业、政府和教育机构等组织中,可以发现和防御各种形式的网络攻击,包括端口扫描、DDoS攻击、恶意软件传播等。

Snort可以检测以下几种攻击类型:

  1. 端口扫描:检测到一个来自于某个IP地址的多个连接请求,这些连接请求的目的端口不同。这可能是一个扫描工具试图找到目标主机上开放的服务。

  2. 拒绝服务攻击(DDoS):检测到大量的TCP或UDP数据包来自于一个或多个IP地址,这些数据包可能是恶意的,并且会使目标主机的服务不可用。

  3. 恶意软件传播:检测到来自于已知恶意软件传播源的数据包。

  4. 网络钓鱼攻击:检测到一个恶意网站的请求,这个网站可能伪装成信任的网站,试图欺骗用户输入敏感信息。

  5. Web应用程序攻击:检测到一个来自于Web应用程序的非法请求,这个请求可能是恶意的,试图获取敏感信息或利用Web应用程序中的漏洞。

  6. 操作系统漏洞利用:检测到来自于一个IP地址的数据包,尝试利用目标主机上的操作系统漏洞执行恶意代码。

总之,Snort可以检测许多不同类型的攻击,包括端口扫描、DDoS攻击、恶意软件传播、网络钓鱼攻击、Web应用程序攻击和操作系统漏洞利用等。

入侵检测主要产品类型

  1. 网络入侵检测系统(NIDS):它在网络上拦截和监视传输的数据流,检测网络上的恶意流量和活动。它可以分析从网络上收集的数据包,以检测网络攻击和漏洞。

  2. 主机入侵检测系统(HIDS):它是一种安装在主机上的软件,用于监视和记录主机上的活动,包括文件系统、系统调用、应用程序、用户等。它可以检测主机上的恶意活动并报告给管理员。

  3. 终端入侵检测系统(EIDS):它安装在终端设备上,例如台式机、笔记本电脑和移动设备等,用于监视和记录终端设备上的活动,包括应用程序、用户、文件、网络流量等。它可以检测终端上的恶意活动并报告给管理员。

  4. 云入侵检测系统(CIDS):它是一种安装在云中的软件,用于监视和记录云中的活动,包括虚拟机、存储、网络和应用程序等。它可以检测云中的恶意活动并报告给管理员。

  5. 入侵检测服务(IDSaaS):它是一种基于云的入侵检测服务,由供应商提供。它可以检测云上的恶意活动并报告给管理员。管理员可以通过网络控制台检查报告和处理事件。

总之,入侵检测主要产品类型包括网络入侵检测系统、主机入侵检测系统、终端入侵检测系统、云入侵检测系统和入侵检测服务等。

IDS(入侵检测系统)的部署过程

  1. 确定需求:在部署 IDS 之前,需要明确需求,明确需要检测的攻击类型、需要保护的资产、安全目标等。

  2. 选择合适的 IDS 技术:根据需求,选择适合的 IDS 技术,如网络入侵检测系统(NIDS)、主机入侵检测系统(HIDS)等。

  3. 部署 IDS 传感器:根据需求,选择合适的 IDS 传感器,并选择合适的部署位置。在网络入侵检测系统中,传感器一般部署在网络入口处。在主机入侵检测系统中,传感器部署在需要保护的主机上。

  4. 配置 IDS 系统:在部署 IDS 传感器后,需要对 IDS 系统进行配置,如设置规则、策略等。

  5. 集成 IDS 系统:在 IDS 系统部署和配置完成后,需要将其集成到整个安全架构中,与其他安全设备或系统进行协同工作,如与防火墙、入侵防御系统等协同工作。

  6. 测试和优化:对 IDS 系统进行测试和优化,包括性能测试、规则测试、报警测试、阈值测试等,以提高 IDS 系统的效率和效果。

  7. 持续监测和维护:持续监测 IDS 系统的运行状态,及时发现并解决问题,以保障 IDS 系统的持续运行和有效工作。

总之,IDS 的部署过程需要根据具体情况进行调整,但上述步骤是 IDS 部署的基本流程。

入侵检测系统应用

Snort规则是一种文本文件,用于描述Snort网络入侵检测系统如何检测和识别网络上的攻击行为。规则由以下四部分构成:

1.规则头部:规则头部包含规则的元数据,如规则ID、规则名、规则描述、分类别等。

2.匹配条件:匹配条件指定了被检查的数据流量包的特征,如源IP地址、目标IP地址、协议、端口等。

3.规则选项:规则选项指定了如何处理匹配条件的数据包,如触发警报、记录日志、阻止流量等。

4.规则内容:规则内容包括了具体用于检测攻击的规则匹配模式,如针对特定的攻击协议或攻击载荷的检测模式。

以下是一些常见的Snort规则:

alert tcp any any -> any 80 (content:"GET"; nocase; http_method; content:"/admin.php" nocase; http_uri; msg:"Attempted admin access";)

以上规则指定当有来自任何来源IP和任何源端口的TCP数据包发送到目标IP地址的80端口,并且该数据包包含HTTP GET请求,且HTTP URI包含"/admin.php"时,触发警报,并在警报中记录"Attempted admin access"的消息。

alert tcp any any -> any any (content:"/bin/bash"; msg:"Shellcode detected!";)

以上规则指定当有任何TCP流量包含字符串"/bin/bash"时,触发警报,并在警报中记录"Shellcode detected!"的消息。

这些规则仅是示例,实际应用中需要根据需求进行定制和修改。

Snort配置模式

Snort有三种配置模式,分别是:

  1. Sniffer模式:Sniffer模式只是简单地抓取网络流量并将其输出到屏幕。这种模式最适合对网络进行简单的流量分析,不需要检测和警报功能。

  2. Packet Logger模式:Packet Logger模式将捕获的数据包存储在磁盘上以进行离线分析。它需要少量的CPU和内存,适用于需要进行长时间数据包记录和离线分析的场景。

  3. NIDS模式:NIDS(Network Intrusion Detection System)模式是最常用的模式,它可检测和报告攻击行为。NIDS模式可以通过自定义规则来检测和识别各种攻击类型,如端口扫描、入侵尝试、恶意软件、Web攻击等。此模式需要更多的CPU和内存资源。

在实际应用中,通常使用NIDS模式,并使用自定义规则来检测特定攻击和安全事件。

snort规则实例

以下是一个示例Snort规则:

alert tcp any any -> any 80 (msg:"Possible web attack detected"; content:"|3C|script|3E|"; nocase;)

这个规则将检测出任何TCP流量,从任何端口到任何使用80端口的Web服务器,并检测到包含"

  • "alert":这个字段指定如果匹配规则,则会发出警报。

  • "tcp any any -> any 80":这个字段指定检测TCP协议,源IP和源端口为任何值,目标IP为任何值,目标端口为80。

  • "msg":这个字段指定当规则触发时在警报中显示的消息。

  • "content":这个字段指定要检测的数据包中的内容,这里是"

    alert tcp any any -> $HOME NET $HTTP PORTS (msg:"SQL Injection Attack; content:" or "1'='1"; nocase;classtype:web-application-attack; sid:100001)

规则头和规则选项通过"()"来区分,规则选项内容用括号括起来

(1)动作有alert、log 、pass 、activate 、dynamic,这里是alertAlert-使用选择的报警方法生成一个警报,然后记录(log)这个包。

  • Log-只记录不告警
  • Pass-匹配的数据包合法,不进行进一步处理和告警
  • activate-报警并且激活另一条dynamic规则。
  • dynamic-保持空闲直到被一条activate规则激活,被激活后就作为一条log规则执行。

(2)协议tcp 、udp、icmp和ip等,这里是tcp

(3)地址、端口:这里是any any,即匹配任意源ip和任意源端口的数据包。

(4)->规则的方向部分,指定数据包的流向,箭头指向右边表示数据包的目的地,也可以双向。

(5)SHOMENET:这是一个预定义的Snot变量,表示本地网络。可以在配置文件中定义和修改这个变量

(6)$HTTP PORTS:这是另一个预定义的Snort变量,表示HTTP协议的端口号。同样可以定义和修改。

(7)msg:"SQL Injection Attack": 这是警报消息部分,表示当规则匹配时生成的警报消息。

(8)content"or 1=1": 这是规则的内容匹配部分,表示匹配数据包中是否包含指定的内容,即SQL注入攻击的特定字符串。

(9)nocase: 这是一个选项,表示匹配时不区分大小写。

(10)classtype:web-application-attack: 这是规则的类目,指定规则所属的攻击类型,这里是Web应用程序攻击。(11)sid:100001: 这是规则的唯一标识符部分,用于标识规则的唯一性

总结:当Snot检测到TEP协议的任意源P和源端口的数据包,目的地是本地网络的HTTP端口,并且数据包中包含了SQL注入攻击的特定字符串时Snort将生成一个警报,警报消息为"SQL Injection Attack",并将该规则分类为Web应用程序攻击,唯一标识符为100001。

相关推荐
明月看潮生4 分钟前
青少年编程与数学 02-003 Go语言网络编程 15课题、Go语言URL编程
开发语言·网络·青少年编程·golang·编程与数学
jjyangyou17 分钟前
物联网核心安全系列——物联网安全需求
物联网·算法·安全·嵌入式·产品经理·硬件·产品设计
龙哥说跨境1 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
AltmanChan1 小时前
大语言模型安全威胁
人工智能·安全·语言模型
马船长1 小时前
红帆OA iorepsavexml.aspx文件上传漏洞
安全
懒大王就是我1 小时前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
Elaine2023911 小时前
06 网络编程基础
java·网络
海绵波波1073 小时前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip
热爱跑步的恒川5 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面6 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络