当前位置:文档之家› 基于snort技术分析

基于snort技术分析

基于snort技术分析
基于snort技术分析

基于SNORT的入侵检测系统的分析

1. 绪论

1.1 研究目的与意义

随着网络技术的飞速发展,其应用领域也在不断的扩展,网络技术的应用已将从传统的小型业务系统逐渐扩展到大型的关键业务系统中,比如说金融业务系统、电子商务系统等等第。然而,随着网络技术的迅速发展,网络安全问题也日益突出。比如说金融系统、政府信息系统等受到外界的攻击与破坏,信息容易被窃取和修改等网络安全问题越来越严重。所以说网络安全问题已经成为各国政府、企业以及广大网络用户关心的问题之一。

任何试图破坏网络活动正常化的问题都可以称为网络安全问题。过去保护网络安全做常用、最传统的方法就是防火墙,但是防护墙只是一种被动防御性的网络安全工具,随着科学技术的不断发展,网络日趋复杂化,传统防火墙是不足以满足如今复杂多变的网络安全问题,在这种情况下,逐渐产生了入侵检测系统,入侵检测系统不仅能够为网络安全提供及时的入侵检测以及采取响应的防护手段,它还可以识别针对计算机或网络资源的恶意企图和行为,并对此做出反应,它提供了对系统受到内部攻击、外部攻击和误操作的实时保护,能够帮助系统对付网络攻击。入侵检测系统能很好的弥补防火墙的不足,是防火墙的合理完善。

入侵检测系统具有以下几个特点:

1)从系统的不同环节收集各种信息

2)分析收集到的信息并试图寻找入侵信息活动的特征

3)自动对检测到的行为做出响应

4)记录并报告检测结果

入侵检测系统的主要功能有

1)监测并分析用户和系统的活动

2)核查系统配置及其漏洞

3)评估系统重要资源和数据文件是否完整

4)识别己知的入侵行为

5)统计分析不正常行为

6)根据操作系统的管理日志,识别违反安全策略的用户活动

入侵检测技术是一种积极主动地安全防护技术,其核心在于它的检测引擎,如何实现高效快速的检测,是入侵检测技术的一个重要研究重点。目前入侵检测技术主要分为两大类,分别是基于异常的入侵检测和基于规则的入侵检测。由于目前的攻击主要是针对网络的攻击,因此检测入侵和攻击的最主要的方法是捕获和分析网络数据包,使用相应的软件来提取入侵者所发出的攻击包的特征,然后将这些特征攻击包和入侵检测系统的特征库进行对比匹配,如果在特征库中检测到相应的攻击包,就会发出入侵报警。在与特征库进行匹配的过程中,用到的最主要的技术就是模式匹配,所以说在入侵检测系统中模式匹配是一个研究重点。在国内,随着网络应用的日益增长,特别是那些关键部门对网络的应用使得网络安全问题至关重要,迫切需要高效的入侵检测产品来确保网络安全,但是,由于我国的入侵检测技术在网络安全领域的研究起步较晚,还不够成熟和完善,需要投入较多的精力来对这方面进行探索研究,特别是基于模式匹配也就是基于规则的入侵检测是一个重要的研究领域,这对抑制黑客攻击和网络病毒的传播,提高网络安全具有重要意义。

1.2 入侵检测技术的不足

入侵检测技术作为安全技术的一个重要领域,正在成为网络安全研究的热点,对入侵检测的理论研究和实际应用中还存在着许多问题,需要我们继续深入研究和探索,具体来说,入侵检测在以下方面有待继续发展:

1)阻断入侵的能力低

虽然入侵检测系统有发现入侵、阻断连接的作用。提供对内部攻击、外部攻击和误操作的实时保护。但它的工作重点是放在对入侵行为的识别。为提高网络安全,有效识别黑客入侵,必须提高阻断入侵的能力。可考虑将入侵检测系统与防火墙联合起来,配置好 IDS 的安全策略,指定响应对象防火墙的地址及密钥,由 IDS 发起与防火墙的连接,建立正常连接后,IDS 产生新的安全事件通知防火墙,防火墙随之做出安全策略的相应调整,使防护体系由静态到动态,从源头上彻底切断入侵行为。提升了防火墙的实时反应能力,增强了 IDS 的阻断能力。

2)高误报率和高漏报率

在高速交换网络中,入侵检测系统不能很好地检测所有的数据包。分析的准确率不高,经常产生漏报。检测规则的更新落后于攻击手段的更新。新的攻击没有相应的检测规则,经常产生误报。为降低误报率和漏报率,可考虑将网络数据报文直接传递到系统内核预先分配的地址空间中,避免 CPU 的参与。同时将系统内核中存储数据报文的内存映射到检测程序的应用程序空间。检测程序直接对这块内存进行访问,减少系统内核向用户空间的内存拷贝减少了系统调用的开销。为提高检测的准确度,可考虑自动获取网络的当前状态信息,根据系统状态的变化实时更新 IDS 的配置,使IDS 进行模式匹配时的规则仅与本网络当前状态相关。管理员掌握网络的情况后,将非开放端口的连接企图视为异常数据包记录到日志中同时跟踪该信息源的进一步行动。预防攻击,保护信息安全。

3)入侵检测系统的体系结构应朝分布式、开放性的方向发展

随着网络技术的发展新的网络攻击方式不断涌现,分布式协同攻击就是一种极具威胁性的攻击方式。攻击者通常协同成百上千的服务器攻击一台主机。其破坏性和隐蔽性越来越强。尽管网络不同的部分使用了不同的 IDS,但现有的多数 IDS 是采用通用入侵检测体系结构的。主要针对各主机进行单独安全保护IDS 之间无法交换信息,很难找到攻击的源头。容易给协作攻击者以可乘之机。为此,在体系结构上必须尽快朝着分布式、协作式方向改进。加强 IDS 之间的互操作。

2. 入侵检测系统概述

2.1入侵检测系统的概念

2.1.1 入侵检测系统的概念及作用

入侵检测系统是一种主动的安伞防护工具,它从计算机系统或网络环境中采集数据,分析数据,发现可疑攻击行为或者异常事件并采取一定的响应措施、拦截攻击行为,降低可能的损失。提供了对内部攻击、外部攻击和误操作的实时防护,在计算机网络和系统受到危害之前进行报警、拦截和响应。它具有以下主要作用:1)监视、分析用户及系统活动

2)系统构造和弱点的审计

3)识别已知进攻的活动模式,并产生报警

4)异常行为的统计分析

5)评估重要系统和数据文件的完整性

6)操作系统的审计跟踪管理,并识别用户违反安全策略的行为

2.1.2 入侵检测系统的结构

CIDF将一个入侵检测系统分为四个组件:事件产生器、事件分析器、响应单元、事件数据库。其基本结构如图2—1所示:

图2—1 CIDF基本模型

2.2 入侵检测系统的分类

2.2.1 入侵检测系统的分类

入侵检测系统的分类方法不是唯一的,有两种比较常用的标准:按照信息源和分析方法的标准来分类的。

入侵检测系统根据数据源分为基于主机的入侵检测系统(HIDS)和基于网络的入侵检测系统(NIDS)以及混合型入侵检测系统。

入侵检测系统根据入侵检测分析方法分为异常入侵检测系统(AD)和误用入侵检测系统(MD)。

入侵检测系统根据响应方式分为被动响应系统和主动响应系统。

入侵检测系统根据各个模块运行的分布方式分为集中式入侵检测系统和分布式入侵检测系统。入侵检测系统的分类架构图如图2—2所示:

基于主机的入侵检测系统

根据目标系统

基于网络的入侵检测系统

异常入侵检测系统

根据检测方法

误用入侵检测系统

入侵检测系统被动响应入侵检测系统

根据响应方式

主动响应入侵检测系统

集中式入侵检测系统

根据各模块运行

分布方式分布式入侵检测系统

图2—2 入侵检测系统分类架构图

2.2.2 基于主机的入侵检测系统

基于主机IDS部署在单主机上,利用操作系统产生的日志记录作为主要信息源,通过对其进行审计,检测入侵行为。基于主机IDS不对网络数据包或扫描配置进行检查,而是对系统日志提供的大量数据进行整理。早期的系统多为基于主机的,主要用来检测内部网络的入侵攻击。后来用分布主机代理来实现。

其主要优点:

信息源(0S日志记录)完备。系统产生的日志是归类有序的。它准确记录了每个用户的行为序列,这样便可以精确监控每个用户的行为。同时也使得IDS对信息源的处理简单、一致。对某些特定的攻击十分有效。比如,审计日志能够显示出由缓冲区溢出攻击引起的优先级转移的情况,从而能够有效的检测缓冲区溢出攻击。

其主要缺点:

1)由于它通常作为用户进程运行,依赖于具体的操作系统底层的支持,与系统的体系结构有关,所以它无法了解发生在下层协议的入侵活动。

2)熟练的入侵者往往可以进入系统修改、删除有关的日志记录,从而隐藏入侵迹象。

3)HIDS位于所监视的每一个主机中,故占用的资源不能太多,从而大大制了所采用的检测方法及处理性能。

2.2.3 基于网络的入侵检测系统

基于网络的IDS最早出现于1990年。它主要用于防御外部入侵攻击。它通过监控出入网络的通信数据流,依据一定规则对数据流的内容进行分析,从而发现协议攻击、运行已知黑客程序的企图和可能破坏安全策略的特征,做出入侵攻击判断。

为了能够捕获入侵攻击行为,基于网络IDS必须位于能够看到所以数据包的位置,这包括:环网内部、安全网络中紧随防火墙之后以及其它子网的路由器或网关之后。最佳位置便是位于Internet到内部网络的接入点。但是,同一子网的2个节点之间交换数据报文并且交换数据报文不经过IDS,那么IDS可能就会忽略这些攻击。

基于网络IDS的主要优点:

1)由于NIDS直接收集网络数据包,而网络协议是标准的。因此,NIDS如目标系统的体系结构无关,可用于监视结构不同的各类系统;

2)NIDS使用原始网络数据包进行检测,因此它所收集的审计数据被篡改的可能性很小,而且它不影响被保护系统的性能;

3)NIDS利用工作在混杂模式下的网卡实时监视和分析所有的通过共享式网络的传输,能够实时得到目标系统与外界交互的所有信息,包括一些隐蔽的端口扫描和没有成功的入侵尝试。

基于网络IDS的主要缺点:

1)缺乏终端系统对待定数据的处理方法等信息,使得从原始的数据包中重构应用层信息很困难。因此,NIDS难以检测发生在应用层的攻击;而对于加密传输方式进行的入侵,NIDS也无能为力;

2)NIDS只检查它直接连接网段的通信,不能检测到不同网段的网络包,因此在交换式局域网中,它难以获得不同交换端口的网络信息:

3)网络流的数据量大,NIDS必须对数据帧进行解码才能了解其中的含义。因此,NIDS的数据处理量大,而造成处理能力不足。

2.3入侵检测技术

2.3.1 异常检测

异常检测的假设是入侵者活动异常于正常主体的活动。根据这一理念建立主体正

常活动的“活动简档”,将当前主体的活动状况与“活动简档”相比较,当违反其统计规律时,认为该活动可能是“入侵”行为。异常检测的难题在于如何建立“活动简档”以及如何设计统计算法,从而不把正常的操作作为“入侵”或忽略真正的“入侵”行为。

2.3.2 特征检测

特征检测这一检测假设入侵者活动可以用一种模式来表示,系统的目标是检测主体活动是否符合这些模式。它可以将已有的入侵方法检查出来,但对新的入侵方法无能为力。其难点在于如何设计模式既能够表达“入侵”现象又不会将正常的活动包含进来。

2.4入侵检测技术的发展趋势

入侵检测技术在不断地发展更新,近年来入侵检测技术沿着以下几个方向发展: 1)分布式入侵检测与通用人侵检测架构。传统的IDS一般局限于单一主机或网络构架,对异构系统及大规模网络的检测明显不足。同时不同的IDS系统之间不能协同工作,为解决这一问题,需要分布式检测技术和通用人侵检测构架。一是针对分布式网络攻击的检测方法;二是使用分布式的方法来检测分布式的攻击,其中的关键技术为检测信息的协同处理与入侵攻击的全局信息的提取。分布式 IDS 在数据收集、入侵分析和自动响应方面能够最大限度地发挥系统资源的优势,其设计模型具有很大的灵活性。

2)智能化入侵检测。入侵方法越来越多样化与综合化,尽管已经有智能代理、神经网络与遗传算法在入侵检测领域应用研究,但这只是一些尝试性的研究工作,需要对智能化的IDS加以进一步的研究以解决其自学习与自适应能力。

3)应用层入侵检测。许多入侵活动的含义只有在应用层才能理解。但传统方法很少涉及到应用层,使得一些应用系统内的入侵活动难以检测,所以需要开发应用层的入侵检测技术。

4)全面的安全防御方案。即使用安全工程风险管理的思想与方法来处理网络安全问题,将网络安全作为一个整体工程来处理。从管理、网络结构、加密通道、防火墙、病毒防护、入侵检测多方位全面对所关注的网络作全面的评估,然后提出可行的全面解决方案。

3. 网络入侵系统(Snort)分析

3.1 Snort概述

3.1.1 Snort简述及特点

Snort是一个以开放源代码形式发行的一个功能强大、跨平台、轻量级的网络入侵检测系统,最初由 Martin Roesch编写,并由遍布世界各地的众多程序员共同维护和升级。它利用Libpcap从网络中采集数据并进行分析,从而判断是否存在可疑的网络活动;就检测模式而言,它基本上是基于误用检测技术,对数据进行最直接最简单的搜索匹配。虽然Snort是一个轻量级的入侵检测系统,但是它的功能却非常强大,其特点如下:

1)Snort代码短小,简洁,是一个开放源代码的软件,任何组织和个人都可以自由使用。而且移植性非常好,目前支持Linux系列,Solaris,BSD系列,IRIX,HP-UNIX,Windows系列等。

2)Snort具有实时流量分析和日志IP网络数据包的能力。能够快速检测网络攻击,及时发出警报。它提供的警报方式很多,比如Syslog,Unixsocket,WinPopup等。

3)Snort能够进行协议分析,内容的匹配和搜索。现在它能够分析的协议有TCP、UDP、和ICMP。将来可以支持更多IPX、RIP、OSPF等。它能检测多种方式的攻击和探测。

4)Snort具有灵活的日志格式。支持Tcpdump的二进制格式,也支持ASCll字符形式,也支持XML格式的,使用数据库输出插件,还支持数据库日志格式。当前支持的数据库有Postagresql、Mysql,任何UnixODBC、Microsoft SQL Server、Oracle 等。

5)使用TCP流插件,Snort可以对TCP包进行重组。这种能力使得Snort可以对抗“无状态”攻击。无状态攻击是指攻击者每次只发送一个字节的数据包,逃过监视,然后被攻击主机的TCP栈会重新组合这些数据包,将攻击数据发送给目标端口上监听的进程,从而摆脱IDS的检测。

6)使用Spade (Statistical Packet Anomaly Detection Engine)插件,Snort 能够报告异常的数据包,从而对端口进行有效的检测。

7)Snort还具有很强的系统防护能力。使用IPTables,IPFilter插件可以使入侵

检测主机和防火墙联动,通过FlexResp功能,Snort能够命令防火墙断开恶意连接。

8)扩展性好,对于新的攻击威胁反应迅速。Snort采用了一种简单的规则描述语言,最基本的规则知识包含四个域:处理动作、协议、方向、端口。可以对新的攻击迅速建立规则表。

9)Snort支持插件,可以使用具有特定功能的报告,检测子系统插件对其进行功能扩展。当前支持的插件有:数据库日志输出插件、破碎包检测插件、端口扫描检测插件、HttpURL插件、XML网页生成插件等。

3.1.2 Snort的功能

从监测模式而言,Snort属于网络入侵监测(IDS)的误用检测,它通过Libpcap 库函数从网络中抓取数据包,对数据包进行解析,接着启动搜索引擎,将解释好的数据包和规则模式进行比较。如果匹配规则,则认为该入侵行为成立,使用规定的方法进行响应,然后结束一个数据包的处理过程,再抓取下一个数据包。如果没有匹配的规则,则是正常行为,直接返回,抓取下一个数据包进行处理。

Snort是基于规则检测的入侵检测工具,即针对每一种入侵行为,都提炼出它的特征值,并按照规范写成检测规则,形成一个规则数据库。利用此规则库和捕获的数据包进行比较,来判断是否为入侵。目前,Snort的检测规则库主要针对缓冲区的溢出、端口扫描和CGI攻击等。

Snort集成了多种告警机制来提供实时告警功能,包括:syslog,用户指定文件、UNIXSocket、通过SMBClient使用WinPopup对Windows客户端告警。

Snort的查件机制使得它具有良好的扩展性和可移植性,用户可以根据自己的需要及时在短时间内调整检测策略,对于新的攻击威胁做出迅速反应。

Snort作为开源软件填补了只有商业入侵检测系统的空白,可以帮助中小网络的系统管理员有效的监视网络流量和检测入侵行为。Snort一开始就作为一种免费的开源软件发布,只要遵循GPL协议,任何人都可以得到它的版本,安装使用。在Sourcefire 上也可以获得Snort的商业解决方案。

3.2 Snort体系结构分析

Snort主要由两大部分组成,一是Snort可执行文件,二是Snort规则。

Snort可执行文件能工作在两种模式下,一是Sniffer(包嗅探)模式,二是IDS (入侵检测)模式。当它工作在Sniffer模式下时,可以实时捕获网络中的所有数据,

并将数据显示在屏幕或者记录在日志文件中。当Snort工作在IDS模式下时,系统可是实时检测网络中存在的攻击。予以报警或通知防火墙。首先通过配置文件确定应该加载哪些预处理插件和规则库。通过“规则”判断数据包中是否含有恶意内容。Snort 规则是一种简单的描述语言,每一种攻击特征都可以使用一条或者多条规则描述。Snort采取了全新的方式组织这些规则,并且同时使用了多种匹配算法,使其能在较高速的网络环境中正常使用。

Snort工作在IDS模式下时,如图3—1所示,由主控模块、解码模块。预处理模块、检测模块、输出模块几部分组成。主控制模块首先完成各类插件的初始化工作,设置运行参数,然后读取并解析规则文件,最终进入抓包和检测流程。解码模块完成对网络包的解码,并把解码后的内容保存。

图3—1 Snort在IDS下的工作流程

图3—2 Snort的体系结构

1)Sniffer(数据包嗅探器)

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

2)预处理器

Snort的预处理器是介于数据包嗅探器与检测引擎之间的可插入模块,它的主要思想是在数据包送到Snort的检测引擎之前提供一个报警、丢弃数据包或修改数据包的框架。

3)检测引擎

检测引擎是Snort的核心。Snort根据规则库对预处理器送来的数据包进行匹配检测。为了能够快速而准确地进行检测,Snort用链表的形式对规则进行组织。检测引擎的主要性能指标是快速和准确。为了达到快速的目的,要求Snort的规则链表要进行分类和组织结构优化。为了达到准确的目的,要求规则的提取十分准确,并且编写十分精确和简洁的规则。

检测引擎是Snort的核心,准确和快速是衡量其性能的重要指标。准确性主要取决于对入侵行为特征码提取的精确性和规则编写的简洁实用性,由于网络入侵检测系统是被动防御的,只能被动的检测流经本网络的数据,而不能主动发送数据包去探测。所以只有将入侵行为的特征码归结为协议的不同字段的特征值,通过检测该特征值来决定入侵行为是否发生。快速性主要取决于引擎的组织结构,是否能够快速地进行规则匹配。

4)报警日志

检测引擎检查后的Snort数据需要以某种方式输出。Snort对每个被检测的数据包都定义了如下的三种处理方式;alert(发送报警信息)、log(记录该数据包)和pass(忽略该数据句)。这些处理方式其实是具体定义在检测规则中的,具体的完成是在日志/

报警子系统中。日志子系统允许将嗅探器收集到的信息以可读的格式或以tcpdump格式记录下来。报警子系统负责将报警信息发送到syslog、用户指定的文件、Unix套接字或数据库中。

3.3 Snort入侵检测流程

基于规则的模式匹配是Snort检测机制的核心。Snort的入侵检测流程分两大步:第一步是规则的解析流程,包括从规则文件中读取规则和在内存中组织规则;第二步是使用这些规则进行匹配的规则匹配流程。下面将依次介绍入侵检测的流程:

3.3.1规则解析流程

Snort首先读取规则文件,紧接着依次读取每一条规则。然后按照规则语法对其进行解析,在内存中对规则进行组织,建立规则语法树。Snort程序调用规则文件读取函数ParseRulesFile()进行规则文件的检查、规则读取和多行规则的整理。ParseRulesFile()只是Snort进入规则解析的接口函数,规则解析主要由ParseRule()来完成。ParseRule()解析每一条规则,并将其加入到规则链表中。parseRule()的流程如图3—3所示:

图3—3 规则解析流程

ParseRule()函数通过调用RuleType()函数提取规则类型,如果规则类型是Pass、fog、alert、activate、dynamic类型,那么就将规则按照规则语法结构进行解析。首先调用proeessHeadNode()处理规则头,再调用proeessRuleoption()处理规则选项。如果提取的类型是预处理插件关键字PreProcess、输出插件关键字

output、配置命令config、变量定义var等则调用相应的函数进行处理,处理后跳出本条规则解析,进行下一条规则解析。

3.3.2规则匹配流程

Snort对从网络上捕获的每一条报文和规则语法树进行扫描匹配,首先按照默认的顺序遍历activation、dynamic、alert、pass、log的规则子树。然后根据报文的IP 地址和端口号,在规则头链表中找到相对应的规则头。最后,将这条数据报文匹配规则头附带的规则选项组织为链表。首先匹配第一个规则选项,如果匹配,则按照这条规则所定义的规则行为做出相应的处理结果。如果不匹配,接着匹配下一个规则选项。若数据报文与规则选项列表中所有的规则都不匹配,则说明此条数据报文不包含入侵行为的特征。Snort规则匹配总体流程如图3—4所示:

图3—4 Snort规则匹配总体流程

3.4 Snort的规则结构

Snort的规则保存在规则文件中。规则文件是普通的文本文件,我们可以方便地对其进行编辑。规则文件是Snort的攻击知识库,每条规则包含一种攻击的标识,Snort

通过这些标识来识别各种攻击行为。Snort规则可以划分为两个逻辑部分。如图3—5所示:

图3—5 Snort规则的结构

3.4.1 规则头

规则头包含报文关键的地址信息、协议信息以及当报文符合此规则时各元素应该采取的行为。Snort规则头部的主要结构如图3—6所示:

图3—6 Snort 规则头部结构

1)规则动作

规则的第一个字段就是规则动作,规则动作告诉Snort在规则匹配成功时要做什么。Snort中定义了五种可选的动作:alert、log、pass、activate和dynamic。

Alert:使用选择的报警方法生成一个警报,并记录该报文。

Log:使用设定的记录方法记录这个报文。

Pass:忽略这个报文。

Activate:进行报警,然后激活另一条dynamic规则。

Dynamic:等待被一个activate规则激活,然后进行log。

此外,如果想对某些规则使用特定的输出插件,而不是默认的输出方式,这时可以自己定义所需的规则类型。

2)协议字段

规则的下一字段是协议类型。Snort当前能够分析的协议有四种:TCP、UDP、ICMP 和IP。将来会更多,例如IGRP、OSPF、IPX和RIP等。

3)地址字段

端口号可以用几种方法表示,包括“any”、静态定义范围、以及通过否定操作符“!”。键值“any”可以被用来定义任何地址。Snort没有提供根据iP地址查询域名的机制。地址就是由直接的数字型iP地址和一个cidr块组成的。Cidr块指示作用在规则地址和需要检查的进入的任何包的网络掩码。/24表示C类网络,/16表示B类网络,/32

表示一个特定的机器的地址。例如,192.168.1.0/24代表从192.168.1.1到192.168.1.255的地址块。在这个地址范围的任何地址都匹配使用这个192.168.1.0/24标志的规则。这种记法给我们提供了一个很好的方法,来表示一个很大的地址空间。

4)端口信息

端口号可以用几种方法表示,包括“any”端口、静态端口定义范围、以及通过否定操作符“!”。“any”端口是一个通配符,表示任何端口。静态端定义表示一个单个端口号,例如,21表示tcp,23表示telnet,80表示http等等,端口范围用范围操作符“:”表示。

5)方向操作符

方向操作符“一>”表示规则所施加的流的方向。方向操作符左侧的地址和端口号被认为来自源主机,方向操作符右边的ip地址和端口信息是目标主机。还有一个双向操作符“<>”,它告诉Snort把地址/端口号对既作为源又作为目标来考虑,这对于记录/分析双向数据流很方便。

3.4.2 规则选项

规则头定义了规则的动作、所匹配网络报文的协议、源地址、目的地址、源端口以及目标端口等信息;规则选项部分则包含了所要显示给用户查看的警告信息以及用来判定此报文是否为攻击报文的其它信息。对规则选项的分析是Snort检测引擎的核心,规则选项是在规则头的基础上作进一步分析,它包含报警信息、入侵特征以及该特征在数据包位置的相关信息。有了规则选项才能识别复杂的攻击。所有选项用分号“;”分隔,选项关键字和它的值之间用冒号“:”分隔。规则选项之间是逻辑与的关系。即所有的规则选项都匹配时,才触发该规则。

Snort目前有四十几个选项关键字,按其功能可分为八类:

1)关于报警信息的选项关键字:msg、referenee、sid、rev、classtype、priority。

2)关于内容检测的选项关键字:content、nocase、rawbytes、depth、offset、distance、within、urieontent、isdataat、pcre、byte--test、byte_jump、ftpbounce、regex、content-list。

3)关于正协议的选项关键字:fragoffset、ttl、tos、id、ipopts、fragbits、dsize、sameip、ip_proto。

4)关于TCP协议的选项关键字:flags、flow、flowbits、seq、ack、window。

5)关于ICMP协议的选项关键字:itype、icode、icmp_id、icmp_seq。

6)关于规则响应后的选项关键字:logto、session、resp、react、tag。

4. Snort系统与防火墙配合

4.1 Snort系统与防火墙的配合使用

随着网络技术的迅速发展,如今的网络安全不仅仅是靠防火墙或者个别安全设备就可以完全抵御,攻击手法和样式的多样化要求网络安全产品整合协同工作。就一个小型企业而言,入侵检测系统与防火墙协同工作就能基本解决网络安全的需要。而以免费的Snort作为网络入侵检测系统与防火墙配合使用,就是一个廉价高效的解决方案。

4.1.1 传统网络安全防护及缺陷

传统的信息安全技术都集中在系统的加固和防护上。防火墙是内部网最主要的安全技术之一,其主要作用是控制对受保护网络的非法访问,有明显的局限性:1)防火墙难于防内

2)防火墙难于管理和配置,易造成安全漏洞

3)防火墙的安全控制主要是基于IP地址的,难于为用户在防火墙内外提供一致的安全策略

4)防火墙只是实现了粗略的访问控制,且不能与企业内部使用的其它安全机制集成使用

而网络入侵检测系统能实时检测数据包,及采取相应的防护手段以弥补防火墙的不足,因此,将免费的Snort作为网络入侵检测系统与防火墙配合使用,是高效的解决方案。

5. 总结

网络信息的广泛应用给人类生活带来无限方便和美好,现代社会各行各业已经不能脱离网络,网络应用已经是生活中不可或缺的一部分,但网络信息中存在的危险因素很让人烦扰,网络安全问题也越来越突出,处理网络问题也越来越变得复杂,网络

安全问题逐渐引起人们的重视,随着各种入侵检测技术的飞速发展,网络安全问题逐渐得到解决。

本论文首先介绍研究了入侵检测的概况,对入侵检测系统的概念、分类、检测做了简要的介绍,然后深入的分析研究了网络入侵系统snort的详细信息,包括其特点功能,结构和其检测流程等。更加直观简洁的对基于snort的入侵检测系统进行剖析,加深对snort的了解,对入侵检测有了更加深入的认识。

参考文献:

[1]刘远生,李剑勇,李康乐.网络安全实用教程[M].北京:人民邮电出版社.

[2]曹元大.入侵检测技术[M].北京:人民邮电出版社.

Windows平台下基于snort的入侵检测系统安装详解

Windows平台下基于snort的入侵检测系统安装详解 序言:最近公司网络总是不间断出现点问题,也搭建了一些流量监控服务器进行监控和分析;也一直在关注网络安全方面的知识。看到snort IDS是一个开源的软件,突然想学习下。就有了搭建Windows下Snort IDS的想法。一下内容参考网络上的资料。 1.软件准备 Apache,php,mysql,winpcap,snort,acid,adodb,jpgraph等 2.软件安装 window平台:windows xp sp3 (1)apache的安装 一路下一步,具体配置如下图:

安装完成后验证web服务是否运行正常 (2)mysql安装

(3)php安装 解压php压缩包到C盘下并命名为php 复制c:\php\phpini-dist到c:\windows下并重命名为php.ini 复制c:\php\php5ts.dll,c:\php\libmysql.dll 到 c:\windows\system32下复制c:\php\ext\php_gd2.dll到c:\windows\system32下 修改 c:\apache\conf\httpd配置文件 添加LoadModule php5_module c:/php/php5apache2_2.dll AddType application/x-httpd-php .php 重启apache服务 在c:\apache\htdocs\下新建test.php http://x.x.x.x/test.php验证php能否工作

基于snort技术分析

基于SNORT的入侵检测系统的分析 1. 绪论 1.1 研究目的与意义 随着网络技术的飞速发展,其应用领域也在不断的扩展,网络技术的应用已将从传统的小型业务系统逐渐扩展到大型的关键业务系统中,比如说金融业务系统、电子商务系统等等第。然而,随着网络技术的迅速发展,网络安全问题也日益突出。比如说金融系统、政府信息系统等受到外界的攻击与破坏,信息容易被窃取和修改等网络安全问题越来越严重。所以说网络安全问题已经成为各国政府、企业以及广大网络用户关心的问题之一。 任何试图破坏网络活动正常化的问题都可以称为网络安全问题。过去保护网络安全做常用、最传统的方法就是防火墙,但是防护墙只是一种被动防御性的网络安全工具,随着科学技术的不断发展,网络日趋复杂化,传统防火墙是不足以满足如今复杂多变的网络安全问题,在这种情况下,逐渐产生了入侵检测系统,入侵检测系统不仅能够为网络安全提供及时的入侵检测以及采取响应的防护手段,它还可以识别针对计算机或网络资源的恶意企图和行为,并对此做出反应,它提供了对系统受到内部攻击、外部攻击和误操作的实时保护,能够帮助系统对付网络攻击。入侵检测系统能很好的弥补防火墙的不足,是防火墙的合理完善。 入侵检测系统具有以下几个特点: 1)从系统的不同环节收集各种信息 2)分析收集到的信息并试图寻找入侵信息活动的特征 3)自动对检测到的行为做出响应 4)记录并报告检测结果 入侵检测系统的主要功能有 1)监测并分析用户和系统的活动 2)核查系统配置及其漏洞

3)评估系统重要资源和数据文件是否完整 4)识别己知的入侵行为 5)统计分析不正常行为 6)根据操作系统的管理日志,识别违反安全策略的用户活动 入侵检测技术是一种积极主动地安全防护技术,其核心在于它的检测引擎,如何实现高效快速的检测,是入侵检测技术的一个重要研究重点。目前入侵检测技术主要分为两大类,分别是基于异常的入侵检测和基于规则的入侵检测。由于目前的攻击主要是针对网络的攻击,因此检测入侵和攻击的最主要的方法是捕获和分析网络数据包,使用相应的软件来提取入侵者所发出的攻击包的特征,然后将这些特征攻击包和入侵检测系统的特征库进行对比匹配,如果在特征库中检测到相应的攻击包,就会发出入侵报警。在与特征库进行匹配的过程中,用到的最主要的技术就是模式匹配,所以说在入侵检测系统中模式匹配是一个研究重点。在国内,随着网络应用的日益增长,特别是那些关键部门对网络的应用使得网络安全问题至关重要,迫切需要高效的入侵检测产品来确保网络安全,但是,由于我国的入侵检测技术在网络安全领域的研究起步较晚,还不够成熟和完善,需要投入较多的精力来对这方面进行探索研究,特别是基于模式匹配也就是基于规则的入侵检测是一个重要的研究领域,这对抑制黑客攻击和网络病毒的传播,提高网络安全具有重要意义。 1.2 入侵检测技术的不足 入侵检测技术作为安全技术的一个重要领域,正在成为网络安全研究的热点,对入侵检测的理论研究和实际应用中还存在着许多问题,需要我们继续深入研究和探索,具体来说,入侵检测在以下方面有待继续发展: 1)阻断入侵的能力低 虽然入侵检测系统有发现入侵、阻断连接的作用。提供对内部攻击、外部攻击和误操作的实时保护。但它的工作重点是放在对入侵行为的识别。为提高网络安全,有效识别黑客入侵,必须提高阻断入侵的能力。可考虑将入侵检测系统与防火墙联合起来,配置好 IDS 的安全策略,指定响应对象防火墙的地址及密钥,由 IDS 发起与防火墙的连接,建立正常连接后,IDS 产生新的安全事件通知防火墙,防火墙随之做出安全策略的相应调整,使防护体系由静态到动态,从源头上彻底切断入侵行为。提升了防火墙的实时反应能力,增强了 IDS 的阻断能力。

IDS SNORT ACID搭建流程

IDS-Snort+ACID搭建流程 >ACID入侵数据库分析控制台,通过WEB界面来查看snort数据的工具。为了使用ACID,用户系统中必须安装Snort,Apache,MYSQL,PHP。他们之间的关系如下: 1:当入侵者进入用户的网络后,snort根据规则检测到入侵行为后,根据其配置文件/etc/ snort/snort.conf的配置,将信息记录到MYSQL数据库中。 2:用户使用浏览器连接到IDS服务器,请求ACID页面。 3:PHP连接到数据库,提取信息。 4:Apache响应浏览器,用户就可以在浏览器中查看,操作等。 将Apache MYSQL PHP装上 安装ACID 以上软件包的作用: Snort主程序,不用说了。 安装过程中,会创建: /etc/snort存放规则和配置文件 /var/log/snort存放日志 /usr/share/doc/snort-xxx snort文档文件README就在这里。

/usr/sbin/snort-plain主程序文件 /etc/rc.d/init.d/snortd start restart stop脚本。 Snort-mysql代替系统snort的主程序文件,使snort可以支持mysql数据库。 Php-acid ACID软件包。里面一堆的以PHP写的网页。 Php-adodb跟PHP访问数据库有关,在/ar/www/adodb。 Php-jpgraph JPG图像函数库,ACID采用它来创建入侵数据的图表。分析图就是靠它来创建的,使用户能更直观的去分析。/var/www/jpgraph-xxx 安装完后创建一个PHP测试页,看看APACHE和PHP安装是否成功。 /var/www/html Vi index.php 配置MYSQL 启动MYSQL,service mysqld start 会提示需要设置root密码 Mysqladmin–u root password test 创建两个库snort_log snort_archive

Snort详细安装步骤

S n o r t详细安装步骤Prepared on 21 November 2021

Snort使用报告 一、软件安装 安装环境:windows 7 32bit 二、软件:Snort 、WinPcap 规则库: 实验内容 熟悉入侵检测软件Snort的安装与使用 三、实验原理 Snort是一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS 四.安装步骤 1.下载实验用的软件Snort、Snort的规则库snortrules 和WinPcap. 本次实验使用的具体版本是Snort 、和WinPcap 首先点击Snort安装 点击I Agree.同意软件使用条款,开始下一步,选择所要安装的组件: 全选后,点 击下一步: 选择安装的 位置,默认 的路径为 c:/Snort/, 点击下一 步,安装完 成。软件跳 出提示需要 安装 WinPcap 以 上 2.安装 WinPcap 点击 WinPcap安装包进行安装 点击下一步继续: 点击同意使用条款: 选择是否让WinPcap自启动,点击安装: 安装完成点击完成。 此时为了看安装是否成功,进入CMD,找到d:/Snort/bin/如下图:(注意这个路径是你安装的路径,由于我安装在d盘的根目录下,所以开头是d:)

输入以下命令snort –W,如下显示你的网卡信息,说明安装成功了!别高兴的太早,这只是安装成功了软件包,下面还要安装规则库: 3.安装Snort规则库 首先我们去Snort的官网下载Snort的规则库,必须先注册成会员,才可以下载。具体下载地址为,往下拉到Rules,看见Registered是灰色的,我们点击Sign in: 注册成功后,返回到这个界面就可以下载了。下载成功后将压缩包解压到 Snort的安装文件夹内:点击全部是,将会替换成最新的规则库。 4.修改配置文件 用文件编辑器打开d:\snort\etc\,这里用的是Notepad++,用win自带的写字板也是可以的。找到以下四个变量var RULE_PATH,dynamicpreprocessor,dynamicengine,alert_syslog分别在后面添加如下路径: var RULE_PATH d:\snort\rules var SO_RULE_PATH d:\snort\so_rules var PREPROC_RULE_PATH d:\snort\preproc_rules dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicengine d:\snort\lib\snort_dynamicengine\ output alert_syslog: host=:514, LOG_AUTH LOG_ALERT 到现在位置配置完成,同样回到cmd中找到d:/Snort/bin/运行snort –v –i1(1是指你联网的网卡编号默认是1)开始捕获数据,如下: 运行一段时间后按Ctrl+c中断出来可以看见日志报告:

snort入侵检测实验报告

实验:入侵检测系统(Snort)的安装与配置 一、实验目的 学会WINDOWS下SNORT的安装与配置 二、实验环境 WinXP虚拟机 三、实验步骤与结果 一.在“我的电脑”中C盘中建立文件夹“zhangxiaohong” 二.安装WinPcap,运行WinPcap_4_1_2.zip,默认安装。 三.安装mysql,运行mysql-5.0.22-win32.zip,选择自定义安装选择安装路径 C:\zhangxiaohong\mysql 下,安装时注意:端口设置为3306(以后要用到),密码本实验设置成123 四.安装apache 1.运行apache_ 2.2.4-win32-x86-no_ssl.zip,安装到c:\zhangxiaohong\Apache 2.安装Apache,配置成功一个普通网站服务器 3.出现Apache HTTP Server 2.0.55的安装向导界面,点“Next”继续 4.确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续 5.将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续 6.选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选 择Custom,有更多可选项。按“Next”继续 7.出现选择安装选项界面,如图所示,左键点选“Apache HTTP Server 2.0.55”,

选择“This feature, and all subfeatures, will be installed on local hard drive.” 8.即“此部分,及下属子部分内容,全部安装在本地硬盘上”。点选 “Change...”,手动指定安装目录。 9.我这里选择安装在“C:\zhangxiaohong\Apache”,各位自行选取了,一般建议 不要安装在操作系统所在盘,免得操作系统坏了之后,还原操作把Apache配置文件 也清除了。选“OK”继续。 10.返回刚才的界面,选“Next”继续。 11.好了现在我们来测试一下按默认配置运行的网站界面,在IE地址栏打 “.0.1”,点“转到”,就可以看到如下页面,表示Apache服务器已安装成功。 12. 五.安装和配置PHP53、安装winpcap 1.解压php-5. 2.5-Win32到c:\zhangxiaohong\php 2.添加gd图形库支持 复制c:\zhangxiaohong\php\php5ts.dll和c: \zhangxiaohong\php\libmysql.dll文件到 C:\Windows\system32 复制c: \zhangxiaohong\php\php.ini-dist到C:\Windows文件夹并重命名为php.ini, 修改php.ini,分别去掉“extension=php_gd2.dll”和“extension=php_mysql.dll”前的分号, 3.并指定extension_dir="c:\zhangxiaohong\php\ext", 4.同时复制c:\zhangxiaohong\php\ext下的php_gd2.dll与php_mysql.dll到C:\Windows\system32 在C:\zhangxiaohong\apache\conf\httpd.conf中添加 LoadModule php5_module c:/zhangxiaohong/php/php5apache2.dll AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps AddType application/x-httpd-php .html AddType application/x-httpd-php .htm 5.重启Apache服务 在C:\zhangxiaohong\apache\htdocs目录下新建webinf.php(文件内容为:)并使用访问测试是否能够显示当前Apache服务器的信息,如果能够显示表明Apache和php工作基本正常 六.安装snort 1.运行Snort_2_9_0_5_Installer.exe 安装在C:\zhangxiaohong\Snort下即可, 运行C:\zhangxiaohong\Snort\bin\snort.exe或者在DOS中找到该位置, 如果安装Snort成功会出现一个可爱的小猪 2.并按照以下修改C:\zhangxiaohong\Snort\etc\snort.conf文件

Snort 命令参数详解

用法: snort -[options] 选项: -A 设置报警模式,alert = full/fast/none/unsock,详解上一篇snort简介。 -b 用二进制文件保存网络数据包,以应付高吞吐量的网络。 -B 将IP地址信息抹掉,去隐私化。 -c 使用配置文件,这会使得snort进入IDS模式,并从中读取运行的配置信息。-d 显示包的应用层数据。 -D 以后台进程运行snort。如无指定,Alerts将写到/var/log/snort/alert。 -e 显示数据链路层的信息。 -E 保存报警日志为windows事件日志。 -f 激活PCAP行缓冲(line buffering)。 -F 指定BPF过滤器。 -g 初始化Snort后以组ID(group ID)运行。 -G 为事件生成设置一个基础事件id值。 -h 设置本地网络为hn,如192.168.1.0/24。 -i 设置网络接口为。可以用-W选项查询网络接口列表,然后用接口序号index指定接口。如-i 2 -I 报警时附加上接口信息。 -J 当以in-line模式运行时,这个选项将只捕获端口的报文。 -k 为all,noip,notcp,noudp,noicmp,or none设置校验和模式。 -K 设置保存文件的格式:pcap,ascii,none。pcap是默认格式,同于-b选项的格式。ascii是老的模式格式。none则关闭数据包记录。 -l 设置数据包文件存放目录。默认目录是/var/log/snort. -L 设置二进制输出文件的文件名为。 -M 当以非后台模式daemon运行时,保存信息到syslog。 -m 设置snort输出文件的权限位。 -n 出来个报文后终止程序。 -N 关闭保存日志包功能。 -o 改变应用规则的顺序。从Alert-->Pass-->Log顺序改为Pass-->Alert-->Log,避免了设置大量BPF命令行参数来过滤alert规则。 -O 在ASCII数据包捕获模式下混淆IP地址。 -p 关闭混杂模式。 -P设置snaplen,默认值是当前网卡的MTU。 -q 安静模式,不显示标志和状态报告。 -Q 当在线(in-line)运行时,从iptables/IPQ中读取数据包。 -r 从pcap格式的文件中读取数据包。 -R 为snort pidfile增加下标。 -s 使snort把报警消息发送到syslog,默认的设备是LOG_AUTHPRIV和LOG_ALERT。可以修改snort.conf文件修改其配置。 -S 为变量n设置值为v。 -t 初始化后将Snort的根目录改变为。 -T 以自检测模式启动Snort。 -u 初始化后改变Snort的UID。

Snort详细安装步骤

Snort使用报告 一、软件安装 安装环境:windows 7 32bit 软件:Snort 2.9.5.5、WinPcap 4.1.1 规则库: snortrules-snapshot-2970.tar.gz 二、实验内容 熟悉入侵检测软件Snort的安装与使用 三、实验原理 Snort是一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS

四.安装步骤 1.下载实验用的软件Snort、Snort的规则库snortrules 和WinPcap. 本次实验使用的具体版本是Snort 2.9.5.5、snortrules-snapshot-2970.tar.gz 和WinPcap 4.1.3 首先点击Snort安装 点击I Agree.同意软件使用条款,开始下一步,选择所要安装的组件: 全选后,点击下一步:

选择安装的位置,默认的路径为c:/Snort/,点击下一步,安装完成。软件跳出提示需要安装WinPcap 4.1.1以上 2.安装WinPcap 点击WinPcap安装包进行安装 点击下一步继续:

点击同意使用条款: 选择是否让WinPcap自启动,点击安装:

安装完成点击完成。 此时为了看安装是否成功,进入CMD,找到d:/Snort/bin/如下图:(注意这个路径是你安装的路径,由于我安装在d盘的根目录下,所以开头是d:) 输入以下命令snort –W,如下显示你的网卡信息,说明安装成功了!别高兴的太早,这只是安装成功了软件包,下面还要安装规则库:

Snort网络入侵检测五种病毒

入侵检测技术实验Snort网络入侵检测 学院: 班级: 姓名: 学号:

一、实验目的 1)掌握数据库的使用方法和MySQLfront的安装使用方法 2)掌握wireshark抓取数据包分析关键特征以及相关格式内容 3)掌握病毒的工作原理和通信过程,交互的信息 4)将这门课的内容结合实际进行分析和实践 二、实验原理 1)实验环境: WinPcap_4_1_2.exe 网络数据包截取驱动程序 Snort_2_9_1_Installer.exe Windows 版本的Snort 安装包 mysql-5.5.18-win32.msi Windows 版本的mysql安装包 MySQL_Front_Setup.1765185107.exe mysql数据库可视化软件 snortrules-snapshot-CURRENT.tar.gz Snort规则库 Wireshark-win32-1.12.0.1410492379.exe抓包分析工具 2)实验环境的搭建 按照所给文档“Windows XP下安装配置Snort”的提示安装所需的软件,下面几个图片是成功安装的图片:

图(1)建立snort库 图(2)成功建立snort库

图(3)成功启动snort进行检测 至此,实验环境搭配成功。 三、实验内容 1)测试检测效果 测试虽然成功启动snort,但不能确定是否成功,故此测试任意IP端口 进行测试 配置此时的规则,修改local.rules文件,改规则为:alert ip any any -> any any (msg: "IP Packet detected";sid:1000000;) 此时结果如下图:

Snort入侵检测系统

Snort入侵检测系统 赵鹏通信一团技术室 摘要本文介绍了Snort入侵检测系统的结构、功能。具体介绍了Snort入侵检测系统各部件的功能,并分析了Snort入侵检测系统的优缺点。 关键词IDS 特征检测规则分析预处理净荷 1 概述 Snort是由一个简单的网络管理工具发展分布式入侵检测系统,被用于各种与入侵检测相关的活动,可以用作嗅探器、包记录器或者网络入侵检测系统NIDS。 作嗅探器时,Snort对发往同一个网络其他主机的流量进行捕获。嗅探器利用了以太网的共享特性。它将网路上传输的每一个包的内容都显示在你的监视器上,包括包头和包载荷。 以包记录器模式运行时,Snort以和嗅探器相似的方式抓包,不同的是将收集的数据记入日志而不是显示在屏幕上。 当Snort以网络入侵检测系统(NIDS)模式运行时,Snort也抓取并存储网络上传输的每一个包,关键的不同在于NIDS模式能对数据进行处理。这种处理不是简单的将数据写入文件或是显示在屏幕上,而是对每一个包进行检查以决定它的本质是良性的还是恶意的。当发现看似可疑的流量是,Snort就会发出报警。 NIDS因其能监控大片网段而比其他类型的IDS更受欢迎,这里要关注的是NIDS模式的Snort。 2 Snort入侵检测系统的组成 Snort有5个主要部件:捕包程序库libpcap、包解码器、预处理程序、检索引擎、输出组件。 图1 Snort组件数据流程图 捕包装置把包以原始状态捕获后送给解码器。解码器是进入Snort的第一步,它将特殊协议元素翻译成内部数据结构。它的目的是剥落包头。利用TCP-IP栈解码并且将包放入

一个数据结构中。在最初的捕包和解码完成后,有预处理程序处理流量。许多插入式预处理程序对包进行检查或操作后将它们交给下一个组件——检索引擎。检索引擎对每一个包的一个方面进行简单的检验以检测入侵。最后一个组件是输出插件,它对可疑行为产生报警。 2.1 捕包程序库libpcap和包解码器 大规模的应用程序很少采用单机模式,Snort通常采用分布式体系对网络进行入侵检测。最典型的安装方式是三层体系,即传感器层、服务器层、分析员控制台。 捕包程序库libpcap和包解码器运行在传感器上,负责对抓来的包进行解释并传递警报。由于传感器必须放置在要监控入侵的网段,为了保证安全,通常只安装Snort和它在之上运行的支撑应用程序。建议Linux或BSD等UNIX类型的操作系统。传感器的两块网卡一块用作捕包接口不分配IP,一块用作管理接口分配IP。捕包程序库libpcap运行在Libpcap平台上,由于Libpcap平台的独立性使得Snort可以被移植到任何地方,成为一个真正与平台无关的应用程序。 2.2 预处理程序 预处理是Snort的一类插件。它在检测引擎之前对数据进行处理,并且努力与不断变化的漏洞和攻击保持同步。可以添加新的协议为Snort提供支持。它既能对数据包操作以便检测引擎能正确分析包,又能检测特征检测所不能单独发现的可疑流量。按功能可以分为三类:数据标准化,协议分析和非特征匹配检测。 数据标准化 新的攻击方法和IDS躲避技术不断涌现,以至Snort的检测引擎要么不能检测,要么检测效率不高。预处理程序可以将数据标准化以便检测引擎能正确对其分析。 多态病毒是为了躲避反病毒程序的特征匹配引擎而将病毒代码任意改造和变异。同样的技术也被用于远程利用,shell代码具有多种形态。Fnord预处理程序能检测出变异的NO-OP sled,从而避免了由于缓冲区溢出使处理器强制执行恶意代码导致的程序崩溃。No-op sled能被许多IDS轻易地检测到,除非它在每次被使用时都做修改。如果没有Fnord预处理,Snort将无法检测多态shell代码。 协议分析 由于检测引擎能分析的协议很少,所以用协议处理程序来协助检测。ASNI_decode就能检测ASNI(Abstract Syntax Notation抽象语法标记)协议中的不一致性。较高的协议比如SNMP、LDAP和SSL都依赖ASNI。几乎所有起用SNMP的设备都受到缓冲区溢出或是拒绝服务(DoS)攻击的影响。 非特征匹配检测 这类预处理程序利用不同特征匹配的方法来捕获恶意流量。例如所谓的侦察攻击通常只是一个报警信号,无法确定是不是攻击。信息收集尝试利用了不合规格的流量,但这些流量通常在性质上是无害的。Portscan2和stream4就能发现这类流量和一些恶意黑客使用的躲避技术。 2.3 检测引擎 检测引擎是Snort的一个主要部件,有两个主要功能:规则分析和特征检测。检测引擎通过分析Snort规则来建立攻击特征。Snort规则被载入到检测引擎并以树形数据结构分

基于Snort的入侵检测系统方案

基于Snort的入侵检测系统 用Snort,Apache,MySQL,PHP及ACID构建高级IDS

第一章入侵检测系统及Snort介绍 在当今的企业应用环境中,安全是所有网络面临的大问题。黑客和入侵者已成功的入侵了一些大公司的网络及。目前已经存在一些保护网络架构及通信安全的方法,例如防火墙、虚拟专用网(VPN)、数据加密等。入侵检测是最近几年出现的相对较新的网络安全技术。利用入侵检测技术,我们可以从已知的攻击类型中发现是否有人正在试图攻击你的网络或者主机。利用入侵监测系统收集的信息,我们可以加固自己的系统,及用作其他合法用途。目前市场中也有很多弱点检测工具,包括商品化的和开放源码形式的,可以用来评估网络中存在的不同类型的安全漏洞。 一个全面的安全系统包括很多种工具: ●防火墙:用来阻止进入及走出网络的信息流。防火墙在商业化产品和开放源 码产品中都有很多。最著名的商业化防火墙产品有Checkpoint (.checkpoint.), Cisco (.cisco.)及Netscreen(.netscreen.)。最著名的开放源码防火墙是Netfilter/Iptables(https://www.doczj.com/doc/13797891.html,)。 ●入侵检测系统(IDS):用来发现是否有人正在侵入或者试图侵入你的网络。 最著名的IDS是Snort,可以在https://www.doczj.com/doc/13797891.html,下载。 ●弱点评估工具:用来发现并堵住网络中的安全漏洞。弱点评估工具收集的信 息可以指导我们设置恰当的防火墙规则,以挡住恶意的互联网用户。现在有许多弱点评估工具,比如Nmap(https://www.doczj.com/doc/13797891.html,/)和Nessus(https://www.doczj.com/doc/13797891.html,/). 以上这些工具可以配合使用,交互信息。一些产品将这些功能捆绑在一起,形成一个完整的系统。

:snort入侵检测系统配置使用

甘肃交通职业技术学院信息工程系《信息安全技术》 实训报告四 专业:智控(物联网方向) 班级:物联1201班 姓名:李永霞 学号:0623120116 时间: 2014年5月28日

snort入侵检测系统配置使用 一、项目概述 1、项目目的:了解snort入侵检测系统的原理;了解snort入侵检测系统的主要功能;掌握snort入侵检测系统的基本安装与配置方法。 2、知识与技能考核目标:能够掌握PHP网站服务器的搭建,能完成snort 入侵检测系统的安装与配置;能利用snort入侵检测系统的三种模式展开简单的检测和分析。 3、设备:微型计算机。 4、工具:网络数据包截取驱动程序:WinPcap_4_1_2.zip ;Windows 版本的Snort 安装包;Windows 版本的Apache Web 服务器;ACID(Analysis Console for Intrusion Databases)基于PHP的入侵检测数据库分析控制台;snort 规则包:rules20090505.tar.gz;Adodb(Active Data Objects Data Base)PHP库--adodb504.tgz;PHP图形库。 二、项目内容: 1、项目内容 snort入侵检测系统的安装;PHP网站服务器的搭建;基于mysql的snort 用来存储报警数据的数据库创建;snort入侵检测系统的配置及使用。 2、方案设计 通过观摩指导老师的操作来掌握snort入侵检测系统的安装与配置。 3、实施过程(步骤、记录、数据、程序等) (1)安装数据包截取驱动程序。 双击安装文件winpcap.exe,一直单击“NEXT”按钮完成安装。

实训-Snort安装与配置

Snort安装与配置 Snort是免费NIPS及NIDS软件,具有对数据流量分析和对网络数据包进行协议分析处理的能力,通过灵活可定制的规则库(Rules),可对处理的报文内容进行搜索和匹配,能够检测出各种攻击,并进行实时预警。 Snort支持三种工作模式:嗅探器、数据包记录器、网络入侵检测系统,支持多种操作系统,如Fedora、Centos、FreeBSD、Windows等,本次实训使用Centos 7,安装Snort 2.9.11.1。实训任务 在Centos 7系统上安装Snort 3并配置规则。 实训目的 1.掌握在Centos 7系统上安装Snort 3的方法; 2.深刻理解入侵检测系统的作用和用法; 3.明白入侵检测规则的配置。 实训步骤 1.安装Centos 7 Minimal系统 安装过程不做过多叙述,这里配置2GB内存,20GB硬盘。 2.基础环境配置 根据实际网络连接情况配置网卡信息,使虚拟机能够连接网络。 # vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 TYPE="Ethernet" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" NAME="eno16777736" UUID="51b90454-dc80-46ee-93a0-22608569f413" DEVICE="eno16777736" ONBOOT="yes" IPADDR="192.168.88.222" PREFIX="24" GATEWAY="192.168.88.2" DNS1=114.114.114.114 ~

入侵检测系统安装和使用

入侵检测系统安装和使 用 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

入侵检测系统安装和使用 【实验目的】 通过安装并运行一个snort系统,了解入侵检测系统的作用和功能 【实验内容】 安装并配置appahe,安装并配置MySQL,安装并配置snort;服务器端安装配置php脚本,通过IE浏览器访问IDS 【实验环境】 硬件 PC机一台。 系统配置:操作系统windows 10 。 【实验步骤】 1、安装appache服务器 启动appache服务器 测试本机的80 端口是否被占用, 2、安装配置snort

查看 Snort 版本 2、安装最新版本程序

安装MySql配置mysql

运行snort

1、网络入侵检测snort的原理 Snort能够对网络上的数据包进行抓包分析,但区别于其它嗅探器的是,它能根据所定义的规则进行响应及处理。Snort 通过对获取的数据包,进行各规则的分析后,根据规则链,可采取Activation(报警并启动另外一个动态规则链)、Dynamic(由其它的规则包调用)、Alert(报警),Pass(忽略),Log(不报警但记录网络流量)五种响应的机制。? Snort有数据包嗅探,数据包分析,数据包检测,响应处理等多种功能,每个模块实现不同的功能,各模块都是用插件的方式和Snort相结合,功能扩展方便。例如,预处理插件的功能就是在规则匹配误用检测之前运行,完成TIP碎片重组,http解码,telnet解码等功能,处理插件完成检查协议各字段,关闭连接,攻击响应等功能,输出插件将得理后的各种情况以日志或警告的方式输出。

snort入侵检测技术

Snort入侵检测系统分析 2015年12月6日 Snort入侵检测系统分析 简介 Snort的一些源代码是从著名的TCPDUMP软件发展而来的。snort是一个基于LIBPCA包的网络监控软件,可以作为一个十分有效的网络入侵监测系统。它运行在一个“传感器”主机上,监听网络数据。这台机器可能是一台简陋的运行FREEBSD系统的Pentium100 PC,并且至少有一个网卡。 Snort首先根据远端的IP地址建立目录,然后将检测到的包以TCPDUMP的二进制格式记录或者以自身的解码形式存储到这些目录中.这样一来,你就可以使用snort来监测或过滤你所需要的包.Snort是一个轻量级的入侵检测系统,它具有截取网络数据报文,进行网络数据实时分析、报警,以及日志的能力。snort的报文截取代码是基于LIBPCA库的,继承了LIBPCA库的平台兼容性。它能够进行协议分析,内容搜索/匹配,能够用来检测各种攻击和探测,例如:缓冲区溢出、隐秘端口扫描、CGI 攻击、SMB探测、OS指纹特征检测等等。snort使用一种灵活的规则语言来描述网络数据报文,因此可以对新的攻击作出快速地翻译。snort具有实时报警能力。可以将报警信息写到syslog、指定的文件、UNIX套接字或者使用Winpopup消息。snort具有良好的扩展能力。它支持插件体系,可以通过其定义的接口,很方便地加入新的功能。snort还能够记录网络数据,其日志文件可以是TCPDUMP格式,

也可以是解码的ASCII格式。简单的说,Snort是数据包的嗅探器,也是数据包记录器,还是NIDS。提供数据包嗅探和记录功能只是Snort的部分功能,Snort 的特点就是其入侵检测功能—根据入侵规则匹配数据包中的内容。Snort还是一个自由,简介,快速,易于扩展的入侵检测系统,已经被移植到了各种UNIX平台和winY2k上。同时,它也是目前安全领域中,最活跃的开放源码工程之一。 体系结构 Snort有5个主要部件:捕包程序库libpcap、包解码器、预处理程序、检索引擎、输出组件。 图1 Snort组件数据流程图 捕包装置把包以原始状态捕获后送给解码器。解码器是进入Snort的第一步,它将特殊协议元素翻译成内部数据结构。它的目的是剥落包头。利用TCP-IP 栈解码并且将包放入一个数据结构中。在最初的捕包和解码完成后,有预处理程序处理流量。许多插入式预处理程序对包进行检查或操作后将它们交给下一个组件——检索引擎。检索引擎对每一个包的一个方面进行简单的检验以检测入侵。最后一个组件是输出插件,它对可疑行为产生报警。大规模的应用程序很少采用单机模式,Snort通常采用分布式体系对网络进行入侵检测。最典型的安装方式是三层体系,即传感器层、服务器层、分析员控制台。 捕包程序库libpcap和包解码器运行在传感器上,负责对抓来的包进行解释并传递警报。由于传感器必须放置在要监控入侵的网段,为了保证安全,通常只安装Snort和它在之上运行的支撑应用程序。建议Linux或BSD等UNIX类型的操作系统。传感器的两块网卡一块用作捕包接口不分配IP,一块用作管理接口分配IP。捕包程序库libpcap运行在Libpcap平台上,由于Libpcap平台的独立性使得Snort可以被移植到任何地方,成为一个真正与平台无关的应用程序。预处理程序 预处理是Snort的一类插件。它在检测引擎之前对数据进行处理,并且努力与不断变化的漏洞和攻击保持同步。可以添加新的协议为Snort提供支持。它既

Snort中文手册范本

Snort 用户手册 Snail.W 第一章 snort简介 snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。嗅探器所谓的嗅探器模式就是snort从网络上读出数据包然后显示在你的控制台上。首先,我们从最基本的用法入手。如果你只要把TCP/IP信息打印在屏幕上,只需要输入下面的命令:./snort -v 使用这个命令将使snort只输出IP和TCP/UDP/ICMP的信息。如果你要看到应用层的数据,可以使用:./snort -vd 这条命令使snort在输出信息的同时显示包的数据信息。如果你还要显示数据链路层的信息,就使用下面的命令:./snort -vde 注意这些选项开关还可以分开写或者任意结合在一块。例如:下面的命令就和上面最后的一条命令等价:./snort -d -v –e 数据包记录器如果要把所有的包记录到硬盘上,你需要指定一个日志目录,snort就会自动记录数据包:./snort -dev -l ./log 当然,./log目录必须存在,否则snort就会报告错误信息并退出。当snort在这种模式下运行,它会记录所有看到的包将其放到一个目录中,这个目录以数据包目的主机的IP地址命名,例如:192.168.10.1 如果你只指定了-l命令开关,而没有设置目录名,snort有时会使用远程主机的IP地址作为目录,有时会使用本地主机IP地址作为目录名。为了只对本地网络进行日志,你需要给出本地网络:./snort -dev -l ./log -h 192.168.1.0/24 这个命令告诉snort把进入C类网络192.168.1的所有包的数据链路、TCP/IP以及应用层的数据记录到目录./log中。如果你的网络速度很快,或者你想使日志更加紧凑以便以后的分析,那么应该使用二进制的日志文件格式。所谓的二进制日志文件格式就是tcpdump程序使用的格式。使用下面的命令可以把所有的包记录到一个单一的二进制文件中:./snort -l ./log -b 注意此处的命令行和上面的有很大的不同。我们勿需指定本地网络,因为所有的东西都被记录到一个单一的文件。你也不必冗余模式或者使用-d、-e功能选项,因为数据包中的所有容都会被记录到日志文件中。你可以使用任何支持tcpdump二进制格式的嗅探器程序从这个文件中读出数据包,例如:tcpdump或者Ethereal。使用-r功能开关,也能使snort读出包的数据。snort在所有运行模式下都能够处理tcpdump格式的文件。例如:如果你想在嗅探器模式下把一个tcpdump格式的二进制文件中的包打印到屏幕上,可以输入下面的命令:./snort -dv -r packet.log 在日志包和入侵检测模式下,通过BPF(BSD Packet Filter)接口,你可以使用许多方式维护日志文件中的数据。例如,你只想从日志文件中提取ICMP 包,只需要输入下面的命令行:./snort -dvr packet.log icmp 网络入侵检测系统snort最重要的用途还是作为网络入侵检测系统(NIDS),使用下面命令行可以启动这种模式:./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf snort.conf是规则集文件。snort会对每个包和规则集进行匹配,发现这样的包就采取相应的行动。如果你不指定输出目录,snort就输出到/var/log/snort目录。注意:如果你想长期使用snort作为自己的入侵检测系统,最好不要使用-v选项。因为使用这个选项,使snort向屏幕上输出一些信息,会大大降低snort的处理速度,从而在向显示器输出的过程中丢弃一些包。此外,在绝大多数情况下,也没有必要记录数据链路层的,所以-e选项也可以不用:./snort -d -h 192.168.1.0/24 -l ./log -c snort.conf 这是使用snort作为网络入侵检测系统最基本的形式,日志符合规则的包,以ASCII形式保存在有层次的目录结构中。网络入侵检测模式下的输出选项在NIDS模式下,有很多的方式来配置snort的输出。在默认情况下,snort以ASCII格式记录日志,使用full报警机制。如果使用full报警机制,snort会在之后打印报警消息。如果你不需要日志包,可以使用-N选项。 snort有6种报警机制:full、fast、socket、syslog、smb(winpopup)和none。其中有4个可以在命令行

相关主题
文本预览
相关文档 最新文档