入侵(Instruction)是个 广义的概念,不仅包括被发起攻击的人取得超出合法权限的系统的控制权,也包括搜集漏洞信息,造成拒绝访问(Denial of service)等对计算机系统造成危害的行为。

通过被动地监测网络上传输的原始流量,对获取的网络数据进行处理,从中提取有用的信息,再通过与已知攻击特征相匹配或与正常网络行为原型相比较来识别攻击事件。此类检测系统不依赖操作系统作为检测资源,可应用于不同的操作系统平台;配置简单,不需要任何特殊的审计和登录机制;可检测协议攻击、特定环境的攻击等多种攻击。但它只能监视经过本网段的活动,无法得到主机系统的实时状态,精确度较差。大部分入侵检测工具都是基于网络的入侵检测系统.

基于网络的入侵检测(NIDS)以所检测网段的所有流量作为其数据源,在以太网环境下,它通过将网卡设置为混杂模式来抓取所监测网段内的混合数据包。一般来说入侵检测系统担负着保护整个网段的任务。在交换环境下,为了抓取所需的数据,NIDS的放置需要精心的设计。NIDS通过对三类特征进行匹配,从而发现可能的入侵检测行为,这三类特征分别是:串特征、端口特征和数据包头特征。串特征是指在数据正文中出现的可能意味着某种攻击的字符串。例如一个数据包的正文中包含字符串“cat”++>/.rhosts”, 那么如果这条命令执行成功, 将导致执行该命令的主机不需身份认证就被使用,这是非常危险的事情。端口特征是指某个连接连向的目的端口,通过查看这个值,也可以发现一些可能的入侵,例如一些木马程序就是通过一些特定的端口拉接收外部的控制信息的。数据包头特征是指数据头中的码位的一些非常危险的非法组合,其中最为著名的是winnuke,它通过目标机NetBIOS使用的139端口发送设置了紧急指针位的(Urgent Pointer)、表明有带外数据(out of band)的TCP数据包,从而使一些安装Window操作系统的机器出现蓝屏死机。

NIDS的一个实例-Snort:

Snort是一个基于libcap的数据包嗅探器并可以作为一个轻量级的网络入侵检测系统。谓的轻量级是指在检测时尽可能低地影响网络的正常操作,一个优秀的轻量级的NIDS应该具备跨系统平台操作,对系统影响最小的特征并且管理员能够在短时间内通过修改配置进行实时的安全响应,更为重要的是成为整个安全结构的重要成员。Snort集成了多种告警机制来提供实时告警功能,包括syslog、用户指定文件、UNIXSocket。通过SMBClient(smbclient是可存取SMB/CIFS服务器的用户端程序。)使用winPopup对window客户端告警。而且Snort是开源的,可以通过Snort对小型网络自建入侵检测系统。

Snort的结构组成

Snort的体系结构体现了追求性能、简单、可扩展性的设计思想。它主要有三个子系统组成:抓包和解析子系统、检测引擎、日志和报警子系统,如下图:

日志和报警子系统

报警信息

           
   
 

链头

源地址ip

目的地址ip

源端口

目的端口

 

链头

源地址ip

目的地址ip

源端口

目的端口

 

记录信息

附加链数据内容

TCP标志

ICMP代码/

类型负载

附加链数据内容

TCP标志

ICMP/代码

类型负载

抓包和解析子系统

检测引擎

网络数据

规则库

 
 

抓包和解析子系统的功能为捕获网络的传输数据并按照TCP/IP 协议的不同 层次将数据包进 行解析。 Snort 利用libpcap库函数进行采集数据, 该库函数可以为应用程序提供直接从链路层捕获数据包的接口函数并可以设置数据包的过滤器来捕获指定的数据。 网络数据采集和解析机制是整个NIDS 实现的基础, 其中最关键的是要保证高速和低丢包率,这不仅仅取决于软件的效率还同硬件的处理能力相关。 对于解析机制来说, 能够处理数据包的类型的多样性也同 样 非 常 重 要, 目 前,Snort 可以处理以太网、令牌环以及 SLIP 等多种链路类型的包。

检测引擎(the detect engine)是一个 NIDS 实现的核心, 准确性和快速性是衡量其性能的 重要指标, 前者主要取决于对入侵行为特征码的提炼的精确性和规则撰写的简洁实用性, 由于网络入侵检测系统自身角色的被动性———只能被动的检测流经本网络的数据, 而不能主动发送数据包去探测, 所以只有将入侵行为的特征码归结为协议的不同字段的特征值, 通过检测该特征值来决定入侵行为是否发生。后者主要取决于引擎的组织结构,是否能够快速地进行规则匹配。Snort维护一个两维的检测规则链表。 其逻辑结构如上图左所示。在链头里存储了一些公共特征,如源、目的 IP, 源、目的端口, 在附加链表中存储了除公共特征外的一些额外特征, 在检测过程中, 数据包按两个方向进行匹配, 先进行链头的匹配, 若与某个链头匹配成功, 再与该链头下的附加链表进行匹配,若匹配,则触发该条规则所对应行为(通过、记录或是报警)。

日志及报警子系统。入侵检测系统的输出结果系统的必要特征是实时性和多样性, 前者指能够在检测到入侵行为的同时及时记录和报警, 后者是指能够根据需求选择多种方式进行记录和报警。Snort 提供了三种日志和五种报警选项。它可以以数据包的解码格式(形如 TCPDUMP 的输出格式),易于用户查看的格式(即按照协议格式记录)及基于 IP 的目录结构格式(即以IP地址作为目录名)进行记录。 警告信息可以发往系统日志, 或以两种不同的格式(完全模式和快速模式)写入一个文本文件, 或发送给一个使用 samba 客户端的程序, 报警信息还可以写入数据库或者完全取消报警(例如当网络进行测试时)。

Snort 的规则

Snort 的规则写起来虽然非常简单, 但却非常实用, 能发现大量危险的或者可疑的网络流量。当一个数据包匹配了特定的规则后 ,Snort 可以有三种响应方式:通过、记录或者报警,其意义是非常明显的。一条基本的Snort 规则包括响应方式、协议、方向、端口、IP地址等信息, 如log tcp any any ->10.1.1.0/ 24 79, 这条规则表示,Snort 将把所有连向内部C类地址10.1.1,端口79的TCP包记录下来。当然, Snort还提供了很多可选域, 从而能写出很复杂的检测规则, 同时还有一些选项来提高匹配的效率。

预处理程序从 Snort 版本1.5开始引入,其代码在检测引擎被调用之前先被运行,为检测做铺垫, 从而提高检测的准确性和速度。而且预处理机制采用插件形式,用户和程序员能够将模块化的插件方便地融入Snort之中。目前最新版本的 Snort 的预处理程序模块有HTTP Decode(用于处理 HTTPURI 字符串,将串中的数据转化为可读的 ASCII 字串,用于检 测HTTP 的数据信息对付隐蔽的 WebURL扫描器和恶意的入者)PortscanDetector(向标准记录设备中记录从一个源 IP 地址来的端口扫描的开始和结束),Frag2(使得无法通过 IP小分片来躲避检测),Stream4(提供 TCP 流的重组和状态分析)等, 从而大大增强了 Snort 的检测能力。

NIDS的优势:

(1)检测范围是整个网段,而不仅仅是被保护的主机。采用集中式管理的分布工作方式,能远程监控。

(2)实时监测和应答。

(3)隐蔽性好。不需要在每个主机上安装,不易被发现。

(4)不需要任何特殊的审计和登录机制,只要配置网接口就可以了。

不会影响其他数据源。

(5)操作系统独立。NIDS系统单独架设,不占用其他计算机系统的任何资源。

(6)NIDS不会成为系统中的关键路径,所以系统发生故障不会影响正常业务的运行。

NIDS的局限:

(1)网络的局限。只能检测经过本网段的活动,且精确度较差。在交换式网络环境下会出现检测范围的局限且难以配置,防入侵欺骗的能力也比较差。无法知道主机内的安全情况。

(2)检测方法局限。难以审查处理加密的数据流的内容,对主机上执行的命令也难以检测。对重放攻击无能为力。

参考文献:

[1]刘春颂,杨寿保,杜滨[J].计算机应用.基于网络的入侵检测系统及其实现.2003,2:29-31

基于网络(NIDS)相关推荐

  1. 基于网络(NIDS)的入侵检测系统

    入侵(Instruction)是个 广义的概念,不仅包括被发起攻击的人取得超出合法权限的系统的控制权,也包括搜集漏洞信息,造成拒绝访问(Denial of service)等对计算机系统造成危害的行为 ...

  2. 基于网络的入侵检测数据集研究综述(A Survey of Network-based Intrusion Detection Data Sets)

    A Survey of Network-based Intrusion Detection Data Sets 基于网络的入侵检测数据集研究综述 摘要:标记数据对于基于异常的网络入侵检测系统的训练和评 ...

  3. 研究型论文_CSE-IDS:使用成本敏感的深度学习和集成算法来处理基于网络的入侵检测系统中的类不平衡(英文论文)

    文章目录 CSE-IDS: Using cost-sensitive deep learning and ensemble algorithms to handle class imbalance i ...

  4. medRxiv | 基于网络的人类冠状病毒的药物重定位

    随着新型冠状病毒(2019-nCoV)感染肺炎疫情持续发展,武汉.全国各地以及全球的疫情牵动着每一个人的心.2020年2月5日medRxiv发表了研究工作"Network-based Dru ...

  5. Nat. Commun | 基于网络的药物组合预测

    本期介绍2019年3月发表在Nature Communications的研究工作,该工作由哈佛医学院.东北大学和Dana-Farber癌症研究所等机构的研究人员完成.药物组合能够增加治疗功效和降低毒性 ...

  6. pxe+kickstart 实现基于网络的无人值守安装操作系统

    基于网络的无人值守安装操作系统 简介: 1.pxe PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的 ...

  7. 计算机伦理问题案例分析,基于网络环境的案例教学在《计算机伦理学》中的实践研究...

    摘要: 在信息化浪潮及多种网络信息文化的影响下,加强信息伦理道德教育,提高大学生的职业道德修养,使他们能有效识别和履行其社会责任和道德责任,具有十分重要的意义.而案例教学法作为一种比较成熟的教学方法, ...

  8. linux选择最短路径sdn,基于网络流量的SDN最短路径转发应用

    原标题:基于网络流量的SDN最短路径转发应用 网络的转发是通信的基本功能,其完成信息在网络中传递,实现有序的数据交换.通过SDN控制器的集中控制,可以轻松实现基础的转发算法有二层MAC学习转发和基于跳 ...

  9. 架构风格与基于网络的软件架构设计

    原文链接 https://blog.csdn.net/on_1y/article/details/60358117 架构风格与基于网络的软件架构设计 如今许多服务都采用了 RESTful API, 而 ...

最新文章

  1. Swift使用通知Notification
  2. sklearn常用模块
  3. vue 点击倒计时 ajax 封装
  4. SQL——快速定位相关的外键表
  5. python avg_python闭包
  6. javascript正则表达式验证IP,URL
  7. vue 配置跨域访问
  8. promoter:启动子预测程序(PPPs)软件现状及分析
  9. imx385驱动、imx307驱动、imx327驱动调试记录
  10. 【Linux】POSIX信号量
  11. 推荐几款常用的Socks5代理软件
  12. 河北对口升学计算机VB知识点,vb对口升学试题.docx
  13. Android 身份证拍照 识别 文字识别 (百度)
  14. 怎样做产品能甩同行一个时代?李彦宏说AI思维助你降维攻击
  15. $.extend中探索深拷贝和浅拷贝
  16. 计算机奥赛金牌排名,2019五大学科竞赛含金量排名
  17. 生产质量分析方案,人机料法环全面解析,必看好文
  18. 11.ARM架构的异常与中断
  19. matlab zigzag算法,MATLAB 实现zigzag扫描(z字形扫描)
  20. 好记性不如烂笔头、多记笔记、多总结、多反思

热门文章

  1. 介绍一款CD4066四双向模拟开关的测试电路
  2. js动态设置文字大小
  3. Multipath以及device mapper
  4. 怎样查询苹果服务器关闭验证,iPhone小技巧:如何查询 iOS 系统是否已经关闭验证?...
  5. 还原系统就是这么简单
  6. c语言实现三子棋(井子棋)
  7. 渤海银行与金融壹账通战略签约 打通数字转型技术壁垒
  8. 如何在Access2007中使用日期类型查询数据
  9. java练习助手_Java开发的得力助手---Guava
  10. Eclipse导入java项目后不能修改(read only)