開啟主選單
求真百科
搜尋
檢視 Snort 的原始碼
←
Snort
由於下列原因,您沒有權限進行 編輯此頁面 的動作:
您請求的操作只有這個群組的使用者能使用:
用戶
您可以檢視並複製此頁面的原始碼。
[[File:Snort.jpeg|有框|右|<big>Snort(检测系统)</big>[https://m.360buyimg.com/mobilecms/s750x750_g13/M07/0E/1A/rBEhU1JO3hAIAAAAAABq8bhBJWEAADylQBX1v8AAGsJ039.jpg!q80.dpg 原图链接][https://item.m.jd.com/product/1040566217.html?cu=true&utm_source=baidu-juhe&utm_medium=kong&utm_campaign=t_1000151230_juhe 来自 京东商城;京东多媒体网 的图片]]] '''Snort'''是1998年,Martin Roesch用[[C语言]]开发了开放源代码(Open Source)的入侵检测系统。直至今天,Snort已发展成为一个具有多平台(Multi-Platform)、实时(Real-Time)流量分析、网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS。Snort符合通用公共许可(GPL——GNU General Pubic License),在网上可以通过免费下载获得Snort,并且只需要几分钟就可以安装并开始使用。<ref>[https://www.sohu.com/a/401948845_696685 这 10 款开源免费的安全工具,绝了! ],搜狐, 2020-06-15</ref> ==简介== Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。 ==原理== Snort能够对网络上的数据包进行抓包分析,但区别于其它嗅探器的是,它能根据所定义的规则进行响应及处理。Snort 通过对获取的数据包,进行各规则的分析后,根据规则链,可采取Activation(报警并启动另外一个动态规则链)、Dynamic(由其它的规则包调用)、Alert(报警),Pass(忽略),Log(不报警但记录网络流量)五种响应的机制。 Snort有数据包嗅探,数据包分析,数据包检测,响应处理等多种功能,每个模块实现不同的功能,各模块都是用插件的方式和Snort相结合,功能扩展方便。例如,预处理插件的功能就是在规则匹配误用检测之前运行,完成TIP碎片重组,http解码,telnet解码等功能,处理插件完成检查协议各字段,关闭连接,攻击响应等功能,输出插件将得理后的各种情况以日志或警告的方式输出。 ==工作过程== Snort通过在网络TCP/IP的5层结构的数据链路层进行抓取网络数据包,抓包时需将网卡设置为混杂模式,根据操作系统的不同采用libpcap或winpcap函数从网络中捕获数据包;然后将捕获的数据包送到包解码器进行解码。网络中的数据包有可能是以太网包、令牌环包、TCP/IP包、802.11包等格式。在这一过程包解码器将其解码成Snort认识的统一的格式;之后就将数据包送到预处理器进行处理,预处理包括能分片的数据包进行重新组装,处理一些明显的错误等问题。预处理的过程主要是通过插件来完成,比如Http预处理器完成对Http请求解码的规格化,Frag2事务处理器完成数据包的组装,Stream4预处理器用来使Snort状态化,端口扫描预处理器能检测端口扫描的能力等;对数据包进行了解码,过滤,预处理后,进入了Snort的最重要一环,进行规则的建立及根据规则进行检测。规则检测是Snort中最重要的部分,作用是检测数据包中是否包含有入侵行为。例如规则alert tcp any any ->202.12.1.0/24 80(msg:”misc large tcp packet”;dsize:>3000;)这条规则的意思是,当一个流入202.12.1.0这个网段的TCP包长度超过3000B时就发出警报。规则语法涉及到协议的类型、内容、长度、报头等各种要素。处理规则文件的时候,用三维链表来存规则信息以便和后面的数据包进行匹配,三维链表一旦构建好了,就通过某种方法查找三维链表并进行匹配和发生响应。规则检测的处理能力需要根据规则的数量,运行Snort机器的性能,网络负载等因素决定;最后一步就是输出模块,经过检测后的数据包需要以各种形式将结果进行输出,输出形式可以是输出到alert文件、其它日志文件、数据库UNIX域或Socket等。 ==部署== Snort的部署非常灵活,很多操作系统上都可以运行,可以运行在window xp,windows2003,linux等操作系统上。用户在操作系统平台选择上应考虑其安全性,稳定性,同时还要考虑与其它应用程序的协同工作的要求。如果入侵检测系统本身都不稳定容易受到攻击,就不能很好的去检测其它安全攻击漏洞了。在Linux与Windows操作系统相比较之下,Linux更加健壮,安全和稳定。Snort的运行,主要是通过各插件协同工作才使其功能强大,所以在部署时选择合适的数据库,Web服务器,图形处理程序软件及版本也非常重要。Snort部署时一般是由传感器层、服务器层、管理员控制台层三层结构组成。传感器层层就是一个网络数据包的嗅探器层,收集网络数据包交给服务器层进行处理,管理员控制台层则主要是显示检测分析结果。部署Snort时可根据企业网络规模的大小,采用三层结构分别部署或采用三层结构集成在一台机器上进行部署,也可采用服务器层与控制台集成的两层结构。 ==运行== Snort的有三种模式的运行方式:嗅探器模式,包记录器模式,和网络入侵检测系统模式。嗅探器模式仅仅是从捕获网络数据包显示在终端上,包记录器模式则是把捕获的数据包存储到磁盘,入侵检测模式则是最复杂的能对数据包进行分析、按规则进行检测、做出响应。 ==不足== Snort入侵检测系统适应多种平台,源代码开放,使用免费,受众多用户喜爱,但也有不少缺点。Snort之所以说他是轻量型就是说他的功能还不够完善,比如与其它产品产生联动等方面还有待改进;Snort由各功能插件协同工作,安装复杂,各软件插件有时会因版本等问题影响程序运行;Snort对所有流量的数据根据规则进行匹配,有时会产生很多合法程序的误报。 ==相关条目== Snort最重要的用途还是作为网络入侵检测系统(NIDS)。 使用简介 Snort并非复杂难以操作的软体。 Snort可以三个模式进行运作: 侦测模式(Sniffer Mode):此模式下,Snort将在现有的网域内撷取封包,并显示在荧幕上。 封包纪录模式(packet logger mode):此模式下,Snort将已撷取的封包存入储存媒体中(如硬碟)。 上线模式(inline mode):此模式下,Snort可对撷取到的封包做分析的动作,并根据一定的规则来判断是否有网路攻击行为的出现。 基本指令:侦测模式 若你想要在萤幕上显示网路封包的标头档(header)内容,请使用 ./snort -v 如果想要在萤幕上显示正在传输的封包标头档内容,请使用 ./snort -vd 如果除了以上显示的内容之外,欲另外显示数据链路层(Data link layer)的资料的话,请使用 ./snort -vde ==封包记录== 在记录封包之前,您必须先指定一个目录来储存该资料。举例而言,若您在您目前的目录下建立了一个名为log的目录,欲存纪录资料于该目录下的话,请使用 ./snort -dev -l ./log 若想要以二进位码(binary code)的方式来储存封包资料的话,请使用 ./snort -l ./log -b 若欲读取某已储存的封包记录档案(假设其档名为packet.log),请使用 ./snort -dvrpacket.log 若欲读取该[[档案]]中特定网路协定的资讯(假设是tcp协定),请使用 ./snort -dvr packet.log tcp ==入侵侦测== 若欲使用入侵侦测模式,请使用 ./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf 其中snort.conf是封包的签章档案 若不需要得知资料连结层的资讯,请使用 ./snort -d -h 192.168.1.0/24 -l ./log -c snort.conf 以下是Snort在入侵侦测模式的指令选项: -A fast快速警告模式 -A full完整警告模式(预设) -A unsock将警告讯息送至UNIX的socket上,供其他装置检视 -A none关闭警告功能 -A console将警告讯息送至终端机(Console) ==视频== ===<center> Snort 相关视频</center>=== <center>pfSense 教程-11_ 配置 Snort</center> <center>{{#iDisplay:n06198rnmpr|560|390|qq}}</center> <center>MC Eucalips - Cosmic Snort - Mumbai Series</center> <center>{{#iDisplay:x0304quat1f|560|390|qq}}</center> ==参考文献== [[Category:312 電腦科學]]
返回「
Snort
」頁面